Docs / Guides

Build a Heltec LoRa clone

An ESP32-S3 + SX1262 LoRa board with USB-C, a Li-ion charger and a 0.96″ OLED, in the spirit of the Heltec WiFi LoRa 32 V3. Blank board to fab files, on iPad.

4 copper layers4 chips + display13 steps868/915 MHzNeeds PCB Canvas build 331 or later

What you’re building

Pick four chips. PCB Canvas adds each chip’s support parts from datasheets and real boards, wires power by name, and auto-routes the rest.

Heltec LoRa clone block diagram USB-C feeds the USB-serial bridge and the Li-ion charger. USB and battery join through a Schottky diode and P-FET power path into VSYS, which feeds a 3.3 V regulator. 3V3 powers the ESP32-S3 module, the SX1262 radio and, through the Vext switch, the OLED. The ESP32-S3 talks to the radio over SPI plus BUSY, DIO1 and RESET, to the bridge over UART0, and to the OLED over I2C. The radio drives an RF switch and matching network to a U.FL antenna connector. USB-C CP2102N TP4054 charger Power pathSchottky + P-FET Li-ion cell 3.3 V LDO ESP32-S3-MINI-1U1 · MCU + Wi-Fi/BLE SX1262 radioTCXO · DC-DC · RF match 0.96″ OLED U.FL antenna UART0I2CSPI +BUSY/DIO1/RSTVSYS3V3VBUSBAT
What the board is made of, and how power and signals flow. PCB Canvas places and wires most of this for you.

Parts

Search each name once in Add Part and take the top result.

Search forRoleWhat the app adds
ESP32-S3-MINI-1MCU module (U1)Decoupling, EN pull-up and RC, boot pull-up and button, the 3.3 V regulator (a choice of part) with its caps, and optionally its own native-USB USB-C. Its offer also adds the Heltec V3 display & power block.
SX1262IMLTRTLoRa radio31 parts from Semtech's reference design: DC-DC inductor, 32 MHz TCXO, RF switch, matching network, U.FL connector
CP2102NUSB-serial bridgeThe board’s USB-C with its CC pull-downs, VBUS cap and ESD diodes, decoupling, reset pull-up
TP4054Li-ion chargerCharge LED, 2-pin JST PH battery connector, USB/battery power path
Heltec V3 display & powerFrom U1’s offer, one tap0.96″ SSD1306 128×64 OLED on its 30-pin FPC with its caps and pull-ups, the Vext switch that powers it, and the battery-voltage sense on GPIO1

Steps

  1. New board

    Boards ▸ New Board. Tap Width and type 50 on the number pad, tap Height and type 26, then Create Board.

  2. Use four copper layers

    Open Layers in the left rail and set the copper count to 4. The two inner layers become the ground and power planes the router uses.

  3. Add the MCU

    Add Part ▸ search ESP32-S3-MINI-1 and take the top result. In the support offer, turn off Include in Place All on USB Receptacle: a Heltec V3’s one USB-C belongs to the CP2102N. The switch says what that means (“U1 gets no native USB”), and its CC pull-downs and VBUS cap read Left out with it. Leave the Regulator off for now, then tap Place All.

  4. Add the radio

    Add Part ▸ SX1262IMLTRT. When the offer asks which antenna, pick U.FL. Turn off its Reset Button (the Heltec has one reset, on the module) and tap Place All. Its 30 parts stay around the radio.

  5. Wire the radio in one tap

    In the radio’s support offer, open Connect SX1262 to U1 and choose Heltec V3 pins. All seven lines join by name; one Undo removes them.

  6. Add the bridge and the charger

    Add Part ▸ CP2102N: its USB-C, CC pull-downs and ESD diodes start ticked; turn off its Reset Button and tap Place All. Then Add Part ▸ TP4054 ▸ Place All.

  7. Choose the regulator

    Tap U1 ▸ Support Parts. On the Regulator row, the part menu starts on a single-cell LDO now that the charger is on the board (AP2112K-3.3; Heltec fits a CE6260B33M), with how many real boards use each. Turn on Include in Place All; its input and output caps come with it. Tap Place All.

  8. Choose battery polarity

    On the charger’s battery connector, pick BAT+ on pad 2 for Adafruit and SparkFun cells, or BAT+ on pad 1 for stock KiCad JST PH. The menu shows how many real boards use each. A cell plugged into the wrong one is reversed.

  9. Let power wire itself

    Nothing to draw: regulator output, ESP32, radio and bridge join 3V3 by name, USB feeds the charger, and USB or battery reach the regulator through VSYS. Tap any supply pad to see its net. Anything left without a supply is named in Problems.

  10. Wire USB serial

    Enter Route. Connect CP2102N TXD (pad 18) to U1 U0RXD (pad 40), and CP2102N RXD (pad 17) to U1 U0TXD (pad 39).

  11. Add the display & power

    In U1’s support offer, tap Add Heltec V3 display & power to U1. It reads Added when the OLED, its Vext switch and the battery sense are on the board and wired to Heltec’s pins; one Undo removes them.

  12. Auto-route

    In Route, tap Auto-route all, then Apply. On this board it works for up to about a minute and a half and routes most of the roughly 220 connections; the line under it counts the ones left, and Problems lists each with its reason. Finish those with Pencil (see Before you order).

  13. Check and export

    Open Problems: anything blocking sits under “to fix” with a plain reason. Then Boards ▸ Export for Manufacturing ▸ Generate for Gerbers, and Export a Copy for the .kicad_pcb. Both work after you close and reopen the app.

Wiring reference

Radio lines follow Heltec’s WiFi LoRa 32 V3.2 schematic; Meshtastic’s heltec_v3 variant agrees. ESP32 pads are for the ESP32-S3-MINI-1.

Radio (joined for you by Connect SX1262 to U1)

SignalSX1262 padESP32 GPIOMINI-1 pad
NSS19812
SCK18913
MOSI171014
MISO161115
RESET151216
BUSY141317
DIO1131418

USB serial (wired by hand) and OLED (joined for you by Add Heltec V3 display & power)

SignalESP32 GPIOMINI-1 pad
UART RX ← CP2102N TXD (pad 18)4440
UART TX → CP2102N RXD (pad 17)4339
OLED SDA1721
OLED SCL1822
OLED RST2125
Vext enable (OLED power, active low)3632
Battery sense enable (ADC_CTRL)3733
Battery voltage (ADC)15
Use pads 39 and 40 for USB serial. Pads 36 and 37 are GPIO40/41; a board wired there can’t be flashed over USB.

Before you order

Known limits in the current build, with fixes in progress: