µNotebook

An Juypter Notebook like tool for Pybricks and other Micropython devices.

Start Coding

About

This started as a way for my kid to program an ESP32-based robot we built. I've since added support for Pybricks (since he joined FLL).

It supports notebook-style programming in a mixture of Python and visual block-style cells.

It connects to Pybrick devices (like the Spike Prime Hub and Mindstorms Inventor Hub) via Bluetooth and Micropython devices via WebREPL.

Why Notebook-Style Programming for Robotics?

Notebook-style programs are ideal for robotics because they blend code, data, and documentation in one place.

They enable:

This workflow shortens the test-observe-refine loop that defines robotics development.

Why Mix Python and Block Coding?

Our notebook lets students mix block-based and Python code in the same workspace.

This makes it ideal for learning — beginners can start visually, then see and edit the exact Python code that’s generated.

It bridges the gap between drag-and-drop logic and real programming, helping students gradually build confidence and understanding without switching tools.

A block example:

block

Generated this code:

from pybricks.hubs import PrimeHub
from pybricks.robotics import DriveBase
from pybricks.pupdevices import Motor
from pybricks.parameters import Port
from pybricks.parameters import Direction
hub = PrimeHub()
bot = DriveBase(
  Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE),
  Motor(Port.B, positive_direction=Direction.CLOCKWISE),
  56, 120
)

Examples

Check out some examples here.