We have a couple of interesting lab projects on the go that require a small AVR controller board. These projects fall into our ‘Lab category’ as they are part of tooling, instrumentation and control equipment that we are working on. Originally we thought about using one of the current crops of Arduino, primarily because we are prototyping using Arduino software and boards. However when we looked at the problem more closely we realised that a number of these projects shared more than just a micro-controller.
It became obvious it was time to scratch an itch so I set about designing a small AVR board with the kind of features we needed for these projects. I am just finishing the PCB layout but figured I would put it up for your perusal and discuss what the board provides in case anyone else out there is interested in using one.
Here is the PCB (without ground planes)
We haven’t yet come up with a name for it (the project was originally called MiniPID as part of a small PID controller, Labduino is one suggestion) perhaps you can come up with something better? What it fullfills is the following requirements:
- Arduino software compatible (at least for prototyping) which allows us to leverage existing code.
- A numerical display – 4 digits in this case, we could have gotten away with less, but that would have limited this boards applications.
- Ability to drive small motors, relays, solenoids and externally powered devices (> 5v/3.3v).
- A way of programming it when developing new uses – serial port in this case.
- It must be compact and low cost to produce.
- We wanted to be able to build it by hand so avoiding any of the high density SMD parts (MLFs,TQ/VQ packages etc..).
- It should still be expandable so we can add custom peripherals for each application, primarily analogue interfaces but serial digital could also be useful.
Here is the annotated birds eye view of the design
I also managed some quite nice design wins which took me a little longer but I hope will pay of in flexibility.
- The display and controller sections are modular and can be separated by a single Guillotine cut on the PCB. This enables the display section to be separate from the main controller making housing more flexible. It also allows each module to be used separately later on. For example we may look at a more integrated controller using an ATtiny with analog circuitry on the PCB in an even simpler single board solution. This allows cleanly forking the project later.
- The display also has a pair of linear or bar-graph displays which extends its functionality and range of applications. These turn out to be quite handy as an accompaniment to the numerical displays. They can provide instant level feedback or can be used to illustrate timing or steps etc.. In fact if only a few of the leds are populated they could show things such as modes or warnings so it provides a lot of flexibility.
- The serial coms should fit to a standard Arduino USB – RS323 adapter cable which are commonly available.
- The controller board houses a 28 pin DIL socket which can house any of the ATmega48-328 microcontrollers allowing the most economical controller to be chosen for the given job.
- Despite its small size (~50mm x 50mm) I managed to squeeze in an ICSP programming port, Analogue port , SPI port, serial connector and higher current digital open collector outputs all of which are on 0.1″ headers. One can either attach a small shield or expand horizontally using right angled connectors.
One of the original projects which will use this design requires a PID which naturally needs things like a numerical display, in our case it also needs timers and control curves. Labduino lends itself to lots of other applications like monitors & controllers of anything numerical from metering to sequencing, I would be really interested in what you can think of application wise, got any good ideas for its use? There may be a freebie in it for a deserving purpose.
So as usual let me know your thoughts, if you see any mistakes or can suggest any improvements please do. If anyone fancies owning one of these little puppies to play with or for your own projects please let me know ASAP as I am about to get a batch of PCBs ordered along with components. If you are interested it will be provided in kit form or just PCB to build yourself as we do not have assembly folks. Given it would be a DIY board I must warn you that it is not a board for a beginner, its small and quite tricky involving some SMD parts in tight spaces! But if your confident it could be yours at cost, if you want a challenge perhaps you could get someone to help you put it together. As usual the board will be Opensourced just as soon as I have optimised it and cleaned it up etc..