The Zigduino r2 is the newest version of the Zigduino, an Arduino-compatible microcontroller platform that integrates an 802.15.4 radio on the board. The radio can be configured to support any 802.15.4-based protocol, including ZigBee, Route Under MAC/6LoWPAN, and RF4CE. It uses an onboard surface mount antenna, allowing it to be installed in all standard Arduino enclosures. The Zigduino runs on 3.3V, but all I/O pins are 5V compatible.
In response to requests from users, it has a number of significant improvements over the r1:
- Onboard antenna
- Arduino Uno R3 pin layout
- LiPo battery connector & charger with voltage monitor
- All I/O brought out to auxiliary connector
- The USB is attached to UART0 while D0/D1 are attached to UART1
- Footprint for watch crystal
|Input Voltage (recommended)||7-18V|
|Input Voltage (maximum)||6-30V (transients to -20V and +60V)|
|Digital I/O Pins||30|
|PWM Output Pins||6|
|Analog Input Pins||8 (0-1.8V)|
|I/O Protection||±30V transient (standard Arduino pins only)|
|-2.5V to +5.8V continuous|
|DC Current per I/O Pin||20 mA|
|DC Current for 5V Pin||250 mA|
|DC Current for 3.3V Pin||200 mA|
|Flash Memory||128 KB of which 2 KB is used by the bootloader|
|Clock Speed||16 MHz|
|RF transmit power||+3.5 dBm|
|Receiver sensitivity||-100 dB|
|Antenna gain||2 dBi|
|Current Draw||30 mA (transmitting, USB, no I/O connections)|
|15 mA (transmitting, no USB, no I/O connections)|
|6 mA (radio off, no USB, no I/O connections)|
250 μA (sleep)
- Compatible with any shield that supports 3.3V logic
- Compatible with existing Arduino libraries that do not use hard-coded pin definitions
- Compatible with Arduino IDE with updated compiler, avr-gcc-4.3.3 or later.
- Ported bootloader and Arduino core libraries, on Github.
- IEEE 802.15.4 MAC, from Atmel
- ZMAC, a compatibility layer to allow the use of Atmel's MAC from inside the Arduino environment, from ManiacBug
- BitCloud, Atmel's ZigBee PRO implementation
The Zigduino can be powered through the USB connection or with an external power supply. The power source with the highest voltage is selected automatically.
External power can be supplied via a wall wart or a battery. It can be connected with a 2.1mm center-positive plug inserted into the power jack. Alternately, external power can be connected through the GND and VIN pins of the POWER header.
The board will operate correctly on an input voltage between 6V and 30V. It will survive transients as large as -20V or +60V. However, higher supply voltages may cause excessive heat dissipation at higher current draws. The input voltage regulator has integral overtemperature protection, so you can't permanently damage the board this way. However, the board may not work correctly under these circumstances.
The power pins are as follows:
- VIN -- The input voltage to the Arduino board when it is running from external power, i.e. not USB bus power.
- 5V -- The regulated 5V used to power 5V components on the board and external 5V shields. It comes either from the USB or from the VIN via the 5V regulator. Maximum current draw is 250 mA.
- 3V3 -- The regulated 3.3V supply that powers the microcontroller. It is derived from the 5V bus via a second regulator. Maximum current draw is 200 mA.
- GND -- Ground pins.
The ATmega128RFA1 has 128 KB of flash memory, of which 2 KB is occupied by the bootloader. It also has 16 KB of SRAM (the most of any Arduino-compatible board) and 4 KB of EEPROM, which can be accessed through the EEPROM library.
Input and Output
Each of the 14 digital pins of the Zigduino can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead(). Each pin operates at 3.3V and can source or sink 10 mA. Each also has an internal pullup, which is disabled by default. Each pin is protected against ±30V spikes and can tolerate continuous 5V input.
The six analog input pins, labeled A0 - A5, are likewise protected against ±30V spikes and can tolerate continuous 5V input. Each provides 10 bits of resolution and measures 0 - 1.8V. It is possible to change to a lower top voltage through use of the AREF pin and the analogReference() function, but not a higher one
A key design goal of the Zigduino is maintaining compatibility with existing shields to the greatest extent possible. The ATmega128RFA1's peripherals are arranged slightly differently than the corresponding peripherals on the ATmega328 used in the stock Arduino. Therefore, in order to provide the desired shield compatibility, there are three solder jumpers provided on the back of the board. They function as follows:
- Digital pin 11 can be set as either SPI MOSI or a PWM output. Neither option is selected as shipped. SPI MOSI is also available on the SPI connector at all times along with SCK and MISO.
The following additional special functions are available on the standard Arduino pins:
- Serial: 0 (RX) and 1 (TX) -- Used to transmit and receive TTL serial data. These pins are connected to UART1. UART0 is connected to the USB interface, as on other Arduino boards.
- PWM: 3, 5, 6, 9, 10, and 11 -- Provides 8-bit PWM output with the analogWrite() function. Pin 11 must be selected for PWM operation with the solder jumper on the back of the board.
- SPI: 11 (MOSI), 12 (MISO), 13 (SCK) -- These pins support SPI communications using the SPI library. Pin 11 must be selected for SPI operation with the solder jumper on the back, or SPI must be accessed with the SPI connector.
- LED: 13 -- This is the built-in LED on digital pin 13. When the pin is high, the LED is on.
- External Interrupts: 2, 3, 6, and 7 -- These pins can be configured to trigger and interrupt on a low value, high value, or an edge. See the attachInterrupt() function for details. The two I2C pins can also be used as interrupts.
- I2C: SDA and SCL -- These pins support I2C communications using the Wire library. They are positioned to conform to the Arduino Uno R3 pinout, on the same connector as D8-D13.
The other I/O pins of the ATmega128RFA1 are on the AUX connector (pins D23-D35), which is a 2x7 2mm pitch pin header. These pins lack the protection on the pins corresponding to the regular Arduino pins, and therefore must not be exposed to 5V or higher signals. These include the following special functions:
- RFTX and RFRX LEDS: 23 & 24 -- These two red LEDs are provides as transmit and receive status lights for the radio, but they can be used as standard I/O as well.
- TOSC1 and TOSC2: 29 & 30 -- These two pins can either be used as digital I/O or for a watch crystal. Use of a watch crystal allows use of more sophisticated sleep modes. 22 pF load capacitors are installed by default.
- A6 and A7/BATMON: 33 & 35 -- A6 is an ordinary analog input pin. A7 is by default connected to the battery bus through a voltage divider that allows you to continuously monitor the battery voltage. If you want to use it as a standard analog input pin, you can do so by removing R10 & R11 from the board.
- Zigduino r2 pinout (PDF)
- Zigduino r2 manual (wiki)
- Zigduino r2 schematic (PDF)
- Zigduino r2 layout (PNG)
- Zigduino r2 schematic (Eagle)
- Zigduino r2 layout (Eagle)
Join our Zigduino-Announce list.
Join our Zigduino-Discuss list.