Shramko Motor Autostart
ENESPLRU

Betaflight firmware + browser configurator

Shramko Motor Autostart

A small Betaflight 2025.12.1 module that turns a flight controller into a standalone motor driver: plug in the battery, it waits, ramps the ESC smoothly to your throttle and holds it — no transmitter, no receiver. This page connects to the board over USB, right in your browser: edit every setting, save it and watch the motor live.

Ramp starts
10.01 s after power-on
Ramp takes
10.02 s
Max deviation from a straight ramp
1 µs
Unit tests
42

Measured on a real HGLRC F405 8S V2 over USB with the default settings (10 s delay, 10 s ramp to 15 %). Raw data and test tools: README → Verified on hardware.

Configurator

Plug the board in by USB and press Connect. The board's settings and live data stay between your browser and the board.

The configurator needs JavaScript and Web Serial

It runs in Chrome, Edge or Opera on Windows, macOS, Linux and ChromeOS, and in Firefox 151+ (it asks once for a site permission). Android: Chrome 148+ on phones whose Android supports USB serial — try it. iPhone and iPad cannot do it: their browsers have neither Web Serial nor WebUSB.

No suitable browser? Every setting is also in the Betaflight CLI: get autostart, set autostart_throttle = 80, save. Names, ranges and defaults: settings reference.

Install the firmware

About five minutes, once per board. You need the board, a USB cable and Chrome or Edge.

  1. Download the .hex

    Open the latest release on GitHub and download the file for your board. Ready build: HGLRC F405 8S V2 (Betaflight board_name HGLRC_F405_S8) — betaflight_2025.12.1_STM32F405_HGLRC_F405_S8_autostart.hex.

  2. Take the propeller off

    Before you flash or connect anything, remove the propeller or blower wheel. With this firmware the motor starts by itself 10 seconds after a battery is plugged in.

  3. Flash it with the Betaflight App

    Open app.betaflight.com in Chrome or Edge and plug the board in by USB. Go to Firmware Flasher, press Load Firmware [Local], choose the .hex and press Flash Firmware.

  4. Windows says “DFU device not found”?

    Windows is missing the bootloader driver. Run the ImpulseRC Driver Fixer (one click), or use Zadig: pick STM32 BOOTLOADER and install WinUSB. Then flash again.

  5. First start, then connect here

    The first boot after flashing over another Betaflight resets all settings once — that is expected: this build's defaults are the project settings (DShot300, 10 s delay, 10 s ramp, 15 %). Close the Betaflight App (only one program can use the port at a time) and press Connect above.

Another Betaflight board?

Build it from source: copy the board's config.h from betaflight/config into configs/<BOARD>/, add #define USE_AUTOSTART and run the Docker build — see README → Build from source.

Versions

v1.1.0 (current): delay, ramp, throttle and its limit, run time, random gusts, battery cut-off, outputs, battery gate, button and RC switch. v1.0.0 boards connect too but show only the settings they have — update to get the rest. To go back, flash …_stock.hex from the release: the same Betaflight without the module.

How it works

The module writes the throttle where the Betaflight Motors tab writes it while disarmed, so the DShot/PWM output, ESC arming and telemetry stay stock. A 50 Hz task runs five states:

  1. IDLE

    Wait for the battery

    The board measures the battery on its B pin. From autostart_vbat_min (6.0 V) on, the battery counts as plugged in. On battery-only power that is the moment of power-on.

  2. DELAY

    Countdown

    autostart_delay seconds (10). Meanwhile the ESC gets stop frames — always at least 3 s — so it arms on zero throttle.

  3. RAMP

    Ramp

    A straight line from 0 to autostart_throttle (15 %) in autostart_ramp (10.0 s). The settings are frozen when the program starts.

  4. RUN

    Steady or gusts

    STEADY holds the level. GUSTS adds random sharp bursts between autostart_gust_min and autostart_gust_max. autostart_throttle_limit caps every output.

  5. DONE · LOW_BATTERY

    Stop

    DONE when autostart_run_time is over; LOW_BATTERY when the battery stays below cells × autostart_cell_cutoff (3.30 V per cell) for 5 s — then the ESC beeps every 3 s. With a run time of 0 it runs until the cut-off or power off.

What stops the program

  • Entering the CLI
  • The Configurator Motors tab (any MSP_SET_MOTOR)
  • Arming via a receiver
  • A valid receiver link (unless autostart_box is set)
  • Run time over
  • Battery cut-off
  • Unplugging the battery
  • A button click while it runs

It never restarts by itself. In POWER mode, plugging a battery in again starts the countdown again. Every name, range and default: settings reference.

Wiring: HGLRC F405 8S V2 + Flycolor X-Cross HV3 160A (6S)

Use the 8-wire cable that comes with the flight controller (white ×4, yellow, green, black, red). Three joints, each soldered and insulated:

  1. ESC yellow (signal) → cable white next to the yellow (pin 1; in this build all four whites carry the same signal)
  2. ESC black (signal ground) → cable black (G)
  3. A new thin wire (22–24 AWG) from battery + → cable red (B, board power)
Wiring diagram: the ESC's yellow signal wire goes to a white wire (pin 1) of the flight controller's 8-wire cable, the ESC's black wire to the cable's black (G), and a new wire from battery plus to the cable's red (B).
Full pin map, the optional button and the first power-up checklist: docs/wiring.md.

Which computers and phones work

The configurator talks to the board through Web Serial, a browser feature that only some browsers have.

DeviceBrowserWorks?
Windows, macOS, LinuxChrome, Edge, OperaYes
Windows, macOS, LinuxFirefox 151+Yes — asks once for a site permission (flashing firmware needs Chrome or Edge)
Windows, macOS, LinuxSafari, older FirefoxNo — no Web Serial
Android phone or tabletChrome 148+ with a USB-OTG cableOnly on phones whose Android has USB serial support (Google: “a limited set of devices”, from 2026) — try it
iPhone, iPadAnyNo — iOS browsers have no Web Serial or WebUSB

Only one program can use the board's port at a time: close the Betaflight App before connecting here, and this page before flashing.

Risks and safety — read before you plug in a battery

More: SECURITY.md · docs/warnings.md

Questions people ask

How do I spin a brushless motor without a receiver or transmitter?

Flash Shramko Motor Autostart (Betaflight 2025.12.1 with a small module) and plug in the battery: after autostart_delay (10 s) the motor ramps up over autostart_ramp (10 s) to autostart_throttle (15 %) and keeps running. No receiver, switch or computer is needed; you set the numbers once, here or in the CLI.

Can Betaflight stop the motor when the LiPo is low?

Yes, from firmware 1.1: set autostart_cells (6) and autostart_cell_cutoff (330 = 3.30 V per cell, 19.8 V on 6S). When the voltage stays below that for autostart_cutoff_time (5 s, so a short sag during a gust is ignored), the motor stops and, with DShot, beeps every 3 s. It starts again only after the battery is unplugged and plugged back in.

Does it work on Android or iPhone?

iPhone and iPad: no — no iOS browser has Web Serial or WebUSB (even Betaflight’s own iOS app connects only over Bluetooth). Android: Chrome 148+ with a USB-OTG cable, on phones whose Android supports USB serial; Google rolls this out to a limited set of devices, so just try it. On Windows, macOS and Linux use Chrome, Edge or Opera (or Firefox 151+).

Which flight controllers are supported?

A ready .hex exists for the HGLRC F405 8S V2 (HGLRC_F405_S8), tested with a Flycolor X-Cross HV3 160A (BLHeli_32) on 6S. Any other Betaflight board works after a build from source: add #define USE_AUTOSTART to the board's config.h and run the Docker build described in the README.

How do I make a slow soft start for an ESC, like 0 to 15 % over 10 seconds?

That is the ramp: autostart_ramp in tenths of a second (100 = 10.0 s, up to 600 s) and autostart_throttle in percent. The ramp is a straight line: measured on hardware, it deviates by at most 1 µs.

Can I change the settings without this website?

Yes. In the Betaflight CLI, get autostart lists them, set autostart_throttle = 80 changes one, and save stores it and reboots. Entering the CLI stops a running program, so the motor never jumps to a new value.

Is it safe to plug in the battery while the USB cable is connected?

Yes, that is how bench tests are meant to be done (propeller off): the countdown starts only when the battery appears, unplugging it for more than 0.5 s stops the motor, and the CLI or the Motors tab takes over at once. If the motor should never spin while a computer is attached, set autostart_usb_inhibit = ON.

How do I go back to normal Betaflight?

Set autostart_mode = OFF (stock behaviour, the module stays idle), or flash …_stock.hex from the release — the same Betaflight 2025.12.1 without the module — or any official Betaflight build.

For your AI agent

Using an AI agent (Claude, ChatGPT, Cursor…)? Copy this prompt: it tells the agent where the firmware, the settings reference and the safety rules are, so it can walk you through the setup.

Task: set up Shramko Motor Autostart (Betaflight 2025.12.1 firmware: the motor starts by itself on power-up, no receiver).
Repo: https://github.com/AndriiShramko/shramko-betaflight-motor-autostart - read AGENT_SETUP.md and docs/settings.md first.
1. Ask me to remove the propeller. Never let the motor spin with a propeller on.
2. Firmware: the .hex from https://github.com/AndriiShramko/shramko-betaflight-motor-autostart/releases/latest (HGLRC F405 8S V2 = HGLRC_F405_S8). Other Betaflight boards: build from source (README, Docker, #define USE_AUTOSTART in the board's config.h).
3. Flash: https://app.betaflight.com in Chrome or Edge -> Firmware Flasher -> Load Firmware [Local] -> Flash Firmware. Windows "DFU device not found": ImpulseRC Driver Fixer or Zadig (WinUSB for STM32 BOOTLOADER).
4. Configure: https://autostart.flyreelstudio.eu (Connect, edit, Save) or the Betaflight CLI: get autostart / set autostart_<name> = <value> / save. Use only the names, ranges and defaults in docs/settings.md.
5. Wiring: docs/wiring.md. Never more than 8S on pin B.

Who made this, and working together

Andrii Shramko

Andrii Shramko

Drones · 360° camera rigs for extreme shoots · 3D/4D Gaussian splatting · Bydgoszcz, Poland

I'm Andrii Shramko. I build drone and 360° camera systems for extreme shoots — storm chasing, city-scale Gaussian-splat scans — and the tools around them. This firmware drives the blower of the META4 Tornado camera case: it clears water from the 360° camera's optics as soon as the box is powered, with nobody touching it.

Open to interesting people and ready to help teams build ambitious projects — embedded and drone hardware, camera rigs, scanning pipelines, partnerships, licensing or funding.

Write to me

Privacy

Controller: Andrii Shramko, Bydgoszcz, Poland — zmei116@gmail.com. The configurator talks to your flight controller directly from your browser: the board's settings and live data never reach our server.

The server stores only what you send on purpose: feedback (bug, idea) and collaboration messages, with a contact if you give one, and — only if you tick the box — technical details (page version, browser and screen, recent errors, the configurator's log). The text and the contact are also forwarded to the author's Telegram (Telegram FZ-LLC, Dubai — outside the EEA); the original stays on a server in the EU. Kept for up to 12 months and used only to reply and to fix the site.

Page counters work without cookies and without IP addresses; the server logs keep no IP addresses and no query strings. Google Analytics is loaded only after you accept it.

You can ask for a copy or deletion of your data at any time: zmei116@gmail.com.

Feedback

Sent: page version, browser and screen, the last errors and this visit's configurator log. Nothing else: no cookies, no files.