Skip to content

Rotini V3 Overview

Rotini is an all-in-one meltybrain control board: power regulation, reverse-polarity protection, a switched high-voltage LED output, an ExpressLRS 2.4 GHz receiver, and inertial sensing on one 47 × 22 mm PCB. An ESP32-S2 runs the control loop using the SimpleMelt Arduino library.

This page documents Rotini V3

Facts below come from the V3 schematic and netlist as ordered in 2024. V4 (ESP32-S3) is a different board and will get its own pages.

What is on the board

Block Part Notes
Main MCU ESP32-S2FH4 4 MB flash, no PSRAM, native USB
Receiver MCU ESP8285H16 Runs ExpressLRS firmware
Radio SX1280 2.4 GHz LoRa, wired to the ESP8285
Accelerometer H3LIS331DL ±400 g, SPI
Magnetometer MMC5983MA SPI
Regulator SY8201CABC 3.3 V buck, 1 A
Reverse polarity AO3401A P-channel FET on VIN
USB USB-C receptacle Data to the ESP32-S2, VBUS feeds VCC via a Schottky diode

The two MCUs talk over a UART. The ESP32-S2 reads CRSF channel data from the receiver and sends battery telemetry back.

Connectors and pads

Solder pads

Pad Label Function
J205 VIN Battery positive
J2, J6, J206 GND Battery negative, ESC signal ground
J207 FOO ESC signal output 1 (GPIO34)
J208 BAR ESC signal output 2 (GPIO35)
J4 LED_HV Switched battery voltage for the melty LED
J5 3V3 Regulated 3.3 V output
J3 Spare1 GPIO9, unprotected
J7 Spare2 GPIO10, unprotected
J8 Spare3 GPIO40, unprotected

Boot header (J1, 6-pin JST-SH, 1.0 mm)

This header is how you flash the ESP8285 and how you force the ESP32-S2 into download mode.

Pin Net Function
1 GND Ground
2 ELRS_BOOT ESP8285 GPIO0. Short to GND at power-up to enter download mode
3 ELRS_RX ESP8285 UART receive. Connect to your adapter's TX
4 ELRS_TX ESP8285 UART transmit. Connect to your adapter's RX
5 S2_BOOT ESP32-S2 GPIO0. Short to GND at power-up to enter download mode
6 3V3 3.3 V rail. Can power the board from a UART adapter

Test pads

Pad Net
TP1 ELRS_TX
TP2 ELRS_RX
TP3 GND
TP4 S2_BOOT
TP5 S2_EN (ESP32-S2 reset, ground to hold the S2 in reset)
TP7 ELRS_BOOT

Antenna

The SX1280 RF output goes to both a U.FL connector (J60) and a 2.4 GHz chip antenna (J61). The ESP8285 has its own PCB trace antenna for WiFi updates.

GPIO map (ESP32-S2)

These match the pin constants in the SimpleMelt Rotini-Example sketch.

Function GPIO Notes
BOOT 0 J1 pin 5, TP4
SPI MISO 1 Shared by accelerometer and magnetometer
Magnetometer CS 2
VIN sense 3 ADC, through a 15 kΩ / 2.2 kΩ divider
Board version sense 5 ADC, 5.1 kΩ / 3.3 kΩ divider, about 1.3 V on V3
CRSF RX 7 Data from the receiver (net ELRS_TX)
CRSF TX 8 Data to the receiver (net ELRS_RX)
Spare1 9 J3
Spare2 10 J7
Accelerometer CS 11
Accelerometer INT 12
Magnetometer INT 13
SPI MOSI 14
SPI SCK 17
USB D− / D+ 19 / 20 USB-C
Motor FOO 34 Through 100 Ω and an ESD diode to pad J207
Motor BAR 35 Through 100 Ω and an ESD diode to pad J208
Spare3 40 J8
Status LED 41 Green LED, active high
Melty LED 42 Drives the LED_HV switch, active high

GPIO18 has a pull-up but is otherwise unused. UART0 (GPIO43/44) is not broken out.

Onboard LEDs

LED Colour Meaning
D40 Blue 3.3 V rail is up
D41 Green Status, driven by ESP32-S2 GPIO41
D60 Yellow ExpressLRS status, driven by ESP8285 GPIO16

Power

Input

Parameter Value Set by
Minimum VIN 4.5 V SY8201 minimum input
Maximum VIN 27 V SY8201 absolute maximum
Reverse polarity Protected AO3401A P-FET, rated 30 V
Practical batteries 2S to 6S LiPo A charged 6S pack is 25.2 V, leaving little margin

No transient protection on V3

There is no TVS diode on VIN. Voltage spikes from ESC braking add to the pack voltage. On 6S you are already close to the regulator's limit, so treat 6S as the ceiling and prefer 4S when you can.

USB power

VBUS feeds VCC through a 1N5819 Schottky diode. The board runs from USB alone, so you can program and test with no battery connected. The diode also stops the battery from back-feeding the USB port.

3.3 V rail

The SY8201 buck converter supplies up to 1 A total. The ESP32-S2, ESP8285, SX1280 and sensors share it, so leave the bulk of that for the board and keep external loads on the 3V3 pad to a couple hundred milliamps.

LED_HV output

LED_HV is battery voltage switched by a high-side P-channel FET (LBSS84). It turns on when the ESP32-S2 drives GPIO42 high.

Parameter Value
Output voltage VCC (battery voltage minus the reverse-polarity FET drop)
Continuous current 130 mA maximum
Current limiting None on the board

Size a series resistor for your LED at your pack voltage, or use an LED module rated for the pack voltage. Exceeding 130 mA will damage the FET.

ESC outputs

FOO and BAR are 3.3 V logic outputs with a 100 Ω series resistor and an ESD clamp. SimpleMelt drives them with OneShot125 at 400 Hz. Connect ESC signal to the pad and ESC signal ground to a GND pad.

Battery voltage sensing

VIN is divided by 15 kΩ / 2.2 kΩ onto GPIO3, a ratio of about 7.8. The example sketch multiplies by 8.21, which was calibrated on real boards. The ADC tops out near 3.1 V, which corresponds to about 24 V of pack voltage.