Skip to the content
6 layers30.5 × 31.9 mmMerlynESC, the printed circuit board in 3D

Successor to the Merlyn411 25mm flight controller. The flight stack includes a 3in1 20mm flight controller and a 20mm ESC.

Size
30.5 × 31.9 mm
Copper layers
6
Thickness
1.6 mm
Parts
163
Nets
164
Pads
676
Tracks, vias
1,223, 447
Pours
31
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
30 Jul 2026
Updated
4 Oct 2026

Overview

MerlynESC is an open-source printed circuit board by YeetTheAnson, from the YeetTheAnson/Merlyn435-Flight-Stack repository on GitHub. It is a 6-layer board of 30.5 × 31.9 mm with 163 parts on 164 nets, routed with 1,223 tracks and 447 vias.

It is built around the EFM8BB21F16G-C-QFN20R, EG6288 and INA139NA/3K, with the HT7533-1, HT75C0-1 and JMSL0302AU among its other parts. Its parts include 67 resistors, 31 capacitors, 24 transistors, 12 diodes and 11 ICs. It belongs with the robots and motor control boards and the Silicon Labs (EFR32, EFM) boards of this library.

Main components

7

README

README.md

Merlyn435 Flight Stack

Introduction

This is my custom Merlyn435 Flight Stack! This project was made as a successor to my previous Merlyn411 flight controller due to several limitations. It lacked in its processing power and free UART ports. Its mounting pattern was also unconventional at 25mm, making its mounting incompatible with any ESCs on the market. By upgrading to the AT32F435@288MHz, the new Merlyn435 easily handles 8k8 PID loop and advanced autonomous flights with 3 spare UART ports.

The Merlyn435 also upgrades the IMU from the MPU6500 to the LSM6DSK320X, which provides significantly better vibration noise rejection at $3.8\ \mathrm{mdps}/\sqrt{\mathrm{Hz}}$ compared to $10\ \mathrm{mdps}/\sqrt{\mathrm{Hz}}$. This results in cooler motors and more stable flights with fewer gyro filters, preventing issues such as mid throttle oscillation and flyaways.

The Merlyn435 flight controller is designed for a wide battery voltage ranging from 2 to 6 cells. This flight controller can also be mounted in various sizes of drones from 2" to as big as it can get.

It is a 3 in 1 flight controller offers features such as an integrated 2.4GHz ExpressLRS receiver and an OSD to overlay telemetry directly in the video feed. Furthermore, it has 16MB of flash memory for blackbox logging to assist in flight tuning.

The MerlynESC is a 4 in 1 ESC which runs on Bluejay firmware and also operates from 2 to 6s battery voltages. Its maximum continuous current is 40A per motor and peaks up to 55A for a maximum duration of 10 seconds.

image image image image image

FeatureMerlyn435Merlyn411
MCUAT32F435CGU7 @ 288MHzSTM32F411CEU6 @ 100MHz
MCU Flash Size1024kB512kB
UART Interfaces5 Hardware UART (2 internal, 3 free)2 Hardware UART + 1 SoftSerial (1 internal, 1 softserial, 1 free)
IMULSM6DSK320X (SPI)MPU6500 (SPI)
BarometerBMP388 (I2C)None
OSDAT7456E (SPI)AT7456E (SPI)
Blackbox Flash16MB (SPI)16MB (SPI)
Integrated ReceiverSerial ExpressLRS 2.4GHzSerial ExpressLRS 2.4GHz
Mounting SizeM2 20x20mmM2 25.5x25.5mm
BEC5V 2A @ 1.1MHz Synchronous5V 2A @ 150kHz Asynchronous
ESC Connection8 pin JST-SH (Betaflight standard)Direct solder pads

Hardware Specifications

Merlyn435

  • MCU: AT32F435CGU7
  • IMU: LSM6DSK320X @ SPI1
  • Barometer: BMP388 @ 0x76
  • OSD: AT7456E @ SPI2
  • Blackbox: W25Q128JV 16MB Flash @ SPI2
  • Receiver: Serial ExpressLRS (ESP8285 + SX1281) @ UART2
  • Voltage range: 2-6s LiPo / Li-ion / LiHV
  • Power Supply: LMR51420YDDCR buck converter + SPX3819M5-L-3-3 LDO
  • Mounting: M2 20x20mm

MerlynESC

  • MCU: EFM8BB21F16G
  • MOSFET: JMSL0302AU
  • Gate Driver: EG6288
  • Max Current: 145A Peak / 40A Continuous @ 1.2mΩ
  • Voltage range: 2-6s LiPo / Li-ion / LiHV
  • Power Supply: HT75C0-1 12V LDO + HT7533-1 3.3V LDO
  • Mounting: M2 20x20mm

Pinout

HeaderPin nameAT32 PinDescription
ESC(1)BAT+-Battery Positive Input from ESC
(2)GND-Ground
(3)NC-No Connection
(4)CURRPA1Current Sense Input
(5)M1PB6Motor 1 Signal Output
(6)M2PB7Motor 2 Signal Output
(7)M3PB0Motor 3 Signal Output
(8)M4PB1Motor 4 Signal Output
GPSCPH2I2C SCL (Internal BMP388 & External Magnetometer)
DPH3I2C SDA (Internal BMP388 & External Magnetometer)
TPB4UART7 TX
RPB3UART7 RX
G-Ground
5-5V Power Output
URT5TPB9UART5 TX
RPB8UART5 RX
G-Ground
5-5V Power Output
CAMI-Analog Video Input
G-Ground
5-5V Power Output
URT35-5V Power Output
G-Ground
RPB11UART3 RX
TPB10UART3 TX
VTXTPA9UART1 TX (IRC Tramp / SmartAudio)
O-Analog Video Output (OSD Overlay)
G-Ground
B+-Battery Output for VTX
BZ-PC15Beeper MOSFET Pin
+-5V Power Output
POWER3-3.3V Power Input/Output
G-Ground
5-5V Power Input/Output
Test PointsRXPA2UART2 TX (ExpressLRS RX)
TXPA3UART2 RX (ExpressLRS TX)
DPA13SWDIO (Debug & Flash)
CPA14SWCLK (Debug & Flash)
RNRSTNRST (Debug & Flash)
BBOOT0BOOT0 (Debug & Flash)
JumpersBOOTESP8285 GPIO0Bridge to enter ExpressLRS bootloader mode
RSTESP8285 CHIP_ENBridge to disable internal ExpressLRS receiver

Hardware Overview

Merlyn435

image

MerlynESC

image


Flight Controller Firmware

Because the Merlyn435 is a custom hardware layout with no existing Betaflight targets, you must compile Betaflight using the custom target definitions in /firmware/source/betaflight or use the pre compiled firmware of your preferred Betaflight version in /firmware/binaries

[!IMPORTANT] The LSM6DSK320X was officially added in v2026.6. The same Betaflight configuration can be used to compile your binary for both 2025.12 and 2026.6 without any issues. However, 2025.12 does not support or detect the LSM6DSK320X, so the LSM6DSK320X IMU will only function when running 2026.6 or later.

How to build the firmware (Betaflight)

  1. Clone the betaflight repository using any UNIX terminal (use MSYS2 MINGW64 on Windows) and enter the directory
  2. Enter make configs (install any required GCC toolchain if asked)
  3. Create a directory in betaflight/src/config/configs named MERLYN435 and paste config.h in the new directory
  • For v2026.6 and later, create a directory in configs named "ANSN" before creating the MERLYN435 directory inside "ANSN"
  1. Enter make MERLYN435 and the .hex file should appear in betaflight/obj

How to build the firmware (iNav)

  1. Clone the iNav repository using any UNIX terminal (Building iNav is not supported on Windows) and enter the directory
  2. Switch to the latest iNav stable release. E.g. git checkout 9.1.0
  3. Create two directories. One named build in the root directory and another named MERLYN435 in /src/main/target
  4. Copy CMakeLists.txt, target.c and target.h into the MERLYN435 directory from /firmware/source/inav
  5. Enter the build directory
  6. Enter cmake .. (install any required GCC toolchain if asked)
  7. Enter make MERLYN435 and the .hex file should appear in /build

Flight Controller Flashing

  1. Via USB DFU Mode (Recommended): Short the SWD B test point to 3.3v and plug in the USB C cable. Open Betaflight Configurator (applicable for iNav), select your compiled local .hex file, and click Flash Firmware.
  2. Via SWD: If the bootloader is corrupted, connect an ST Link programmer to the B, D and C test points (R is optional) and flash the compiled binary with STM32CubeProgrammer.

ExpressLRS Flashing

The internal ESP8285 ExpressLRS receiver is wired to the AT32 via UART2. It uses the BETAFPV 2.4GHz Lite RX firmware target. The firmware binaries can be obtained from the ELRS site or from this repository in /firmware/binaries. There are two way to flash the receiver:

Method 1: Betaflight Passthrough

Note that Betaflight must be installed and configured before passthrough works.

  1. Bridge the BOOT pad

  2. Connect the FC via USB

  3. Open the ExpressLRS Configurator web flasher or app

  4. Select Receiver

  5. Select your preferred firmware version and the BETAFPV 2.4GHz Lite RX target and press next

  6. [OPTIONAL] Enter your bind phrase

  7. Select the Betaflight Passthrough flashing method, press next and follow the steps

Method 2: Manual Flashing

If the ESP8285 is bricked or passthrough fails, you can flash it directly using an FTDI adapter or another ESP8285/ESP8286/ESP32 or even an Arduino. Bridge R to GND as well as the BOOT jumper and connect the FTDI TX to RX and FTDI RX to TX

ESC Flashing

The MerlynESC is a 4 in 1 ESC that runs Bluejay firmware target A, MCU type H, 30x20.4ns deadtime and 48KHz PWM frequency. The firmware files can be found in /firmware/binaries or the official Bluejay repository. You can flash the EFM8BB21 chips using the C2 programming pads with a makeshift arduino programmer.


Drone Assembly

image

While this project is mainly focused on the Merlyn435 + MerlynESC flight stack, I also designed a high performance 3 inch freestyle FPV drone. If you want to recreate the full build, below is the component breakdown:

Component List

  • Frame: RATE S30 Pro carbon fiber frame
  • Motors: RATE 1505 4300KV
  • Propellers: HQProp 3x3x3
  • Camera: Caddx Ratel 2 analog camera
  • VTX: Cyclone 1W analog video transmitter
  • GPS: RATE M10 GPS module
  • Battery: GNB 4S 850mAh 120C LiHV
  • Fasteners (If using CF frame): Included with frame kit
  • Fasteners (If using 3d printed frame):
    • 6x M3 20mm Female to Female Brass Standoffs
    • 12x M3 6mm Screws
    • 4x M2 Nuts
    • 4x M2 20mm Screws
    • 8x M2 10mm Screws
    • 16x M2 6mm Screws
    • 4x M2 6mm Screws
    • 8x M2 6mm Self Tapping Screws

Why 3D Printing the Frame is Not Recommended

I advise against 3D printing your frame. On my previous build, a 100 percent infill PETG frame shattered from a very light fall. More importantly, 3D printed frames flex and resonate which causes excessive gyro noise and leads to deteriorated flight performance.

https://github.com/user-attachments/assets/90db9ad2-082e-437a-b4b3-71ebe933a74a

Assembly Instructions

The Merlyn435 and ESC uses standard 20x20mm mounting hole distance.

Stack Mounting
  1. Place 4x M2 Nuts into the recesses in the bottom frame plate.
  1. Push rubber grommets into the flight controller and ESC mounting holes.
  1. Push 4x M2 20mm screws through the adapter plate, through the rubber grommet, and through the bottom plate into the M2 nuts.
VTX Mounting

The VTX mounts to the rear of the frame.

  1. Place 4x M2 Nuts into the recesses in the bottom frame plate.
  1. Push rubber grommets into the VTX mounting holes.
  1. Push 4x M2 10mm screws through rubber grommets, down through the bottom plate, and into the M2 nuts.
Motor Mounting
  1. Mount the four 1505 4300KV motors to the arms using 16x M2 6mm screws (4 per motor). Ensure the screws do not touch the motor windings inside the bell.
  1. Mount the HQPROP 3x3x3 propellers. Pay attention to motor rotation directions (depending on your betaflight configuration, it could either be prop in or prop out). Fasten each prop with 2x M2 6mm screws.
Remaining Components
  1. Mount the analog FPV camera to the cage using 2x M2 6mm screws.
  1. Mount the camera cage to the bottom frame using 2x M2 6mm Self Tapping screws.
  1. Mount the 6x M3 20mm Female to Female Brass Standoffs and secure with 6x M3 6mm screws to the bottom plate.
  1. Press fit the antenna holder to the brass standoffs, then insert the antenna and connect the antenna to the VTX.
  1. Press fit the GPS module into the bracket.
  1. Mount the top plate and secure with 6x M3 6mm screws.
  1. Mount the GPS module and bracket underneath the top plate and secure with 4x M2 6mm Self Tapping screws.
  1. Insert 2x M2 6mm Self Tapping screws to secure the top plate to the camera cage.

Bill of Material

Note: The prices in USD are converted as of 22 August 2026 and may fluctuate. Promo codes will be applied before checkout to bring the costs down. And yes, the costs of separate components are cheaper than JLCPCB assembly.

CategoryItem NameDescriptionLinkVendorQuantityTotal Price (USD)
Flight ControllerTAXM8M4RDBCCT2T8 MHz crystallinkLCSC50.73
Flight Controller7D027000I0127 MHz crystallinkLCSC50.50
Flight ControllerXL7EL89CMI-111YLC-26M26 MHz crystallinkLCSC50.44
Flight ControllerXC21M4-52.000-F10NNHPL52 MHz crystallinkLCSC50.68
Flight ControllerTYPE-C 16P QTWTUSB C Connector SMTlinkLCSC100.75
Flight ControllerLMR51420YDDCRBuck converterlinkLCSC21.96
Flight ControllerAT7456EVideo overlay OSDlinkLCSC2 (Two because there's a deal on LCSC that lets me get both for free)7.49
Flight ControllerSPX3819M5-L-3-3/TR3.3v LDO regulatorlinkLCSC102.19
Flight ControllerAPH0420T4R7M4.7uH inductorlinkLCSC50.45
Flight ControllerUSBLC6-2SC6USB ESD protectionlinkLCSC50.92
Flight ControllerBWU.FL-IPEX1U.FL connectorlinkLCSC100.42
Flight Controller0402WGF1202TCE12k 0402 resistorlinkLCSC1000.69
Flight Controller0402WGF1501TCE1.5k 0402 resistorlinkLCSC1000.50
Flight Controller+ESCCL10A106MA8NRNC10uF 0603 capacitorlinkLCSC201.60
Flight Controller1206B475K500NT4.7uF 1206 capacitorlinkLCSC102.72
Flight ControllerW25Q128JVSIQ16MB flash chiplinkLCSC12.62
Flight ControllerHC-1.0-8PWTJST SH 8p connectorlinkLCSC50.67
Flight ControllerLSM6DSK320XTRLSM6 series IMUlinkLCSC19.18
Flight ControllerPCBPCB-JLCPCB17.00
Flight ControllerPartial PCB AssemblyPartial PCB Assembly-JLCPCB147.91
ESCGRM21BR61H106KE43L10uF 0805 capacitorlinkLCSC51.25
ESCCL31A106KBHNNNE10uF 1206 capacitorlinkLCSC205.63
ESCCL05B104KB54PNC0.1uF 0402 capacitorlinkLCSC1000.93
ESCCL05A105KA5NQNC1uF 0402 capacitorlinkLCSC500.61
ESC1SS400CMT2RSOD923 diodelinkLCSC401.02
ESCJMSL0302AUN channel MOSFETlinkLCSC257.07
ESC0402WGF1002TCE10k 0402 resistorlinkLCSC1000.19
ESC0402WGF4701TCE4.7k 0402 resistorlinkLCSC1000.50
ESC0402WGF1001TCE1k 0402 resistorlinkLCSC1000.67
ESC0402WGF100JTCE10R 0402 resistorlinkLCSC1000.58
ESCHoYLR2512E-3W-0.5mR-1%0.5mR 2512 shunt resistorlinkLCSC100.60
ESC0402WGF3902TCE39k 0402 resistorlinkLCSC1000.69
ESCHT75C0-112v LDO regulatorlinkLCSC50.99
ESCHT7533-13.3v LDO regulatorlinkLCSC50.71
ESCEFM8BB21F16G-C-QFN20RESC MCUlinkLCSC56.33
ESCEG6288Gate driverlinkLCSC103.06
ESCINA139NA/3KCurrent sensorlinkLCSC21.12
ESCPCBPCB-JLCPCB12.00
Flight Controller + ESCShippingEPOST shipping-JLCPCB16.49
Flight Controller + ESCShippingLCSC-LCSC14.92
Drone PartsRATE 1505 4300kv motorMotorslinkTaoBao428.75
Drone PartsRATE S30 Pro frameCarbon fiber framelinkTaoBao123.06
Drone PartsRATE analog antennaRight hand circular polarized 5.8GHz antennalinkTaoBao15.80
Drone PartsRATE 90mm ELRS antennaLinear polarized dipole 2.4GHz antennalinkTaoBao10.95
Drone PartsRATE beeper/buzzerActive piezo buzzerlinkTaoBao10.64
Drone PartsHQPROP T3x3x32 Pairs 3 inch propellerlinkTaoBao11.88
Drone PartsRATE XT30 + CableConnector and cablelinkTaoBao10.64
Drone PartsRATE Rubber Grommets10pcs soft mounting rubber grommetlinkTaoBao10.48
Drone PartsRATE M10 GPSNano size gps module with batterylinkTaoBao18.80
Drone Parts470uF low ESR capacitorCapacitor for MOSFET protectionlinkTaoBao10.42
Drone PartsCyclone 1W VTX5.8GHz analog video transmitterlinkTaoBao114.00
Drone PartsTaoBao TaxFees-TaoBao110.05
Drone PartsTaoBao ShippingShipping-TaoBao14.05
Drone PartsCADDX Ratel 2 + Tax19mm Analog cameralinkAliExpress128.64
Drone PartsAliExpress ShippingShipping-AliExpress10.99
Drone PartsGNB LiHV 4S 850mAh4S LiHV batterylinkShopee120.10
  • Flight Controller Total: $89.42
  • ESC Total: $33.95
  • Shipping Total: $26.50
  • Drone Parts Total: $134.16

Grand Total: $284.03

Parts

163
QtyValueFootprintReferences
2410easyeda2kicad:R_0402_1005MetricR11, R12, R13, R14, R15, R16, R21, R22, R26, R27, R31, R32, R39, R40, R44, R45 +8
24JMSL0302AUeasyeda2kicad:DFN-8_L3.2-W3.1-P0.65-LS3.4-BLQ1, Q2, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23 +8
161keasyeda2kicad:R_0402_1005MetricR3, R5, R8, R10, R19, R24, R29, R33, R37, R42, R47, R51, R53, R58, R63, R67
1210keasyeda2kicad:R_0402_1005MetricR1, R6, R9, R20, R25, R30, R38, R43, R48, R54, R59, R64
121uFeasyeda2kicad:C_0402_1005MetricC11, C12, C13, C17, C18, C19, C24, C25, C26, C29, C30, C31
124.7keasyeda2kicad:R_0402_1005MetricR2, R4, R7, R18, R23, R28, R36, R41, R46, R52, R57, R62
12T4easyeda2kicad:D_SOD-923D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12
100.1uFeasyeda2kicad:C_0402_1005MetricC10, C14, C15, C16, C20, C21, C22, C23, C27, C28
610uFeasyeda2kicad:C_1206_3216MetricC3, C4, C5, C6, C7, C8
4BLDC Motoreasyeda2kicad:MotorPadM1, M2, M3, M4
4C2CKeasyeda2kicad:TestPointH1, H4, H6, H8
4C2Deasyeda2kicad:TestPointH2, H5, H7, H9
4EFM8BB21F16Geasyeda2kicad:QFN-20_L3.0-W3.0-P0.50-BL-EP1.7_EFM8BB21F16GU3, U6, U9, U11
4EG6288easyeda2kicad:QFN-24_L4.0-W4.0-P0.50-TL-EP2.6U4, U5, U8, U10
210uFeasyeda2kicad:C_0603_1608MetricC2, C9
239keasyeda2kicad:R_0402_1005MetricR34, R35
110uFeasyeda2kicad:C_0805_2012MetricC1
1Battery 2-6seasyeda2kicad:PowerPadBT1
1ESC Headereasyeda2kicad:ESC HeaderH3
1HOYLR2512Eeasyeda2kicad:R2512R17
1HT7533-1easyeda2kicad:SOT-89-3_L4.5-W2.5-P1.50-LS4.2-BRU2
1HT75C0-1easyeda2kicad:SOT-89-3_L4.5-W2.5-P1.50-LS4.2-BRU1
1INA139NAeasyeda2kicad:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BRU7

The 159 most common of 163 parts.

More from YeetTheAnson/Merlyn435-Flight-Stack

1
  • 4 layers30.5 × 30.5 mmMerlyn435, the printed circuit board in 3D

    Merlyn435

    YeetTheAnson/Merlyn435-Flight-Stack

    Successor to the Merlyn411 25mm flight controller. The flight stack includes a 3in1 20mm flight controller and a 20mm ESC.

    106 parts6

Similar boards

  • 6 layers39.5 × 39.5 mmP4eregrine, the printed circuit board in 3D

    P4eregrine

    anticitizn/p4eregrine

    All-in-one ESP32 P4-based drone ESC, flight controller, and video processor

    359 parts21
  • 4 layers16.2 × 23.2 mmAART11, the printed circuit board in 3D

    AART11

    ImbaNagibator/slot-car-ecom

    This repo contains a KiCad design, documentation and ancillary artifacts for a slot car brushless motor electronic commutator or "eCom", also known as an Electronic Speed Controller (ESC).

    82 partsCC0-1.0
  • 8 layers30.4 × 25.2 mmUltimateFC, the printed circuit board in 3D

    UltimateFC

    crteensy/yolo-fc

    Yolo FC

    194 parts7CC-BY-SA-4.0
  • 8 layers31.3 × 26 mmUltimateFC v2, the printed circuit board in 3D

    UltimateFC v2

    crteensy/yolo-fc_1-3S

    1-3S capable variant of the Yolo flight controller

    192 parts4CC-BY-SA-4.0
  • 6 layers40 × 40 mmDragonfangFC, the printed circuit board in 3D

    DragonfangFC

    Kozma04/dragonfang-fc

    190 parts
  • 4 layers48.3 × 56.6 mm4 in 1 ESC, the printed circuit board in 3D

    4 in 1 ESC

    Triso01/FPV-Stack

    Making my own FPV Stack for Stardance (Hackclub)

    176 parts
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    663 parts915
  • 4 layers86 × 34 mmBsl drv v1, the printed circuit board in 3D

    Bsl drv v1

    jackw01/scanlight

    A better light source for scanning color negative film

    157 parts397CERN-OHL-W-2.0

Questions

How big is the MerlynESC PCB?

It measures 30.5 × 31.9 mm and has 6 copper layers, 1.6 mm thick.

What parts does the MerlynESC use?

163 parts, built around the EFM8BB21F16G-C-QFN20R, EG6288, INA139NA/3K and HT7533-1. 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 MerlynESC KiCad files?

From the YeetTheAnson/Merlyn435-Flight-Stack repository on GitHub, at the commit this page was made from: the board is PCB/ESC/MerlynESC.kicad_pcb and its schematic PCB/ESC/MerlynESC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MerlynESC design in my own project?

Its repository states no licence, so its author keeps all rights: ask YeetTheAnson before reusing the design.