Shield or standalone board?

I'm working on a PCB for a project that will run without connecting to a PC, and I have an interesting design decision that I'm surprised has not been addressed before.

I can build a shield, or I can incorporate the MCU, crystals, and ICSP header to make a standalone board.

The standalone board would add about $6 to the price for those parts but mean I don't need to tie up a an arduino board for the project.

Isn't that a better route most of the time then when you're not going to use the USB connection anyway?

Hi,

I am not quite sure I understand what you mean. I see the arduino as a development platform to play around with things so that the tested project can be put on a standalone board afterwards. Isn't that common practice?

Regards,

Till

The time to move to stand-alone is after you've thoroughly tested the breadboard or prototype rig (of course!)

An alternative you might not thought of, however, is to include a programming header. That way, if you want to make an easy change to the "firmware" you can plug in something like the FTDI-chip-in-a-USB-cable (about twenty bucks from most places).

Otherwise it's pry out the AT, stick in a spare Arduino/compatible, and so forth.

There's a couple of threads on standalone wiring, minimum components, etc. I'm going that route myself at moment; made a working prototype that was solid enough for a trial installation with Arduino and shield, but for the next step assembling my own stripped-down AT, crystal, etc. on proto-board; meaning I make a complete mimic of what will be on the PCB.

An alternative you might not thought of, however, is to include a programming header. That way, if you want to make an easy change to the "firmware" you can plug in something like the FTDI-chip-in-a-USB-cable (about twenty bucks from most places).

Actually, that's exactly what I meant by ICSP header, since I would be using an AVR-ISP with the new feature in 0011.

The issue for debugging would be more a matter of getting the hardware right the first time.

And also what I was thinking, instead of a Motor shield (for example), why not a Motorduino, with the shield and Arduino core on the same hardware (again, programmable off some sort of header either serial or icsp)

Pretty sure it's a thought many of us have had. I'm trying to reduce an Arduino-based gadget to an all-in-one PCB myself (in full knowledge that most of the functionality I'm after already exists on another board).

The shields are not the most elegant solution to fill the gap between breadboard and PCB, but they are the best anyone's seemed to come up with so far. Just seems there are too many different desires for a motor bridge, or an I/O board, or whatever, to be able to make a compromise all-in-one board that really satisfies.

And, too, by the time you home in on a specific feature set, you find yourself looking towards SMDs, or mini-ATs, or other less generalized tools than a complete Arduino board and environment.

The shields are not the most elegant solution to fill the gap between breadboard and PCB, but they are the best anyone's seemed to come up with so far. Just seems there are too many different desires for a motor bridge, or an I/O board, or whatever, to be able to make a compromise all-in-one board that really satisfies.

It's very similar to shields, but I've always liked Wouter's Dwarf Board system over in the PIC world: Dwarf Boards

Basically the main board has several ports that can each connect to a Dwarf Board (which is like a mini-shield). The problem with this on the Arduino is there's just not enough IO lines available.

This is the type of thing I usually do. I should post images sometime, but Ive made a couple Arduino based boards that have a couple ULN2003 or ULN2803s to fire off 16 solenoids. I can make a fairly small pcb with the basic stuff needed for the arduino and add the darlingtons and some pin headers and it is ultimately a whole lot cheaper than buying an arduino+shield+parts. I usually dont even include the ISP as I just program the chip in the arduino board and pull it out and put it into the new carrier board. (Now that I have a programmer that will all change....) Ive been using some really nice, stable and clean 5v switching power supplies for my work so this means the only thing that is really needed on the board is the avr, xtal, caps, and a power plug!

Cheers,
B

Interesting.

Yah, the Arduino system seems to have grown around the concept of stacking headers/shields. It does make for solid and compact constructions, though. Strikes me, though, would not be hard to make up ribbon cable that would treat the existing header blocks as buses. But maybe there's an idea to come up with a standard bus that carries VCC and gnd in addition to Digital I/O...skip the tx/rx and reset for that cable and just call it "Digital I/O Bus." Similar for analog/PWM.

(One existing alternative to the shield format is Lilypad and its individual wires).

Pre-morning coffee thoughts here, so I might not be cogent or clear yet.

This does bring to mind a potentially useful shield concept, though; seems like a lot of people are needing to expand the I/O with some sort of multiplexing, shift registers, etc. I could see a shield that was designed specifically for, say, a multiplied number of outs. Especially if it carried drivers or even power transistors to handle the more significant 5v loads (aka big LED displays and the like). Design it for possibly ribbon header, or better yet terminal block, so LED Christmas Tree-type projects could easily terminate the various clumps of wires coming in from different directions.

Has this discussion reached point where we should split and join one about "New shields we'd like to see?"

I have been struggling with a similar chain of thought. You can see my other thread here on "deployment strategy". The shield system as it stands today I say is still gear towards prototyping:

  1. get a shield that does X (xbee, say) plug into a standard arduino, and you have a prototype platform
  2. built your own hardware extension on a protoshield (or the double shield if need more room), plug into a standard arduino and you have a stable (hardware wise) prototype platform.

What we need is one of two things for deployment:

  1. A reverse BBB -- a large PCB with a pad layout that we can put custom components on, and have the basic arduino "kit" on one side. So cost should be low because it is a BBB, but you can put your deployment hardware right on it.

OR, how about this:
2) A BBB that is in the form factor of the "standard" arduino. Or a standard arduino without the extra hardware, to keep the cost down. Then we can plug standard format shields onto it to be used as deployment system.

What do you think? I would go make (1) or (2) except I don't have the PCB design skills. Anyone listening? Ladyada? ModernDevice guys? Anyone ??

P.K.

I think there's another way to think of this, and that's in terms of reliability and portability.

A breadboard is very flexible, but you don't want to drag a breadboard with a bunch of hanging wires and other dangly bits to Maker's Faire, or to a job site.

The next step up is the ability to solder, wire-wrap, or so forth on top of a prototyping shield (or to re-task a shield or similar that is close enough). Now at least you've got a smaller form factor and you can pack it in a bag and get it to another location without a bunch of connections coming loose.

Past that, to reach any more component density -- as well as, really, to fit nicely into a housing -- you need to move towards pcbs.

I think, tho, there is a different middle-ground you'd get by having stable (aka soldered-up) sub-boards that connected with cables. That way you have the stability of total system to carry it around, but more flexibility in layout than you get with shields. In any case, as much as possible you go with modular components, components with more features and redundancy than you need, and keep the selectivity mostly in software. That seems to be how robotics people are increasingly moving.

  1. A BBB that is in the form factor of the "standard" arduino. Or a standard arduino without the extra hardware, to keep the cost down. Then we can plug standard format shields onto it to be used as deployment system.

What do you think? I would go make (1) or (2) except I don't have the PCB design skills. Anyone listening? Ladyada? ModernDevice guys? Anyone ??

P.K.

I've thought about the same thing, but the problem is that you are essentially reinventing the wheel. If you get one of the excellent user-contributed single sided serial boards that have been posted on this website, you have what you want i.e. pin headers in the correct position, and you've got the advantage of the serial communication built in. Don't want to ever use the serial stuff? Just don't solder those bits in! I have personally made, tested and love Westfw's version, I see a lot of good talk about Adilson's too.

Nomuse, I think your post really hit the nail on the head. You put what I was thinking of down in concrete words. I want a system that is more flexible than shields yet without the tedious wiring and fragility of breadboarding.

On an earlier thread, we talked about creating a i2c bus shield to allow easily docking several i2c components. We were calling those microshields or uShields. I think there's a lot of merit to the idea. Each uShield will have connect to the Arduino board so that it gets some IO lines and power. We could have one shield that brings out several uShield headers and then create a variety of uShields.

The drawback still seems to be a shortage of IO lines though, either we couldn't have very pins on each port or not very many ports.

I've thought about the same thing, but the problem is that you are essentially reinventing the wheel. If you get one of the excellent user-contributed single sided serial boards that have been posted on this website, you have what you want i.e. pin headers in the correct position, and you've got the advantage of the serial communication built in. Don't want to ever use the serial stuff? Just don't solder those bits in! I have personally made, tested and love Westfw's version, I see a lot of good talk about Adilson's too.

Exactly. If that's what you're doing, it could be as simple as using the Freeduino board and assembling it without the USB components.

The drawback still seems to be a shortage of IO lines though, either we couldn't have very pins on each port or not very many ports.

Regarding this drawback, you might want to consider something like the Phillips PCF8591. It's an I2C chip with 4 analog in's and 1 analog out - you can put up to 8 of them on the buss, and they're pretty reasonably priced. I've used them and they work well.

Regarding this drawback, you might want to consider something like the Phillips PCF8591. It's an I2C chip with 4 analog in's and 1 analog out - you can put up to 8 of them on the buss, and they're pretty reasonably priced. I've used them and they work well.

Although I'm not familiar with those. I do know about i2c digital IO port extenders. It sounds very similar but each chip gives 8 digital IO lines on an i2c bus.

My main concern though is how much harder that will make the coding for a new user. Even with shiftout or an i2c library, it's still more difficult to program. I'm trying to create tools to extend the Arduino, so I want to keep it accessible to the target audience.

My secondary concern is what it will do to cost. iirc these port extenders are a few dollars each, and if I use one for each uShield port, it will make an expensive shield.

On the other hand, this could go beautifully with the i2c uShield work that I think nkcelectronics is doing. If he's building an i2c bus shield, we could build uShields that incorporate a port extender to do digital IO stuff alongside his modules. (he was concentrating on i2c sensor devices).

BTW, a while ago I designed a board that has the basic microcontroller components (a la a BBB) without the USB, and extra room for prototyping holes: Arduino Playground - PrototypingBoard. We never manufactured it, but the eagle files are available if people are interested. Of course, Sparkfun also sells an Olimex board that's similar: 28 Pin AVR Development Board - DEV-00029 - SparkFun Electronics (it has a serial connection, but it's only $17).

This is the type of thing I usually do. I should post images sometime, but Ive made a couple Arduino based boards that have a couple ULN2003 or ULN2803s to fire off 16 solenoids. I can make a fairly small pcb with the basic stuff needed for the arduino and add the darlingtons and some pin headers and it is ultimately a whole lot cheaper than buying an arduino+shield+parts. I usually dont even include the ISP as I just program the chip in the arduino board and pull it out and put it into the new carrier board. (Now that I have a programmer that will all change....) Ive been using some really nice, stable and clean 5v switching power supplies for my work so this means the only thing that is really needed on the board is the avr, xtal, caps, and a power plug!

Cheers,
B

bwevans, have you taken those pictures yet? I'd love to see the boards you are making. One of my upcoming projects will have 16 solenoids to control. It would be nice to be able to get a cheap board to drop the programmed arduino into for the finished project. Thanks for mentioning the darlington driver chips, I hadn't heard of those before.

I too would like to see a simple prototyping board with minimal parts to transition to.