My custom Arduino shield for my fermentation cabinet gets the job done, it’s a less than optimal design. First, I used multiple individual optocouplers and transistors. It would have been much more elegant to use integrated components with multiple optocouplers and multiple transistors in one package. Second, I used only screw terminals, which are not very sturdy. Lastly, and mostly, shields aren’t great for a permanent board. For prototyping, they are quite an elegant solution. But for a permanent board, they’re bulky and constrained. Using Arduino boards for permanent implementations misses the whole purpose of a development board. Their price point is low enough for it to be feasible for single implementations, but it doesn’t avoid the design problem. The Arduino is designed for prototyping. I want equipment I can use for years.
I’d been planning on creating a standalone board for the ATMega328p, but accelerated the plan when the Arduino split occurred. The idea was to create a very basic clone of the Arduino Uno without pin headers or USB interface. I want to be able to program either with an ICP programmer or an FTDI breakout board, so it will need headers for these. I plan on using the nrf24L01+ with multiple projects, so headers for the breakout board for that chip are also needed. A board design with these features makes a great template for many boards.
The design is based on some instructions on the Arduino website for assembling a Standalone Arduino, with the additional of a smaller ceramic capacitor adjacent to the ATMega328p VCC pin.
The simplest board I had planned was a board for a flow control valve. In addition to the template above, it needs an L293D H-bridge for driving a stepper motor, an electrolytic capacitor adjacent to the L293D VCC pin, a header for connecting to the motor to change the valve position, and a header for connecting to a potentiometer to detect valve position. In testing the prototype, I found that one NEMA 17 motor didn’t have enough juice, even with a gear ratio of 8. Rather than splicing wires, I just added a second header to the board. When I got my board back from OSH Park, I soldered in the components to give it a whirl.
Unfortunately, I placed the ICP header too close to the radio nRF24L01+ header and had to replace it with two rows of pins instead of the nice jack that matches the 6-pin programmer cable. After a little voltmeter testing revealed that my chips weren’t completely seated in their sockets (you really have to jam them in), I successfully loaded the blink sketch with the programmer.
As with the cabinet shield, I was amazed the design was right. I’m still having trouble getting the board to communicate via serial through an FTDI friend, but that’s a battle for another day.
One thought on “Standalone Arduino”
[…] I posted about this little board a while ago. I originally intended it to control a valve with a stepper motor, but that was a bust. I’m going to redesign the valve, but this little prototype still needs a home. Fortunately, it has everything needed for the exchanger: the radio breakout board to communicate with another device and an exposed header that is compatible with a OneWire network. […]