Skip to content

SODAQ Mbili (Arduino compatible ATmega 1284P)



The SODAQ (Solar Data Acquisition) is an Arduino compatible data acquisition board designed by Gregory Knauff. This is the successor to the SODAQ Moja that we Kickstarted last year. All the experiences and comments we got from our user we combined in this new board, which one of the most rich-featured Arduino Compatible boards in the market.

The SODAQ is a multi-feature microcontroller board that lets you connect sensors and devices to the internet, quickly and with no fuss. It's designed for connecting things efficiently, running off-grid with built-in, ready-to-go solar power. You can connect a LiPo battery and a solar panel and keep it gathering sensor data without having to charge it.

The board has built in sockets for Grove modules; a realtime clock; extended flash memory; USB on-board; and the Bee socket can take any WiFi/RF/XBee or other compatible plugin for communications instead of our GPRS module (GPRSbee).

You can buy this product in our shop.

Getting Started

Follow the getting started guide to verify you use the correct URL and update your boardfiles to the latest version.


  • Atmega1284P Microcontroller running at 3.3V and 8MHz
  • Programmable using the Arduino IDE
  • Power supply by LiPo battery (3.7V) or USB cable (5V)
  • Solar charge controller with JST connector for Solar Panel up to 2.5W
  • DS3231 Real Time Clock and Temperature sensor, RTC backup powered by LiPo battery
  • 16 MBit data flash module (AT45DB)
  • SD Card holder
  • Mini USB connector
  • 12 Grove connectors connecting Digital, Analog and I2C pins (Switched or always on)
  • On/Off switch. With the switch in Off position the solar charge circuit is still active and the RTC clock is still powered.
  • ICSP programming header
  • JTAG Connector
  • Bee socket for Xbee, GPRSbee or other bee style modules
  • Same size as Raspberry Pi



a Switched Grove row
b Always on Grove row
c Switched Grove row power LED
d 6 pin ICSP header
e 16 Mbit serial flash
f ATMega 1284P microcontroller
g Two user programmable LEDs
h DS3231 real time clock
i Super capacitor for the real time clock
j Reset switch
k JTAG header
l On/Off switch
m Header for an external On/Off switch
n FTDI chip
o Bee socket
p GPRSBee power connector
q Battery connector
r Battery power draw measurement jumper
s Solar panel connector
t USB Connector

The Grove connectors in the Switched row (a) share a common switched power line. This is controlled through the digital pin GROVE_PWR (D22). These sockets are ideal for sensors which need to be powered down between readings. The LED © is lit when this row is powered on.

The Grove connectors in the Always On row (b) are always powered on. These sockets are for sensors that need to be powered permanently or for sensors which have a low power draw.

The standard 6 pin ICSP header (d) can be used to program the SODAQ Mbili, including loading or reloading the bootloader onto the board.

Just like the SODAQ Moja the SODAQ Mbili has 16 Mbit serial flash (e).

The SODAQ Mbili has a ATMega 1284P microcontroller (f) and two user programmable LEDs (g).

The DS3231 real time clock chip (h) is now powered by a super capacitor (i). This allows the real time clock to continue ticking for several days after the battery has been removed.

The reset switch is located at (j).

The SODAQ Mbili now has a JTAG header (k). This can be used for debugging purposes.

The On/off switch is located at (l) and a header for an external switch at (m).

For the USB connection a FTDI chip (n) has been used again. This is powered off completely when no USB cable is connected.

The Bee socket (o) is now connected to a separate UART. This means that the communication module in the Bee socket can be used while also sending debug output over the USB port.

Specifically for the GPRSBee module, a separate power connector (p) has been added. This allows for software control over powering the GPRSBee module on and off.

The battery connector (q) and the solar panel connector (s) are the same as on the SODAQ Moja, A jumper ® has now been added which can be used to measure the power draw from the battery. This jumper needs to be closed when it is not being used for measuring.

The USB connector is located at (t).

SODAQ Mbili back

(1) The most significant change on the back side of the board is that of the inclusion of a MicroSD card slot. The extra memory and program space of the ATMega 1284P, can easily accommodate a FAT file system and the use of the a MicroSD card for data logging.


(2) Can be used to connect the Bee socket to Serial instead of the default Serial1.
(3) Can be used to enable the card detect functionality of the MicroSD card slot.
(4) Can be used to allow for ‘over the air programming’ through a Bee module. This requires that the Bee socket is connected to Serial using Jumper (2).
(5) Can be used to disconnect the Charge indicator LED to minimize power consumption.
(6) Can be used to disconnect the Switched Grove LED to minimize power consumption.
(7) Allows the connection of either the ASSOC pin of a Bee module or the Ring Indicator line of the GPRSBee to an I/O pin.
(8) Allows the RTC to be used as an interrupt device.
(9) Allows the RTC to be used as a 32kHz clock source.

Grove Sockets

The SODAQ Mbili board contains two columns of Grove connectors. The power to the first column can be switched on and off while the second column is always on. The pins for each socket are listed here and can also be found printed on the board.

Switched Column Always On Column
Analog: A2 A3 Analog: A4 A5
Digital: D10 D11 Analog: A0 A1
Serial (USB): TXD0/RXD0В  Serial1 (Bee): TXD1/RXD1
Digital: D6 D7 Digital: D4 D5
Digital: D18 D19 Digital: D20 D21
Digital: D8 D9 I2C socket


The switched column is off by default off.

The switched column allows for software control over the 3.3v line that powers that column of Grove sockets. Note that not all sensors or components require that the 3.3v line be powered in order to operate. For example, an LED connected to a Grove socket, will still function without power to the 3.3v pin. That is because the LED draws power from the I/O pin that it is connected to. However, a component like a button will not function as it draws power (when pressed) from the 3.3v pin and sends that power up through the I/O pin it is connected to.

The constant GROVEPWR specifies the digital pin (D22) which switches on and off the 3.3v power line to the switched Grove column. In order to switch that column on we must first initialize the GROVEPWR pin to OUTPUT mode:


Then we can switch that Grove column on and off by specifying the output of the GROVEPWR pin (HIGH = on).

digitalWrite(GROVEPWR, HIGH);
digitalWrite(GROVEPWR, LOW);


This also switches the red indicator LED in the bottom left corner of the board on and off.

Serial Connections using Grove

The TXD0/RDXD0 (3) are the same I/O lines that are connected to the USB port. These can be used instead of the USB port for purposes such as debugging. Connecting a USB port always causes a reset, this is by design. So if you want to disconnect and reconnect a debugging cable without interrupting the running program, you can use these I/O lines instead.

Additionally, the TXD1/RXD1 (9) are the same I/O lines that are connected to the Bee slot. So instead of using a bee style module these could be used to wire up a serial device on this grove connector.

Wiring Diagram



We have created a Fritzing part for the SODAQ Mbili which you can use to make illustrations of your implementations.

Here is one illustration based on the Using a Button to Activate a Buzzer example:


You can download the Fritzing software from here: Fritzing download page.

In the Fritzing software you can install the SODAQ Mbili part by importing this file into the parts library: SODAQ Mbili Fritzing part.

More info