Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/visrealm/pico-56

The HBC-56 (65C02/TMS9918A/AY-3-8910 retro computer) fully emulated on a Raspberry Pi Pico
https://github.com/visrealm/pico-56

6502 ay-3-8910 electronics emulation hbc-56 pcb raspberry-pi-pico tms9918a vga

Last synced: 12 days ago
JSON representation

The HBC-56 (65C02/TMS9918A/AY-3-8910 retro computer) fully emulated on a Raspberry Pi Pico

Awesome Lists containing this project

README

        

# PICO-56
My [HBC-56](https://github.com/visrealm/hbc-56), a 65C02/TMS9918A homebrew computer on a backplane, fully emulated on a Raspberry Pi Pico.

HBC-56

Emulating the following HBC-56 hardware
* 65C02 CPU
* 65C22 VIA
* TMS9918A VDP
* Dual AY-3-8910 PSGs
* Dual NES controller inputs
* PS/2 keyboard input
* 96KB Banked RAM/ROM

Making use of my various emulation libraries (and more):

* [vrEmu6502](https://github.com/visrealm/vrEmu6502) - 6502/65C02 CPU emulation library (C99)
* [vrEmu6522](https://github.com/visrealm/vrEmu6522) - 6522/65C22 VIA emulation library (C99)
* [vrEmuTms9918](https://github.com/visrealm/vrEmuTms9918) - TMS9918A/TMS9929A VDP emulation library (C99)

Follow along on YouTube here: [youtube.com/@TroySchrapel](https://youtube.com/@TroySchrapel)

## Development environment

To set up your development environment for the Raspberry Pi Pico, follow the [Raspberry Pi C/C++ SDK Setup](https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html) instructions.

#### Windows

For Windows users, there is a pre-packaged installer provided by the Raspberry Pi Foundation: https://github.com/raspberrypi/pico-setup-windows/releases/. Once installed, just open the pre-configured "Pico - Visual Studio Code" from your start menu.

The build system expects `python3` to be available. If you have installed Python 3 outside of the Microsoft Store, you may need to alias your Python executable.

You can do this from an elevated (Administator) command prompt in your python directory e.g. `C:\Program Files\Python310\` by creating a symlink with the command: `mklink python3.exe python.exe`.

## Episodes
In the Episodes, I build the code from the ground up and provide a number of working demos. These are a work in progress with more to come as the videos come out.
#### [Episode 1 - VGA](episodes/ep01-vga)
In this episode, I build a VGA circuit on the Raspberry Pi Pico and write an intitial generic VGA output library and a number of VGA test programs from a test pattern through to moving sprites and an 800x600 framebuffer.

[](episodes/ep01-vga/ep01-vga-04-boing) [](episodes/ep01-vga/ep01-vga-05-nyancat) [](episodes/ep01-vga/ep01-vga-06-framebuffer) [](episodes/ep01-vga/ep01-vga-09-slideshow)

#### [Episode 2 - TMS9918A](episodes/ep02-tms)
In this episode, I incorporate my TMS9918 library and create some test programs to test the TMS9918 functionality on the Pi Pico.

## Complete kits

Complete PICO-56 kits are now available on Tindie:

I sell on Tindie

Also featured in HackerBox 0103 for those in the US:

## Gerbers

Gerbers for the PICO-56 v1.4 are now available. See [/schematics](schematics)

If you would like to support this project, you can [order your PCBs from my PCBWay project link](https://www.pcbway.com/project/shareproject/PICO_56_Retro_Computer_on_a_Pi_Pico_515c59b8.html)

## Schematics

PICO-56 v1.4

## Bill of materials

| Qty. | Description | Code |
|----------|-----------------------------------|-----------------------------------|
| 1 | PICO-56 PCB | PCB |
| 5 | 100nf (104) ceramic capacitor | C3,C4,C5,C6,C7 |
| 3 | 10uf (106) electrolytic capacitor | C8,C1,C2 |
| 3 | 4kΩ 0.25w resistor (3.9kΩ ok) | R1,R5,R9 |
| 2 | 10kΩ 0.25w resistor | R20,R21 |
| 6 | 2kΩ 0.25w resistor | R22,R2,R6,R10,R17,R18 |
| 9 | 1kΩ 0.25w resistor | R3,R7,R11,R13,R14,R15,R16,R19,R23 |
| 3 | 500Ω 0.25w resistor (510Ω ok) | R4,R8,R12 |
| 1 | 2N4401 transistor | Q1 |
| 1 | 1N5819 diode | D1 |
| 1 | Blue LED | LED1 |
| 1 | Green LED | LED2 |
| 1 | Push button | KEY1 |
| 1 | Push button (locking) | PWR1 |
| 1 | Barrel jack connector | 5V |
| 1 | VGA connector | DSUB1 |
| 2 | RCA connector | J2,J3 |
| 2 | NES connector | NO1,NO2 |
| 1 | PS/2 connector | PS2 |
| 1 | Raspberry Pi Pico (plus headers) | U1 |
| 1 | MicroSD card connector | U2 |

There is a more detailed BOM in the [/schematics](schematics) folder. Alternatively, I have created a [Mouser project](https://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=8431486f76) for this which contains everything except for the NES connectors which can be obtained from AliExpress.

## 3D Printed case

A 3D printed case is available. All STLs are in the [/case](case) directory.

PICO-56 case

## Videos
[![PICO-56 - Introduction](https://img.visualrealmsoftware.com/youtube/thumb/Nj_KkYn7YaA)](https://www.youtube.com/watch?v=Nj_KkYn7YaA)

[![PICO-56 - Full Kit Build](https://img.visualrealmsoftware.com/youtube/thumb/1hwMNQ1DXIU)](https://www.youtube.com/watch?v=1hwMNQ1DXIU)

### Thanks

Thanks to [PCBWay](https://pcbway.com/g/186WQ9) for supporting this project.

PICO-56

## Resources

* [Windows Development Environment Installer](https://github.com/raspberrypi/pico-setup-windows/releases)
* [Raspberry Pi Pico C/C++ SDK (PDF)](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf)
* [HBC-56 Project](https://github.com/visrealm/hbc-56)
* [vrEmu6502 - 6502 CPU Emulation Library](https://github.com/visrealm/vrEmu6502)
* [vrEmu6522 - 6522 VIA Emulation Library](https://github.com/visrealm/vrEmu6522)
* [vrEmuTms9918 - TMS9918A VDP Emulation Library](https://github.com/visrealm/vrEmuTms9918)

## License
This code is licensed under the [MIT](https://opensource.org/licenses/MIT "MIT") license