Skip to the content
PCBKitNew board
2 layers106.7 × 156.6 mmEnviro node, the printed circuit board in 3D

Agriculture node for SDI-12 (and other) sensors.

Size
106.7 × 156.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
190
Nets
184
Pads
659
Tracks, vias
836, 708
Pours
3
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
2 Sep 2022
Updated
29 Aug 2025

Overview

Enviro node is an open-source printed circuit board by DPIclimate, from the DPIclimate/enviro-node repository on GitHub, published under the MIT licence. It is a 2-layer board of 106.7 × 156.6 mm with 190 parts on 184 nets, routed with 836 tracks and 708 vias.

It is built around the PESD0402-140, BC847 and SS34LW RVG, with the 0685P2000-01, BSS214NW-TP and CONUFL001-SMD-T among its other parts. Its parts include 43 resistors, 32 capacitors, 10 diodes, 6 ICs and 6 connectors. It belongs with the ESP32 boards of this library.

Main components

7

README

README.md

Enviro-Node

About • Documentation • Hardware • License

Table of Contents
  1. About
  2. Hardware
  3. Firmware
  4. License

About

Enviro-node is a environmental monitoring node. Users can connect a number of sensors to a node. Data captured from these sensors is then sent to a database over MQTT.

Hardware

The hardware was developed using KiCad. Source files can be found here. While sleeping the Enviro-node will consume ~70 µA.

Microcontroller

=> Schematic

The device incorporates a ESP32 microcontroller to handle bluetooth functions and peripherals. The ESP32 has a very low sleep current of ~16 µA making it perfect for low-powered applications.

Debug and USB Interfaces

=> Schematic

Enviro-node features full debug capability when connected to an ESP-Prog (ESP32 debugger/programmer). It is recommended that you use a USB-to-TTL cable during development. This allows you to have the ESP-Prog connected to the Enviro-node while monitoring the ESP32's serial output via the USB-to-TTL connector.

The USB-C interface is only powered up when battery power is available. Do not attempt to power the board with the USB-C interface.

Power Distribution

=> Schematic

Battery

The Enviro-node is powered by two 18650 LiPo cells connected in parallel (4.2 V). A current jumper is available to monitor current and voltage on an external device such as a multi-meter. The batteries feature reverse polarity detection and protection and an inline fuse.

An INA219 IC is connected to the battery to allow for real-time monitoring of battery current and voltage.

Solar

The batteries are recharged through a LT3652IMSE solar charging IC or via a USB-C battery charging IC (MCP73832). The default configuration allows for 12 V solar panels to be connected to the device; however, this can be set via a resistor divider.

The solar input features reverse polarity detection and protection as well as an inline fuse and charging/error indicators.

The charging current of the solar panel is limited to a maximum of 1 A and is monitored through another INA219 IC.

3V3 Interface

Most components on Enviro-node operate using 3.3 V for this a linear regulator is incorporated (XC6215B332MR-G). A power supply switch is connected to the output of this regulator to allow the ESP32 (and peripherals) to be manually turned off or restarted.

12V Interface for SDI-12 Devices

Although many SDI-12 devices will work with 3.3 V, the Enviro-node incorporates a 12 V step-up regulator (MIC2288YD5) to provide a stable 12 V (100 mA) supply. This IC can be toggled in the firmware via a GPIO pin and will be completely shutoff when not in use.

If a SDI-12 sensor requires a constant 12 V supply the current consumption of this step-up regulator is ~2 mA with no load.

Peripherals

=> Schematic

IO Expander

As a full debug interface is supplied and there are several operating interfaces (I2C, SPI, UART) the number of available GPIO pins on the ESP32 is limited. Therefore, an IO-expanded is provided (TCA9534) to control many IC's power consumption including CAT-M1, the SD-Card and 12 V power.

A LED is also connected the IO-expander that the user can configure.

Piezo Buzzer

For audible feedback a piezo buzzer is included and will play success and error tones while the device is being configured and on startup. Under normal conditions the piezo buzzer will be quiet.

Programmable Button

An external programmable button is connected to a GPIO input pin on the ESP32. On startup if this button is held down the device will enter a programmable state whereby BluetoothLE will be enabled and a UART CLI interface will become available. Once the user types "exit\r" the CLI will be exited and normal operations will continue.

SD-Card

Environmental monitoring requires a SD-Card to ensure data is captured even when communications are down. The Enviro-node provides a top entry, Micro-SD card slot that can be disconnected from its power supply via a GPIO pin (see IO-Expander above).

SDI-12

A full SDI-12 interface is provided. No level-shifting is incorporated as the ESP32 can handle 5 V. Users can either use the 12 V output and toggle the output on-and-off or use the 3.3 V output for always on devices.

Digital

A digital pin is provided to the user to count pulses originating from a Tipping Bucket or wind-speed sensor.

CAT-M1

=> Schematic

The Enviro-node uses CAT-M1 to send messages (containing JSON encoded data) over MQTT. For this a SARA-R5 modem is incorporated into the design. This modem communicates with the ESP32 microcontroller over AT-commands via a Serial (UART) interface.

Note A compatible nano-sim card is required for this functionality of the device. For Australian users Telstra has a M2M service or there are other global services such as Hologram.

The modem is directly powered by the 18650 batteries (as the modem can draw ~500 mA) and can be turned off and on via a GPIO pin (see IO-Expander above). A network indicator LED will indicate network registration status.

Firmware

The firmware source code is located in the firmware/wombat directory. It is structured as a platformio project.

Installing platformio and the Wombat board files

The install_pio.sh script will install platformio and copy the Wombat board files into the installation.

After running the script and adding ~/.platformio/penv/bin to the PATH, the firmware can be compiled with the command pio run.

License

This project is MIT licensed, as found in the LICENCE file.

Parts

190
QtyValueFootprintReferences
1010KResistor_SMD:R_0805_2012MetricR5, R6, R8, R11, R13, R15, R18, R23, R36, R39
80.1uFCapacitor_SMD:C_0805_2012MetricC3, C6, C7, C21, C24, C28, C33, C34
61KResistor_SMD:R_0805_2012MetricR4, R14, R19, R31, R35, R40
51uFCapacitor_SMD:C_0805_2012MetricC5, C12, C13, C19, C22
447pFCapacitor_SMD:C_0805_2012MetricC27, C30, C31, C32
4PESD0402-140PESD0402-140:PESD0402-140CR1, CR2, CR3, CR4
30Resistor_SMD:R_0805_2012MetricR9, R10, R41
310uFCapacitor_SMD:C_0805_2012MetricC11, C15, C20
32604-31022604-3102:2604-3102J4, J7, J10
32KResistor_SMD:R_0805_2012MetricR20, R24, R25
34.7KResistor_SMD:R_0805_2012MetricR16, R17, R34
34.7uFCapacitor_SMD:C_0805_2012MetricC4, C14, C16
3BC847Package_TO_SOT_SMD:SOT-23Q2, Q4, Q5
3LED(Red)LED_SMD:LED_0805_2012MetricD3, D5, D10
3LOGOLOGOG***, G***, G***
3SS34LW_RVGSS34LW_RVG:SODFL3718X102ND6, D7, D9
20.1Resistor_SMD:R_2512_6332MetricR21, R30
20.1uFCapacitor_Tantalum_SMD:CP_EIA-2012-12_Kemet-RC17, C23
20685P2000-010685P2000-01:0685P2000-01F1, F2
2100KResistor_SMD:R_0805_2012MetricR32, R37
212pFCapacitor_SMD:C_0805_2012MetricC8, C9
247KResistor_SMD:R_0805_2012MetricR33, R38
25.1KResistor_SMD:R_0805_2012MetricR3, R7
2G***kibuzzard-6397AB25kibuzzard-6397AB25, kibuzzard-6397AB25
2G***kibuzzard-639A4BB4kibuzzard-639A4BB4, kibuzzard-639A4BB4
2G***kibuzzard-635F8A8Dkibuzzard-635F8A8D, kibuzzard-635F8A8D
2G***kibuzzard-635F8A75kibuzzard-635F8A75, kibuzzard-635F8A75
2G***kibuzzard-6397AB35kibuzzard-6397AB35, kibuzzard-6397AB35
2G***kibuzzard-639A4BC1kibuzzard-639A4BC1, kibuzzard-639A4BC1
2INA219BxDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4, U8
2LED(Green)LED_SMD:LED_0805_2012MetricD4, D8
2LED(Orange)LED_SMD:LED_0805_2012MetricD2, D11
2MountingHoleMountingHole:MountingHole_4.3x6.2mm_M4_Pad_ViaH1, H2
2SSM3J340R_LFSSM3J340R_LF:SSM3J340R_LFMOSFET1, MOSFET2
2TPS22967DSGRTPS22967DSGR:SON50P200X200X80-9NU6, U11
10Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR42
11049P1049P:1049PB1
110KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR43
110MResistor_SMD:R_0805_2012MetricR12
110nFCapacitor_SMD:C_0805_2012MetricC25
112V_ENTestPoint:TestPoint_Pad_D1.0mmTP1
115pFCapacitor_SMD:C_0805_2012MetricC29
1180KResistor_SMD:R_0805_2012MetricR26
11V8TestPoint:TestPoint_Pad_D1.0mmTP6
12.2uFCapacitor_SMD:C_0805_2012MetricC18
121KResistor_SMD:R_0805_2012MetricR22
122.1KResistor_SMD:R_0805_2012MetricR1
122uFCapacitor_SMD:C_0805_2012MetricC10
12604-31052604-3105:2604-3105J6
13.2KResistor_SMD:R_0805_2012MetricR29
132.768KHzABS07AIG-32:XTAL320X150X90Y1
1330KResistor_SMD:R_0805_2012MetricR28
147.5KResistor_SMD:R_0805_2012MetricR2
168pFCapacitor_SMD:C_0805_2012MetricC26
191KResistor_SMD:R_0805_2012MetricR27
1BAT_CRNT_JMPRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ9
1BOOT1977223-6:1977223-6SW1
1BSS214NWPackage_TO_SOT_SMD:SOT-323_SC-70Q3
1CAT_M1_RST1977223-6:1977223-6SW3
1CONUFL001-SMD-TCONUFL001-SMD-T:LINX_CONUFL001-SMD-TJ11
1CP2102N-Axx-xQFN28Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mmU1
1ESD_RST_INResistor_SMD:R_0805_2012MetricRV1
1ESP32-WROOM-32E_(16MB)ESP32-WROOM-32E__16MB_:XCVR_ESP32-WROOM-32E_(16MB)U2
1FBMH2012HM221-TVFBMH2012HM221-TV:BEADC2012X105NFB1
1G***kibuzzard-63C78316kibuzzard-63C78316
1G***kibuzzard-63932346kibuzzard-63932346
1G***kibuzzard-6396A3EFkibuzzard-6396A3EF
1G***kibuzzard-6396A450kibuzzard-6396A450
1G***kibuzzard-639A4BEAkibuzzard-639A4BEA
1G***kibuzzard-63932369kibuzzard-63932369
1G***kibuzzard-636098FDkibuzzard-636098FD
1G***kibuzzard-6397BE2Bkibuzzard-6397BE2B
1G***kibuzzard-63606B50kibuzzard-63606B50
1G***kibuzzard-635FB066kibuzzard-635FB066
1G***kibuzzard-6374791Fkibuzzard-6374791F
1G***kibuzzard-63606B27kibuzzard-63606B27
1G***kibuzzard-6396A474kibuzzard-6396A474
1G***kibuzzard-6396A059kibuzzard-6396A059
1G***kibuzzard-635FB008kibuzzard-635FB008
1G***kibuzzard-6360B45Akibuzzard-6360B45A

The 150 most common of 190 parts.

Questions

How big is the Enviro node PCB?

It measures 106.7 × 156.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Enviro node use?

190 parts, built around the PESD0402-140, BC847, SS34LW RVG and 0685P2000-01. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Enviro node KiCad files?

From the DPIclimate/enviro-node repository on GitHub, at the commit this page was made from: the board is electronics/motherboard/enviro-node/enviro-node.kicad_pcb and its schematic electronics/breakout/breakout.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Enviro node design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from DPIclimate/enviro-node

2
  • 2 layers114 × 146 mmBreakout, the printed circuit board in 3D

    Breakout

    DPIclimate/enviro-node

    Agriculture node for SDI-12 (and other) sensors.

    56 parts4MIT
  • 2 layers100 × 43 mmCase connector, the printed circuit board in 3D

    Case connector

    DPIclimate/enviro-node

    Agriculture node for SDI-12 (and other) sensors.

    19 parts4MIT

Similar boards

  • 4 layers371.6 × 209 mmAdatv2, the printed circuit board in 3D

    Adatv2

    swiszczoo/adat_usb_interface

    16-in, 16-out 4x ADAT <=> USB interface supporting USB Audio Class 2.0

    253 parts2
  • 2 layers74.1 × 112 mmKangaroo, the printed circuit board in 3D

    Kangaroo

    DPIclimate/kangaroo-node

    Enviro-Node About • Install • Firmware • License

    29 partsMIT
  • 2 layers54.3 × 59 mmNet bms GSMM, the printed circuit board in 3D

    Net bms GSMM

    Millisman/Quectel-BG95-LPWA-Module

    Quectel BG95 LPWA Module board with integrated GPS & GSM

    148 parts6Apache-2.0
  • 2 layers111.2 × 122.7 mmUniversalNode, the printed circuit board in 3D

    UniversalNode

    DPIclimate/ag-node

    Automatic multi-weigh-station for measuring the live-weight of sheep in remote locations.

    83 parts2MIT
  • 2 layers129.5 × 72.6 mmOpenPLC, the printed circuit board in 3D

    OpenPLC

    radioelf/OpenPlc

    Hardware for OpenPLC with raspberry PI Z and Mod. software OpenPlc

    165 parts7
  • 2 layersDuePi, the printed circuit board in 3D

    DuePi

    radioelf/Arduino-Due-mod-for-GPIO-compatible-Raspberry-Pi

    PCB arduino Due para DuePi y Gpio Raspberry Pi

    120 parts1
  • 4 layers220 × 100 mm3U220-Support, the printed circuit board in 3D

    3U220-Support

    PTrUNB/3U220mm-Odoird-H2-H3-PSU

    Basic DCDC 2.8 to 48VDc power supply included

    198 parts
  • 2 layers72.9 × 25.4 mmBeepSensors, the printed circuit board in 3D

    BeepSensors

    57Bravo/BeepSensors

    GPS, IMU, MAG, BARO, and Buzzer for the BeepBerry

    19 parts15