

Iguana V1
Repositorio para proyecto Iguana IOWLabs (Cultivo)
- Size
- 80 × 50 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 120
- Nets
- 108
- Pads
- 387
- Tracks, vias
- 877, 210
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 29 Aug 2023
- Updated
- 31 Jan 2024
Overview
Iguana V1 is an open-source printed circuit board by iowlabs, from the iowlabs/Iguana repository on GitHub. It is a 2-layer board of 80 × 50 mm with 120 parts on 108 nets, routed with 877 tracks and 210 vias.
It is built around the CH340C, ESP32-WROOM-32D and MAX3485ED, with the MT3608, DS18B20 and AP2112K-3.3 among its other parts. Its parts include 35 resistors, 21 capacitors, 18 connectors, 14 diodes and 12 ICs. It belongs with the radio and wireless boards and the ESP32 boards of this library.
Main components
12CH340C
SOP-16-20℃~+70℃ 2Mbps 3.3V、5V 50uA 7mA Transceiver USB 2.0 SOP-16 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersESP32-WROOM-32D
-- WiFi Modules ROHSEspressif SystemsWiFi ModulesMAX3485ED
SOP-8-40℃~+85℃ 1 1 10Mbps 1mA 3.135V~3.465V 32 Half-Duplex Transceiver ±8kV SOP-8 RS-485 / RS-422 ICs ROHSHTC Korea TAEJIN TechRS-485 / RS-422 ICsMT3608
SOT-23-6-40℃~+85℃ 1 1.2MHz 100uA、1.6mA 2A 2V~24V Adjustable Boost Boost Built-in No SOT-23-6 DC-DC Converters ROHS西安航天民芯DC-DC ConvertersDS18B20
TO-92-55℃~+125℃ 12bit 3V~5.5V 750ms Single-bus ±0.4℃ TO-92 Temperature Sensors ROHSUMWTemperature SensorsAP2112K-3.3
SOT253.3V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorisedDW01
SOT-23-6-40℃~+85℃ 1 1.5V~8V 2.4V 4.3V 4uA Lithium Battery Not supported Overcharge protection、Over-discharge protection、Overcurrent Protection、Short-Circuit Protection Protection IC Support SOT-23-6 Battery Management ROHSGuangdong HottechBattery ManagementFS8205A
SOT-23-6-55℃~+150℃ 1.2V 1.5W 2 N-Channel 20V 31.5mΩ@2.5V 466pF 5.7nC@4.5V 58pF 65pF 6A SOT-23-6 MOSFETs ROHSTECH PUBLICMOSFETsRFM95W-915S2
LCC-16_16X16mmLCC-16_16X16mm New Arrivals ROHSHopeRF Micro-electronicsUncategorisedRV-8803-C7
Tolerance: ±20ppm, Temp Compensated ±3ppm -40°C to +85°C, Surface Mount Crystal ChipMicro CrystalUncategorisedTP4056
ESOP-8-40℃~+85℃ 1 1A 35uA 4.2V 4V~6.5V Charging IC Lithium Battery Support Support 恒流充电、恒压充电、涓流充电、自动再充电、充电终止、可编程充电电流、软启动、欠压锁定 ESOP-8 Battery Management ROHSUMWBattery ManagementBAS70-05
SOT-23-40℃~+125℃ 1 Pair Common Cathode 100mA 100nA@50V 1V@15mA 70V 70mA SOT-23 Schottky Diodes ROHSBORNSchottky Diodes
README
README.mdiow Labs Iguana

Iguana is a LoRa sensor for Smart Cities. It is an instrument designed to monitor soil temperature and humidity in real time. It is a low-cost device designed to address a wide range of scenarios. It has connectivity to different types of wireless networks (LoRa, Bt, BLE, Wifi, RF), adapting to a large number of IoT applications.
The PCB was designed with various scenarios in mind that contemplate the common needs associated with automatic irrigation, smart agriculture and soil quality monitoring. Both at the level of domestic applications and at the level of industrial applications.
The sensor considers compatibility with the following sensors:
- Soil moisture sensor ds18b20
- soil temperature sensor.
- Humidity and ambient temperature sensor.
It also has a on board driver for a little water pump, a LoRa module, an RTC module and an SD socket for datalogger functions and an OLED screen to display instant information. Another interesting attribute is that it has an RS485 converter, which allows the iguana device to be integrated with industrial sensors for monitoring soil humidity and quality that are usually compatible with ModBus RS485 protocols.
IoT,LoRa, Environmental measurement, Soil mositure, datalogger, MODBUS RS485.
OSHW LICENSES

Hardware description
The PCB was designed in KiCad7 stable realease and additional components used can be found in the official iowLabs library.
It has an ESP32 microcontroller, an RF95 module to integrate into LoRa and LoRaWAN network solutions. It has an RTC RV8803 and a micro SD card connector necessary to implement data logger functions. It additionally has a "max485" module to integrate probes for quality monitoring of industrial soils based on MODBUS RS485 communication protocol.
A simple NPN-based controller allows you to integrate small water pumps to implement automatic and remote irrigation control functionalities.
An OLED display and RGB LED let you see real-time information from the sensors.
It also has a charging module for lipo batteries based on the integrated TP4056 and a charging protection circuit. Integration with solar panel based applications can be easily achieved.
To manage the power of the circuit, an MT3608 DC DC converter and a set of LDO regulators are used that power the digital electronics, the sensors and the data logger independently. The regulators that power the units can be disabled via firmware to implement low-power features.
Dependencies
The board is based on an ESP32 microcontroller.
- USB communication through IC CH340
- Lora rfm95 module.
- microSD socket.
- RV8803 RTC module.
- max485 for RS485 communication.
- On board pump driver with a NPN 2N3904.
- On board battery charger compatible with 3.7V lipo bateries, based on TP4056.
- ws2812 RGB LED
- OLED display
Schematic
Layout
The layout is a 2 layers 8x5cm pcb.
| Top view | Bottom view |
|---|---|
BOM
The bill of materials with respective references to the LCSC part numbers of the iguana PCB components can be found in the following link.
Below is a list of the components for the probes and sensors that complement the iguana device to implement all its functionalities. The prices provided and the links are for reference only.
| component | ref price | description | Link |
|---|---|---|---|
| Soil mositure sensor | Low cost, soil moisture capacitive sensor | ||
| Soil temperature sensor | Sensor ds18b20 | ||
| Sensor de humedad y temperatura ambiente | SHT31 - case outdoor IP68 | ||
| Sensor de Temperatura y humedad de suelo industrial | Sensor MODBUS 485 capacitivo, de humedad y temperatura de suelo. | ||
| Pantalla OLED | 128x64 1.3'' | ||
| Batería LiPo | Batería lipo 3.7V 2500mAh.Tamaño menor a 65x55cm. | ||
| Tarjeta microSD | 16GB | ||
| Batería 2012 | Batería 3.3V CR2012 |
3D Model


The design allows the integration of the OLED and RGB LED display to monitor the status of the device and read the latest value from the sensors. it leaves exposed the connectors for the probes, the SMA connector for the LoRa antenna, and a switch to turn the device on and off.
| Cover | Base |
|---|---|
![]() | ![]() |
Design view files:
The device considers a 65x54 cm 3.7V lipo battery for power. This battery can be charged externally through the USB connector or through the charging input connector.
Editable files and display plans can be found in directorio.
The PCB design allows it to fit commercial project enclosures with IP65 standards or higher for outdoor or harsh weather applications.
Firmware
The developed firmware represents a collection of libraries and drivers for the board's dependencies.
This collection of useful functions is implemented in the iowIguana library. However, due to the flexibility of the design, it is possible to load a wide variety of code based on other supported libraries.
The firmware was developed using PlatformIO; however, usage examples were generated for [Arduino IDE] (https://www.arduino.cc/en/software).
| Folder | Description |
|---|---|
| firmware/iguana_project | The complete project compiled in its last version. |
| firmware/examples | Arduino compatible example codes . |
| firmware/src | The source files of the library made for iguana. |
Used libraries
Except for the uSD_iow library which is available in the official iowlabs repository, all other libraries used are available from the official Arduino and PlatformIO library manager.
- RTC : sparkfun/SparkFun Qwiic RTC RV8803 Arduino Library @ ^1.2.8
- Temperature sensor : paulstoffregen/OneWire@^2.3.7
- Temperature sensor : milesburton/DallasTemperature@^3.11.0
- Temperature and humidity sensor : adafruit/Adafruit SHT31 Library@^2.2.2
- Temperature and humidity sensor : adafruit/Adafruit BusIO@^1.14.3
- Temperature and humidity sensor : adafruit/Adafruit Unified Sensor@^1.1.13
- ArduinoJson : bblanchon/ArduinoJson@^6.21.3
- OLED : adafruit/Adafruit SH110X @ ^2.1.8
- OLED : adafruit/Adafruit GFX Library @ ^1.11.5
- fastLED : fastled/FastLED@^3.6.0
- LoRa : sandeepmistry/LoRa @ ^0.8.0
- MQTT : knolleary/PubSubClient@^2.8
Available examples
| File | Description |
|---|---|
| simple_version.ino | Collect the data from the soil moisture and the soil temperature sensors, and displays it on the screen. Print the collected data in json format through the serial monitor. |
| low_energy_version.ino | Adds a low-power mode to the simple_version code |
| lora_version.ino | Activate the LoRa module and send a message in json format. |
| mqtt_version.ino | This is an example of reading the data and sending it via MQTT to a pre-established broker. |
Available functions
- uint8_t begin(void);
- void readSoilTemperature(void);
- void readSoilMoisture(void);
- void readSTH(void);
- void readRS485(void);
- void readSensors(void);
- String pubData(void);
- void activateSensors(uint8_t sens);
- void activateLoRa(void);
- void activateAll(void);
- void iowLogo(void);
- void showLogo(void);
- void showStatus(void);
- void showData(long time_interval);
- void saveData(void);
- void moistureCal(uint8_t val);
- void temperatureCal(uint8_t val);
OTA UPDATE Disclaimer
- Iguana ahora es capaz de tener actualizaciones Http mediante OTA
- En la carpeta test se encuentra el archivo "OTA_update_mqtt.cpp"
- Robusto ante corte de energía durante actualización
- Existía un bug cuando se cortaba el wifi del dispositivo en medio de una actualización. Se levantaba un error de la librería WiFiClientSecurity en el archivo ssl_client.cpp
- Solución a bug: Se modifica el archivo ssl_client.cpp de forma que a penas se levante el error (linea 37) se haga ESP.restart(). Con esto OTA es robusto ante cualquier fallo testeado.
- Para que todo se encuentre en el repo, se descargaron los archivos .cpp y .h de la librería WiFiClientSecurity y se cargaron en la carpeta libs del proyecto. Esto con el fin de que el arreglo lo pueda pullear cualquiera que tome este código.
Parts
120| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | LED | LED_SMD:LED_0603_1608Metric | D1, D2, D4, D5, D6, D7, D10, D12 |
| 6 | 100n | Capacitor_SMD:C_0603_1608Metric | C2, C13, C14, C15, C16, C20 |
| 6 | 10K | Resistor_SMD:R_0603_1608Metric | R13, R14, R22, R24, R25, R26 |
| 6 | 10k | Resistor_SMD:R_0603_1608Metric | R17, R18, R19, R20, R21, R37 |
| 6 | 1u | Capacitor_SMD:C_0603_1608Metric | C7, C8, C9, C10, C11, C12 |
| 5 | 1k | Resistor_SMD:R_0603_1608Metric | R1, R10, R11, R12, R23 |
| 5 | 3.3k | Resistor_SMD:R_0603_1608Metric | R28, R29, R30, R31, R32 |
| 4 | 10u | Capacitor_SMD:C_0805_2012Metric | C3, C4, C17, C18 |
| 3 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U5, U6, U8 |
| 3 | D_Schottky | Diode_SMD:D_SMA | D3, D8, D9 |
| 3 | IN | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J3, J18, J19 |
| 3 | SW_DIP_x02 | IoWLabs:SMD_SWITCH | SW1, SW2, SW3 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric | R33, R34 |
| 2 | 1K | Resistor_SMD:R_0603_1608Metric | R4, R6 |
| 2 | 22u | Capacitor_SMD:C_0805_2012Metric | C1, C5 |
| 2 | 4.7u | Capacitor_SMD:C_0805_2012Metric | C6, C21 |
| 2 | LOGO | IoWLabsLogos:iguana_logo | G***, G*** |
| 2 | LOGO | IoWLabsLogos:IoWLabs_logo_13mm | G***, G*** |
| 2 | Q_PMOS_GSD | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 1 | 100 | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric | C19 |
| 1 | 120 | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | 12K | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | 1K2 | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 22u | Inductor_SMD:L_Bourns_SRP7028A_7.3x6.6mm | L1 |
| 1 | 30K | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R27 |
| 1 | 4.7K | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 470 | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 7K5 | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | BAS70-05 | Package_TO_SOT_SMD:SOT-23 | D11 |
| 1 | BAT | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J1 |
| 1 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q4 |
| 1 | Battery_Cell | Battery:BatteryHolder_Keystone_3000_1x12mm | BT1 |
| 1 | CD4148W | Diode_SMD:D_0805_2012Metric | D15 |
| 1 | CH340C | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U9 |
| 1 | Cap. Moisture Sensor | Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J4 |
| 1 | Conn_01x02 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | J14 |
| 1 | Conn_Coaxial | Connector_Coaxial:U.FL_Molex_MCRF_73412-0110_Vertical | J17 |
| 1 | DW01 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | ESP32-WROOM-32D | RF_Module:ESP32-WROOM-32 | U10 |
| 1 | FS8205A | Package_TO_SOT_SMD:SOT-23-6 | U4 |
| 1 | FUSE | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | HDR-2x1 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2 |
| 1 | HDR-2x1 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | J13 |
| 1 | HDR-3x1 | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | J9 |
| 1 | LOGO | IoWLabsLogos:iguana_15mm | G*** |
| 1 | LOGO | IoWLabsLogos:iguana_20mm | G*** |
| 1 | MAX3485 | Package_SO:SOP-8_3.9x4.9mm_P1.27mm | U7 |
| 1 | MT3608 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
| 1 | NPK/H Sensor | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J7 |
| 1 | OLED | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J10 |
| 1 | ON OFF | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | J8 |
| 1 | Q_Dual_NPN_NPN_BRT_E1B1C2E2B2C1 | Package_TO_SOT_SMD:SOT-363_SC-70-6_Handsoldering | Q3 |
| 1 | RFM95W-915S2 | RF_Module:HOPERF_RFM69HW | U12 |
| 1 | RV-8803 | IoWLabs:SON-8 | U11 |
| 1 | SHT31 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J6 |
| 1 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP2 |
| 1 | SolderJumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1 |
| 1 | TP4056 | IoWLabs:TP4056_SOP-8-PP | U2 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Amphenol_10118194_Horizontal | J12 |
| 1 | WS2812B | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D14 |
| 1 | ds18b20 | Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J5 |
| 1 | rgb led | Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J11 |
| 1 | ~ | IoWLabsConnectors:microSD_push_push | J15 |
The 118 most common of 120 parts.
Questions
How big is the Iguana V1 PCB?
It measures 80 × 50 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Iguana V1 use?
120 parts, built around the CH340C, ESP32-WROOM-32D, MAX3485ED and MT3608. 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 Iguana V1 KiCad files?
From the iowlabs/Iguana repository on GitHub, at the commit this page was made from: the board is hardware/PCB/Iguana_V1.kicad_pcb and its schematic hardware/PCB/Iguana_V1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Iguana V1 design in my own project?
Its repository states no licence, so its author keeps all rights: ask iowlabs before reusing the design.
Similar boards
- 2 layers100 × 85 mm

- 2 layers46 × 84 mm

- 2 layers80 × 25 mm

- 4 layers36.6 × 100 mm

Echometer
wzwqoo/Echometer
KiCad 10 project (v4.kicadpro, schematic + 4-layer PCB), fabrication outputs in fab/, BOM in v4.csv, and the parametric acoustic-horn generator ultrasonichornfreecad.py.
78 parts - 2 layers55 × 55 mm

- 2 layers54.9 × 95 mm

Board v5
brev-dev/another_esp8266_sensor_board
PCB layout and instructions for a multi-purpose esp8266 sensor device, with optional LORA connectivity.
86 parts5GPL-3.0 - 2 layers

- 2 layers84 × 98 mm

Joule Chief
fishPointer/Joule-Thief
I teach myself new skills by designing projects that require to develop the skills I want in order to complete them.
93 parts25MIT

