New revision of the C128Neo It’s been a long time since I posted an update, this doesn’t mean that I’ve not been working on the project. The focus has mostly been on small quality of life changes to integrate some things that are often done as little addon boards and patches directly into the main PCB.
Revision 4 boards are now available for purchase at my tindie store. I’ve added green as a colour option for people prefering the traditional look.
Dot clock problems A customer reported an issue with the C128Neo boards causing certain cartridges to not work correctly, in his case a Swiftlink cartridge.
The email he sent me had full details on the issue which is always very appreciated. He also posted about it on lemon64.
This issue affects all current C128Neo boards.
The problem R47 on the original board had for some reason ended up where R101 should be located and there where no solder points for a resistor where R47 should be.
Open128 released The open source version of the C128Neo called Open128 has now been released, you can find it on github. This is almost identical to the revision 3.3 of the C128Neo, with changed logos.
It is licensed under CC BY-SA 4.0 and can be used as you please, feel free to issue pull requests if you have improvements.
There are issues with the silk screen but it should be functional in any case.
Backstory and first attempts As I mentioned in my last post I’ve been working on reverse engineering the PLA chip in the C128. I’m now mostly done with this process so I think it’s time to share some of the findings.
This has been a very interesting project as I did not really know much about semiconductor design and manufacturing. My existing knowledge extended to having seen some die shots and admiring the pretty looking pictures.
Hi all.
At long last, the boards are now available for purchase on Tindie.
I’ve not been sat idle in the mean time as I have started working on reverse engineering the PLA chip of the C128.
More to come on this topic in a future post.
Here’s another interesting discrepancy between the schematic in the service manual and the actual PCB.
Though neither the jumper of the pin on the ROM it’s connected to is labelled, it is documented as A12.
To understand what’s going on here a bit better we need to look into how the VIC display characters.
VIC-IIe memory banking Let’s first have a look at how the VIC is using the memory. As opposed to the CPU the VIC can only access 16kB of RAM.
It’s been a while since I updated the blog now but I’ve not been inactive.
Base on feedback from some of the early testers, I’ve made some small updates to the Neo board and created revision 3.1. The changes are small, mostly adjusting the size of the mounting holes for some of the components for easier assembly.
Seeing as I’ve not heard of any major issues with the boards I went ahead and ordered a production run.
Bill of materials Hi all. The first revision of the bill of materials have been uploaded. The link can also be found in the menu and on the assembly guide page. Some components can be a bit tricky to source unfortunately.
Early bird boards I also have three spare revision 3 boards still for sale. They are fully functional electrically and mechanically but do have some minor cosmetic issues like a misplaced silkscreen text and similar things.
Continuing with the series on fixes compared to the original Commodore PCB, we now come to these two wires:
(Ignore the capacitor, that’s a different story)
If we look closely, we can see that one pin on the VDC has been isolated from the PCB traces by drilling them out in two places. Then new wires have been pulled to connect the now isolated pin on the VDC somewhere and another wire was used to bypass that segment for the original trace.
This week I received the revision 3 boards I had ordered.
I promptly set about assembling one for testing. I’ve finally managed to sort out some of the mechanical sizing issues I’ve been having with some of the components, in this particular case the RF modulator and the RF cage around the video chips which now fit as they should.
All worked as it should after assembly and I only noted some minor cosmetic issues to be resolved.
So, I figured I would make a small series of posts on the various little fixes that has been implemented on the C128 Neo boards. First up is this little fellow that is manually soldered to the underside of the PCB close to the 8502 CPU.
Since there are no markings I ended up following traces around to figure out what it is for. In the commodore schematic it is marked as R102 and sits between the 1MHZ and D1MHZ lines.
I received the revision 2 boards from the PCB shop last week and spent some time soldering one together. I went with green solder mask this time just to see how it would look when closer to the original colours, turns out not too bad. I prefer the red colour though so I think the boards I make will be red in the future.
Quite a few improvements since rev.1, not the least of which being mounting holes.
Needed materials One Commodore 128 for the case, keyboard, power supply and some parts One C128 Neo PCB One set of components from the Bill of material Make sure to use the revision matching the board you have! Things to note There is no need to add jumper wires to the board or cut traces.
Pay attention to the jumpers on the board. They should be installed and populated according to the legends on the board.
FAQ What is the C128 Neo? The C128Neo is a almost identical replica of a Commodore 128 revision 9 motherboard. Only small changes have been made to integrate changes made during the manufacturing of the original computers to save having to cut traces and solder on jumper wires when building a computer from it. Additionally, some other small changes were made to make it easier to assemble and work with the machine.
Slide decks Presentation slides from my talk at VCF West 2022
Images Scanned images of a Commodore 128 revision 9 mainboard. All images captured by me and put under the CC BY-SA 3.0 license.
rev 9 mainboard: PCB Front side (9921x7015, 600 dpi)
PCB Rear side (9921x7015, 600 dpi)
rev 9 mainboard, solder mask removed: PCB Front side (9921x7015, 600 dpi)
PCB Rear side (9921x7015, 600 dpi)
rev 9 mainboard, only traces: PCB Front side (9921x7015, 600 dpi)
Doing PCB layout for something as large as the C128 board is not an easy task, shown by the comment above that can be found on the original C128 boards. As such, I made the decision early on to not make any major changes, just follow the original design as closely as feasible. To help with this process, some steps are involved. I started with buying a spare board from eBay that could be sacrificed.
I received my first own computer on my tenth birthday, a shiny brand new Commdore 128. As most kids in the 80s I then spend hours and days playing games and enjoying myself. Over time however I started getting interested all the other things that were mentioned in the manual that came with the system. This was the start of my career working in IT so you could fairly reasonably state that the C128 hand book has been in some ways the most influential book in my life.
The C128Neo is a reverse engineered reproduction of the Commodore 128 computer PCB.
The only changes made have been minimal changes to make it easier to assemble and use, while not changing the functionality. The intention is to be used as a replacement board for computers where the factory board has gone beyond feasible repair.
The picture above is a first revision board, which was put together in order to verify the functionality of the layout and also to iron out any issues with the mechanical design.