Skip to the content
PCBKitNew board
2 layers80 × 50 mmIguana V1, the printed circuit board in 3D

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

12

README

README.md

iow Labs Iguana

Foto real

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

OSL

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

Detalle del esquemático de la placa phecda

Layout

The layout is a 2 layers 8x5cm pcb.

Top viewBottom view
front view of the pcb form kicadback view of the pcb form kicad

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.

componentref pricedescriptionLink
Soil mositure sensorLow cost, soil moisture capacitive sensor
Soil temperature sensorSensor ds18b20
Sensor de humedad y temperatura ambienteSHT31 - case outdoor IP68
Sensor de Temperatura y humedad de suelo industrialSensor MODBUS 485 capacitivo, de humedad y temperatura de suelo.
Pantalla OLED128x64 1.3''
Batería LiPoBatería lipo 3.7V 2500mAh.Tamaño menor a 65x55cm.
Tarjeta microSD16GB
Batería 2012Batería 3.3V CR2012

3D Model

Enclousure diseñado para Iguana

Render 3D de la placa Iguana

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.

CoverBase
componente superior del casecomponente inferior del case

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).

FolderDescription
firmware/iguana_projectThe complete project compiled in its last version.
firmware/examplesArduino compatible example codes .
firmware/srcThe 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

FileDescription
simple_version.inoCollect 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.inoAdds a low-power mode to the simple_version code
lora_version.inoActivate the LoRa module and send a message in json format.
mqtt_version.inoThis 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
QtyValueFootprintReferences
8LEDLED_SMD:LED_0603_1608MetricD1, D2, D4, D5, D6, D7, D10, D12
6100nCapacitor_SMD:C_0603_1608MetricC2, C13, C14, C15, C16, C20
610KResistor_SMD:R_0603_1608MetricR13, R14, R22, R24, R25, R26
610kResistor_SMD:R_0603_1608MetricR17, R18, R19, R20, R21, R37
61uCapacitor_SMD:C_0603_1608MetricC7, C8, C9, C10, C11, C12
51kResistor_SMD:R_0603_1608MetricR1, R10, R11, R12, R23
53.3kResistor_SMD:R_0603_1608MetricR28, R29, R30, R31, R32
410uCapacitor_SMD:C_0805_2012MetricC3, C4, C17, C18
3AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U5, U6, U8
3D_SchottkyDiode_SMD:D_SMAD3, D8, D9
3INConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3, J18, J19
3SW_DIP_x02IoWLabs:SMD_SWITCHSW1, SW2, SW3
2100kResistor_SMD:R_0603_1608MetricR33, R34
21KResistor_SMD:R_0603_1608MetricR4, R6
222uCapacitor_SMD:C_0805_2012MetricC1, C5
24.7uCapacitor_SMD:C_0805_2012MetricC6, C21
2LOGOIoWLabsLogos:iguana_logoG***, G***
2LOGOIoWLabsLogos:IoWLabs_logo_13mmG***, G***
2Q_PMOS_GSDPackage_TO_SOT_SMD:SOT-23Q1, Q2
1100Resistor_SMD:R_0603_1608MetricR2
110nCapacitor_SMD:C_0603_1608MetricC19
1120Resistor_SMD:R_0603_1608MetricR16
112KResistor_SMD:R_0603_1608MetricR7
11K2Resistor_SMD:R_0603_1608MetricR3
122uInductor_SMD:L_Bourns_SRP7028A_7.3x6.6mmL1
130KResistor_SMD:R_0603_1608MetricR9
1330Resistor_SMD:R_0603_1608MetricR27
14.7KResistor_SMD:R_0603_1608MetricR15
1470Resistor_SMD:R_0603_1608MetricR8
17K5Resistor_SMD:R_0603_1608MetricR5
1BAS70-05Package_TO_SOT_SMD:SOT-23D11
1BATConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ1
1BSS138Package_TO_SOT_SMD:SOT-23Q4
1Battery_CellBattery:BatteryHolder_Keystone_3000_1x12mmBT1
1CD4148WDiode_SMD:D_0805_2012MetricD15
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU9
1Cap. Moisture SensorConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ4
1Conn_01x02Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJ14
1Conn_CoaxialConnector_Coaxial:U.FL_Molex_MCRF_73412-0110_VerticalJ17
1DW01Package_TO_SOT_SMD:SOT-23-6U1
1ESP32-WROOM-32DRF_Module:ESP32-WROOM-32U10
1FS8205APackage_TO_SOT_SMD:SOT-23-6U4
1FUSEFuse:Fuse_1206_3216MetricF1
1HDR-2x1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1HDR-2x1Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJ13
1HDR-3x1Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabelsJ9
1LOGOIoWLabsLogos:iguana_15mmG***
1LOGOIoWLabsLogos:iguana_20mmG***
1MAX3485Package_SO:SOP-8_3.9x4.9mm_P1.27mmU7
1MT3608Package_TO_SOT_SMD:SOT-23-6U3
1NPK/H SensorConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ7
1OLEDConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ10
1ON OFFJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJ8
1Q_Dual_NPN_NPN_BRT_E1B1C2E2B2C1Package_TO_SOT_SMD:SOT-363_SC-70-6_HandsolderingQ3
1RFM95W-915S2RF_Module:HOPERF_RFM69HWU12
1RV-8803IoWLabs:SON-8U11
1SHT31Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ6
1SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1SolderJumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1TP4056IoWLabs:TP4056_SOP-8-PPU2
1USB_B_MicroConnector_USB:USB_Micro-B_Amphenol_10118194_HorizontalJ12
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD14
1ds18b20Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ5
1rgb ledConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ11
1~IoWLabsConnectors:microSD_push_pushJ15

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 mmPhecda board, the printed circuit board in 3D

    Phecda board

    iowlabs/phecda

    phecda reposiroty

    92 parts1
  • 2 layers46 × 84 mmVocore breakout, the printed circuit board in 3D

    Vocore breakout

    electroniceel/vocore2-breakout

    Breakout-board for the VoCore2

    88 parts11CC-BY-4.0
  • 2 layers80 × 25 mmLedGateController, the printed circuit board in 3D

    LedGateController

    Knifa/ws28xx-led-driver

    A straightforward DIY WS28xx LED driver.

    73 parts3
  • 4 layers36.6 × 100 mmEchometer, the printed circuit board in 3D

    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 mmPulsera, the printed circuit board in 3D

    Pulsera

    montero-elian/Proyecto-Pulsera

    37 parts
  • 2 layers54.9 × 95 mmBoard v5, the printed circuit board in 3D

    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 layersCharger stepup, the printed circuit board in 3D

    Charger stepup

    Aplyard/Oled-Clicker

    Clicker Counter for Arduino Nano

    19 parts117BSD-3-Clause
  • 2 layers84 × 98 mmJoule Chief, the printed circuit board in 3D

    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