SpeccyX - ZX Spectrum Next Handheld
This project has nothing to do with the official Spectrum Next Kickstarter or the Spectrum Next team. This is simply an attempt by myself to create a handheld Spectrum using 3D printing technology and a smaller version of the Spectrum Next board that I backed on Kickstarter.
It's been a while since building a laptop case for my Spectrum Next board and since then I have learnt a lot more about the Spectrum Next board, enough in fact to give me the confidence to try and build a smaller version of the board. Something that would be suitable for creating a hand-held Spectrum.
Another Spectrum Handheld?
Spectrum games can already be played on a large variety of phones, tablets, Nintendo DS, Sony PSP, Rasberry Pi etc via software emulation. There was of course the infamous Vega + which, initially promised to deliver a dedicated Spectrum handheld experience but didn't exactly work out well for the people who backed that project on Indiegogo (One of those backers was myself).
The handheld I wanted to create would be a dedicated Spectrum device, it will be compatible with Spectrum Next games and most importantly it will be real hardware rather than a software emulator.
A Big Calculator Meets a GameBoy
Here are some designs for my handheld Spectrum. I've been calling it the SpeccyX for now and as you can see it looks like a cross between a big calculator and a Gameboy! It is fairly large, probably about the size of a small Tablet which I'm happy with. There may be scope to make a smaller version in the future, but this is dependant on me finding a smaller screen that delivers an acceptable image.
- Dimensions: 127mm x 178mm x 18mm
- LCD: 5" HDMI (Spectrum screen area ex. border 71mm x 52mm)
- Controls: Nintendo DS D-Pad and button assemblies
- Keyboard: 40 Buttons, 9mm x 8mm each in size
- Sound: Stereo speakers/headphone socket with volume dial
- Storage: Micro SD (spring loaded)
- Firmware/OS: Standard Spectrum Next firmware and NextZXOS
It's a Spectrum Next
Whilst emulators are fine for a low cost retro gaming experience, I prefer my retro games to be running on real hardware. In this case the awesome ZX Spectrum Next. I received my Next board back in December 2017 and since then have learnt enough about it to be able to re-produce the board in a much smaller footprint. Some things such as the Expansion Connector and Ear (tape loader) socket have been removed completely. This is a handheld where games are loaded via SD card so there isn't much need for these.
I've never been a huge fan of virtual keyboards in other Spectrum handhelds, so for the SpeccyX I wanted to have a small keyboard containing all the keys found on the original rubber keyed Spectrum. It is a simple micro switch driven keyboard and is not meant for fast typing, rather its sole purpose is to enable navigating game menus quickly, selecting the options you want and getting the game started the way the games were originally designed to be operated.
The Game Controls
When it comes to the D-Pad and the 4 game buttons, I decided to simply use Nintendo DS D-pad and button assemblies. These can be found on Ebay for a couple of ££'s and as you can imagine with a Nintendo device they feel perfect for the job.
The D-Pad and the 2 buttons ("A" and "B") map to the Kempston joystick. With 2 additional buttons ("X" and "Y") above that map to the "Enter" and "Space" keys. What if the game doesn't support a Kempston joystick I hear you say? There is an additional slide switch to the right of the Green M1 button which toggles the D-Pad/"A" & "B" buttons between Kempston and Sinclair which should cater for most games.
If a game only has a redefine keys option, again, the Sinclair option can be used as these simply map to the keys "6" to "0" anyway and along with the "X" and "Y" buttons this should give enough buttons for most games.
Anybody who is familiar with the Spectrum Next (and earlier Spectrums) will know the menus in the OS are driven by the cursor keys, however by installing this nifty driver made by Paul Land the D-Pad (in Kempston mode) can be used to navigate the menus and load games instead of the traditional Spectrum cursor keys.
This is where things get complicated! As the SpeccyX is based on the Specturm Next and because it must also be compatible with the Spectrum Next FPGA core/firmware I am constrained by the 2 video outputs of the Next, namely VGA and HDMI. Having these 2 options for connecting the handheld to a small LCD screen should make things easy (in theory). The reality though is a little more challenging.
Finding a small VGA LCD (5 Inch or less) that can display a minimum of 640x480 is tricky. For a start, most of these (4:3) screens have a lot of weight to them and tend to be a little on the power-hungry side - not good for a battery driven handheld. Once a reasonably sized screen has been found, the likelihood is that the image will not be displayed correctly and will most likely not be centred on the screen. This is due to the Next not generating a VGA signal that these small screens can digest. Of all the screens I have tried that feature VGA inputs, none of them have been acceptable.
Sure, it's possible to sort the image out via the built-in screen menu's that allow fine tuning of the vertical/horizonal positioning but this isn't ideal when you have to do this every time you turn the device on. There must be a better option.
Thankfully the Next also has HDMI output too and this is more tolerant of small LCD's. After testing different screens I settled on a 5 Inch screen I found on Ebay which also came with a HDMI driver board:
Although there are smaller screens, many of them simply do not support anything higher than 480x320 which, when connected to the Next, results in a blurry image. In an ideal world the FPGA core would be modified to output a resolution to match these small screens, however for now I can live with the larger screen.
The Custom Spectrum Next PCB
As already mentioned, I received my Spectrum Next board back in December 2017 and since then have been re-creating a smaller version of it. Due to the lack of any schematic (due after the final Kickstarter units are delivered I believe) I removed the FPGA and worked out which trace went where. Now I have a smaller version of my Next board.
Here is the SpeccyX assembled just waiting for the back panel to be fitted. A total of 5 PCB's make up the handheld:
- Mini Spectrum Next board
- Keyboard/D-pad input board
- HDMI driver board
- Battery/power supply board
- External connector board
For the 3D printing I initially used my trusty Makerbot Replicator 2 to create the initial prototype cases. This enabled me to quickly make changes until the design had evolved into something that would both work and all fit together at the end. The final printed plastic parts are done using Shapeways Premium Versatile Plastic service. I have used Shapeways for many years and they always do a great, high quality job for a reasonable price.
The whole SpeccyX case could easily be 3D printed using the Makerbot Replicator 2 or other home 3D printers, the size of the 3D printed parts will easily fit these printers too.
Here it is all assembled and playing a demo version of Dreamworld Pogie. The keyboard buttons are all black and I will at some point either paint(!) the characters on or maybe use some small stickers.
How Does it Play?
It feels pretty good to play games on it. The Nintendo DS D-pad/buttons are perfect for playing Spectrum games. The size and weight is on a par with a small tablet and the 3D printed finish is super smooth making it nice to hold (no sharp edges on this handheld). Here are a couple of brief videos of games being played on it. Note that the display quality is perfect, crystal clear, something my recordings/camera do not show that well:
A Quick Play of Target Renegade
Having tracked down a 3.5" screen capable of 800x600 via HDMI I built a smaller version of the handheld, here are some pictures of the smaller version:
5" VS 3.5" - A Side by Side Comparison
An easy to use tool to create 3D printable STL models from simple 2D image files.
If you have 3D model files that you wish to convert to STL files then this is the tool you need to convert your files ready for 3D printing.