

PL18 ELRS
A DIY internal ExpressLRS transmitter module for the Flysky Paladin PL18 radio, repurposing the stock FRM301 module's casing and RF module.
- Size
- 26.2 × 45.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 8
- Nets
- 29
- Pads
- 66
- Tracks, vias
- 121, 69
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 20 Jul 2026
- Updated
- 22 Jul 2026
Overview
PL18 ELRS is an open-source printed circuit board by richardclli, from the richardclli/PL18-ELRS-Module repository on GitHub, published under the MIT licence. It is a 2-layer board of 26.2 × 45.5 mm with 8 parts on 29 nets, routed with 121 tracks and 69 vias.
It is built around the WS2812B-2020. Its parts include 2 resistors, 2 ICs, 2 diodes, 1 connector and 1 switch. It belongs with the ESP32 boards of this library.
Main components
1README
README.mdFlysky PL18 ExpressLRS TX Module
A DIY internal ExpressLRS transmitter module for the Flysky Paladin PL18 radio, repurposing the stock FRM301 module's casing and RF module.
Overview
The Flysky PL18 ships with the FRM301 external TX module. This project replaces the FRM301's internal PCB with a custom carrier board that combines a Waveshare ESP32-S3-Tiny as the protocol bridge and the FRM301's HF200 RF module as the 2.4GHz ExpressLRS frontend. The result is a fully-featured, drop-in ExpressLRS transmitter module that fits the existing module bay and communicates with the radio over its 5-pin SPORT port.
Features
- Drop-in replacement for the FRM301 module — reuses the original casing
- Waveshare ESP32-S3-Tiny running ExpressLRS firmware
- HF200 2.4GHz RF module with antenna diversity switching
- Dual WS2812B-2020 RGB status LEDs
- Boot button for easy firmware flashing
- Powered entirely from the radio's 5V rail
Photos
Bill of Materials
| Ref | Part | Qty | Notes |
|---|---|---|---|
| — | PL18-ELRS PCB | 1 | Order using the Gerber files in this repo |
| — | FRM301 donor module | 1 | Harvest the HF200 RF module and the plastic casing |
| U1 | Waveshare ESP32-S3-Tiny | 1 | Product page |
| U2 | HF200 RF module | 1 | Desoldered from the FRM301 |
| D1, D2 | WS2812B-2020 | 2 | 2.0×2.0mm PLCC4 package RGB LED |
| R1, R2 | 10kΩ 0603 resistor | 2 | |
| SW1 | KMR2 tactile switch | 1 | 3.2×4.2mm |
| J1 | 5-pin 2.54mm male header | 1 | DS-B01F-A-S2 or equivalent |
Pinout
PL18 Connector (J1)
| Pin | Signal | ESP32-S3 GPIO | Description |
|---|---|---|---|
| 1 | SPORT | IO04 | S.Port (bidirectional CRSF protocol) |
| 2 | GND | — | Ground |
| 3 | +5V | — | 5V power input from radio |
| 4 | NC | — | Not connected |
| 5 | NC | — | Not connected |
ESP32-S3 to HF200 RF Module
| ESP32-S3 GPIO | HF200 Pin | Function |
|---|---|---|
| IO04 | — | SPORT (to PL18 connector) |
| IO06 | TXEN | TX enable |
| IO07 | RXEN | RX enable |
| IO08 | DI01 | Bidirectional data |
| IO09 | BUSY | Busy status (input) |
| IO10 | SPI_NSS | SPI chip select |
| IO11 | SPI_MOSI | SPI MOSI |
| IO12 | SPI_CLK | SPI clock |
| IO13 | SPI_MISO | SPI MISO |
| IO14 | RESET | HF200 reset |
| IO15 | L_ANT_SW | Left antenna switch |
| IO16 | R_ANT_SW | Right antenna switch |
| IO17 | SW1 | Boot button (active low) |
| IO18 | D1 DIN | WS2812B LED data line |
Power
| Rail | Source | Supplies |
|---|---|---|
| +5V | PL18 connector (J1) | ESP32-S3-Tiny (U1), HF200 (U2) |
| +3V3 | ESP32-S3 internal regulator | WS2812B LEDs (D1, D2), L_POWER pull-up (R2) |
Schematic & PCB
The PCB design was created in KiCad 10.0.
- Layers: 2-layer FR4, 1.6mm thickness
- Copper: 35μm (1oz)
- Surface finish: HASL or ENIG
- Board shape: Custom outline matching the FRM301 internal cavity
KiCad project files
| File | Description |
|---|---|
PL18_ELRS.kicad_pro | KiCad project file |
PL18_ELRS.kicad_sch | Schematic |
PL18_ELRS.kicad_pcb | PCB layout |
Multi.kicad_sym | Custom symbol library |
Multi.pretty/ | Custom footprint library |
The custom footprints include the WS_ESP32S3_Tiny (23-pin SMT module) and HF200-SMT (22-pin RF module) footprints matched to the donor parts.
Assembly
- Harvest the HF200. Open the FRM301 module and carefully desolder the HF200 RF module from the original PCB. Set the plastic casing aside for later use.
- Solder the HF200 (U2). Mount the HF200 module on the back side of the PL18-ELRS PCB at the U2 footprint.
- Solder the ESP32-S3-Tiny (U1). Mount on the front side at the U1 footprint.
- Solder passives and LEDs. Place R1, R2 (10kΩ 0603), D1, D2 (WS2812B-2020), and SW1 (KMR2 switch) on the front side.
- Solder the header (J1). Mount the 5-pin male header on the back side, ensuring the pins face toward the rear of the module for proper alignment with the PL18 bay connector.
- Fit into the casing. Insert the assembled PCB into the salvaged FRM301 plastic casing.
Firmware
The ExpressLRS target definition for the Flysky PL18 is maintained at:
github.com/richardclli/ELRS-targets
Flashing
- Use the ExpressLRS Configurator and select the Flysky PL18 target.
- Connect the ESP32-S3-Tiny via USB to your computer.
- Hold the boot button (SW1) while applying power (or while connecting USB).
- Flash the firmware using the configurator.
After flashing, configure ExpressLRS to use the SPORT protocol for telemetry.
Manufacturing
The repository includes a complete set of manufacturing outputs in the root directory:
| File | Description |
|---|---|
PL18_ELRS-F_Cu.gbr | Top copper |
PL18_ELRS-B_Cu.gbr | Bottom copper |
PL18_ELRS-F_Mask.gbr | Top solder mask |
PL18_ELRS-B_Mask.gbr | Bottom solder mask |
PL18_ELRS-F_Paste.gbr | Top solder paste |
PL18_ELRS-B_Paste.gbr | Bottom solder paste |
PL18_ELRS-F_Silkscreen.gbr | Top silkscreen |
PL18_ELRS-B_Silkscreen.gbr | Bottom silkscreen |
PL18_ELRS-Edge_Cuts.gbr | Board outline |
PL18_ELRS-PTH.drl | Plated through-hole drill |
PL18_ELRS-NPTH.drl | Non-plated through-hole drill |
To order PCBs, zip all Gerber and drill files and upload to your preferred fab (JLCPCB, PCBWay, etc.) with these specs:
- Layers: 2
- Thickness: 1.6mm
- Material: FR4
- Copper: 1oz
- Surface finish: HASL (or ENIG for easier hand-soldering)
License
This project is licensed under the MIT License — see the LICENSE file for details.
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2 |
| 2 | WS2812B-2020 | LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mm | D1, D2 |
| 1 | HF200 | Multi:HF200-SMT | U2 |
| 1 | PL18 | Multi:DS-B01F-A-S2 | J1 |
| 1 | SW_Push | Multi:SW_Push_3.2x4.2 | SW1 |
| 1 | WS_ESP32S3_Tiny | Multi:WS_ESP32S3_Tiny | U1 |
Similar boards
- 4 layers16.9 × 119.4 mm

- 4 layers78 × 59 mm

- 2 layers240 × 240 mm

- 2 layers26 × 28 mm

- 2 layers86 × 54 mm

- 4 layers35 × 85 mm

Vimdrones esc development board
VimDrones/AM32_esc_development_board
Open Source AM32 ESC development board
95 parts44GPL-3.0 - 2 layers31.9 × 36 mm

Lemon pcb swizzle
rianadon/Cosmos-Keyboard-PCBs
Open-Source keyboard PCB designs for the Cosmos Keyboard Generator
63 parts43 - 6 layers155.5 × 194.6 mm

NerdEKO Gamma NoATX
phil31/NerdEKO-Gamma
fork of the NerdOCTAXE-Gamma design (https://github.com/Patsch91/NerdOCTAXE-Gamma), with 12 x BM1370 (14TH/s SHA256)
499 parts42
Questions
How big is the PL18 ELRS PCB?
It measures 26.2 × 45.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the PL18 ELRS use?
8 parts, built around the WS2812B-2020. 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 PL18 ELRS KiCad files?
From the richardclli/PL18-ELRS-Module repository on GitHub, at the commit this page was made from: the board is PL18_ELRS.kicad_pcb and its schematic PL18_ELRS.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the PL18 ELRS design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).