pamoja

An SDK for IoT, robotics, and drones

pamojaRev 0.2.0MIT licensepamoja.molex.cloud

Hardware#

pamoja is a software library, so it runs on whatever its host runs on. This page lists the parts its drivers were written against, the radios and antennas a long-range link is built from, and the boards the project builds and tests on. Each group opens with a table for choosing between its parts; the card for each part below it gives the figures, where to buy it, and what to read and build with. The buses and protocols themselves are on Buses and links, because a protocol is not something you can buy.

A part that is not here can still be driven. Anything on a bus pamoja reaches works through a trait of your own, as Anything else with a driver shows.

The prices below were read from each store's own page between and . A workflow reads them again every day, and each card names the day its prices were read.

Sensors#

Parts pamoja decodes byte for byte, each with a driver written from the datasheet linked beside it. For what the interface line means, and how to wire it, see Buses and links.

Table 1. Sensors: what each is best for, and the lowest price listed.

PartConnectsBest forFrom
BME280Humidity, pressure, temperatureI2C up to 3.4 MHz, or SPI up to 10 MHzWeather on one chip, over I2C or SPI, at 3.6 µA sampling once a secondUS$14.95
DS18B20Temperature1-Wire, many devices on one pinMany thermometers on one pin, -55 to +125 °C, powered from the data line if need beUS$3.95
INA219Current, voltage, powerI2C, 16 addresses from two pinsLoads up to 26 V, with a shunt range you setUS$6.90
ADS1115Analog voltageI2C, four addresses from one pinReading an analog sensor: four inputs at 16 bits, with gain for small signalsUS$12.00
SHT3x-DISHumidity, temperatureI2C up to 1 MHz, with optional clock stretchingHumidity to ±1.5 %RH on the SHT35, with a CRC on every readingUS$9.90
SCD40 and SCD41CO2, humidity, temperatureI2C at 0x62, up to 100 kHzIndoor air, with CO2 measured directly by photoacoustic NDIRUS$44.95
TMP117TemperatureI2C and SMBus, 1 kHz to 400 kHz, four addresses from one pin±0.1 °C from -20 to 50 °C with no calibration, and alert limitsUS$11.50
HDC1080Humidity, temperatureI2C, 10 to 400 kHzHumidity in the under $5 band, ±2 %RH typical, 1.3 µA averageUS$1.29
OPT3001Light, in luxI2C or SMBus up to 2.6 MHz, four addresses from the ADDR pin, INT pinLight as the eye sees it, 0.01 to 83865.6 lux, ranging itselfUS$3.60
INA226Current, voltage, powerI2C or SMBus up to 2.94 MHz, 16 addresses from two pinsLoads up to 36 V at 16 bits and 0.1 % gain error, with an alert pinUS$8.50
BMP280Pressure, temperatureI2C up to 3.4 MHz, or SPI (3 or 4 wire) up to 10 MHzAltitude or weather without humidity, at 2.8 µA once a secondUS$9.80

BME280#

Bosch Sensortec

Reports humidity, pressure and temperature as raw counts plus per-chip calibration coefficients, which the driver compensates.

Interface
I2C up to 3.4 MHz, or SPI up to 10 MHz
Ranges
0 to 100 %RH, 300 to 1100 hPa, -40 to +85 °C
Accuracy
±3 %RH from 20 to 80 %RH at 25 °C, ±1.0 hPa, ±0.5 °C from 0 to 65 °C
Addresses
0x76 with SDO to ground, 0x77 with SDO to VDDIO; SDO must not float
Supply
1.71 to 3.6 V main, 1.2 to 3.6 V interface
Current
3.6 µA at 1 Hz for all three, 0.1 µA asleep
Typical cost
$5 to $20 for a breakout board

DS18B20#

Analog Devices, originally Maxim Integrated

A digital thermometer that returns Celsius over a single data line, each part carrying its own 64-bit serial code so a bus can hold many.

Interface
1-Wire, many devices on one pin
Range
-55 °C to +125 °C
Accuracy
±0.5 °C from -10 °C to +85 °C
Resolution
9 to 12 bits, user programmable
Conversion
750 ms maximum at 12 bits, halving with each bit dropped
Supply
3.0 to 5.5 V, or parasite power from the data line
Typical cost
under $5 for a breakout board

INA219#

Texas Instruments

Measures the drop across an external shunt and the bus voltage, and reports current and power once its calibration register is set.

Interface
I2C, 16 addresses from two pins
Bus voltage
senses 0 to 26 V
Shunt full scale
±40, ±80, ±160 or ±320 mV by PGA setting
ADC
12-bit, selectable down to 9-bit or averaged
Registers
10 µV per shunt count, 4 mV per bus count
Supply
3 to 5.5 V, 0.7 mA typical
Typical cost
$5 to $20 for a breakout board

ADS1115#

Texas Instruments

A 16-bit delta-sigma ADC that digitizes four single-ended or two differential inputs through a programmable gain amplifier.

Interface
I2C, four addresses from one pin
Resolution
16 bits
Inputs
four single-ended or two differential
Full scale
±0.256 V to ±6.144 V in six PGA steps
Rate
8 to 860 samples per second
Supply
2.0 to 5.5 V, 150 µA in continuous conversion
Typical cost
$5 to $20 for a breakout board

SHT3x-DIS#

Sensirion

Reports humidity and temperature as calibrated 16-bit words, each followed by a CRC-8, which the driver checks and converts with the fixed linear formulas.

Interface
I2C up to 1 MHz, with optional clock stretching
Ranges
0 to 100 %RH, -40 to +125 °C
Accuracy
typical ±2 %RH and ±0.2 °C (SHT30, SHT31), ±1.5 %RH and ±0.1 °C (SHT35)
Repeatability
0.08 to 0.21 %RH and 0.04 to 0.15 °C across the three modes, measured in 15, 6, or 4 ms
Addresses
0x44 with ADDR to logic low, 0x45 with ADDR to logic high; ADDR must not float
Supply
2.15 to 5.5 V
Current
0.2 µA idle in single-shot mode, 600 µA measuring, 1.7 µA average at one low-repeatability measurement per second
Typical cost
$5 to $20 for a breakout board

SCD40 and SCD41#

Sensirion

A photoacoustic NDIR CO2 sensor with a built-in humidity and temperature sensor; every word it sends carries a CRC-8 the driver checks.

Interface
I2C at 0x62, up to 100 kHz
CO2 range
0 to 40000 ppm output; specified 400 to 2000 ppm (SCD40) and 400 to 5000 ppm (SCD41)
CO2 accuracy
±(50 ppm + 5 %) for the SCD40, ±(40 ppm + 5 %) for the SCD41
Humidity and temperature
0 to 100 %RH within ±6 %RH, -10 to 60 °C within ±0.8 °C
Update interval
5 s periodic, about 30 s low power, single shot on the SCD41
Supply
2.4 to 5.5 V, 15 mA average and 175 mA peak at 3.3 V in periodic measurement
Typical cost
$20 to $60 for a breakout board

TMP117#

Texas Instruments

A 16-bit digital thermometer accurate to ±0.1 °C with no calibration, with programmable alert limits, a user offset, and 48 bits of EEPROM.

Interface
I2C and SMBus, 1 kHz to 400 kHz, four addresses from one pin
Range
-55 °C to +150 °C
Accuracy
±0.1 °C from -20 °C to 50 °C, ±0.3 °C over the full range
Resolution
16 bits, 7.8125 m°C per count
Addresses
0x48 to 0x4B with ADD0 tied to GND, V+, SDA, or SCL
Conversion
15.5 ms typical one-shot, 1 s cycle with 8 averages at reset
Supply
1.7 to 5.5 V up to 70 °C, 1.8 to 5.5 V to 150 °C
Current
3.5 µA typical at a 1 Hz cycle, 150 nA in shutdown
Typical cost
$5 to $20 for a breakout board

HDC1080#

Texas Instruments

Reports humidity and temperature as 16-bit fractions of full scale with no per-chip calibration, which the driver decodes in exact integer arithmetic alongside the configuration register.

Interface
I2C, 10 to 400 kHz
Ranges
0 to 100 %RH; temperature sensor -40 to +125 °C, humidity sensor -20 to +70 °C (functional to +85 °C)
Accuracy
±2 %RH typical; ±0.2 °C typical, ±0.4 °C max from 5 to 60 °C
Resolution
14, 11, or 8 bit humidity in 6.50, 3.85, or 2.50 ms; 14 or 11 bit temperature in 6.35 or 3.65 ms
Address
fixed 0x40; manufacturer id 0x5449, device id 0x1050, 40-bit serial number
Supply
2.7 to 5.5 V; 1.3 µA average at 1 sample/s for 11-bit humidity and temperature, 100 nA asleep
Typical cost
under $5 for a breakout board

OPT3001#

Texas Instruments

A single-chip lux meter filtered to the human eye's response that reports illuminance as a 4-bit exponent and 12-bit mantissa, ranging itself across twelve full-scale settings.

Interface
I2C or SMBus up to 2.6 MHz, four addresses from the ADDR pin, INT pin
Range
0.01 to 83865.6 lux, 12 binary-weighted full-scale ranges or automatic ranging
Resolution
0.01 lux per LSB at the lowest range, 23-bit effective dynamic range
Accuracy
2000 lux reads 1800 to 2200 lux, 0.2 % matching between ranges, 0.2 % response at 850 nm
Conversion
100 ms or 800 ms, 720 to 880 ms in the 800 ms setting
Addresses
0x44 to 0x47 with ADDR to GND, VDD, SDA, or SCL
Supply
1.6 to 3.6 V, 1.8 µA active and 0.3 µA shutdown typical, I/O 5.5 V tolerant
Temperature
-40 to +85 °C
Typical cost
$5 to $20 for a breakout board

INA226#

Texas Instruments

Measures the drop across a shunt and the bus voltage on either side of the load, reports current and power once calibrated, and drives an alert pin from one programmable limit.

Interface
I2C or SMBus up to 2.94 MHz, 16 addresses from two pins
Bus voltage
senses 0 to 36 V, 1.25 mV per count
Shunt full scale
±81.92 mV, 2.5 µV per count
ADC
16-bit, 140 µs to 8.244 ms per conversion, 1 to 1024 samples averaged
Accuracy
0.1 % gain error and 10 µV shunt offset, maximum
Alert
open-drain pin on a shunt, bus, or power limit, or conversion ready
Supply
2.7 to 5.5 V, 330 µA typical, 2 µA maximum powered down
Typical cost
$5 to $20 for a breakout board

BMP280#

Bosch Sensortec

Reports barometric pressure and temperature as 20-bit raw counts plus per-chip calibration coefficients, which the driver compensates; the BME280 without the humidity element.

Interface
I2C up to 3.4 MHz, or SPI (3 or 4 wire) up to 10 MHz
Ranges
300 to 1100 hPa, -40 to +85 °C (full accuracy 0 to +65 °C)
Accuracy
±1.0 hPa absolute from 0 to 65 °C, ±0.12 hPa relative from 700 to 900 hPa, ±0.5 °C at 25 °C
Resolution
0.16 Pa and 0.0003 °C at ×16 oversampling; 1.3 Pa RMS noise unfiltered, 0.2 Pa with the IIR filter
Addresses
0x76 with SDO to ground, 0x77 with SDO to VDDIO; SDO must not float
Supply
1.71 to 3.6 V main, 1.2 to 3.6 V interface
Current
2.8 µA at 1 Hz forced mode, lowest power; 0.1 µA asleep
Typical cost
$5 to $20 for a breakout board

Actuators#

Parts pamoja drives: a PWM generator for servos and LEDs, the transistor array a four-wire stepper runs through, and the step and direction chips a bipolar stepper sits behind. For what the interface line means, and how to wire it, see Buses and links.

Table 2. Actuators: what each is best for, and the lowest price listed.

PartConnectsBest forFrom
PCA9685PWM for servos and dimmingI2C, up to 62 devices per busSixteen servos or lights from one I2C bus, 12 bits each at one shared frequencyUS$13.95
ULN2003ASwitches coils and relaysseven logic inputs, one per channelSmall four-wire steppers and relays, 500 mA a channel up to 50 VUS$0.97
A4988Bipolar stepper driverstep and direction, with three mode pinsBipolar steppers up to 35 V and ±2 A, down to 1/16 stepUS$6.95
DRV8825Bipolar stepper driverstep and direction, with three mode pinsBipolar steppers up to 45 V and down to 1/32 step, reporting its own faultsUS$8.95

PCA9685#

NXP Semiconductors

A 16-channel PWM generator that produces servo and dimming pulses; each output sinks 25 mA, so load current is switched by an external driver.

Interface
I2C, up to 62 devices per bus
Channels
16, all sharing one frequency
Resolution
12-bit, 4096 steps per output
Frequency
typically 24 Hz to 1526 Hz, 200 Hz at reset
Supply
2.3 to 5.5 V, inputs and outputs 5.5 V tolerant
Drive
sinks 25 mA, sources 10 mA at 5 V; larger loads need external drivers
Typical cost
$5 to $20 for a breakout board

ULN2003A#

Texas Instruments

A Darlington array that switches the coil current directly, for the four-wire steppers the coil sequencer walks a pattern across.

Interface
seven logic inputs, one per channel
Channels
seven NPN Darlington pairs
Collector current
500 mA rated, single output
Output voltage
50 V maximum
Inductive loads
common-cathode output clamp diodes included
Typical cost
under $5 for a breakout board

A4988#

Allegro MicroSystems

A bipolar stepper driver that turns one pulse on STEP into one microstep, sequencing the coils and regulating current in hardware.

Interface
step and direction, with three mode pins
Motor supply
8 to 35 V
Output current
±2 A maximum
Steps
full, 1/2, 1/4, 1/8 and 1/16
Logic supply
3 to 5.5 V
Note
The datasheet states no continuous per-phase current against a cooling condition
Typical cost
under $5 for a breakout board

DRV8825#

Texas Instruments

A bipolar stepper driver with two H-bridges and an indexer, taking step and direction down to 1/32 step.

Interface
step and direction, with three mode pins
Motor supply
8.2 to 45 V
Output current
up to 2.5 A per output at 24 V and 25 °C, with heat sinking
Steps
full, 1/2, 1/4, 1/8, 1/16 and 1/32
Decay
slow, fast or mixed
Protection
overcurrent, thermal shutdown and undervoltage lockout, reported on nFAULT
Typical cost
$5 to $20 for a breakout board

Reaching a network that is not there: the transceivers, the gateway concentrators, and the short-range meshes. For range, loss, duty cycle, and what the regulator allows, see Radios and antennas.

Table 3. Radios and long-range links: what each is best for, and the lowest price listed.

PartConnectsBest forFrom
SX1276LoRa and FSK transceiverSPIBoards already built around it, anywhere from 137 to 1020 MHzUS$14.95
SX1262LoRa transceiverSPIA new end device: +22 dBm out, 4.6 mA receiving, 150 to 960 MHzUS$4.99
LLCC68LoRa transceiverSPIMedium-range indoor links, on an SX1262 footprintUS$12.95
SX1302Gateway baseband chipSPIA gateway that hears many channels and spreading factors at onceUS$12.99
SX1303Gateway baseband chipSPIA gateway that also timestamps finely enough to locate a nodeUS$83.00
SX1250Gateway RF front endSPIPairing with an SX1302 or SX1303; it comes on the gateway cardsUS$12.99
RAK2287 WisLink concentratorSX1302 gateway cardmini PCIe, SPIA gateway over SPI, with a GPS for timingUS$84.00
RAK5146 WisLink concentratorSX1303 gateway cardmini PCIe, SPI or USBA gateway over SPI or USB, with listen before talk and a GPSUS$83.00
WM1302 LoRaWAN gateway moduleSX1302 gateway modulemini PCIe, SPI or USBA gateway over SPI or USB, in EU868 and US915 versionsUS$12.99
ESP-NOWWi-Fi links with no access pointWi-Fi PHY, vendor-specific action framesShort packets between ESP32 boards with no router, up to 20 peersboards from US$4.99

SX1276#

Semtech

The sub-GHz LoRa and FSK transceiver on most 137 to 1020 MHz end devices, and the radio a pamoja airtime budget is computed for.

Interface
SPI
Coverage
137 MHz to 1020 MHz
Modulation
LoRa, FSK, GFSK, MSK, GMSK and OOK
Transmit power
+20 dBm at 100 mW, with a separate +14 dBm high efficiency amplifier
Sensitivity
down to -148 dBm, for a maximum link budget of 168 dB
Receive current
9.9 mA, with 200 nA register retention
Typical cost
$5 to $20 for a module or a card

SX1262#

Semtech

The later sub-GHz LoRa transceiver, covering 150 to 960 MHz with a higher power amplifier and a much lower receive current.

Interface
SPI
Coverage
150 MHz to 960 MHz, continuous
Modulation
LoRa, LR-FHSS, FSK, GFSK, MSK and GMSK
Transmit power
+22 dBm high efficiency amplifier
Sensitivity
down to -148 dBm, for a maximum link budget of 170 dB
Receive current
4.6 mA, with an integrated DC-DC converter and LDO
Typical cost
$5 to $20 for a module or a card

LLCC68#

Semtech

A sub-GHz LoRa transceiver for medium-range indoor and indoor-to-outdoor links, pin-to-pin compatible with the SX1262.

Interface
SPI
Transmit power
+22 dBm high efficiency amplifier
Receive current
4.6 mA
Sensitivity
down to -129 dBm
Blocking immunity
88 dB at 1 MHz offset; co-channel rejection 19 dB in LoRa mode
Channel activity detection
automatic, with ultra-fast AFC
Typical cost
$5 to $20 for a module or a card

SX1302#

Semtech

The LoRa baseband chip for gateways: it listens across many channels and spreading factors at once, behind separate RF front ends, and draws far less current than the chips before it.

Interface
SPI
Sensitivity
up to -141 dBm with the SX1250 front end
125 kHz reception
8 x 8 channel packet detectors, 8 SF5 to SF12 and 8 SF5 to SF10 demodulators
Wideband reception
one 125, 250 or 500 kHz LoRa demodulator and one (G)FSK demodulator
Front ends
direct interface to the SX1250, SX1255, SX1257 and SX1258
Clock and package
a single 32 MHz clock, QFN68
Typical cost
$5 to $20 for a module or a card

SX1303#

Semtech

The SX1302's size and pin compatible successor, which adds a fine timestamp so a network can locate a node by time difference of arrival.

Interface
SPI
Note
Fine timestamp for time difference of arrival (TDOA) network geolocation
Sensitivity
up to -141 dBm with the SX1250 front end
125 kHz reception
8 x 8 channel packet detectors, 8 SF5 to SF12 and 8 SF5 to SF10 demodulators
Wideband reception
one 125, 250 or 500 kHz LoRa demodulator
Compatibility
size and pin compatible with the SX1302, with all of its features
Typical cost
$60 to $200 for a module or a card

SX1250#

Semtech

The sub-GHz RF front end a gateway pairs with the SX1302, covering any license-free band below 1 GHz.

Interface
SPI
Coverage
150 to 960 MHz ISM bands
Operation
half duplex, capable of low power operation
Modulation
constant-envelope schemes such as LoRa or FSK
Receiver
a built-in differential low noise amplifier
Control
SPI and a set of general purpose DIO lines
Typical cost
$5 to $20 for a module or a card

RAK2287 WisLink concentrator#

RAKwireless

An SX1302 concentrator on a mini PCIe card, with two SX1250 front ends, a U.FL antenna connector and a GPS for timing.

Interface
mini PCIe, SPI
Chips
one SX1302 and two SX1250
Radio
Tx power up to 27 dBm, Rx sensitivity down to -139 dBm at SF12, BW 125 kHz
Demodulation
up to 10 parallel paths, an 8 x 8 channel packet detector, 8 SF5 to SF12 and 8 SF5 to SF10 demodulators
Bands
EU868, EU433, CN470, US915, AS923, AU915, KR920 and IN865
Host
SPI and 3.3 V aux through the mini PCIe connector; ZOE-M8Q GPS with its PPS wired to the SX1302
Typical cost
$60 to $200 for a module or a card

RAK5146 WisLink concentrator#

RAKwireless

An SX1303 concentrator on a mini PCIe card, with two SX1250 front ends, an SX126x for listen before talk, and an onboard GPS.

Interface
mini PCIe, SPI or USB
Chips
one SX1303 and two SX1250, with an SX126x for listen before talk
Radio
Tx power up to 27 dBm, Rx sensitivity down to -139 dBm at SF12, BW 125 kHz
Demodulation
up to 10 parallel paths, an 8 x 8 channel packet detector, 8 SF5 to SF12 and 8 SF5 to SF10 demodulators
Bands
EU868, EU433, RU864, CN470, US915, AS923, AU915, KR920 and IN865
Host
SPI or USB through the mini PCIe connector, powered from 3.3 V aux
Typical cost
$60 to $200 for a module or a card

WM1302 LoRaWAN gateway module#

Seeed Studio

An SX1302 gateway module on a mini PCIe card with the standard 52-pin edge connector, in SPI and USB versions for EU868 and US915.

Interface
mini PCIe, SPI or USB
Chip
the SX1302 baseband with an SX1250 front end
Radio
sensitivity down to -139 dBm at SF12; TX power up to 26 dBm at 3.3 V
Versions
SPI and USB, each on US915 and EU868
Plans
EU868, US915, AS923, AS920, AU915, KR920 and IN865
Form factor
mini PCIe with a 52-pin edge connector
Typical cost
$5 to $20 for a module or a card

ESP-NOW#

Espressif Systems

Espressif's connectionless protocol: short packets straight between Wi-Fi devices with no access point and no association step.

Interface
Wi-Fi PHY, vendor-specific action frames
Payload
250 bytes on v1.0 devices, 1470 bytes on v2.0
Default bit rate
1 Mbps
Peers
20 paired devices, of which at most 17 encrypted, 7 by default
Security
CCMP per IEEE 802.11-2012, with a 16-byte primary master key and per-peer local keys
Interfaces
sends over either the station or the SoftAP interface

Antennas, cables and protection#

What stands between a radio and the air: the antenna, the pigtail that reaches it, and the arrestor on the mast. For gain, VSWR, feed line loss, height, and bonding, see Radios and antennas.

Table 4. Antennas, cables and protection: what each is best for, and the lowest price listed.

PartConnectsBest forFrom
5.8 dBi fiberglass antenna, 863 to 870 MHzOutdoor gateway antennaN-type maleA mast in Europe: 863 to 870 MHz, omnidirectionalUS$20.00
5.8 dBi fiberglass antenna, 902 to 928 MHzOutdoor gateway antennaN-type maleA mast on 902 to 928 MHz, omnidirectionalUS$14.95
MHF to SMA or RP-SMA pigtailPigtail, MHF to SMAMHF-1 or MHF-4 to SMA or RP-SMABringing a concentrator's MHF socket out to the enclosure wallUS$5.00
SMA to u.FL adapter cablePigtail, u.FL to SMAu.FL to panel-mount SMAA node board's u.FL socket out to an SMA antenna, 15 cmUS$3.95
N-type lightning arrestorSurge arrestorN-type male to N-type femaleA mast line up to 2700 MHz, sealed to IP67US$24.97
N-type lightning surge protector, DC to 6 GHzSurge protectorN-type male to bulkhead N-type femaleA line up to 6 GHz, with a replaceable gas tube and a sealed bulkheadUS$78.99

5.8 dBi fiberglass antenna, 863 to 870 MHz#

RAKwireless

An outdoor fiberglass gateway antenna for the European band, an omnidirectional, vertically polarized dipole that comes with its installation kit.

Interface
N-type male
Band
863 to 870 MHz
Gain
5.8 dBi peak as specified; 6.15 to 6.33 dBi measured from 864 to 870 MHz
VSWR
2.0 or better; 1.13 measured at 868 MHz
Pattern
omnidirectional, vertical polarization, 50 ohms, efficiency up to 79%
Size
29.8 mm by 800.0 mm, white fiberglass radome
Environment
operating from -30 to +65 C, 5 to 95% humidity
Typical cost
$20 to $60 for the part

5.8 dBi fiberglass antenna, 902 to 928 MHz#

RAKwireless

An outdoor fiberglass gateway antenna for the 902 to 928 MHz band, an omnidirectional, vertically polarized dipole that comes with its installation kit.

Interface
N-type male
Band
902 to 930 MHz
Gain
5.8 dBi peak as specified; 5.4 to 6.1 dBi measured from 902 to 930 MHz
VSWR
2.0 or better; 1.33 measured at 902 MHz and 1.47 at 930 MHz
Pattern
omnidirectional, vertical polarization, 50 ohms, efficiency up to 79%
Size
29.8 mm by 800.0 mm, white fiberglass radome
Environment
operating from -20 to +65 C, 5 to 95% humidity
Typical cost
$20 to $60 for the part

MHF to SMA or RP-SMA pigtail#

RAKwireless

The short coaxial lead from a module's MHF (U.FL-type) socket to a bulkhead connector on the enclosure wall, where the antenna screws on.

Interface
MHF-1 or MHF-4 to SMA or RP-SMA
Connectors
MHF-1 or MHF-4 on one end, RP-SMA or SMA with a nut and washer on the other
Lengths
65, 100 and 220 mm
Note
MHF-1 fits the RAK2287 and RAK5146 concentrators; MHF-4 fits the RAK5166 and RAK5167
Typical cost
$5 to $20 for the part

SMA to u.FL adapter cable#

Adafruit

A short RG178 lead from a board's u.FL socket to an SMA connector fixed through the enclosure wall, where an SMA antenna screws on.

Interface
u.FL to panel-mount SMA
Cable
RG178, 15 cm (5.9 in) long, not counting the SMA connector
Connectors
u.FL, also sold as IPEX, IPX or MHF, to a panel-mount SMA
Fit
SMA only; SMA and RP-SMA do not mate, so check the antenna first
Typical cost
under $5 for the part

N-type lightning arrestor#

RAKwireless

A surge protective device for a gateway's antenna line, fitted on each N-type antenna terminal.

Interface
N-type male to N-type female
Frequency range
0 to 2700 MHz, 50 ohms
Loss
0.2 dB or less from 0 to 2000 MHz
Discharge current
10 kA nominal, 20 kA maximum
Voltage protection level
1200 V or less
Ingress protection
IP67
Typical cost
$20 to $60 for the part

N-type lightning surge protector, DC to 6 GHz#

L-com

A gas discharge tube surge protector for an antenna line, with a replaceable tube, DC passing through, and a bulkhead port that seals through an enclosure wall with an O-ring.

Interface
N-type male to bulkhead N-type female
Frequency range
DC to 6 GHz, 50 ohms
Loss
insertion loss of 0.6 dB or less and VSWR of 1.2:1 or better, DC to 6 GHz
Gas tube
90 V breakdown, plus or minus 20%, replaceable (LPX090-6), multi-strike
Protection
bidirectional, so either port can face the antenna, with a ground lug on the housing
Size
68 by 23 by 31 mm, 0.11 kg, nickel-plated brass body
Typical cost
$60 to $200 for the part

Boards you can buy#

Where pamoja itself runs, each with a page that wires a part to it and runs the first program.

Table 5. Boards you can buy: what each is best for, and the lowest price listed.

PartBest forFrom
Raspberry Pi 5Linux boardA gateway or the dashboard: the full std build and every transportUS$110.00
Raspberry Pi Zero 2 WSmall Linux boardThe same std build as the Pi 5, on a smaller and cheaper boardUS$17.25
ESP32Wi-Fi microcontrollerA sensor node with Wi-Fi, Bluetooth and CAN on the chipUS$10.00
Raspberry Pi PicoMicrocontroller boardThe no_std crates on bare metal, in the under $5 bandUS$3.95

Raspberry Pi 5#

Raspberry Pi Ltd

The gateway-class Linux board: the full std build, every transport, and the dashboard.

SoC
Broadcom BCM2712, quad-core 64-bit Arm Cortex-A76 at 2.4 GHz
Memory
LPDDR4X, in 1, 2, 4, 8 and 16 GB
Connectivity
gigabit Ethernet with PoE+ via a HAT, dual-band 802.11ac, Bluetooth 5.0
I/O
the standard 40-pin header, two USB 3.0 and two USB 2.0 ports, a UART debug port
Typical cost
$60 to $200 for the board

Raspberry Pi Zero 2 W#

Raspberry Pi Ltd

The small, low-cost Linux board, running the same std build as the Pi 5 on the same 40-pin footprint.

SoC
RP3A0, quad-core 64-bit Arm Cortex-A53 at 1 GHz
Memory
512 MB
Wireless
2.4 GHz 802.11 b/g/n, Bluetooth 4.2 and BLE, onboard antenna
I/O
HAT-compatible 40-pin header footprint, unpopulated; micro USB OTG
Typical cost
$5 to $20 for the board

ESP32#

Espressif Systems

The Wi-Fi and Bluetooth microcontroller behind most small sensor nodes, with the buses above and a CAN controller on chip.

CPU
Xtensa 32-bit LX6, single or dual core, up to 240 MHz
Memory
448 KB ROM, 520 KB SRAM, 16 KB RTC SRAM
Wireless
802.11 b/g/n up to 150 Mbit/s, Bluetooth 4.2 BR/EDR and LE
Peripherals
four SPI, two I2C, three UART, 34 GPIO
CAN
a TWAI controller compatible with ISO 11898-1
pamoja
the ESP32-C3 first program builds in CI on stable Rust; the Xtensa parts need Espressif's own Rust toolchain
Typical cost
$5 to $20 for the board

Raspberry Pi Pico#

Raspberry Pi Ltd

The RP2040 board: two Cortex-M0+ cores and no operating system, running the no_std crates over its own I2C, SPI, and UART peripherals.

Microcontroller
RP2040 with 2 MB flash, dual-core Cortex-M0+ at up to 133 MHz, 264 kB SRAM
I/O
26 multi-function 3.3 V GPIO on a 40-pin DIP footprint with castellated edges, 3 of them ADC capable
Peripherals
2 UART, 2 I2C, 2 SPI, 16 PWM channels, a 12-bit 500 ksps ADC, USB 1.1, two PIO blocks
Programming
hold BOOTSEL at power-up and the board is a USB mass-storage device that takes a UF2 file; a 3-pin SWD port for a debugger
pamoja
the first program builds in CI for thumbv6m-none-eabi on rp2040-hal
Typical cost
under $5 for the board

Autopilots, standards and targets#

Firmware, an open hardware standard, and an instruction set. None of these is a thing you buy; each names the boards that carry it.

Table 6. Autopilots, standards and targets: what each is best for, and the lowest price listed.

PartConnectsBest forFrom
ArduPilotAutopilot firmwareMAVLinkCopters, planes, rovers and submarines over MAVLink, under the GPLboards from US$130.99
PX4 AutopilotAutopilot firmwareMAVLinkMultirotors, fixed wing and VTOL over MAVLink, under a BSD licenseboards from US$130.99
Pixhawk standardFlight controller standardstandardized connectors and pin-outsFlight controllers that interchange across vendorsboards from US$130.99
Cortex-M4 with FPU, bare metalMicrocontroller coreKnowing a no_std build compiles for a microcontroller with an FPUboards from US$9.99

ArduPilot#

ArduPilot Dev Team

Open autopilot firmware for copters, planes, rovers and submarines; the firmware is free, and the flight controller it runs on is what costs money.

Interface
MAVLink
Vehicles
multicopters, helicopters, fixed wing, rovers, submarines and antenna trackers
Protocol
MAVLink between ground station, flight controller and peripherals
License
GPL v3 or later
Verified
in CI, pamoja-mavlink stores a mission plan on it and arms it in SITL

PX4 Autopilot#

Dronecode Foundation

Open autopilot firmware for multirotors, fixed wing, VTOL, helicopters and rovers, under a permissive license; again, the board is the cost.

Interface
MAVLink
Vehicles
multirotors, fixed wing, VTOL, helicopters and rovers
Protocol
MAVLink for the ground station link
License
BSD 3-clause
Verified
in CI, pamoja-mavlink stores a mission plan on it and arms it in SITL

Pixhawk standard#

Dronecode Foundation

The open hardware standard that fixes flight controller pin-outs, connectors and layout so boards from different vendors interchange; a board built to it is what costs money.

Interface
standardized connectors and pin-outs
Autopilot standards
v5X (DS-011), v6X (DS-012), v6U (DS-016) and v6C (DS-018)
Supporting standards
the connector standard (DS-009), the autopilot bus standard (DS-010) and the payload bus standard (DS-014); a smart battery standard is in draft
Note
Each fixes pin-outs, block diagrams, PCB layout guidelines and connector specifications

Cortex-M4 with FPU, bare metal#

Arm

The bare-metal target: CI cross-compiles every no_std crate for thumbv7em-none-eabihf, which is this core with its floating-point unit and no operating system.

Architecture
Armv7-M
Floating point
a built-in single-precision FPU, credited with 10x on single-precision operations
DSP
integrated DSP, SIMD and MAC instructions
Designed for
industrial control, IoT sensors, AI and ML, audio
pamoja
the bare-metal job in CI builds pamoja-core, security, audit, update, zenoh, ros2 and mavlink for this target

Anything else with a driver#

The parts above are the ones pamoja decodes itself. They are not the limit of what it can talk to. Everything below the driver is a trait: implement Sensor or Actuator for your own part and the kit, the profiles, and the ladder take it as they take the ones here. The your own device guide builds a probe and a valve pamoja has never heard of and runs them, in all four languages, with nothing plugged in.

The same holds for transports. A part reachable over I2C, SPI, a serial line, RS485, or CAN is reachable through the crates on Buses and links, whether or not its decoder ships here.

About this page#

Nothing here is a compatibility promise. It is a record of what the code was written from, so you can tell whether a part you already have is one pamoja decodes byte for byte, one it reaches over a bus it speaks, or one you will be writing a driver for.

Where the figures come from. Every part links one document under "Read and build": the manufacturer's own datasheet, or the standard that defines the thing, or the maker's own documentation for a board. The figures on the card, and the selection tables drawn from them, come from that document and nowhere else. There are no distributor listings, datasheet mirrors, or tutorial sites among them, and cargo xtask links fetches every one so a rotted link fails the build rather than sitting there looking authoritative. The exception is the handful of vendors whose sites refuse any scripted client; those entries say so in the data file, and a person opens them instead.

What the cost line means. A coarse band in USD for a typical breakout board, module, or board, to tell a two dollar sensor from a two hundred dollar autopilot. It is not a quote, it is not a 1000-unit chip price, and it is not tracked against any vendor.

Where to buy. Each part lists a few product pages from the makers' own stores and the larger distributors, the cheapest reputable option first, with the price each page listed on the day it was read. Those are places to buy, not sources: nothing on a card is taken from them. A workflow reads every page again each day, orders the offers cheapest first, and opens a pull request with what moved, which merges itself once every check passes and puts the day it read each page on the cards. A store that no longer lists a part loses its offer, and Digi-Key is read through its own product API. A page that refuses scripted readers keeps the last price read from it, and its card names the day that was. An entry that is not a thing you buy, firmware, a standard, a protocol, or an instruction set, carries no price of its own; its list names the boards that carry it instead.

How this page stays honest. The entries are tied to the code. Adding a driver module under pamoja-sensors, pamoja-actuators, or pamoja-radios without an entry here fails cargo xtask docs --check, as does a part without the lines its group's selection table needs. The LoRaWAN channel plans are held to the radio page the same way.

Edit this page on GitHub