Pico-2 VT-100 Terminal
Raspberry Pi Pico 2 · Up to 1280×1024 VGA · 16 Independent Windows · 512 Colours · Full VT-100 Escape Code Support
Overview
The Pico-2 VT-100 Terminal is a professional-grade VT-100 compatible terminal emulator built on the Raspberry Pi Pico 2 (RP2350). It delivers workstation-class display quality at embedded system cost — supporting resolutions from 640×480 up to 1280×1024 (SXGA) on a standard 15-pin VGA monitor, with 512 colours via a 9-bit R3G3B3 resistor DAC.
The firmware exploits the full RP2350 hardware: all 12 PIO state machines across three PIO blocks generate pixel and sync signals with hardware-clock precision; 8 DMA channels feed the display pipeline with zero CPU overhead during rendering; both Cortex-M33 cores run at 250 MHz. The result is smooth, flicker-free VGA output with no display dropouts even at maximum text capacity (10,240 characters at 1280×1024 with 8×16 font).
Up to 16 independent windows can be open simultaneously, each with its own scroll region, text wrap mode, and cursor position. The terminal accepts standard VT-100 escape codes over USB-CDC or hardware UART, making it a drop-in display for any serial host: industrial PLCs, legacy instruments, CNC controllers, or custom embedded systems.
Key Features
- Four resolution modes: 1280×1024, 1024×768, 800×600, 640×480 — selectable at runtime
- 512 colours — 9-bit R3G3B3 resistor DAC, 75Ω VGA standard
- Up to 16 simultaneous independent windows
- Full VT-100 escape code set — ANSI colour, cursor control, erase functions
- PIO-driven pixel/sync generation — zero CPU overhead during display
- 8-channel DMA pipeline — sustained frame rate at all resolutions
- USB-CDC and hardware UART input — no drivers required on host
- Stable 250 MHz operation with thermal monitoring and automatic fallback
Specifications
| Microcontroller | RP2350 (Raspberry Pi Pico 2) @ 250 MHz |
|---|---|
| Display Output | VGA (15-pin D-Sub), 75Ω standard |
| Colour Depth | 512 colours (R3G3B3, 9-bit DAC) |
| Resolutions | 1280×1024 @ 60Hz · 1024×768 @ 70Hz · 800×600 @ 72Hz · 640×480 @ 60Hz |
| Max Text Capacity | 10,240 chars (160×64 with 8×16 font at 1280×1024) |
| Windows | Up to 16 independent, with individual scroll/wrap |
| Terminal Standard | VT-100 / ANSI with full escape code support |
| Serial Interface | USB-CDC (virtual COM) + hardware UART0 |
| Baud Rate | Configurable — 9600 to 921600 |
| PIO Usage | 12 state machines (3 PIO blocks × 4) |
| DMA Channels | 8 channels for display pipeline |
| SRAM | 520 KB |
| Power Supply | 5V DC via USB, 500 mA typical |
Resolution Modes
| Mode | Resolution | Refresh | Pixel Clock | Cols × Rows (8×16 font) | Total Chars |
|---|---|---|---|---|---|
| SXGA | 1280 × 1024 | 60 Hz | 108 MHz | 160 × 64 | 10,240 |
| XGA | 1024 × 768 | 70 Hz | 75 MHz | 128 × 48 | 6,144 |
| SVGA | 800 × 600 | 72 Hz | 50 MHz | 100 × 37 | 3,700 |
| VGA | 640 × 480 | 60 Hz | 25.175 MHz | 80 × 30 | 2,400 |
Add a High-Resolution Display to Any Serial System
Replace legacy terminals, CRT monitors, or null displays. Contact us for pricing and integration support.