`monotron` logo

`monotron`

Free

A 1980s home-computer style application for the Texas Instruments Stellaris Launchpad. PS/2 keyboard input, text output on a bit-bashed 800x600 VGA signal. Uses [menu], [vga-framebuffer] and [pc-keyboard].

FreeFree tier
Type
Open Source

About `monotron`

Monotron is a simple 1980s home computer style application written in pure Rust for the Texas Instruments Tiva-C Launchpad (TM4C123 microcontroller). It generates an 800x600 8-color VGA video signal using bit-banged SPI peripherals, supports PS/2 keyboard input, and provides a command-line interface. The application offers two display modes: a 48x36 character text mode with MS-DOS Code Page 850 font and Teletext block graphics (sixels), and a full 384x288 bitmap graphics mode. It includes 8-bit mono audio output with a 3-channel, 4-waveform synthesizer, USB serial I/O, an Atari 9-pin joystick interface, I2C expansion, and loadable apps from Flash ROM. Additional hardware can enable a battery-backed real-time clock, parallel printer port, MIDI in/out/through, PS/2 mouse, and RS-232 serial port. The project is now archived; development has moved to the Neotron family of ARM-based Rust home computers.

Key Features

800x600 8-colour VGA output (400x600 effective resolution)
48x36 character text mode with 8-bit MS-DOS Code Page 850 and Teletext block graphics
384x288 bitmap graphics mode
8-bit mono audio output with 3-channel, 4-waveform synthesiser
PS/2 keyboard input (plus mouse with additional hardware)
Atari 9-pin joystick interface
USB serial I/O
Simple command-line interface
I2C expansion interface
Loadable applications from 256 KiB flash ROM

Pros & Cons

Pros
  • Open source and written in pure Rust
  • Runs on inexpensive Tiva-C Launchpad hardware
  • Multiple video and audio output capabilities from a small microcontroller
  • Extensive peripheral support (keyboard, mouse, joystick, MIDI, serial, parallel)
  • Dual display modes (text and graphics)
  • Good documentation and community interest (192 GitHub stars)
Cons
  • Archived and no longer maintained; development moved to Neotron platform
  • Requires additional hardware for many features (RTC, printer port, MIDI, RS-232)
  • Limited memory (32 KiB SRAM, 256 KiB flash)
  • VGA output is half-resolution horizontally (400x600)
  • Only supports 8 colors
  • 8-bit mono audio with simple synthesis

Best For

Retro computing hobby projectsLearning embedded Rust development on ARM Cortex-M4Homebrew 8-bit style computer experimentsExploring VGA signal generation with microcontrollersBuilding a simple, extensible microcomputer system

FAQ

What hardware is needed to run Monotron?
Monotron runs on the Texas Instruments Tiva-C Launchpad (TM4C123 microcontroller). It requires a PS/2 keyboard for input and a VGA monitor for display. Additional features like mouse, joystick, MIDI, and serial ports require extra hardware as described in the project documentation.
Is Monotron still being developed?
No, the Monotron repository was archived on August 17, 2021, and is now read-only. The project has been replaced by the Neotron family of ARM-based, Rust-powered home computers. You can find future development at https://github.com/neotron-compute/.
What programming language is Monotron written in?
Monotron is written entirely in Rust, demonstrating what can be achieved with pure-Rust firmware on an ARM Cortex-M4 microcontroller.