Thursday, 31 March 2016

Commodore 64 USB keyboard with Raspberry Pi 3

Here is another update to my Commodore 64 with a Pi in it range. Now including the Raspberry Pi 3.
The Pi 3 follows on from the Pi 2, increasing processor speed to 1.2GHz and adding bluetooth and wifi support onboard, whilst keeps the same form factor.
This is yet another variation on how I fit this into the Commodore 64. This time it is sitting in the cartridge slot, and for once I'm exposing the microUSB power connector.
I don't really like these and try to avoid using them. There are too many poor quality microUSB cables and phone chargers out there. I have been using various alternative power options, including the DC-DC converters on the dual USB joystick board for the C64.
There are now Raspberry Pi branded power supplies available, and these perform well. One key thing for me is they have two core figure of 8 cables, designed to carry DC power, rather than the far too thin ones normally found in microUSB cables. The recommended ones for the Pi 3 are 2.5A, and I have used the standard 2A ones for the Raspberry Pi2 and the Raspberry Pi B+ I used to run Spectrum emulators.
I now include one of these with the Raspberry Pi builds to ensure the user has a decent source of power.
As the Pi has connectors all the way around, the LAN and USB jacks are not accessible. The LAN jack is extended to allow external access (in case you don't want to use the wifi).
One of the USB ports is used by the USB keyboard controller on the back of the keyboard.
Another is used for a 4 port USB hub installed where the user port was. The other two are spare, possibly for a USB mouse or memory stick to be left permanently connected inside?
That all fits together quite nicely, for once, without hot melt glue.
The Commodore 64 Pi is available from my Etsy store. There are lots of options available, and different combinations, let me know what you want and I will see what I can do.

Friday, 25 March 2016

VIC20 Diagnostics Kits

When I was first in need of a VIC20 diagnostics cartridge, I made one out of a faulty Super Extender cartridge.
I have also built some VIC20 Diagnostics Cartridge, using my VIC20 Penultimate Cartridge boards. These also ran a selection of cartridge games and worked as a memory expansion.
I've been asked to make some more, but this time the idea was a cut down, single function cartridge. This would be solely to run the diagnostics ROM. This needs 1K of RAM in block 0, and a 4K ROM in block 5. Neither 1K RAM nor 4K ROM chips are easily available these days, so I went for the cheapest and most easily available modern equivalents, a 32K SRAM and a 32K OTP EPROM.
To simplify things further, I dispensed with any decoding. It only needs 1K, so I've set the RAM enable line to be the first 1K address in block 0, the rest of the RAM chip is unused. It may seem a waste, but it is a single use cartridge and only needs 1K. The extra RAM would only slow down the initialisation process. Same with the ROM, the high address lines are tied high, so only the lowest 8K is present in block 5. That gets the chip count down to two, so keeps the cost down as well. Also, no need for sockets here either.
This cut down cartridge is now small enough to fit inside the VIC20 with only the reset switch sticking out. The cut-outs on the side help when removing it.
To go with the diagnostics cartridge, you need a set of loopback plugs. To simplify the production of these, I've built boards for most of the plug, so it all fits together into quite a nice kit.
The datasette plug loops back to itself, but the keyboard, userport and IEC port are wired together.
Not forgetting the joystick port loopback plug.
With all of those in place, the diagnostics cartridge can complete its testing.
UPDATE:
The new batch of boards are available now, click here for more info and buy it now links.

Friday, 18 March 2016

Museum of London Exhibit - London in Video Games

The Museum of London has a new exhibition which I have been involved with. 'London in Video Games' is open from today until the 28th April.
This tell the story of various early video games relating to London. On display are a number of boxed games and a Spectrum and Commodore 64.
Outside of the glass cases, there are some 'pods' in a reception area. These normally house information terminals, but now allow some of these games to be played. And yes, for some reason, they do have padded leather all over the walls, but none on the chairs.
Rather than using the real hardware, which I had refurbished so it was there as an option, the games are running on emulators on Raspberry Pi's. These are  hidden behind the scenes in 3D printed cases.
This should make it easier to maintain, as the Pi emulators can be set to start and restart automatically.
The user plays the game using my ZX Spectrum USB keyboards, so it still feels like the original game. There are a couple of text adventures (Hampstead and Streets of London)
One game (Werewolves of London) uses a vintage Quickshot joystick (with USB Joystick adapter). We will see how these stand up to public use, there are a few spares standing by.
Finally, a Windows game (Broken Sword II) which uses the mouse. This is also run form a Pi, but this time a Pi 2 for a bit more power. The graphics are ever so slightly jerky when moving rooms, just like on an old PC video card.
So if you're in London, pop along to the museum (near the Barbican) and have a play.
Thanks to Foteini Aravani for the photos.

Wednesday, 16 March 2016

3D Printed Raspberry Pi Cases

I've been working on an installation of several of my retro PC USB keyboard with Raspberry Pi, running various old computer games for a museum exhibit. The original idea was to use the ZX Spectrum Pi Zero, but there were maybe a few too many wires that could be unplugged etc.
The revised plan was to use separate ZX Spectrum USB keyboards and mount the Raspberry Pi's behind the scenes. I had a look around for suitable wall mounting Raspberry Pi cases, but was surprised to see there weren't many around.
I did consider adapting some ZX Power Supplies for the purpose. It would be in keeping with being plugged into the Spectrum keyboards, and they were just about a perfect size, maybe a bit high. However these wouldn't been seen and there were going to be initially 3 of these, plus a spare, so that would have been quite a lot of holes to cut out.
A fried of mine found some 3D models on Thingiverse, Credit to the original designer these were very nice cases. The lid was a bit busy with cutouts for vents, camera, monitor, GPIO etc. so he respun the design to have a plain lid, then added the 'ts' tynemouth software logo to give a bit of ventilation (see his write up of using Fusion 360 for this). He then 3D printed the cases for me.
The mounting holes are on 100mm and 75mm squares, so are VESA compatible if you wanted to mount one on the 4 screw holes on the back of a monitor. These looked great with the activity lights shining through the clear cases.
The Spectrum and Commodore 64 emulators run fine on the Pi Zero, so I used the single core Raspberry Pi B+ for the other units to share the same microSD card images.
Later a 1990's PC game was added to the exhibit which needed a bit more power to emulate, so I used a Pi 2. I did try the Pi 3, but in this situation the onboard wifi was a disadvantage, and the extra speed didn't make a noticeable difference.
The Pi 2 cases were printed in blue to distinguish them from the Pi B+ ones. It is the same 3D model, there is enough space and vents on the base of the case for cooling of the extra chips on the 2. This was purely to make sure the units didn't get mixed up.

Monday, 14 March 2016

Zipstik Joystick Repair

The Zipstik has always been a favourite joystick of mine, a nice simple four way stick with two fire buttons. It has a very good action due to using microswitches throughout, giving a solid click when you move or fire. A bit like the clicking of the IBM Model M keyboard I am typing this on.
I've use these a lot when testing my USB joystick adapters, and the USB joystick options on ZX Spectrum and C64 USB keyboards, as well as of course on original machines from the 1980s.
These use the standard 9 way D pinout common to machines from the 2600 through the C64 and VIC20 to the ST and Amiga, but not the Spectrum +2 (thanks Amstrad for changing the pinout).
Most of these are pretty solid, but I picked one up recently that wouldn't move up. It didn't click when moved up, so was probably the switch at fault, which I verified by shorting the contacts on the up switch and it moved up.
The microswitch is a standard size and shape, and has been used since at least the 1970s on various devices, and is still available today. There are various options for force and actuator and connection types. Most have common, normally open and normally closed contacts. The ones in this joystick only needed common and normally open, the extra tag can just be ignored.
In order to maintain a uniform feel, I opted to replace all four direction microswitches. The two fire buttons were different type, with a blue edge. These worked fine, so I left those in place.
This particular Zipstik had an autofire option. Like many autofire circuits of the era, it was intermittent at best, and support varied from machine to machine. This one didn't need 5V, and just connected from ground to the fire line, This was soldered to the tabs, rather than being crimped it. With no separate power connection, it was drawing power from the pullup, so it wouldn't work on things like a Kempston joystick interface for a Spectrum where the common is actually 5V and the signal lines are pulled down to 0V. In this case I opted to remove it to simplify things.
The new microswitches I have used are Cherry D45Y, these are rated for 100,000 operations, so should last a while. These are high current versions, which I think have a more solid click than the low current ones that could have been used. These have larger spade connectors than the originals, but since some of the original connectors have been soldered to, and some are frayed, I replaced all the crimps with larger larger ones. With the removal of the autofire, the ground wiring was rejigged slightly, so I made a new ground connection for most of the switches, all chained together.
After the case had a cosmetic cleanup, time to reassemble and test. Here I'm using my old faithful joystick tester - just a battery and some LEDs in a box wired to a 9 way D connector, but quite handy for quick testing like this.
That's all working, it's first task is with one of the USB joystick adapters, configuring RetroPi on a Raspberry Pi 3.