Home

Awesome

RustZX for ESP32

Rust Bare Metal implementation of ZX Spectrum for ESP32. The project is still work in progress.

Hardware (working):

Hardware (work-in-progress):

ZX Spectrum with USB keyboard over ESP-NOW (wireless)

Assembly

Assembly of the keyboard

Flashing keyboard

cd esp32-s3-usb-otg-keyboard
idf.py build flash monitor

Assembly of the main part

Software setup

espup install
cargo install espflash

Run

Flash and monitor the application.

ESP32-S3-BOX:

cd esp32-s3-box
cargo run --release

M5Stack CoreS3:

cd m5stack-cores3
cargo run --release

ESP32-C6-DevKitC-1:

cd esp32-c6
cargo run --release

ZX Spectrum with UART keyboard over espflash monitor

Software setup

espup install
cargo install espflash

Run

Flash and monitor the application.

ESP32-C6-DevKitC-1:

cd esp32-c6
cargo run --release

Command cargo run --release will turn on espflash monitor after the flashing. You can use the monitor console as kkeyboard output.

ZX Spectrum PS/2 keyboard over UART (wired)

Assembly

Assmebly of the keyboard

git clone https://github.com/georgik/ps2keyboard-esp32c3.git --branch feature/serial-converter
cd ps2keyboard-esp32c3
cargo run --release

Assembly of the main part

GPIO4 RX (ESP32-C3 KB) - GPIO17 TX or T at Grove Port C (M5Stack CoreS3)
GPIO5 TX (ESP32-C3 KB) - GPIO18 RX or R at Grove Port C (M5Stack CoreS3)
GND (ESP32-C3 KB) - GND (M5Stack CoreS3)

Software setup

espup install
cargo install espflash

Run

Flash and monitor the application:

cd m5stack-cores3-ps2-keyboard
cargo run --release

Hit enter to load the tape included in the memory.

References