I've been sick for a few weeks, so progress had to take a back seat to recovering, but last night I had a chance to look at some of the latest code that Ben Eater publisher for his breadboard 6502 (you may recall that it was my aim to make this board pin-compatible with a few current projects others are working on - so far, I've been successful). and he had started to experiment with the use of the static RAM. I wanted to give my SRAM a try, so I loaded his code, with some of my own modifications, and here you have it!
As it stands, really the only thing left for me to test is some GPIO with my pushbuttons, so I'll try and make some time for that coming up!
I'll provide some more details later, but let me give you the short version - I assembled the through-hole parts on the boards from china (all the SMD work I had done)... and i fixed all of the upside-down LEDs... and IT WORKS. The board works! #HelloWorld!
Chinese new year, Coronavirus, it all played a part in why this last step has taken so long - it was a good 2 months from the time i submitted my PCB designs to the board house to the time I received my first assembled boards. All in all, I'm super happy with the results. I made some errors with component orientation (so all the LEDs are backwards) and I need to substitute out some component values (the LED's are too dim) but all in all I'm calling it a success. I'll have photos shortly once I rework some minor issues!
I'm anxiously waiting for 'China to Reopen'...... it's Chinese new years, and with the Coronavirus stuff going on, they extended things a few more days, so i'm sitting here crazy impatient, waiting for workers to get back to the factory and assemble my PCB's that are sitting there waiting. I'll keep you updated!
This board represents a major design shift - the move away from through hole components to SMD parts. The reason for this, really, is ease of assembly. This will still be a kit, but the only thing the builder will have to solder will be things like PCB sockets, the power switch, big stuff like that. Let the board house do the resistors, LEDs, logic ICs, etc. It just makes good sense, I think. The boards are currently in production (I timed things horribly in line with Chinese new year) so it might be a while before i get them back. I ditched the USB connector and decided to add a voltage regulator to make the input voltage a bit more flexible. Previous boards HAD to be 5vdc and nothing else. Here is what they should look like (minus the SMD components soldered on) when I get them
You'll notice that much has come full circle on the design. My eyes really like the way this layout has come together. I'll post some pics of the finished board when they arrive! And of course, testing....
I've been making a conscious effort to keep my design in line with the work Ben Eater has been doing lately - I think a lot of people who are working with his kit could have fun using his parts on this board - So a huge thanks to Ben for the work he's done on that front!
The Rev 4 PCB was really a turning point in the design. I decided to go with a blue soldermask, a design choice I'm going to stick with for this project. I really love the way it looks. The Rev 4 board is the first time I ever tested the EEPROM and LCD functionality (they work), and it really is coming into its own. I decided to lose the Arduino Mega footprint, and keep that function off-board. I'll talk more about that strategy later. Another really significant change is the use of octal buffer driver IC's to power the LEDs. I was pulling WAY too much current off the pins of the 6502, far in excess of the data sheet specs - I'm shocked I didn't smoke the thing. This approach significantly reduces the current draw on the address and data bus lines to a negligible amount. And one more thing, I opted to use resistor networks instead of single resistors to make assembly that much easier. Here's a layout of the Rev 4 PCB, the order went to the board house for these on 1/5/2020.
Even though the PCB shows 'Rev 1.0' on it, it's the 4th revision PCB. I just considered it the first 'release candidate'
I rearranged the LEDs a little to break things up into nibbles, as well as reverse the order so the most significant / least significant digits made more sense to my head. All in all, this board worked very well. I finally settled on a good power switch footprint, and did a lot of testing with this revision. This would be the last fully through-hole revision. In the next board, we move into the realm of SMD. Shown here is the testing board for Rev 4.
I learned a ton of lessons in the first 2 runs of the PCBs, and the Rev 3 PCB was really a turning point. I made this board revision a 4 layer PCB (my first 4-layer PCB for that matter) and it turned out great. In the end, I decided that I wasn't a fan of the way the flux residue stood out on the stark white PCBs, so there's that..... Here's a mock up of the Rev 3 PCB.
Loads of changes in this revision. I decided to stand the resistors up on end to make assembly a little bit easier, and be a little more efficient use of space. I also enlarged the board and added a footprint for an Arduino Mega to be used as a Logic Analyzer, a decision I'll later back off from, in favor of an expansion-module approach. Again, some layout changes as I played with what my eyes liked. One particular change of note is that I enlarged the socket holes on the EEPROM socket, and opened the spacing up a bit. This was in order to allow the installation of a ZIF socket, since the EEPROM, being what it is, will tend to be inserted and removed very frequently. This is also the first time that I soldered a USB connector on the board as a power option - something I later decide to lose. A few more bodges, and we were ready for Rev 4.
Here's a photo of one of my Rev 3 boards being tested. Again, only 5 of these boards were made.
With lessons learned from Rev 1, design changes were made and the Rev 2 PCB order went off to the board house. This order was placed on Dec 10, 2019. Shown below is the Rev 2 PCB design.
In this revision, the power jack was wired properly, I added a bunch of different LEDs to show the state of the address and data bus lines. I added DIP switches to allow for manipulation of certain key 6502 signaling line states. I also played with layout a little bit. Shown here is a testing sample of this run. Only 5 of these PCBs were made.
I didn't have the smaller 3mm LEDs yet, so I made do with some 5mm LEDs that I had on the bench. More lessons learned, more bodges, and we were on to Revision 3.
I started dabbling with this project in November of 2019, and by the end of the month I had sent the first PCB design to the board house. This is what that board looked like.
There were numerous design errors with the board. The power jack was wired backwards, there were various bodges necessary on the PCB to get things working, but it was not bad for the first run. In total, 5 of these boards were made.
Show here is what's left of an early prototype, that's had some disassembly and troubleshooting done after testing.
Apple. Atari. Commodore. Nintendo. If you were a child of the 80s and 90s, like I was, these names bring back some fun memories. The 6502 microprocessor and its derivatives ushered in an era of computing like nothing we've ever seen before (and arguably, since). When MOS started producing the 6502 back in 1975, little could they know that 45 years later, some hundreds of millions of units would be produced, and in so many milestone products of the time.
The Commodore 64 had one. So did the Nintendo Entertainment System. Atari 2600? Yep, also a 6502 family processor! Today, with the resurgence of hobby electronics, the maker movement, and the overall ease in which we can tinker these days, the 6502 is seeing a resurgence in popularity. Part of it, undoubtedly, is nostalgia, but don't discount the little old chip from 1975 - she's still got some tricks up her sleeve.
There have many many people in the community over the past decade blazing the trail with the 6502, helping the rest of us dip our toes into the technology. This project is an evolution of that work. I take no credit for originality with this project; instead, what I've done is seek out and borrow the best ideas from the community and incorporate then into a development environment where you too can experiment with the 6502 as simply as possible.
Ultimately, the goal of this project is to produce and sell a kit that makes experimenting with the 6502 so easy that anybody can do it. But more on that as things progress...