

The Sodaq Mbili (Manufacturer Part ID: Mbili Rev4) is a compact, low-power microcontroller board designed by SODAQ for Internet of Things (IoT) applications. It is equipped with a built-in GPS module, cellular connectivity, and various onboard sensors, making it an ideal choice for remote monitoring, data collection, and environmental sensing projects. The Mbili is designed to operate efficiently in low-power environments, making it suitable for battery-powered or solar-powered applications.








| Specification | Value |
|---|---|
| Microcontroller | ATmega1284P |
| Operating Voltage | 3.3V |
| Input Voltage Range | 3.6V - 6.0V |
| Digital I/O Pins | 15 (of which 6 provide PWM output) |
| Analog Input Pins | 8 |
| Flash Memory | 128 KB |
| SRAM | 16 KB |
| EEPROM | 4 KB |
| Clock Speed | 16 MHz |
| GPS Module | u-blox GPS |
| Cellular Connectivity | Optional (via compatible modules) |
| Communication Interfaces | UART, I2C, SPI |
| Power Consumption (Idle) | ~2.5 mA |
| Dimensions | 58 mm x 25 mm |
| Pin Name | Description |
|---|---|
| VIN | Input voltage pin (3.6V - 6.0V) |
| GND | Ground pin |
| D0 - D14 | Digital I/O pins (D3, D5, D6, D9, D10, D11 support PWM) |
| A0 - A7 | Analog input pins |
| TX (D1) | UART Transmit pin |
| RX (D0) | UART Receive pin |
| SDA (A4) | I2C Data pin |
| SCL (A5) | I2C Clock pin |
| GPS_TX | GPS module transmit pin |
| GPS_RX | GPS module receive pin |
| RESET | Reset pin to restart the microcontroller |
| 3.3V | Regulated 3.3V output pin |
Powering the Board:
Connecting Sensors and Modules:
Using GPS and Cellular Connectivity:
Programming the Board:
Below is an example of how to use the Sodaq Mbili to read GPS data and log it to the serial monitor:
#include <TinyGPS++.h> // Include the TinyGPS++ library for GPS parsing
#include <SoftwareSerial.h> // Include SoftwareSerial for GPS communication
// Define GPS communication pins
#define GPS_TX 7 // GPS transmit pin
#define GPS_RX 8 // GPS receive pin
// Create a SoftwareSerial instance for GPS
SoftwareSerial gpsSerial(GPS_RX, GPS_TX);
// Create a TinyGPS++ object
TinyGPSPlus gps;
void setup() {
Serial.begin(9600); // Initialize serial communication for debugging
gpsSerial.begin(9600); // Initialize GPS serial communication
Serial.println("Sodaq Mbili GPS Data Logger");
}
void loop() {
// Check if data is available from the GPS module
while (gpsSerial.available() > 0) {
// Feed the GPS data to the TinyGPS++ library
if (gps.encode(gpsSerial.read())) {
// If a valid GPS location is available, print it
if (gps.location.isValid()) {
Serial.print("Latitude: ");
Serial.print(gps.location.lat(), 6); // Print latitude with 6 decimal places
Serial.print(", Longitude: ");
Serial.println(gps.location.lng(), 6); // Print longitude with 6 decimal places
} else {
Serial.println("Waiting for GPS signal...");
}
}
}
}
TinyGPS++ library in the Arduino IDE before uploading the code.The board does not power on.
GPS module is not providing location data.
Unable to upload code to the board.
Connected sensors are not working.
Q: Can the Sodaq Mbili be powered using a solar panel?
A: Yes, the Sodaq Mbili is designed for low-power applications and can be powered using a solar panel with a compatible voltage range (3.6V - 6.0V). Use a battery for energy storage to ensure continuous operation.
Q: Does the board support external storage?
A: Yes, the Sodaq Mbili supports external storage via SD card modules connected to the SPI interface.
Q: Can I use the Sodaq Mbili with LoRa modules?
A: Yes, the board can interface with LoRa modules via UART or SPI, making it suitable for long-range communication applications.
Q: How do I reduce power consumption?
A: Use the board's sleep modes and disable unused peripherals to minimize power consumption.