I've tried to standardise the design, to make use of the ATmega328 pin-out - which lends itself for an efficient layout.
Here's a couple of recent boards - one is a controller for a spark ignition system, and the other is a general purpose layout - just the Arduino in the corner of a vast expanse of prototyping board.
Below is the prototype spark ignition controller. It is based on the Atmel ATmega328 microcontroller and uses the standard FTDI USB to serial cable as a means of programming it.
The schematic is here: Lister_spark_IC.pdf
The following I/O pins were used
Pin 2 Serial Rx Input from PC
Pin 3 Serial Tx Output to PC
Pin 4 Digital Input from Hall Effect sensor (Arduino Digital Input 2)
Pin 14 Digital Output to trigger power transistor (Arduino Digital Output 8).
Pin 19 Digital OUtput to Drive LED (Arduino Digital Output 13).
The board is clocked with a 16MHz crystal to retain compatability with Arduino. The firmware is developed as normal using the Arduino IDE.
The board has a 5V regulator, a rotary pot to delay the spark and a blue LED to flash in time with the firing of the power transistor. The TIP122 transistor is mounted on a small heatsink. Connections to +12V battery, ground and the low tension to the ignition coil are provided on 1/4" automotive spade terminals. The 6 way cable exiting to the top left is an FTDI USB to serial cable. This provides +5V for testing and the serial interface for programming the board and getting rpm and ignition delay data back to the laptop.
The 3 pin Hall sensor plugs into the pin-socket just below the FTDI cable header - it has the same pin order as the Honeywell sensor +5V, 0V and signal out. For testing the sensor device can be plugged straight into this connector, and later extended with a 3 way cable.
The board measures 3" x 4.5" and there is space below the heatsink to take additional circuitry. You will need bit of stripboard at least 28 holes by 32 tracks to copy this layout.
Only 4 of the I/O pins are being used in this application, leaving the remainder for other future use.
One possibility is to add a further pair of TIP122 transistors, so that this board could form the basis of the spark controller for the 3 cylinder Kubota engine. If additional TIP122 transistors are added, they need to be isolated from each other if used on a common heatsink.
From the top the spade connectors are +12V, battery ground and coil output.
As a general point, the pin-out of the Arduino (see below) and ATmega328 maps very easily onto breadboard or stripboard. This means that small Arduino compatible projects like this can be made on stripboard or even breadboard at a fraction of the cost of buying the real Arduino and building a board onto it.
Buildtime was approximately 5 hours - but that included a lot of thinking time to get the component positioning sensible. To copy this board would take a couple of hours.
The second board is built along similar lines. At first it's just a microcontroller in the top corner of the board.
Here's the Partslist for the simple Arduino clone
1 ATmega328 microcontroller
1 28 0.3" pin DIL socket
1 7805 5V voltage regulator
1 16MHz HC49-4 crystal
2 10K resistors
2 330R resistors
1 1K resistor
2 22pF ceramic capacitors
4 100nF ceramic capacitors
2 22uF 16V electrolytc capacitors
1 1N4001 diode
1 LED - to show that life exists!
1 Stripboard at least 28 holes x 20 strips
1 6 pin 0.1" header
1 optional reset switch
Additional 5 and 6 pin 0.1" SIL sockets for connecting external I/O
single core hook-up wire - 4 colours used
1 FTDI cable for programming (optional) (ATmega328 can be programmed on Arduino board and swapped across).
The following additional parts were used on the spark ignition controller project.
1 10K rotary pot or trimmer pot
1 Hall sensor (Honeywell SS441R)
1 neodymium disc magnet
1 M3 (or equiv) bolt and nut for fixing heatsink
1 3 pin 0.1" socket
3 0.25" pcb spade connectors
1 TIP122 darlington power transistor
1 Heatsink
Very cool to see projects like this. What are the three female sockets used for just below the FTDI pins? I think you have a transistor plugged into it on the top breadboard, but not sure of its use on the bottom breadboard.
ReplyDeleteAlso why the two capacitors at the top of the bread board (on the bottom board)? you don't have a voltage regulator so what purpose do they serve?
Very cool project! Any chance of a parts list?
oh, and you need to add in one of these: http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=55
ReplyDeleteBe great to see how cheap we could make an Ethernet enabled breadboard arduino!
Ross,
ReplyDeleteThe 3 pin female socket is to accept a Hall effect sensor for ignition timing applications. It brings out +5V, 0V and digital input 2 - which is an interrupt line.
The bottom board is an un-finished version of the top board. I took this photo before I fitted the voltage regulator.
It's going to have more high power transistor outputs, a 74HC595 shift register and ULN2803 for driving up to 8 relays and a 4053 multiplexer so I can have 8 more analogue inputs for thermistors, voltage and current inputs etc.
There will be a SDcard socket for running openlog and a couple of 74AHC125 line drivers so that it's compatible with the serial network we devised - see Aug/Sept posts for details.
I'm still working out the exact layout of that lot - but wanted to show how cheap & easy it was to put Arduino functionality into one small corner.
Partslist to follow
Ross,
ReplyDeleteI breadboarded the ethernet Arduino clone, it would be very simple to transfer it across to stripboard - see my August posts.
Ah! that makes more sense!
ReplyDeleteYeah it's very inspiring to see how cheaply and relatively easily on of these can be thrown together. Certainly makes an "Internet of things" more affordable!
Just found your August post. Damn it looks cool, but doubt I would have the patience to put that together!
Some great posts, thanks for sharing it all!