Open Hardware · Carrier Board v4 · Production Gerbers
Sankhya Intelligence is a SaaS platform. The PCB is a commodity delivery mechanism — we publish it because our moat is longitudinal per-tree data and agronomic AI, not copper traces.
The intelligence layer compounds over time. The hardware doesn't need to.
Board renders
Chip-down DOIT ESP32-S3 (bottom side), dual LM2596S buck regulators, TPS1H100B high-side load switches. 2-layer FR4, 60 × 80 mm, ENIG finish. Designed in EasyEDA, manufactured and assembled by JLCPCB. Gerbers, BOM with LCSC part numbers, and PickAndPlace included in the download.





Form factor: 60 × 80 mm, 2-layer FR4 1.6 mm, ENIG finish, RoHS compliant
Weight: ~22g (PCB only; ~400g with battery and dongle)
Operating temperature: −10°C to +70°C (extended range variants available on request)
Enclosure: 200 × 155 × 80 mm IP67 ABS weatherproof + cable glands + silicone sealant
Input 1 (DC1): 12V LiFePO₄ battery (12.8V nominal, 6Ah, internal BMS) via 5.5mm DC barrel jack
Input 2 (DC2): 12V solar panel (20W, Voc ≤22V, Isc ≤1.5A) via 5.5mm DC barrel jack, with SS54B Schottky blocking diode
Inrush protection: NTC 10D-9 inrush current limiter on 12V input rail
5V buck (U1): LM2596S-5.0 (TI), 12V → 5V, 3A continuous — powers USB-A dongle path and USB-C input
3.3V buck (U2): LM2596S-3.3, 12V → 3.3V, 3A continuous — powers ESP32 module, SP3485, and INA219
3.3V′ LDO (AP1K): AP2112K-3.3 from 5V rail — clean isolated rail for USB-C CC1/CC2 resistors
Autonomy: 15–20 days at midnight-to-sunrise monsoon with zero sun
Battery monitor (U5): INA219AIDR on 10mΩ shunt (R18); reports voltage, current, and consumed power over I²C with explicit pullups (R4/R5 4.7kΩ)
TVS protection: SMBJ15A on 12V input rails; USBLC6-2SC6 on USB D+/D−
U8 — Sensor 12V switch: TPS1H100BQPWPRQ1 integrated high-side switch, IN=IO19, drives sensor terminal 12V rail. Built-in overcurrent protection and thermal shutdown.
U7 — USB-A 5V switch: TPS1H100BQPWPRQ1 integrated high-side switch, IN=IO20, drives USB-A 5V rail. Same diagnostic and protection features.
Why TPS1H100B: v3 used AO3400A N-channel MOSFETs as high-side switches, which require gate voltage above the 12V drain — impossible from a 3.3V ESP32 GPIO without bootstrap. The TPS1H100B has an internal charge pump, accepts 3.3V logic directly, and was the correct part for this application from the start.
Module (U11): DOIT ESPS3-32E-N16R8 — chip-down castellated stamp module, soldered to the bottom side of the carrier board. No socket, no dev board.
Processor: Espressif ESP32-S3 dual-core at 240 MHz, RISC-V coprocessor
Flash / PSRAM: 16 MB / 8 MB on-module
WiFi: 802.11b/g/n, −10 to +20 dBm TX, connects to TP-Link repeater mesh or local hotspot
Antenna: External U.FL 2.4 GHz on the right side of the module; 5 dBi omnidirectional
Sleep current: 10 μA in deep sleep (RTC on, PSRAM retained)
Why chip-down: Socketed dev boards in v1–v3 relied on friction-fit pin contact, which failed under sustained vibration in field deployment. Castellated SMD pads are mechanically equivalent to any other component.
Bus: RS-485 Modbus RTU (half-duplex), 4800–9600 baud, 8/N/1
Transceiver (U4): SP3485EN-L/TR (MaxLinear) with DE/RE# tied and driven by IO8
Terminal (TB_1): 3-pin 3.5mm screw terminal — A / B / GND
Termination: 120 Ω DNP pad available for cable runs over 10 m
Sensor capacity: Up to 3 sensors per node on the shared bus via Modbus slave IDs; more via daisy-chain
Sensor power: Switched 12V via TPS1H100B U8, controlled by IO19 for power-down cycles
Sensor reading interval: Configurable 1–60 minutes (firmware selectable, typically 1 hour)
Dongle: Any USB-A 4G LTE modem with tethering (tested: Quectel EC200U-EU, Huawei)
Power path: USB-A 5V from LM2596S U1 (5V buck), switched via TPS1H100B U7 (IO20)
WiFi hotspot: Dongle creates SSID; TP-Link repeater extends to all other nodes
Data plan: One SIM card, shared across entire orchard via WiFi mesh (single point of failure, by design)
Bandwidth: ~5 MB/month per 50 nodes with 1-hour reading interval + AI chat
Base: Arduino SDK 2.x, ESP32 board package 2.0.18
Flash method: USB-C Web Serial API at flash.sankhyafarms.com (no IDE, no drivers)
OTA updates: Cloudflare Workers `/ota/check` endpoint; nodes auto-update on boot if newer version exists
Firmware size: ~550 KB (Haiku AI inference offline on node via TFLite, fallback to server)
Rollback: ESP32 dual-OTA partition with automatic revert on failed boot
Reporting: POST to Cloudflare Worker endpoint; includes sensor readings, battery voltage, WiFi RSSI, uptime
Report format: JSON gzip-compressed for metered 4G
Cadence: 1 report per sensor reading cycle (typically 1/hour); optional longer intervals in battery-saver mode
Latency: Sub-second from WiFi to Cloudflare D1 database (no serial polling delay)
Data retention: 2 years of historical sensor data + images + agronomic insights in Sankhya dashboard
Installation: Weatherproof enclosure with cable glands for barrel jack, RS-485 sensor terminals, and antenna feedthrough. Mounting: wall-mount or pole-mount at orchard periphery for WiFi coverage and sunlight.
Sensors: ZTS-3002 7-in-1 (moisture, EC, pH, temp), JXC-LS-RS232 or equivalent RS-485 Modbus. See sensor compatibility list →
Sunlight: 20W panel provides 15–20 days monsoon reserve; plan for 4–6 hours peak sun/day at the deployment site (adjust for local climate)
Mesh network: TP-Link TL-WR845N repeater covers 4+ nodes per repeater in open orchard with line-of-sight to a master node running 4G hotspot
Enclosure sealing: Cable glands + silicone sealant prevent water ingress during irrigation spray. Inspect quarterly for mold/corrosion in monsoon.
For advanced debugging or custom sensor configurations, open a support ticket at sankhyafarms.com/contact
Interactive component map
Click any highlighted component to learn what it does and why it was chosen. Every part was selected for unattended field deployment in an agricultural environment.
Diagram is a schematic representation. For exact component placement see PCB layout tab above.
Enclosure planning
The PCB is compact but the battery and 4G dongle add significant volume. Plan your weatherproof enclosure before ordering. We use a 200 × 155 × 80 mm waterproof ABS enclosure with cable glands, sealed with silicone sealant.
Pin assignments
These are fixed by the copper traces. Your firmware must use these exact GPIO numbers — or use flash.sankhyafarms.com which generates correct firmware automatically for your sensor selection.
| Function | GPIO | Connected to |
|---|---|---|
| RS-485 RX (RO) | IO18 | SP3485EN receiver output → ESP32 UART RX |
| RS-485 TX (DI) | IO17 | ESP32 UART TX → SP3485EN data input |
| RS-485 Direction (DE/RE#) | IO8 | SP3485EN DE + RE# tied together — HIGH=transmit |
| Sensor 12V switch | IO19 | TPS1H100B U8 IN — HIGH = sensor power ON |
| USB-A 5V switch | IO20 | TPS1H100B U7 IN — HIGH = dongle power ON |
| INA219 SDA | IO9 | Battery monitor I²C data (with 4.7kΩ pullup) |
| INA219 SCL | IO10 | Battery monitor I²C clock (with 4.7kΩ pullup) |
| Status LED | IO16 | Blue 0201 LED via R12 330Ω current limit |
| BOOT strapping | IO0 | BOOT button pulls LOW to enter flash mode |
| UART0 TX (debug / programming) | GPIO43 | USB-C serial console |
| UART0 RX (debug / programming) | GPIO44 | USB-C serial console |
Platform capabilities
The board is the edge. The intelligence lives server-side on Cloudflare's global edge and compounds with every season of data.
esp_https_ota() with automatic rollback on failure. Deployed nodes never need physical access for firmware updates.Design history
Each version corrected a confirmed defect discovered in field deployment. v4 is the first revision with no known electrical faults. Prior versions are documented here in the spirit of open hardware — but only v4 should be manufactured.
Ordering guide — JLCPCB
The download contains everything JLCPCB needs for a bare PCB or fully assembled (PCBA) order. A video walkthrough is coming — follow these steps in the meantime.
Download Sankhya-v4.zip and extract it. Inside you will find three files: Gerber_V4-ESP32_PCB_V4-ESP32_2026-05-19.zip (the inner Gerbers), BOM_V4.csv, and PickAndPlace_V4.csv.
Go to jlcpcb.com → Quote Now → upload the inner Gerber_V4-ESP32...zip (not the outer one). JLCPCB auto-detects board dimensions as 60 × 80 mm. Select: 2 layers, FR4, 1.6 mm thickness, ENIG surface finish, green soldermask, your preferred quantity.
ENIG is specified instead of HASL for better coplanarity on the 0.65 mm pitch TPS1H100B HTSSOP-14 pads and the 0.5 mm pitch USB-C SMD pads. 5 boards typically cost under $20 + shipping with ENIG. Minimum order is 5 pieces.
Toggle PCB Assembly on the same order page. Upload BOM_V4.csv and PickAndPlace_V4.csv when prompted. JLCPCB will source and solder all SMD components from LCSC, including the DOIT ESPS3-32E-N16R8 chip-down ESP32-S3 module on the bottom side. Through-hole parts (DC barrel jacks, TB_1 screw terminal, USB-A port) are not assembled by PCBA — you solder those yourself.
Unlike v1, v4 has no socketed dev board step — the ESP32-S3 module is castellated and assembled by JLC. When the boards arrive, the digital subsystem is already populated and tested.
Hand-solder the two DC barrel jacks, the TB_1 3.5mm screw terminal, the USB-A port, and the two tactile buttons (BOOT, RST). Attach a U.FL 2.4 GHz antenna to the connector on the right side of the ESP32-S3 module. Then visit flash.sankhyafarms.com, connect via USB-C, select your sensor configuration, and flash. Register the node with your Sankhya Intelligence account to begin per-tree data collection.
Frequently asked questions
Topic cluster
This page is the hub for the open hardware stack. The companion pages below cover the wiring, power, manufacturing, and signal-processing layers in production-grade detail. Together with the GitHub mirror they form the full reference for someone building or operating a Sankhya Intelligence sensor node.
SENSOR WIRING
RS-485 Modbus soil sensor wiring
Pinouts, bus topology, termination, Modbus RTU framing, and the wiring gotchas that cost weeks to diagnose across ZTS, JXCT, Renke, DFRobot, and SN-3000 sensors.
POWER DESIGN
ESP32-S3 solar-powered sensor node design
Measured current budget, LiFePO4 chemistry choice, 20W solar sizing for the worst month, dual-buck rail topology, and on-board battery telemetry.
MANUFACTURING
JLCPCB PCBA walkthrough
Step-by-step from Gerber upload to assembled boards delivered. ENIG vs HASL, BOM/CPL format, through-hole finishing, and a realistic 10-board cost breakdown.
IRRIGATION ALGORITHM
Curve-shape irrigation logic
How the sensor data turns into a ± volume recommendation by comparing today's moisture curve against the zone's own history — not against a fixed threshold.
SIGNAL METHODOLOGY
Uptake Index methodology
A per-tree, per-night score from continuous EC, moisture, and pH. Delta-based, moisture-gated, pH-gated — the signal layer behind per-tree fertigation timing.
SOURCE REPOSITORY · GITHUB
shsa1984/sankhya-node-hardware
Production v4 Gerbers, BOM with LCSC part numbers, PickAndPlace for JLCPCB assembly, schematics, and prior revisions. CERN-OHL-P v2 licensed.
FIELD NOTES · DEV.TO
How I built a solar-powered RS-485 soil sensor node for orchard management
Engineering write-up of the build journey — from hand-wired prototypes to a proper carrier board for a working orchard deployment.
LICENSE
CERN-OHL-P v2
The CERN Open Hardware Licence — Permissive variant. Use, modify, manufacture, and distribute the hardware design freely.