{"id":14980923,"url":"https://github.com/brentseidel/pi-mainframe","last_synced_at":"2025-10-29T04:30:53.414Z","repository":{"id":95368237,"uuid":"405707130","full_name":"BrentSeidel/Pi-Mainframe","owner":"BrentSeidel","description":"Simulated mainframe computer based on a Raspberry Pi","archived":false,"fork":false,"pushed_at":"2024-09-20T19:17:35.000Z","size":304336,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-01T21:41:35.289Z","etag":null,"topics":["ada","hardware","kicad-schematics","latex-document","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrentSeidel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-09-12T17:23:24.000Z","updated_at":"2024-09-20T19:17:40.000Z","dependencies_parsed_at":"2024-08-20T15:48:45.607Z","dependency_job_id":null,"html_url":"https://github.com/BrentSeidel/Pi-Mainframe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentSeidel%2FPi-Mainframe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentSeidel%2FPi-Mainframe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentSeidel%2FPi-Mainframe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrentSeidel%2FPi-Mainframe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrentSeidel","download_url":"https://codeload.github.com/BrentSeidel/Pi-Mainframe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238768404,"owners_count":19527195,"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":["ada","hardware","kicad-schematics","latex-document","raspberry-pi"],"created_at":"2024-09-24T14:02:36.184Z","updated_at":"2025-10-29T04:30:43.393Z","avatar_url":"https://github.com/BrentSeidel.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pi-Mainframe\nSimulated mainframe computer based on a Raspberry Pi\n\n[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/blinkenlights.json)]\n(https://alire.ada.dev/crates/blinkenlights.html)\n\n\nWhen I was a young lad, computers had complicated panels filled with\nswitches and lights.  Sadly, these disappeared as I got older.\n\nThis project is an attempt to recreate the feel of old mainframe computers\nusing a Raspberry Pi 3 and some other assorted parts that I had laying\naround.  The actual boxes and panels are 3D printed.\n\nHere is an example system.  Note that it is fairly modular and the\nmodules can be attached in different ways.\n![System Front](./Pict/System-Front.JPG)\n\nBack of system\n![System Back](./Pict/System-Rear.JPG)\n\n## Note\nThis is still very much a work in progress and things will change.\n\nThis project requires 3D printing, making PCBs, soldering, and building\nsoftware from source.  It might be a good project for an undergraduate\nengineering program.\n\n## Power\nI originally used a random micro USB power supply for the Pi 3 that is\nrunning the simulation.  It would complain about low voltage and\noccasionally reboot.  I just replaced it with the official Raspberry Pi\npower supply and it is not complaining about low voltage.  Time will\ntell if it is more stable.\n\nUltimately, there will be limits to how much power you can get out of\nthe Raspberry Pi.  There are ways to reduce the power needed.  The first\nthing that I would try would be to increase the value of the resistors\nfor the LEDs.  This would also reduce the brightness so you may wish to\ndo this as well, if the LEDs are too bright.  A little experimentation\nwill be needed to determine the proper value.  From a BOM viewpoint,\nusing the same resistors for both the switches and LEDs would be a win.\n\n## PCBs\nThree printed circuit boards have been designed to eliminate some of the\ntedious soldering.  Using the PCBs make assembly much easier and the\nresulting project much less of a mess of wires.\n\n### IO Board PCB\nThe I/O board PCB has been created and tested.  The schematics and PCB\nlayout have been moved to the Circuits reporitory.  Documentation and\nassembly instructions for it have been created there.\n\n### Breakout PCB\nA breakout PCB has been developed for breaking out the 10 conductor\nribbon cables that are being used for the I2C bus, and other uses.  It\nis also in the Circuits repository.\n\n### LED PCB\nA PCB has been developed for holding the LEDs.  This required some redesign\nto the panels.  However it eliminates the soldering of wires directly to\nthe LED leads.  The LED PCB can also be fairly easily added to and\nremoved from panels should you wish to, for example, use LEDs of different\ncolors.\n\n## Dependencies\nThis depends on the following repositories:\n* https://github.com/BrentSeidel/BBS-Ada.git\n* https://github.com/BrentSeidel/BBS-BBB-Ada.git\n* https://github.com/BrentSeidel/Ada-Web-Server.git\n* https://github.com/BrentSeidel/Things.git\n* https://github.com/BrentSeidel/Sim-CPU.git\n* https://github.com/BrentSeidel/Circuits.git\n\nIf you are actually interested in simulating old computers, you can\ndownload and build simh from github at https://github.com/simh/simh.git\nI was able to get the PDP-11 sim to build (I haven't tried others) and\nrun on a Raspberry Pi.  As far as I know, it has no support for blinking\nlights.\n\nYou could, of course run simh in parallel with this project giving a\nCPU simulation as well as lights and switches.  Unfortunately, they would\nbe completely independant.  Someday, perhaps this will change.\n\n## Assembly\nThis project will require quite a bit of 3D printing and soldering.  The\nincluded documentation includes a parts list.  Read the documentation\nfirst, then download the dependencies repositories.  Finally decided\nhow big of a system you want.\n1. Slice the 3D models and start them printing.  This will take a while,\n   so start this first and then work on other things while they are printing.\n2. Install Raspberian on the Raspberry Pi and install the following packages:\n   * avahi - This allows discovery on your local network\n   * gnat - The GNU Ada distribution\n   * gprbuild - Used for building Ada software\n3. Build the software.  If there are errors about missing \"obj\" directories,\n   create the directories.\n4. Start soldering the various boards and cables.\n5. As panels come off the printer, install LEDs and switches as appropriate\n6. As the trays come off the printer, install the boards and connectors.\n7. Once everything is printed, put all the pieces together.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentseidel%2Fpi-mainframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrentseidel%2Fpi-mainframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentseidel%2Fpi-mainframe/lists"}