Ben eater's 8-bit computer is a digital computer assembled entirely on breadboards using very basic electronic components such as diodes, flip-flops, the famous 555-Timer etc.
This no-less than phenomenal project, which was carried on and shared for free on the internet by Ben Eater, is a true gold mine to learn both digital electronics in one hand, and the fundamental architectural designs that underpin the modern digital computer we're all used to, ranging from the clock to the ordinal counter, going through the notions of bus, registers, arithmetic and logic unit, sequencer etc.
Another valuable lesson I learned from this project is the enormous care that must be given to electronic circuits stability : as more and more components get added to the whole system, some strange behaviors start to emerge within the global circuit which are simply due to the fact that the electronic components we use are not as perfect as we would hope when drawing the schematic 😅(some wire resistance here, some unforeseen capacitance there etc.) ... Aah the gap between theory and practice never felt so real 😂!
I managed to reach a more or less stable result up until the end of the building process, but once I got to the final part which was the control logic (or as I sometimes call it the "sequencer"), there was unfortunately too many unstable parts in the system to carry on (especially some very strange signals on the bus coming from seemingly nowhere🙃). And with the new academic year starting, I had to put this project to on hold until I get more time for it and also more knowledge on how to debug electronic circuits !
Some research in the meantime showed me that I was not an isolated case when it comes these issues I encountered. I even found a subreddit entirely dedicated to Ben Eater's 8-bit computer with highly relevant posts like this one.
The original project on YouTube :
My Attempt : Mostly done ... but sure learned a lot !
This project was originally needed for the 8-bit computer in order to program the EEPROM's that would allow to control the 7-Hex dispalys and to create the control logic of the computer. But as the only EEPROM I found on my local market was a COMPLETELY different beast than the one used by Ben Eater, this little module ended up being an entire project of its own 😂!
The problem was that, at the difference of the AT28C16 EEPROM used in the original project, my AT28C256 required programming sequences faaar more sensible to the timing of the electrical impulses : there were time thresholds (in the order of the micro seconds) between consecutive electric impulses which, if gone above, would result in a complete failure of the programming sequence.
While the Arduino Nano is a quite capable Micro-controller platform, using its standard library for performing write operations through its write pins proved to be too slow in order to respect the timing constraints of the EEPROM I had. After many days of research online and experimenting, it turned out that the solution was to directly write to the Arduino Micro-controller port registers, instead of going through the standard library higher level functions. This resulted in the writing time boost required to perform the programming sequence for the EEPROM ... what a relief 😅!
Here is the link to the dedicated github repo that resulted of this side quest which turned into a completely separate project ! Also you can find to the left one of the many resources I used to learn on this topic and apply it to my use case. There is also a blog post in an obscure blog site in german that hepled a lot when doing this, but it will take me some time to find the link 😅I'll make sure to upload it here ASAP !