The Gertduino is a Raspberry Pi add-on which offers the same functionality as an Arduino-Uno but with some extra features thrown in. The Gertduino board features an Atmega328 microcontroller, runs of 5V, has the 16MHz oscillator and has connectors which are 100% Arduino-Uno compatible. It also contains the reset switch, 2 user push buttons, and 6 LEDs. The Gerduino board also has a RS232 level converter which will convert the signals form a UART to the RS232 standard voltages (And invert them as per that same standard).
The Gertduino board also features an Atmega48 MCU, which is intended to be used as Real Time Clock (RTC) and/or as IRDA front end. However it is also freely programmable by the user and thus can be used for any other application, giving the user the power of not one but TWO Atmega devices to play with. The I2C interface of the Atmega-48 is connected permanently to the Raspberry-Pi I2C interface. The BCM2835 does not have a native IRDA interface. The protocol can be implemented using a standard GPIO pin but that puts a very heavy burden on the CPU. To support IRDA the Atmega-48 has a TSSOP4038 IRD device connected to pin D3. This device supports the most common IRDA protocol: 38KHz IR signal.
You can program Atmega328 or Atmega48 from the Raspberry Pi. All connections between the board and the Raspberry-Pi are protected against 5V signals. The Atmega328 and the Atemege-48 have exactly the same pins with the same functionality. The devices only differ in the size of their various memories. So What was written about the Atmega328 also is valid for the Atmega48. But if you make programming errors with the Atmege328 the device can easily be replaced. However, this is not the case with the Atmega48. It is therefore strongly recommended that you are extra careful and not damage any of the I/O ports. Also you can remove the board from the Raspberry Pi and use it standalone.
Before you can program the devices you need to have a cross compiler. A cross compiler is a compiler which runs on one type of processor, but generates code for a different type. In this case the compiler runs on the Raspberry-Pi (ARM11 device) but makes code for the Atmel devices.
When programming the Atmel devices on the Raspberry-Pi you have two choices:
- Use the Arduino GUI
- Use the GCC Atmel compiler
You can also compile on the PC using Atmel Studio but you need to transfer the final .hex file to the Raspberry-Pi before you can program the Atmega devices.
Alternative is that you buy a JTAG-ICE box and use that to program and the devices but that is a lot more expensive. It does have the advantage that you can use it for debugging as well, such as Step through the program, set breakpoints ,inspect variables etc.
- RS232 level converter can be used by:
- Atmega 328 (Arduino-Uno® compatible) with:
- Arduino-Uno® compatible connectors
- Reset button
- 2 user push buttons
- 6 LEDs.
- Atmega 48 with:
- I/O connector with 20 pins
- High precision RTC crystal
- Battery backup power supply
- IRDA interface