iPad beta now open

Python over Bluetooth Low Energy

Code your MicroPython board. Leave the cable behind.

PyBLE is a free, tablet-first IDE designed for boards that run MicroPython and support Bluetooth Low Energy. Qualified public v0.5.1 firmware is available for esp32-4mb, lean generic esp32-s3-n16r8, and the separate waveshare-esp32-s3-lcd-147b exact-board profile. ESP32-C3 and more microcontroller families remain planned.

  • MIT open source
  • Offline-first
  • No account
Actual PyBLE app showing a GPIO 48 NeoPixel Blocks program beside its generated Python
Actual PyBLE appNeoPixel Blocks · GPIO 48 · Generated Python

BLE-firstThe cable is for initial setup, not your everyday workflow.

Private by defaultYour code stays on your tablet and the board you connect.

Built in the openApp, firmware, and PBLE/1 are free under the MIT license.

A simpler development loop

One wired setup. Then build over BLE.

PyBLE keeps the familiar MicroPython workflow and removes the cable from the part you repeat all day.

  1. 01

    Provision once

    Use USB once to install the exact matching qualified v0.5.1 firmware.

  2. 02

    Connect from your tablet

    Open PyBLE, find your nearby board, and connect directly over Bluetooth Low Energy.

  3. 03

    Create without the cable

    Edit files, build with Blocks, run code, and use the console through the BLE connection.

A focused MicroPython workspace

Everything in the loop, close at hand.

PyBLE brings the essentials together without requiring an account, a cloud project, or a permanent USB connection.

Editor and board files

Write MicroPython with syntax-aware editing, then move files between your tablet and connected board.

A live console

Run, stop, soft reboot, and follow standard output and errors without returning to a USB terminal.

Blocks that stay useful

Start visually, inspect generated Python, and move into a deliberately supported beginner Python subset.

An open connection

PBLE/1 is an open protocol, and both the tablet app and board agent are released under the MIT license.

From Blocks to Python

Start visually. See the real code.

Build offline with eight editable beginner examples, including an explicit TFT display example, numeric-GPIO blocks, and the standard MicroPython NeoPixel API. Generated Python is always visible and editable.

  • Choose the pin for your own board
  • Reopen exact workspaces from verified sidecars
  • Convert a safe, bounded Python subset all-or-nothing

Python-to-Blocks is intentionally bounded: unsupported Python stays untouched instead of producing a partial or misleading workspace.

Platform scope

MicroPython + Bluetooth, not one chip family.

PyBLE is designed for boards that can run MicroPython and host PBLE/1 over Bluetooth Low Energy. A validated PyBLE agent port is still required before a board is supported.

Qualified public firmware targets

esp32-4mbClassic ESP324 MiB external SPI flash · no PSRAM assumedv0.5.1 qualified public release
esp32-s3-n16r8ESP32-S3 N16R8 · lean generic16 MiB flash · 8 MiB Octal PSRAMv0.5.1 qualified public release
waveshare-esp32-s3-lcd-147bWaveshare ESP32-S3-LCD-1.47BExact B version · 16 MiB flash · 8 MiB Octal PSRAMv0.5.1 qualified public release
esp32-c3-4mbESP32-C34 MiB external SPI flash · no PSRAM assumedPlanned · installer unavailable pending exact-profile HIL
Actual Waveshare ESP32-S3-LCD-1.47B displaying the PyBLE v0.5.0 boot splash and app QRReal hardware
Actual board · PyBLE firmware v0.5.0Opt-in boot splash and app QR on the B-version 172 × 320 display.Open this board's installer

Free and open source

See how PyBLE is built.

The tablet app, board-agent firmware, PBLE/1 protocol, tests, and documentation are developed in public under the MIT license. Explore how the pieces fit together, build from source, or help bring PyBLE to another MicroPython + BLE board.

Explore PyBLE on GitHub

External testing is open

Join the PyBLE beta on TestFlight.

Install the free iPad beta through Apple TestFlight now. Qualified v0.5.1 firmware is available for all three exact profiles: esp32-4mb, lean generic esp32-s3-n16r8, and separate waveshare-esp32-s3-lcd-147b. ESP32-C3 is unavailable. After one-time USB setup, everyday coding runs over Bluetooth Low Energy.

QR code for the PyBLE beta on Apple TestFlight
Scan with your iPad cameraOr open this address on the device:testflight.apple.com/join/yU4e8s6d

Android internal testing

Join the PyBLE Android internal test.

The Android build is available only to approved internal testers signed in with an invited Google account. An unapproved or signed-out visitor may find the listing unavailable. This is not a public Google Play release.

QR code for the PyBLE Android internal test on Google Play
Scan with your Android cameraSign in with the Google account that was invited:https://play.google.com/store/apps/details?id=dev.pyble.pyble