Arduino is a opensource hardware and software company that design cheap single board microprocessor boards in various sizes. Most boards use Atmel based microprocessors but some newer models feature ARM and Intel processors. The Arduino ecosysytem is vast and there are countless opensource libraries available to interface with different components.
The official boards from Arduino's website are more expensive than the Chinese clones that are found on eBay.
Programming the Arduino Mini/Nano
If you don't have a USB-UART adapter, you can use a regular Arduino Uno or Duemilanove to program an Arduino Mini with these steps.
- Connect GND and VCC from the Arduino Uno/Duemilanove to the Arduino Mini/Nano
- Pull the Atmega 328 microprocessor from socket on the Arduino Uno/Duemilanove
- Connect RX (Pin 0), TX (Pin 1), Reset (RST) from the Arduino Uno/Duemilanove to RXI, TXO, RST pins on the Arduino Mini/Nano respectively.
Then program the Arduino as you normally would while making sure that the board selected in the Arduino IDE is set to the Arduino Mini or Nano.
If you're having issues uploading, make sure the settings look like the image below.
Nanos have the USB mini connector for power and serial. These are typically around $2.25 USD each.
Not all Arduino Minis from eBay have the same microprocessor. Some have the Atmel Atmega168 while others have the Atmega328. The differences are listed in the following table.
|Memory Size (flash)||16 KB||32 KB|
|CPU Speed||20 MIPS|
|SRAM Size||1024 bytes||2048 bytes|
|EEPROM/HEF Size||512 bytes||1024 bytes|
|Operating Voltage||1.8v - 5.5v|
|Operating Temperatures||-40C to 150C||-40C to 85C|
Without looking too closely, these two boards look identical but with a different microprocessor.
While the differences are slight, the Atmega 168 does have half the memory capacity and EEPROM size.
Arduino and Raspberry Pi Serial Integration
To make the arduino talk directly to the Pi via the UART pins, keep in mind that the arduino communicates at 5v while the Raspberry Pi can only work with 3.3v.
A possible hack is to run the arduino at 3.3v rather than 5v and then connect:
- Arduino Pin 0 (RXI) to Raspberry Pi Pin 8 (UART0_TXD)
- Arduino Pin 1 (TXO) to Raspberry Pi Pin 10 (UART0_RXD)
This gets around needing to step up/down the voltages from 3.3v to 5v since everything will be at 3.3v.
If everything works, you should be able to talk with the arduino via the serial device. See the Raspberry Pi Serial page
Some neat projects using the Arduino
- Arduino MEGA Logic Analyzer - http://www.soasystem.com/eng/amla/
- 328eForth - https://playground.arduino.cc/CommonTopics/ForthOnArduino/, https://github.com/DRuffer/328eforth