Bluetooth Low Energy remote control

The BLE multitool for robot control

Your phone becomes a gamepad. SPIKE, MINDSTORMS, ESP32, micro:bit — or anything that speaks Bluetooth Low Energy. You write two lines that map sticks to motors. Free to download. No ads.

BlueMote on a phone next to a SPIKE Prime servo spider
  1. Universal controls Thumbsticks, buttons, D-pad, trims, and triggers — a full gamepad on the screen, or pair a Bluetooth gamepad.
  2. Two-way communication The robot talks back. A CoCube sends “Goal !!!” to the app the moment it scores. Text or live video shows up on the gamepad while you drive.
  3. Direct BLE connection Tiny packets. No cloud. No lag.

Two lines. Or blocks.

BlueMote is not a robot-specific app. You simply tell the robot how to respond to stick values and buttons. This setup is versatile, and the link feels lagless — because it is simple.

It is bi-directional too. The robot can send text back to the app: a CoCube reports “Goal !!!”, a Maqueen streams its distance sensor reading.

Works with the btbricks RCReceiver on MicroPython, the MakeCode extension, the MicroBlocks library, and any device that implements Nordic UART. On micro:bit, both MakeCode and MicroBlocks need a V2: the V1 does not have enough memory for BLE. In MakeCode set No pairing required. A micro:bit name cannot be changed, so clear the name filter in the app.

MicroPython
turn, speed = rcv.controller_state(L_STICK_HOR, L_STICK_VER)
drive(speed, turn)
MakeCode · micro:bit V2
MakeCode: BlueMote service on start, then forever mapping right and left stick Y to motors M1 and M2
MicroBlocks · CoCube, ESP32, micro:bit V2 — kick with A, send “Goal !!!” back to the app
MicroBlocks: forever set wheels from the left stick, broadcast kick when button 4 is pressed; on kick, move the gripper, then send Goal to BlueMote

One app. Many robots.

With extensitons, libraries, and examples, BlueMote works with many platforms.

See it drive

Live video on the gamepad, a MINDSTORMS hot rod, a servo spider on LMS-ESP32, and two MicroBlocks robots that talk back to the app.

FPV overlay — MJPEG behind the sticks
MINDSTORMS Robot Inventor hot rod
Servo spider — LMS-ESP32 and Pybricks
CoCube soccer — kick with A, and the robot sends “Goal !!!” back to the app
Maqueen on micro:bit V2 — MicroBlocks tank drive, distance streams back to the app

Transform your phone into a gamepad

Dual analog sticks, D-pad, ABXY, triggers, sliders. Landscape, made for thumbs. On every version — Android, iPhone, iPad and Mac.

BlueMote gamepad with STREAM, CONNECT, and MENU
Gamepad — video status on the LCD, STREAM at the bottom
MJPEG video stream settings for an OpenMV camera
FPV overlay — MJPEG from an OpenMV camera on the same Wi‑Fi

Connect a real gamepad to BlueMote

Use any Bluetooth gamepad to drive your robot with real sticks and buttons, or use the app's virtual gamepad on your phone.

BlueMote on macOS: the same gamepad in a desktop window
macOS — the same gamepad in a window, with a connected Bluetooth gamepad or the mouse

Streaming video

Enable MJPEG and the camera feed sits behind the controls at half opacity. Drive with the sticks, see what the robot sees. Separate from BLE — the radio stays free for the packets.

Documentation and examples

Setup guides and builds on Anton's Mindstorms. Start with the protocol, then pick a robot.

Free to download. No ads.

Drive what you build.

Available on Google Play for Android and on the App Store for iPhone, iPad and Mac. A one-time Pro unlock removes the daily drive limit and lets you name a specific robot.

Works with micro:bit, V2 only