{"id":17703307,"url":"https://github.com/visrealm/pico-56","last_synced_at":"2025-04-05T11:08:30.681Z","repository":{"id":203634960,"uuid":"710049882","full_name":"visrealm/pico-56","owner":"visrealm","description":"The HBC-56 (65C02/TMS9918A/AY-3-8910 retro computer) fully emulated on a Raspberry Pi Pico","archived":false,"fork":false,"pushed_at":"2024-11-03T05:21:17.000Z","size":38089,"stargazers_count":133,"open_issues_count":1,"forks_count":12,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-29T10:05:44.622Z","etag":null,"topics":["6502","ay-3-8910","electronics","emulation","hbc-56","pcb","raspberry-pi-pico","tms9918a","vga"],"latest_commit_sha":null,"homepage":"https://youtube.com/@TroySchrapel","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/visrealm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"visrealm"}},"created_at":"2023-10-25T23:08:06.000Z","updated_at":"2025-03-07T03:37:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"3711a4e3-02fb-4410-9079-9ee853826251","html_url":"https://github.com/visrealm/pico-56","commit_stats":{"total_commits":65,"total_committers":3,"mean_commits":"21.666666666666668","dds":0.2153846153846154,"last_synced_commit":"11de23ef566cb1ac44355754caadb042448b89d6"},"previous_names":["visrealm/pico-56"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visrealm%2Fpico-56","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visrealm%2Fpico-56/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visrealm%2Fpico-56/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visrealm%2Fpico-56/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/visrealm","download_url":"https://codeload.github.com/visrealm/pico-56/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325693,"owners_count":20920714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6502","ay-3-8910","electronics","emulation","hbc-56","pcb","raspberry-pi-pico","tms9918a","vga"],"created_at":"2024-10-24T20:22:32.479Z","updated_at":"2025-04-05T11:08:30.656Z","avatar_url":"https://github.com/visrealm.png","language":"C","funding_links":["https://ko-fi.com/visrealm"],"categories":[],"sub_categories":[],"readme":"# PICO-56\nMy [HBC-56](https://github.com/visrealm/hbc-56), a 65C02/TMS9918A homebrew computer on a backplane, fully emulated on a Raspberry Pi Pico.\n\n\u003cp align=\"left\"\u003e\u003ca href=\"https://github.com/visrealm/hbc-56\"\u003e\u003cimg src=\"img/thumb.png\" alt=\"HBC-56\" width=\"720px\"\u003e\u003c/a\u003e\u003c/p\u003e\n\nEmulating the following HBC-56 hardware\n* 65C02 CPU\n* 65C22 VIA\n* TMS9918A VDP\n* Dual AY-3-8910 PSGs\n* Dual NES controller inputs\n* PS/2 keyboard input\n* 96KB Banked RAM/ROM\n\nMaking use of my various emulation libraries (and more):\n\n* [vrEmu6502](https://github.com/visrealm/vrEmu6502) - 6502/65C02 CPU emulation library (C99)\n* [vrEmu6522](https://github.com/visrealm/vrEmu6522) - 6522/65C22 VIA emulation library (C99)\n* [vrEmuTms9918](https://github.com/visrealm/vrEmuTms9918) - TMS9918A/TMS9929A VDP emulation library (C99)\n\nFollow along on YouTube here: [youtube.com/@TroySchrapel](https://youtube.com/@TroySchrapel)\n\n## Development environment\n\nTo 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.\n\n#### Windows\n\nFor 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.\n\nThe 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.\n\nYou 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`.\n\n## Episodes\nIn 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.\n#### [Episode 1 - VGA](episodes/ep01-vga)\nIn 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.\n\n[\u003cimg src=\"img/boing-sm.gif\" height=\"150px\"\u003e\u003c/img\u003e](episodes/ep01-vga/ep01-vga-04-boing)  [\u003cimg src=\"img/nyan-sm.gif\" height=\"150px\"\u003e\u003c/img\u003e](episodes/ep01-vga/ep01-vga-05-nyancat)  [\u003cimg src=\"img/framebuff-sm.gif\" height=\"150px\"\u003e\u003c/img\u003e](episodes/ep01-vga/ep01-vga-06-framebuffer)  [\u003cimg src=\"img/slideshow-sm.gif\" height=\"150px\"\u003e\u003c/img\u003e](episodes/ep01-vga/ep01-vga-09-slideshow)\n\n#### [Episode 2 - TMS9918A](episodes/ep02-tms)\nIn this episode, I incorporate my TMS9918 library and create some test programs to test the TMS9918 functionality on the Pi Pico.\n\n## Complete kits\n\nComplete PICO-56 kits are now available on Tindie:\n\n\u003ca href=\"https://www.tindie.com/stores/visrealm/?ref=offsite_badges\u0026utm_source=sellers_visrealm\u0026utm_medium=badges\u0026utm_campaign=badge_large\"\u003e\u003cimg src=\"https://cdn.tindiemedia.com/images/resize/aYF_NMOzpFobut8nNDlEHyrd5dg=/p/full-fit-in/1782x1336/i/214054/products/2024-02-08T05%3A21%3A57.401Z-kit-components.png?1707341274\" height=\"480px\"\u003e\u003c/img\u003e\u003c/a\u003e\n\n\u003ca href=\"https://www.tindie.com/stores/visrealm/?ref=offsite_badges\u0026utm_source=sellers_visrealm\u0026utm_medium=badges\u0026utm_campaign=badge_large\"\u003e\u003cimg src=\"https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-larges.png\" alt=\"I sell on Tindie\" width=\"200\" height=\"104\"\u003e\u003c/a\u003e\n\nAlso featured in HackerBox 0103 for those in the US:\n\n\u003ca href=\"https://hackerboxes.com/collections/past-hackerboxes/products/hackerbox-0103-homebrew\"\u003e\u003cimg src=\"https://hackerboxes.com/cdn/shop/files/HB0103WholeBox_1024x1024@2x.png\" height=\"480px\"\u003e\u003c/img\u003e\u003c/a\u003e\n\n## Gerbers\n\nGerbers for the PICO-56 v1.4 are now available. See [/schematics](schematics)\n\nIf 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)\n\n## Schematics\n\n\u003cp align=\"left\"\u003e\u003ca href=\"schematics\"\u003e\u003cimg src=\"schematics/Schematic_Pico56_v1_4.png\" alt=\"PICO-56 v1.4\" width=\"720px\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n## Bill of materials\n\n| Qty.     | Description                       | Code                              |\n|----------|-----------------------------------|-----------------------------------|\n| 1        | PICO-56 PCB                       | PCB                               |\n| 5        | 100nf (104) ceramic capacitor     | C3,C4,C5,C6,C7                    |\n| 3        | 10uf (106) electrolytic capacitor | C8,C1,C2                          |\n| 3        | 4kΩ 0.25w resistor (3.9kΩ ok)     | R1,R5,R9                          |\n| 2        | 10kΩ 0.25w resistor               | R20,R21                           |\n| 6        | 2kΩ 0.25w resistor                | R22,R2,R6,R10,R17,R18             |\n| 9        | 1kΩ 0.25w resistor                | R3,R7,R11,R13,R14,R15,R16,R19,R23 |\n| 3        | 500Ω 0.25w resistor (510Ω ok)     | R4,R8,R12                         |\n| 1        | 2N4401 transistor                 | Q1                                |\n| 1        | 1N5819 diode                      | D1                                |\n| 1        | Blue LED                          | LED1                              |\n| 1        | Green LED                         | LED2                              |\n| 1        | Push button                       | KEY1                              |\n| 1        | Push button (locking)             | PWR1                              |\n| 1        | Barrel jack connector             | 5V                                |\n| 1        | VGA connector                     | DSUB1                             |\n| 2        | RCA connector                     | J2,J3                             |\n| 2        | NES connector                     | NO1,NO2                           |\n| 1        | PS/2 connector                    | PS2                               |\n| 1        | Raspberry Pi Pico (plus headers)  | U1                                |\n| 1        | MicroSD card connector            | U2                                |\n\nThere 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.\n\n## 3D Printed case\n\nA 3D printed case is available. All STLs are in the [/case](case) directory.\n\n\u003cp align=\"left\"\u003e\u003ca href=\"case\"\u003e\u003cimg src=\"case/img/pico56-case4.jpg\" alt=\"PICO-56 case\" width=\"720px\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n## Videos\n[![PICO-56 - Introduction](https://img.visualrealmsoftware.com/youtube/thumb/Nj_KkYn7YaA)](https://www.youtube.com/watch?v=Nj_KkYn7YaA)\n\n[![PICO-56 - Full Kit Build](https://img.visualrealmsoftware.com/youtube/thumb/1hwMNQ1DXIU)](https://www.youtube.com/watch?v=1hwMNQ1DXIU)\n\n### Thanks\n\nThanks to [PCBWay](https://pcbway.com/g/186WQ9) for supporting this project.\n\n\u003cp align=\"left\"\u003e\u003ca href=\"https://pcbway.com/g/186WQ9\"\u003e\u003cimg src=\"img/pcb02.jpg\" alt=\"PICO-56\" width=\"720px\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n## Resources\n\n* [Windows Development Environment Installer](https://github.com/raspberrypi/pico-setup-windows/releases)\n* [Raspberry Pi Pico C/C++ SDK (PDF)](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf)\n* [HBC-56 Project](https://github.com/visrealm/hbc-56)\n* [vrEmu6502 - 6502 CPU Emulation Library](https://github.com/visrealm/vrEmu6502)\n* [vrEmu6522 - 6522 VIA Emulation Library](https://github.com/visrealm/vrEmu6522)\n* [vrEmuTms9918 - TMS9918A VDP Emulation Library](https://github.com/visrealm/vrEmuTms9918)\n\n## License\nThis code is licensed under the [MIT](https://opensource.org/licenses/MIT \"MIT\") license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisrealm%2Fpico-56","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisrealm%2Fpico-56","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisrealm%2Fpico-56/lists"}