Skip to content

Hardware Bill of Materials (BOM)

Complete parts list for the Xylolabs RP2350 full hardware sensor node.

Core Components

# Component Part Number Description Interface Qty Purchase
1 MCU RP2350 Raspberry Pi Pico 2, dual Cortex-M33 @ 150MHz, 520KB SRAM - 1 Raspberry Pi
2 Audio ADC PCM1860QDBTRQ1 2-channel 24-bit 96kHz/192kHz I2S audio ADC (Texas Instruments) I2S + I2C 1 DigiKey
3 Microphone WM-61A Electret condenser microphone, -35dBV sensitivity (Panasonic) Analog 2 -
4 Battery MOSFET BSS84 P-channel MOSFET, -50V, -0.13A (ON Semiconductor) GPIO + ADC 1 DigiKey
5 Env Sensor SEN0385 (CHT832X) Weather-proof temperature + humidity sensor (DFRobot) I2C 1 DigiKey
6 Accelerometer ADXL345BCCZ 3-axis +/-16g, 13-bit, programmable data rate (Analog Devices) SPI 1 DigiKey
7 LTE Modem BG770A LTE Cat-M1 / NB-IoT modem (Quectel) UART AT 1 Quectel
8 USIM - LTE Cat-M1 USIM card (carrier-specific) - 1 Naver

Passive Components

# Component Value Package Qty Purpose
9 Coupling capacitor 1uF 0402/0603 ceramic (X7R) 2 Mic signal AC coupling + VINL2 reference bypass
10 Bias resistor 2.2kohm 0402/0603 1 MICBIAS current limiting for WM-61A
11 Voltage divider R1 100kohm 0402/0603 1 Battery voltage divider (high side)
12 Voltage divider R2 100kohm 0402/0603 1 Battery voltage divider (low side)
13 I2C pull-up 4.7kohm 0402/0603 2 I2C0 SDA/SCL pull-ups (may be on breakout boards)

Connectors & Accessories

# Component Description Qty Purpose
14 LTE Antenna LTE Cat-M1 / NB-IoT antenna 1 BG770A external antenna (U.FL connector)
15 U.FL cable U.FL to SMA pigtail 1 Antenna connection (if using SMA antenna)
16 Battery 3.7V LiPo, 2000mAh+ 1 Power supply
17 Enclosure IP65 weather-proof 1 Outdoor deployment (optional)

Pin Assignments (RP2350)

PCM1860 I2S Audio ADC:
  BCK  (bit clock)    -> GPIO14 (PIO0)
  LRCK (word select)  -> GPIO15 (PIO0)
  DOUT (data out)     -> GPIO16 (PIO0)
  SDA  (I2C control)  -> GPIO4  (I2C0)
  SCL  (I2C control)  -> GPIO5  (I2C0)

CHT832X Environment Sensor:
  SDA  -> GPIO4  (I2C0, shared bus with PCM1860)
  SCL  -> GPIO5  (I2C0, shared bus with PCM1860)

ADXL345 Accelerometer:
  CS   -> GPIO17
  CLK  -> GPIO18 (SPI0 SCK)
  MOSI -> GPIO19 (SPI0 TX)
  MISO -> GPIO20 (SPI0 RX)

BSS84 Battery Monitor:
  Gate -> GPIO21 (enable, active LOW for P-channel)
  ADC  -> GPIO26 (ADC0, voltage divider output)

BG770A LTE Modem:
  TX   -> GPIO0  (UART0 TX)
  RX   -> GPIO1  (UART0 RX)
  PWR  -> GPIO22 (power key, toggle 2s to boot)

Wiring Diagram

                            RP2350 (Pico 2)
                     +---------------------------+
                     |                           |
    BG770A TX  <---|  GPIO0  (UART0 TX)        |
    BG770A RX  --->|  GPIO1  (UART0 RX)        |
                     |                           |
    I2C0 SDA  <---->|  GPIO4  (I2C0 SDA)  ------+--> PCM1860 SDA
    I2C0 SCL  <---->|  GPIO5  (I2C0 SCL)  ------+--> PCM1860 SCL
                     |                    |      +--> CHT832X SDA
                     |                    +------+--> CHT832X SCL
                     |                           |
    PCM1860 BCK  <---|  GPIO14 (PIO0)            |
    PCM1860 LRCK <---|  GPIO15 (PIO0)            |
    PCM1860 DOUT --->|  GPIO16 (PIO0)            |
                     |                           |
    ADXL345 CS   <---|  GPIO17                   |
    SPI0 CLK     <---|  GPIO18 (SPI0 SCK)        |
    SPI0 MOSI    <---|  GPIO19 (SPI0 TX)         |
    SPI0 MISO    --->|  GPIO20 (SPI0 RX)         |
                     |                           |
    BSS84 Gate   <---|  GPIO21                   |
    BG770A PWR  <---|  GPIO22                   |
                     |                           |
    Battery ADC  --->|  GPIO26 (ADC0)            |
                     +---------------------------+

Microphone Signal Path

                 2.2kohm            1uF coupling cap
MICBIAS (pin22) ---/\/\/--- WM-61A(+) ----||---- PCM1860 VINL1 (pin 1)
                            WM-61A(-) ---- GND
                                           1uF bypass cap
                            PCM1860 VINL2 (pin 2) ----||---- GND
                            (reference ground)
  • MICBIAS (PCM1860 pin 22) provides 2.5V bias voltage for WM-61A electret microphones
  • 2.2kohm resistor limits bias current to ~1mA (safe for WM-61A)
  • 1uF coupling capacitor blocks DC bias, passes AC audio signal to VINL1
  • VINL2 bypass capacitor provides stable reference ground for single-ended input
  • WM-61A sensitivity: -35dBV (typical), frequency response: 20Hz-16kHz

Battery Monitoring Circuit

VBAT ----[R1 100kohm]----+----[R2 100kohm]---- GND
                          |
                     BSS84 Drain ----> GPIO26 (ADC0)
GPIO21 -----------> BSS84 Gate
VBAT -------------> BSS84 Source
  • BSS84 P-channel MOSFET: gate LOW = ON (conducting), gate HIGH = OFF
  • Voltage divider: 2:1 ratio (equal 100kohm resistors)
  • Measurement sequence: enable MOSFET -> wait 10ms -> read ADC -> disable MOSFET
  • Power savings: MOSFET disconnects divider when not measuring (~0 current draw)
  • Voltage calculation: V_bat = ADC_raw * 3.3 / 4096 * 2.0
  • ADC range: 0-3.3V input -> 0-6.6V battery voltage measurement range

Power Budget

Component Active Current Sleep Current Duty Cycle
RP2350 30mA N/A Continuous
PCM1860 15mA - Continuous (audio)
WM-61A x2 <1mA - Continuous (powered by MICBIAS)
CHT832X 1.5mA (meas) 0.5uA 15ms every 1s
ADXL345 140uA 0.1uA Continuous at 100Hz
BSS84 circuit ~33uA 0uA 10ms every 30s
BG770A 220mA (TX) 3uA (PSM) ~2s every batch
Total (active) ~270mA - -
Total (average) ~50mA - With PSM and batching

Estimated battery life with 2000mAh LiPo: ~40 hours (continuous), ~3 days (with PSM).

Interface Summary

Bus Devices Speed Notes
I2C0 (GPIO4/5) PCM1860 (0x48), CHT832X (0x44) 400kHz Shared bus, 4.7kohm pull-ups
SPI0 (GPIO17-20) ADXL345 5MHz Mode 3 (CPOL=1, CPHA=1)
UART0 (GPIO0/1) BG770A 115200 AT command interface
ADC0 (GPIO26) BSS84 voltage divider - 12-bit, 3.3V reference
PIO0 (GPIO14-16) PCM1860 I2S 6.144MHz BCK 96kHz * 32-bit * 2ch