Skip to the content
2 layers87.6 × 73.9 mmPocketTRS, the printed circuit board in 3D

PocketTRS uses a modern microcontroller to emulate a TRS-80 personal computer. It can be connected to any compatible VGA monitor and PS/2 keyboard. PocketTRS has TRS-IO embedded for full FreHD support.

Size
87.6 × 73.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
45
Nets
60
Pads
308
Tracks, vias
843, 114
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
27 Jan 2020
Updated
4 Oct 2026

Overview

PocketTRS is an open-source printed circuit board by apuder, from the apuder/PocketTRS repository on GitHub. It is a 2-layer board of 87.6 × 73.9 mm with 45 parts on 60 nets, routed with 843 tracks and 114 vias.

It is built around the ESP32-WROVER-B, AMS1117-3.3 and MCP23S08T-E/ML, with the MMBT3904 and BSS138 among its other parts. Its parts include 13 resistors, 12 capacitors, 6 connectors, 5 ICs and 3 transistors. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

PocketTRS

PocketTRS uses a modern microcontroller to emulate a TRS-80 personal computer. It can be connected to any compatible VGA monitor and PS/2 keyboard. PocketTRS has TRS-IO embedded for full FreHD support. PocketTRS offers the following features:

  1. Emulates a Model III and Model 4
  2. Grafyx support
  3. Cassette input (500 baud only)
  4. Game sound
  5. Emulates the 50-pin expansion interface
  6. Integrated TRS-IO

Firmware

The heart of PocketTRS is an ESP32-based microcontroller. The firmware can be compiled using Espressif's ESP-IDF version 6.0. First install the ESP-IDF toolchain for your platform. Next clone the PocketTRS git repository and compile the firmware via:

text
git clone --recursive https://github.com/apuder/PocketTRS.git
cd PocketTRS
idf.py build

The firmware can be flashed once the ESP as well as the necessary flashing circuitry is added to the PCB as explained in the next section.

Hardware

This repository contains the complete KiCad and Gerber files for PocketTRS. The figure below shows the various connectors:

  1. VGA connector
  2. PS/2 connector
  3. 3.5mm audio jack
  4. Micro USB power supply
  5. FTDI programmer interface
  6. ESP reset button
  7. Z80 reset button
  8. 50-pin expansion interface

The BOM contains all required parts. Soldering surface mounted components can be tricky. It is suggested to build up the PCB in a particular order and test the board along each step. PocketTRS contains some test code that helps with the diagnostics. The test code can be activated at compile-time via idf.py menuconfig > Component config > PocketTRS > Run PocketTRS PCB tests. When the PCB tests are activated, diagnostics will be printed to the log that can be viewed via idf.py -p <port> monitor. The following steps refer to PocketTRS V2.3:

StepComponentsComments
1J6, U4, C4, C5, C11Connect power via the Micro-USB adapter. Confirm 5V on J5, pin 5. Confirm 3.3V on U1, pin 2. Disconnect power. Note: for polarized caps the dot on the silkscreen indicates the positive terminal.
2Q2, Q3, R12, R13, R14, R15, R16, C9, C10, J5, SW1, U1It should be possible to flash the ESP firmware via a FTDI adapter with these components. The log should print MCP4361 not found.
3U5, C8Log should show MCP4361 found and MCP23S17 not found. Confirm 1V on pin 1, 2V on pin 2 and 3V on pin 3 of VGA adapter.
4U2, U3, Q1, R10, R11, R17, C6, C7Log should show MCP23S17 found and MCP23S08 found. Measure the voltages of the odd pins of the 50-pin connector (except pin 45). The voltages should alternate between 0V and 5V every second. Permanent 0V indicates that a pin is not properly connected. A permanent 0.7V indicates that two neighboring pins are shorted.
5J8, R18, R19, R20, R21Insert a formatted SD card into the SD card reader and press the 'PTRS RST' button after booting. The log should print SD card succefully mounted.
6The restSolder the remaining components. First add the surface mounted components followed by the various connectors.

Usage

Once the PocketTRS card is assembled, connect a VGA monitor, a PS/2 keyboard and optinally a speaker to the audio jack. Power up PocketTRS via the micro-USB connector. You should see the TRS-80 Cass? prompt on the monitor. After booting PocketTRS, the following hotkeys are available via the PS/2 keyboard:

  • <F4> - Enable lowercase
  • <F5> - PocketTRS Configuration
  • <F6> - Send screenshot to the printer
  • <F9> - Reset Z80
  • <ESC> - TRS-80 <BREAK> key
  • '\' - TRS-80 <CLEAR> key

Instead of a PS/2 keyboard, a Bluetooth keyboard (Bluetooth Low Energy) can be used. It is paired in the web interface (trs-io.local, Settings, Bluetooth Keyboard): put the keyboard in pairing mode, press Scan and then Pair next to the keyboard's name. From then on the keyboard connects by itself.

<F5> allows the configuration of various aspects of PocketTRS, including setting up Wifi credentials and TRS-IO. Once Wifi is setup, the printer interface can be accessed via trs-io.local/printer.

Use the configuration settings to activate TRS-IO. Alternatively it is possible to connect an external TRS-IO/FreHD card via the 50-pin expansion interface. In that case make sure that the internal TRS-IO is disabled.

For game sound, simply connect a speaker to the 3.5mm audio jack. It is also possible to load programs via the cassette interface (500 baud only). At the Cass? prompt hit 'L', connect PocketTRS audio jack to a laptop or smartphone, type CLOAD or SYSTEM in BASIC and play the 500 Baud audio file. You should see the blinking asterick in the top right corner.

Showcases

The video below shows PocketTRS connected to a Talker/80 card:

PocketTRS connected to Talker/80

The next video shows PocketTRS booting from an external FreHD. Note that PocketTRS integrates TRS-IO and therefore also is compatible with FreHD, but for the purpose of the demo, the internal TRS-IO is disabled:

PocketTRS connected to FreHD

The following video shows PocketTRS booting from a 12 MB Tandy Hard Disk 26-4152 via XROM. PocketTRS is configured to disable the internal TRS-IO and to use XROM:

PocketTRS booting from external HD

Parts

45
QtyValueFootprintReferences
6100NCapacitors_SMD:C_0805_HandSolderingC3, C6, C7, C8, C9, C10
54K7Resistors_SMD:R_0805_HandSolderingR6, R7, R12, R13, R16
310UCapacitors_SMD:C_1206_HandSolderingC1, C2, C11
2100UCapacitors_SMD:C_1206_HandSolderingC4, C5
210KResistors_SMD:R_0805_HandSolderingR10, R11
212KResistors_SMD:R_0805_HandSolderingR14, R15
22KResistors_SMD:R_0805_HandSolderingR4, R5
2MMBT3904TO_SOT_Packages_SMD:SOT-23Q2, Q3
1150RResistors_SMD:R_0805_HandSolderingR9
11UCapacitors_SMD:C_1206_HandSolderingC12
1270RResistors_SMD:R_0805_HandSolderingR8
1AMS1117-3.3TO_SOT_Packages_SMD:SOT-223-3_TabPin2U4
1AudioJack3PocketTRS_Connectors.pretty:Jack_3.5mm_CUI_SJ1-3535NG_Horizontal_CircularHolesJ2
1BSS138TO_SOT_Packages_SMD:SOT-23Q1
1DB15_Female_HighDensityPocketTRS_Connectors.pretty:DB_15F-VGAJ4
1ESP32-WROVER-Besp32-wrover.pretty:ESP32-WROVERU1
1ESP_RESETButtons_Switches_THT:SW_PUSH_6mmSW2
1MCP23S08T-EHousings_SSOP:SSOP-20_5.3x7.2mm_Pitch0.65mmU3
1MCP23S17_SPHousings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mmU2
1MCP43x1Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mmU5
1Mini-DIN-6PocketTRS_Connectors.pretty:minidin_6_ps2_pcb_mountJ3
1PTRS_RESETButtons_Switches_THT:SW_PUSH_6mmSW1
1ProgrammerPin_Headers:Pin_Header_Straight_1x06_Pitch2.54mmJ5
1TRS-80Pin_Headers:Pin_Header_Straight_2x25_Pitch2.54mmJ1
1USB_B_MicroPocketTRS_Connectors.pretty:USBmicro-BJ6

The 41 most common of 45 parts.

More from apuder/PocketTRS

2
  • 2 layers87.6 × 73.9 mmPocketTRS, the printed circuit board in 3D

    PocketTRS

    apuder/PocketTRS

    PocketTRS uses a modern microcontroller to emulate a TRS-80 personal computer. It can be connected to any compatible VGA monitor and PS/2 keyboard. PocketTRS has TRS-IO embedded for full FreHD support.

    40 parts38
  • 2 layers87.6 × 73.9 mmPocketTRS, the printed circuit board in 3D

    PocketTRS

    apuder/PocketTRS

    PocketTRS uses a modern microcontroller to emulate a TRS-80 personal computer. It can be connected to any compatible VGA monitor and PS/2 keyboard. PocketTRS has TRS-IO embedded for full FreHD support.

    33 parts38

Similar boards

  • 2 layers87.6 × 83.6 mmPocketTRS, the printed circuit board in 3D

    PocketTRS

    shaeberling/mini-trs

    A small TRS-80 system that is self-contained and uses an embedded screen.

    55 parts1Apache-2.0
  • 2 layers75.6 × 81.9 mmAccessController, the printed circuit board in 3D

    AccessController

    minsk-hackerspace/accessController

    Control access to BIG DANGEROUS tools in hackerspace

    36 parts
  • 2 layers62.3 × 32.9 mmProgrammer-20K ESP, the printed circuit board in 3D

    Programmer-20K ESP

    apuder/Programmer-20K

    Web-based Programmer for the Tang Primer 20K FPGA

    21 parts
  • 2 layers40.9 × 58 mmUpsy desky, the printed circuit board in 3D

    Upsy desky

    mikes-techzone/upsy-desky

    This repository contains the source files for the Upsy Desky, a device which lets you connect your standing desk to any home automation system.

    48 parts
  • 2 layers44.9 × 106.8 mmPppcb, the printed circuit board in 3D

    Pppcb

    okelk/pppcb

    Table Tennis sensor pcb+display

    116 parts
  • 2 layers191.3 × 181.7 mmIO Card G3, the printed circuit board in 3D

    IO Card G3

    PerMalmberg/IO-Card-G3

    This is my custom I/O card, third generation. Main purpose is to serve as an alarm system.

    400 parts7MIT
  • 2 layers60.4 × 112.5 mmCrowBot -V1.4-20220909, the printed circuit board in 3D

    CrowBot -V1.4-20220909

    rosmo-robot/CrowBot

    Design files for Elecrow CrowBot

    194 parts3CERN-OHL-P-2.0

Questions

How big is the PocketTRS PCB?

It measures 87.6 × 73.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PocketTRS use?

45 parts, built around the ESP32-WROVER-B, AMS1117-3.3, MCP23S08T-E/ML and MMBT3904. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PocketTRS KiCad files?

From the apuder/PocketTRS repository on GitHub, at the commit this page was made from: the board is kicad/v2.2/PocketTRS.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the PocketTRS design in my own project?

Its repository states no licence, so its author keeps all rights: ask apuder before reusing the design.