Skip to content

About

A portable LoRa communicator. Custom 4-layer PCB (ESP32-S3 + E22P-915M30S LoRa + NEO-M9N GNSS), designed in KiCad for 915 MHz.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

125 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

parsnip-node

A battery-powered, portable Meshtastic/Meshcore node built around the ESP32-S3, an Ebyte E22P-915M30S LoRa front end, and a u-blox NEO-M9N GNSS receiver. Designed in KiCad, it targets 915 MHz operation in Canada under ISED RSS-247.

Overview

The goal is a self-contained LoRa node that pairs one of the longest range, best value LoRa modules, with an accurate GNSS reciever, running off two 21700 cells in series, to connect to other people on the LoRa mesh network community.

Schematic - v2

GNSS / active antenna schematic
GNSS / active antenna
LoRa front end schematic
LoRa front end
Power rails schematic
Power rails
Charger and BMS schematic
Charger / BMS
USB-C / PD schematic
USB-C / PD
Peripherals schematic
Peripherals

PCB - v2

parsnip-node PCB layout, all layers

3D Render - v2

parsnip-node board 3D render, front

In the field - v1

Assembled parsnip-node board on the bench
Assembled board
parsnip-node during outdoor testing, front
Outdoor testing
parsnip-node during outdoor testing, back
Outdoor testing, back

Hardware

Part Price
JLCPCB PCB w/ Assembly (to-be changed BOM) $1098.04 CAD (est)
21700 Cells 18650batterystore.com $40 CAD
3.7" E-Ink AliExpress 24$ CAD

Board

  • 4-layer with ENIG, 60 x 130 mm
  • JLCPCB JLC04161H-7628 stackup, 2 oz copper outer, 2 oz copper inner
  • L1-L2 prepreg 0.2104 mm, Dk 4.4
  • RF: 0.36mm trace width for ~50 Ω CPWG on this stackup, ground rails stitched with 0.3 mm / 0.6 mm vias at roughly 1.5 to 2 mm pitch

ESP32-S3 GPIO pin map

Host: ESP32-S3-WROOM-1-N16R8 (U1). GPIO numbers are ESP32-S3 GPIO, not module pins.

LoRa - E22P-915M30S (U12)

Signal GPIO
NSS 10
SCK 12
MOSI 11
MISO 13
BUSY 14
DIO1 4
NRST 40
EN 41

GNSS - NEO-M9N (U9)

Signal GPIO
TXD 1
RXD 2
TIMEPULSE 3
EXTINT 48
SDA 8
SCL 9

Other peripherals

Function GPIO
I2C SDA 8
I2C SCL 9
I2C IRQ 7
E-Ink BUSY 5
E-Ink RESET 6
E-Ink D/C 18
E-Ink CS 17
Bus CS 38
USB D- / D+ 19 / 20
UART0 TX / RX 43 / 44
RTC 32 kHz xtal 15 / 16
BOOT 0
eFuse PG 39 / 42
EMI osc gate 47
Level shifter 46
Load switch 21
PSRAM (reserved) 35 / 36 / 37
VDD_SPI (reserved) 45

Firmware

Firmware is a Meshtastic fork tracked as the firmware submodule (LimesKey/firmware). Development uses VS Code with the pioarduino extension, which Meshtastic pins for ESP32-C6 / Arduino-ESP32 3.x support. A device variant declares the pin map above and the PA control lines so TX actually keys up. Unfortunately there are some extensive changes to the Meshtastic firmware in order to incorporate a SPI GNSS module, as this is not natively supported by Meshtastic.

git clone --recurse-submodules https://github.com/LimesKey/parsnip-node.git

About

A portable LoRa communicator. Custom 4-layer PCB (ESP32-S3 + E22P-915M30S LoRa + NEO-M9N GNSS), designed in KiCad for 915 MHz.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages