My build is going to be a “Scratch Build” with no PCB. But I decided to assemble the logic on this IC experimenters board. Which looked just about ideal for the purpose and just happened to already be in my junk box.
The Arduino ATMEGA328P IC is from an Australian company called Freetronics who make all sorts or Arduino boards and add-ons. It came with the nifty little pinout sticker on top and pre-loaded with the Arduino bootloader. So I saved myself the trouble of burning an Arduino bootloader image into a blank AVR microprocessor.
No real trouble with the build excepting for the usual debugging of ‘missing links’. Wherever Farhan’s circuit called for a 50uF electolytic I gleefully installed a 47uF instead. But apart from that it was built according to the book and worked first time.
Always very satisfying to see it “light-up” and start displaying information on the LCD.
You would think that I would be happy and leave well enough alone. But this is where I decided to modify things and got myself into trouble…
Here are two more close ups of the logic board. Both component and solder side. Never as neat on the solder side are these experimenters boards. But that’s the side you never see 😉 And it’s functional.
The three LED’s are Red for the +5v DC power rail. Yellow for serial data TX from the Arduino and Green for RX serial data being received into the Arduino. And this is where the trouble started. After installing the serial status LED’s it stopped working. I could no longer upload a new ‘Sketch’. I had borrowed the status LEDs from part of a circuit found on the internet here.
I played around with the resulting circuit a bit and nothing simple leapt out at me. It was starting to look like I’d have to connect the digital scope and try capture some serial data transfers so that I could see what was going wrong. Then I noticed that there was two fundamental differences in the TTL to Serial convertor from the Web Site above and the one on the Minima circuit diagram around transistor Q21. The Minima had a diode from the base of Q21 to ground were the internet circuit had a 10K resistor. The other difference was that the path between Q21’s collector and pin 2 (RX) on the Arduino was via a 10K resistor. But the internet circuit was a direct link with no resistor. So being lazy I quickly made both of these changes and “wham” the serial port started working again. Both directions and with pretty status LED’s.
Another very important modification was the addition of a 0.1uF capacitor between the Reset pin 1 of the AVR microprocessor and the serial port DTR (Data Terminal Ready) pin. Pin 4 on a DB9 connector. This enables the Arduino IDE to pulse a reset to the micro just before it starts a new sketch upload. This makes programming new firmware very easy, works every time, no manual intervention with the reset switch.
I’ve reproduced the original and modified circuits below.