Diy Esp32 Solar Lora + Gps Node
About the project
Compact, low-power, solar + battery powered, LoRa + GPS node based on ESP32-S3 PowerFeather
Project info
Difficulty: Moderate
Estimated time: 2 hours
License: GNU General Public License, version 3 or later (GPL3+)
Items used in this project
Hardware components
View all
Story
This project creates a LoRa + GPS wing that can be stacked on top (or below) of an ESP32-S3 PowerFeather to create a compact, low-power, solar + LiPo/Li-Ion powered node. The design is geared towards being able to easily DIY - using mostly through-hole/easy-to-hand-solder components and having open-source schematic & layout.
Details
The node is based on an ESP32-S3 PowerFeather, which has extensive power management and monitoring features. It takes care of managing solar & battery power, so that leaves creating the LoRa + GPS wing that can stack on top or below it for this project.
The stacked LoRa + GPS wing and ESP32-S3 PowerFeather is very compact and has all of the power management and monitoring features you could want for potential remote deployments. If you you build this yourself, you should end up with a node that supports:
- Up to 18 V, 2 A solar panel input
- Adjustable solar panel MPP voltage
- Up to 2 A battery charging
- Supply/battery voltage & current measurement
- Fuel gauging (% charge, %health, time-to-full/time-to-empty)
- Battery temperature sensing
- Battery charging current reduction/cutoff based on temperature
- Disabling either GPS and LoRa module for power saving
To get a sense of how small the node is, here it is next to a standard AA battery:
With the power stuff out of the way, let's discuss the LoRa + GPS wing. The wing design has the following features:
- 32 KHz crystal circuit
This is to support ESP32-S3 BLE modem sleep with light sleep for reducing power consumption (see this GitHub issue for more details). This feature is easy to enable when using ESP-IDF. Unfortunately, it is not enabled in the default ESP32 Arduino library build. You would need to build custom Arduino libraries if you want to use this external crystal circuit with Arduino.
- NiceRF LoRa126X module footprint
This module was chosen since it can be soldered both surface mount or through hole. The design accomodates both.
There are three variants of the Lora126X module depending on the frequency: LoRa1268-433/490, LoRa1262-868 and LoRa1262-915. The footprints are the same for all of them, so use the module with the appropriate frequency for your country.
This module is powered from the ESP32-S3 PowerFeatherÃÆââââ¬Å¡Ã¬Ã¢ââ¬Å¾Ã¢s STEMMA QT connector 3.3 V output which has a load switch so it can be turned off to save power if necessary
- ATGM336H GPS module footprint
This module is low-cost, has small size and good performance. It's power consumption is a little bit high, though. To address this, this module is powered from the ESP32-S3 PowerFeatherÃÆââââ¬Å¡Ã¬Ã¢ââ¬Å¾Ã¢s 3.3 V header output, which also has a load switch. This means it can be turned off when not in use to save power. This is especially handy since the module does not expose the GPS chipÃÆââââ¬Å¡Ã¬Ã¢ââ¬Å¾Ã¢s EN pin.
- Combined antenna footprint
Combines footprint for U.FL connector, edge SMA connector and spring antenna so that you can choose whatever suits your enclosure.
Instructions
PCB Fabrication
Build the wing using a 2-layer, 1.6 mm thick, FR4, 1-oz copper PCB. If using different PCB thickness, core material or copper thickness, recalculate the antenna feed trace width to achieve ~50 ohms impedance.
KiCad has a built-in calculator for doing so:
Component orientation
For the GPS module, solder the included 2.54 male headers onto the module. Then, solder the whole module onto the PCB. The metal shielding (the one with the QR code) should be facing towards the bottom of the PCB.
For the LoRa module, if using through hole, solder on 2.0 mm male headers to the module. However, no matter if SMD or through hole, the antenna pin should be on the bottom right corner when soldering to the PCB:
For the electrolytic capacitor, the GND lead should be facing towards the GPS module. In the image below, the white stripe indicates the negative lead for the electrolytic capacitor.
All other caps (ceramic/tantalum) and the crystal donÃÆââââ¬Å¡Ã¬Ã¢ââ¬Å¾Ã¢t have polarity.
If using the VDC pins for solar panel/DC source, positive is on the right, and GND is on the left (also written on the silkscreen).
STEMMA QT Cable
Pay attention to the relative order of the wires to each other when soldering the STEMMA QT cable. My advice is to first insert the STEMMA QT connector into the ESP32-S3 PowerFeather, and then solder the wires on the wing in the same relative order. For example:
You might get a STEMMA QT cable with different colored wires, or the same colors but different ÃÆââââ¬Å¡Ã¬Ãâ¹Ã
âabsoluteÃÆââââ¬Å¡Ã¬Ã¢ââ¬Å¾Ã¢ order. Make sure however, that the relative order is the same for both the STEMMA QT connector on the main board and soldered wires on the wing.
Schematics, diagrams and documents
Code
Credits
PowerFeather
Low power, solar capable, Li-ion/LiPo powered IoT development boards in a Feather-compatible format.
Leave your feedback...