mesh_hand is a compact open-source Meshtastic handheld designed for experimentation, hiking, and learning embedded hardware design.
I wanted to better understand RF systems, power management, PCB layout, and portable communication devices, so instead of buying an existing Meshtastic node, I designed my own from scratch in KiCad.
The project is built around the ESP32-S3-WROOM-1U and E22-900M30S LoRa module in a compact 75 × 50 mm form factor with USB-C, GPS support, battery charging, and external SMA antennas.
This project is still experimental, but it already taught me a lot about:
- RF hardware
- thermal management
- power supply design
- PCB assembly
- debugging embedded systems
The main goals of the project were:
- Build a portable Meshtastic handheld
- Learn RF and embedded PCB design
- Create something fully open-source
- Experiment with off-grid communication
- Eventually improve Meshtastic coverage around my area and school
- ESP32-S3-WROOM-1U-N16R8
- E22-900M30S LoRa module
- NEO-M9N GPS support
- USB-C connectivity
- IP5306 power management
- 1S2P 18650 battery support
- External SMA connectors for LoRa and GPS
- SSD1306 header support
- Designed in KiCad
- Manufactured by PCBWay
The board was designed entirely in KiCad with a focus on keeping the handheld compact while still including:
- USB-C power
- LoRa
- GPS
- battery charging
- debugging features
- status LEDs
The PCB measures approximately 75 × 50 mm.
One design goal was making the RF section easier to assemble by using the E22-900M30S module instead of a bare RF IC.
[pcb render image here]
AssemblyMost of the board was assembled by hand using:
- soldering iron
- hot air station
- lots of flux
The most difficult part to solder was the tiny 3.3V buck converter due to its extremely small package size.
The E22-900M30S module was surprisingly easy to solder compared to some of the smaller power components.
[INSERT ASSEMBLY PHOTOS]
First Bring-UpThe board successfully booted on its first test using a simple blink program.
After confirming the ESP32-S3 worked correctly, I flashed Meshtastic firmware and tested LoRa transmission.
The board currently transmits successfully, although receiving tests are difficult because my area is mostly a Meshtastic dead-zone.
Problems and Lessons LearnedThis first revision exposed several hardware issues and valuable lessons.
ESP32-S3 USB ProblemsThe original ESP32-S3-WROOM-1U-N8 module had USB stability issues and random resets, especially during hot outdoor conditions.
Switching module variants and improving power stability helped reduce the issue.
Inductor Current Rating MistakeOne major problem was undersized inductors in the buck and boost converter circuits.
The original inductors were only rated for:
- 210mA
- 2.1A
but the design required significantly more current capability.
Although the power system technically worked, it was not stable under higher loads.
Future revisions will use higher-current inductors and improved power calculations.
Thermal IssuesThe LoRa radio module and ESP32-S3 both became noticeably hot during operation, especially when transmitting at 30dBm outdoors.
To reduce heat:
- transmit power is sometimes reduced to 10dBm
- future revisions may include heatsinks and improved thermal design
The board originally included SSD1306 display support, but the pads were damaged and ripped off during transportation.
Future revisions will improve mechanical strength around connector areas.
Future ImprovementsPlanned upgrades for future revisions include:
- improved thermal management
- stronger display connector pads
- revised power system
- larger capacitors
- removing unnecessary sensors/components
- 3D printed enclosure
- better Meshtastic field testing
The entire project is open-source.
GitHub repository:




















Comments