Switch access
for Blockly

A CircuitPython firmware + web tooling project that brings full keyboard accessibility to Blockly coding environments — using inexpensive switch hardware anyone can build.

Two switch modes

Single-switch auto-scanning or two-switch direct navigation — configurable at boot.

Fully customisable

All shortcuts, timing, and scan order set via a browser-based config tool — no code needed.

Visual + audio

Web display mirrors the device screen with optional TTS readout for every key and scan event.

Open source

CircuitPython firmware, config tools, and build instructions — all on GitHub under an open licence.

Feather ESP32-S3 Rev TFT
Adafruit #5691
3.5mm Jack Breakout
For external switches
Accessibility Switches
Any 3.5mm assistive switch
CircuitPython 10
Firmware + HID libraries
code.py + config.py
From this repository
  • Web Serial connection — Chrome & Edge
  • Text-to-speech readout of each shortcut
  • Audio beep on key sent events
  • Live serial log with colour-coded events
  • Screen-reader live region announcements
  • macOS and Windows shortcut variants
  • 28 Blockly shortcuts from official docs
  • Drag-to-reorder scan sequence
  • Custom single and multi-key combos
  • Generates and downloads config.py