Retro CPC Dongle – Part 48

The CPC2 daughter board described in my last post arrived quicker than expected, but dry assembling the board revealed some unforeseen problems. So this post contains another lesson learned.

Let’s start with a picture the two boards mated, click or touch for a large version:

Continue reading

Retro CPC Dongle – Part 46

It’s time to create the enclosure for the CPC2. This is my first foray into the world of 3D printing and it was quite daunting at first. However, free online software like TinkerCad make the process of creating a model fairly simple. I chose to start by creating the base that would hold the main PCB as this would likely be the most difficult piece to get correct, mainly because the cut-outs for the ports had to line up correctly. I ended up with this:

When printed, it gave me this:

Click for a large image

Not quite right, but almost! The holes for the HDMI and USB don’t quite align. To be fair to me, I was working from the mechanical design, rather than measuring the actual board that I built, so it’s not too bad.

One of the problems I have in testing the board fit is that there are two pin headers on the bottom of the board for the ESP32-Wroom32 and the FPGA, so it won’t quite fit onto the mounting pegs for a flush fitting. My plan is to build a second board that will connect to the main board with pogo-pins and remove the pin headers completely. That way, the same board can sit low in the case when in use and sit on the pogo-pins for testing and programming. This also means it must be easy to remove the board from the case and return it when programmed as it will flop-flop between the test harness and the finished case as needed for system programming.

Without spending time to really understand the capabilities of 3D printing, I opted for a conservative design for the enclosure. It will be a three part-piece comprising the base shown above, the top and the keyboard. It could probably have been done with two pieces, but would require support structures and have been a lot more difficult to print.

With businesses across the world struggling with COVID related problems, I really wanted to support my local businesses, so I used an Aussie printer, to print the part for me. It was a little more expensive than buying from overseas, but helping out local businesses in a tough year is the right thing to do.

I considered buying a 3D printer, but I’d need to create 9 pieces before I broke even at $50 per print vs a FlashForge Finder. I may still do this, given the lead time it takes to get a manufactured print and the chances of me screwing it up a few times.

The other discovery that I made when creating the model for the base is that to maintain the correct proportions for the CPC2 with the original CPC, is that it needs to be quite long. Anyone that knew the original CPC464 knew how long these machines are. You can see the location of the board pins in the image above, and everything outside of these is empty space. However, for the CPC2 to look like a miniature of the original, it needs this space added to be proportional. Sadly, it makes the final outer dimensions a lot larger than I wanted, and not exactly a dongle any more.

However, at this point, I’ll just be glad to have the project finished. I hope to have the programming harness built for my next post, so until then, stay safe!

Last Post <====> Next Post

Retro CPC Dongle – Part 44

Final Hardware Build

At long last, the final build of the CPC is finished, tested and working!

A working CPC2(dot4!)

Assembly of the new board was pretty uneventful. I followed my usual process of dry assembly on a spare board, solder pasting with a stainless steel stencil, rapidly transferring the components from the dry board to the pasted board followed by a session in the IR oven. Continue reading

Retro CPC Dongle – Part 43

With the world in lockdown, you’d think there’s plenty of time for hobbies. Somehow, it’s been 4 months since my last post – time flies in a crisis! I’ll admit that I’ve been somewhat lax in working on the CPC2, but with the project so close to completion, I need to re-commit to finishing this 5-year project! Today’s post is about my CPC Bluetooth joystick!

Modded Atari 2600 joystick

Continue reading

Retro CPC Dongle – Part 41

Build v2.3

So the next build of the CPC2 is done. I recorded the process with a time-lapse camera because it’s hard to make a 7 hour build entertaining. Each second of video is 30 seconds of assembly time, so this 7-hour build ended up at 7m19s of timelapse, after cutting out the cursing and head-scratching. See if you can spot my hands start to shake at the 2-hour mark of trying to precisely place the sub-millimetre components and enjoy.

Continue reading

Retro CPC Dongle – Part 38

This post talks about HyperRAM, what it is, how to interface to it and how to improve the performance of high-speed parallel interfaces.

HyperRAM is described well by Cypress. It is essentially a double data rate RAM with a compact 12-line interface that masks the underlying technology of a DDR SDRAM.  It can provide 333MB/s of data transfer in short bursts. Data is transferred on both edges of the clock, and the narrow bus makes it ideal for microprocessors or pin-constrained FPGAs. Continue reading

Retro CPC Dongle – Part 36

Another update and another dead end. In an attempt to add the much-needed storage mentioned in my last post, I managed to damage the board so that the JTAG connection stopped working. I added the EPCQ configuration flash chip to the board, only to find that I’d wired the data in and data out back to front and the flash can’t be read from the FPGA. I looked at direct access through the ASMI connection, but I couldn’t get this working. I guess it doesn’t expect the chip to be wired in ‘backwards’! In a futile recovery attempt, I tried to solder in the spare 16G eMMC card, but managed to short out the power pins again. Upon desoldering the eMMC, I must have damaged something because the JTAG connection stopped working. The chip could still be programmed through the supervisor connection on the fast-passive-parallel port, so it was not extensively damaged, but the JTAG connection was pretty essential to efficient RTL development. For now the board is relegated to the ‘post-project-review’ bin. Developing the hardware, RTL and software all in parallel creates too much inefficiency. So I decided to use this board to finish the development, the Terasic Cyclone V GX Starter:

Continue reading