MegaPi Zero

 

The MegaPi

Not long ago I bought myself a NESpi and was telling a friend about it. She went on to ask me if there was a Sega equivalent, as her brother was an avid Sega fan growing up. Sadly I had to tell her there wasn’t but that added, that building such a console wouldn’t be that difficult, me and my big mouth. Thus I found myself with a new project on the drawing board, added to all the other projects I was tinkering with. When will I learn?

Having built the NESpi and my Picade, I knew EmulationStation could easily accommodate my needs. Not only can it emulate the MegaDrive, but the Master System, GameGear and SegaCD as well. The only real question was what platform I would use for all the grunt work. A Pi3 seemed a little overkill, true it would handle anything thrown at it, but it also hiked up the cost of the build and I was trying to keep to a budget. I might have been able to pick up a second hand Pi2b, however they seem to sell close the what they cost new. I didn’t want to go down the clone route as support isn’t as good, so that left me with one option, the Pi Zero. I’d never tried using a Zero for playing games, messing about with electronics yes, but gaming just seemed a little to demanding for BCM2835 processor. However if you read up on the Zero, for such a tiny board, you realize its actually quite powerful. Clock at 1Ghz, the CPU is approximately 40 percent faster than the same chip inside the original RaspberryPi. Tests have shown the Zero operates roughly four times faster then the original Pi. While I was never going to see Pi2 performance, it would hopefully be enough to emulate the MegaDrive. It seems a little crazy that a 1ghz 32bit processor shouldn’t be capable pf running 30 year old software, but we have to keep in mind, that the Zero is being call upon to accurately emulate a whole console. Translating sound, display, input on the fly, into something close to the real thing.

 

usbhub
Building

From the beginning my intention was to alter the MegaDrive very little, in fact I wanted to replicate the consoles original functions. Allowing the Power and Reset buttons to work pretty much in the same way they had before. I was able to make this possible using Pimoroni’s on/off shim, this tiny board sits atop the Pi’s GPIO header and allows you to safely shutdown the computer with the touch of a button. It also comes with through holes, allowing you to solder your own button to the board. The shim is pretty versatile, you can either use the included header block or solder the shim directly to the GPIO header, thus freeing up the GPIO pins if say you wanted to use another HAT, like a PHAT DAC. Once installed, for the shim to function you must plug power in to it directly and not in to Raspberry Pi. That way power is being fed through the shim in to the Pi via the GPIO header, putting the shim in control of feeding power to the Pi. The added bonus to all of this, is that your bypassing the Pi’s annoying poly fuses.

onoffshim
With the power sorted out, the next step was the Reset button. The Zero, like other Pi’s comes with a pair of through holes labeled ‘RUN’. If you short them, the Pi’s CPU will halt what it’s doing and reset the system. Ordinarily this isn’t something I would recommend doing regularly, as you run the risk of corrupting your SD card. However, if your running a Pi and for what ever reason it locks up. If your only input devices are two joypads, a reset button might just be what you need to get back on track. This was first time I’d ever wired up a reset button on the Pi and later was thankful I had, as on one or two occasions EmulationStation locked up because I’d done something stupid.

Out of the box, the Zero comes with only a single micro USB port, which isn’t much good if you want a two player game of GoldenAxe. To work around this problem, I used a compact USB hub, specifically suited for the Zero as it came with molded micro USB connector and not a full size USB plug. I then used a set of cables to extend two USB ports to the front of the console, where the joystick ports had once been. I also made a custom power lead, one end going to the rear of the console as a dedicated power socket and the other going in to the on/off shim. Always use thick gauge wire when extending the Pi’s power socket as it only take a little voltage drop for the dreaded ‘undervolts’ icon to appear in the top right hand corner of your screen.
backpanel
For the rear panel of the MegaPi, I designed a custom I/O panel to replace the Megadrives existing RF and Power Jack with micro USB and HDMI. After cutting out the existing panel, I hot glued the laser cut acrylic panel in place, along with the cables coming from the Zero. I applied a copious amount of glue to both sockets, especially the HDMI port as I found it a little tight when I was hooking up my TV.

Press My Buttons

I’ve already mentioned how I was able to get functional Power and Reset, but getting both to work with the cases existing buttons was a challenge unto itself. First I began with two tall 6mm tall micro switches, which I soldered to strip board and later trimmed to fit the area under both red buttons on the case. It took a little trial and error, trimming the height of both micro switched until they worked properly with the buttons. When I had both working to my satisfaction, I used my trusty glue gun to affix them to the underside of the top lid. Glue guns are by far, the makers best friend!

switches
With the both switches in situ, all that was left to do was connect them up to the pi itself. A quick test, proved both worked as desired and so the next task was setting up the software.

EmulationStation

Without a doubt, building the Megapi would have been a very different story if it were not for EmulationStation. Setup and configuration of this software has been made very simple, allowing even the most inexperienced to follow it. Configuring the Sega style USB controllers I’d bought was a little fiddly but trial and error eventually prevailed and I had both working as desired. I was even able to setup a custom loading screen and Sega themed booting screen. The first time I came to try out a game, I was really surprised by the performance. The Zero handled most games I threw at it, struggling only once or twice, I doubt very much it could handle any of the 32x or SegaCD titles. But as a bog standard Megadrive it copes pretty well, better then a £5 computer really ought to. But it just goes to show what good value the Zero is and what it possible with such a cheap, tiny computer. I’m really glad the foundation developed the Zero, with the increasing speed of the larger Pi3b and now 3b+, it stands as an affordable foot in the door. Had the Zero not be around, I probably would have tried to buy a cheap second hand Pi2. For the simple fact that the Pi3 was too expensive and powerful for my needs. That being said, I’m not even certain the larger Pi form factor would fit inside the MegaDrive II case.

Conclusion

This was a fun project and not one I would have made had it not been for my friend asking. Truth be told, once built, I grew really attached to it and was sad when it came time to hand it over for my friend to give her brother. From what I gather though, he really loved his birthday present. Hopefully he’s reliving his childhood, maybe even having a mate over for a few beers a game of sensible soccer or Sonic and Tails.

The on/off shim is available via the Pimoroni website at

https://shop.pimoroni.com


RPi SD Card Failure & Booting from USB

USBVSD

 

Card corruption isn’t anything new on the RPi, if your a Raspberry Pi owner it is a fair bet that you shall encounter it eventually.

Over the years ever since owning my first Pi, I had to deal with the occasional segmentation fault. But I’d never encounter a full blown SD card failure until the other day, when quite unexpectedly the PiDP8/i decided to have a system melt down. The first signs indicating something wasn’t quite right, was when I discovered my fail2ban jail log was corrupt, full of complete gobbledygook. After a reboot of the server, I discovered everything was back to normal or so it had seemed. The next indication problems lay ahead was when I noticed files I’d previously deleted had reappeared on the SD card. Now if there’s one thing Linux is good at letting the user do, it’s delete precious files without much chance of recovery. I once deleted an entire partition of my hard drive by mistake and yes, spent what was left of the night reinstalling Xebuntu. Linux is a powerful OS in the right hands but for the experienced it can be a steep learning curve of mistakes and mishaps.

After spending a full day working on my SD card, I discovered sure enough that the internal 8GB card had died a death. I read from the drive, but could neither format or re-partition it.

So what now? Well my next step is going to be getting my hands on a new SD Card, but I’m not so certain I feel comfortable using it as the primary storage on my PiDP8/i server. Everything I’ve read online indicates using SD cards for prolonged periods is not a great idea, mainly due to the limitations of the technology which doesn’t lend it self to constant read / writes. It’s worth remembering that ever since the first compact flash drive, memory cards were originally intended for cameras and PDA devices, neither of which really hammer the SD card unlike Linux. SD cards have a finite number of read / writes, from the time you plug it in, your memory card is degrading. On a short time project this isn’t a problem and there is evidence to suggest capacity does play a part, with larger cards such as 32, 64 and 128gb lasting longer then 8gb ones. Still if I want my server to be online 24/7, I’m better off finding a more reliable and permanent solution.

A hard drive is one I guess, but a little bit overkill for the tiny PiDP8/i. Which is why I’ve spent the past few days looking up ways to boot the Pi2 model b motherboard from a USB flash drive. Research suggests boot time will be faster and reliability significantly better then using SD. So in my next article I’m going to cover the process of setting up a RPi2 model B with the OS installed on USB pen. If your a Pi3 owner you have two choices, you can follow what I’m doing and it should work just fine. But unlike earlier models, the Pi3 can boot directly from USB by altering the OPT within firmware. Once enabled the Pi will search SD and USB until it finds a bootable partition.

 


Building A Portable Pi

For a long time I’d thought about creating a portable Pi but wasn’t really certain where to begin, so for a long time it remained just an idea rolling around in my head. After building the 600Pi I developed a greater understanding of what was involved fitting a Raspberry Pi inside a custom enclosure, such as extending the USB, HDMI and Ethernet from the tiny Pi and how to power the motherboard directly, bypassing the traditional on board USB port. The 600Pi really opened my eyes and taught me a great deal, not just about wiring, but also about hacking the Pi’s various features. A month or so after finishing that project a friend gifted me a box full of random bits, because if there’s one thing friends know about me, it’s that I love boxes filled with parts. Inside was an assortment of USB cables, fans and a RPI2 B fitted in a custom acrylic case. What caught my attention about the Pi specifically was the 3.5″ LCD panel that was attached to it, as soon I saw the screen the cogs in my head begun to whirr. Well suited for a portable pi project, it was just a matter of me drafting up a design.
A few weeks after receiving my box of goodies I was clearing out a bunch of old stuff from under the bed when I found an old project box lurking under the mattress. A left over from when I was designing my Nomad desktop system, it was just the right size for a portable retro computer, not to mention it already looked kind of old. Originally there had been two but I’d hacked one up for the Nomad, only to find it had very little air flow and caused the mini ITX board to overheat. However, unlike the larger mini ITX board, the Pi not only had a smaller foot print but would never reach the operating temperatures of an Intel Duo processor.  At first I wasn’t certain the LCD panel would fit in the front of the case, but pairing the two together proved it would be a snug fit.

Admittedly, building a portable Pi isn’t anything new, people have been putting them inside all manner of things ranging from teddy bears, tea pots, remote control drones and even coat pockets! You can find Pi powered laptops, C64s, Spectrums and even 3D printed Gameboys like the Pi-GIRRL, however my goal was to build a portable computer with a distinctive 80s retro feel, bet you didn’t see that coming did ya! Using a case originally intended for my Nomad desktop, I decided to call my new portable the ‘Nomad SX/Pi’ in homage to my earlier project and also the Commodore 64SX portable computer, a machine I was drawing much inspiration from.

Design

It’s probably no surprise the SX64, Keypro, Osborne and even the TRS80 M100 inspired the design of my project. All are note worthy machines, successful back in their day with a dedicated group of followers even now. Their appearance resonates a specific time in computer history and it was this aesthetic styling that I wanted the Nomad SX to imitate. Measuring 257 x 190 x 85mm the case had ample space for the Raspberry Pi, however the 3.5″ LCD was another matter. It was almost as tall as the case with only 10mm clearance between the top and bottom lid. As I had done with the 600Pi before, I extended the Pi’s ports to the front and rear panels of the case. Included in the rear panel was:

  • 1 x USB
  • 1 x RS232
  • 1 x Ethernet Port (Rj45)

    Front panel with USB and audio

  • 1 x MiniUSB (Power Input)

For the front I extended the Pi’s audio jack and another of the USB ports along with the Pi’s power and activity lights. Having only recently upgraded the 600Pi with a new Pi3, it meant I had spare Pi2 board with the on board LEDs already modded for extending to the front panel. The reason I didn’t extend all the USB ports was because I needed two of them for Bluetooth and Wifi.

After making a couple of rough sketches I sat down, using Inkscape to draw up the vectors I would need to cut the front and rear panels out of acrylic. Previously I’d used an old version of Adobe illustrator, but a couple of my friends kept insisting I gave Inkscape another shot, even though I’d struggled with it the first time round. My initial impression of Inkscape was that it was powerful but far less intuitive then Illustrator,, but it does have one thing working in its favour. Unlike Illustrator its an open source freeware application, meaning it doesn’t cost you a penny to use.

Better view of the rear panel

Installing it on the Nomad, I spent the evening drawing the panels using the sketches I’d made earlier. After a some what slow start, I actually found Inkscape to be pretty straight forward and not as complicated as first thought. In fact once your in the Inkscape zone it’s actually a pretty powerful application. Available for Linux, Mac OS and Windows, I highly recommend checking it out and did I mention its available for the Raspberry Pi?

Input / Output

One part of the case that was causing me a headache was the keyboard, originally I’d wondered if I couldn’t buy a small keyboard and hinge it to the front of the case similar to the Keypro or attach it with Velcro. However that meant finding a keyboard with the exact same dimensions as the front panel which was highly unlikely. Unlike large manufacturers that can fabricate custom parts, I was limited to finding off the shelf parts to get the job done. After a lot of searching on eBay, I found a wireless keyboard and waited patiently for it to arrive from China. Almost as soon as I unboxed, I realised it was rubbish,

3.5″ of retro goodness

surprise, surprise. The touch sensitive panel was smaller then I’d expected and pretty useless for typing anything. That is unless you wanted to finger type everything, which as I found resulted in almost inebriated sentences of typo ridden nonsense. So it was back to the drawing board and searching once more online for a suitable keyboard, a search that had thus far been less than successful. It turned out I hadn’t needed to worry as only a couple of days after my disappointing eBay purchase, my prayers were answered. While picking the other half up from work, I was telling her about the problems I’d been having when suddenly she revealed her work stocked several bluetooth keyboards on their online shop. A quick trip across

2.4Ghz wireless and sadly disappointing

the warehouse floor and I was staring face to face with an ultra slim bluetooth keyboard and not just that, it was narrow! Talk about irony, I’d spent the best part of a month looking for one under 250mm wide and all the while Pimoroni had exactly what I’d wanted on their website and it was 240mm wide, 10mm shorter then the case I was using.
With the issue of the keyboard finally behind me I was able to redesign the front and rear panels to accommodate the new BT keyboard. Originally I’d planned for the little touch panel keyboard to slide inside a slot in the front, but as that wasn’t happening now, I had to find room to accommodate the larger 240mm x 90x 14.5mm keyboard. Barely 10mm narrower then the case, I had to come up with a smart way of stowing it away. Strapping it to the outside would undoubtedly expose it to unwanted knocks which would likely wear it out in no time at all. Don’t ask where the idea came from but scribbling on a piece of paper I found myself staring at a sketch of the rear panel with a narrow slot for inserting the keyboard inside. Refining the design further resulted with a shelf inside the portable for the keyboard to rest on when it wasn’t in use, I also designed a blanking plate to screwed in place over the slot to keep the keyboard from sliding out while the computer was being transported. While it wasn’t like anything I’d seen on the Z80 portables I’d been using for reference, it certainly worked and solved the problem of where to put the keyboard.

Rear panel went through several revisions before it was right

As there was no need for a slot in the front panel I redesigned it, turning it in to a sliding door and IO plate for the audio jack and USB port. Taking advantage of the reclaimed space I also included a badge to sit above the IO panel which read “Nomad Pi/SX – Portable Micro Computer”. It seemed fitting given the size of the Raspberry Pi computer hiding inside the case.

Bluetooth Woes

Setting up an Ultra Slim keyboard on the RPi wasn’t as smooth sailing as I’d been expecting and required some work before it was up and running properly. I also encountered an annoying problem where the top row of F keys weren’t recognised by Linux, even asking the guys at Pimoroni and on the RPi forum yielded no solution. Two months after finishing the portable Pi I was at a friends sampling a pint of homebrew beer when the answer came to me. I don’t completely recall what led to the discovery (how strong was that beer?), but long story short Linux was mistaking the ultra slim keyboard for a BT Apple keyboard. It turns out these are known for having issues with Linux and there’s even a wiki page covering it, see this link for details.

LCD Screen

Adafruit Powerboost 1000C, a fantastic little PCB

For the Pi’s composite video jack I used a 3.5mm jack cable, splitting the left, right and video lines. I hooked the video feed up to the LCD panel and the audio channels to the audio socket attached to the front panel. At some point I plan on installing internal sound but that will be a work in progress. When I discovered the PI / LCD combo, I originally wrote down the wiring so that I’d know how to connect it back up. Like any scrap of paper it inevitably went missing and not knowing the model of the screen or where my friend had bought it, I was left in a bit of a pickle. How was I ever going to figure out the wiring? Luckily for me I’m on the Sheffield Hackerspace mailing list and after posting up a request for help, I soon had a link providing me with all the info I needed to connect up my tiny screen. Words honestly can’t do justice for how grateful I was when the tiny LCD lit up for the first time, so a big thank you to the guys at the Sheffield Hackerspace.

Because I was planning primarily to use the terminal and not x.org to operate the Pi, I found the text on a 3.5″ screen a little difficult to read. Online I found several guides showing ways to increase the text size within the Linux console, and I also read up on altering the screen resolution which was running in its default res of 1080p (I guess). Either way it was causing the 3.5″ screen to flicker at a headache inducing rate. Fortunately the config.txt is pretty flexible and allows you to tailor a lot of the Pi’s settings to suit your needs, which is great for anyone trying to use a 3.5″ screen with their Pi via composite out.

Tackling Small Screens

Having only ever hooked a Raspberry Pi up to a VGA monitor, I’d little experience configuring the config.txt file to display on a small screen. Especially one using composite output instead of HDMI. Fortunately there’s plenty of information available online to walk you through setting up the config file and a bit of trial and error I was able to get it working. By setting the screen to 480×320, I was able to eliminate almost all of the screen flicker present while the screen was running in high resolution. Additonally making it much easier to read text, as even in 800×600 it was incredibly small. Though lowering the resolution made the text more legible it still wasn’t suitable for using over an extended period. This led me to looking at changing the Terminal itself and how I could configure it to display differently on the Pi Portable. Fortunately you can alter the Terminal using the following command

"sudo dpkg-recofigure console-setup"

Going through the prompts I set the terminal to use the ‘TerminusBold’ font at a size of 11×22 as this was easy to read and didn’t take up to much room on the screen. It took me a while to figure all this out and I went through several computations of the various fonts and sizes before I found the right one. While doing a little research for this article I discovered one of the machines I’d used for inspiration has a larger screen than I’d first assumed. The Osborne-1 is often cited as the first portable personal computer and it along with the SX64 were machines I used as examples while designing the Nomad SX. As it turns out the 1981 Osborne-1 came with a 5″ screen capable of a mind blowing 128×32 character display. Which is impressive compared to the 11×22 display on the Nomad, if I ever make another portable I’ll be sure to make the screen bigger!

Not A Leg To Stand On

After getting the machine together I realised the viewing angle wasn’t exactly ideal. In fact to read the screen I had to prop a book under the case. I’d not really envisioned using a stand like the SX64, but as it transpired I actually really needed one. If I’d stopped to think back about all those old Z80 machines, a large number of them did come with a kickstand of some sort. Designing a set of legs I got them laser cut from acrylic and fitted to the sides of the case. I used nylon lock nuts so that I could tighten the screw enough so the legs were stiff to move, but with the advantage that lock nuts wouldn’t work themselves loose. The downside to using acrylic is that under certain circumstances it can be a fragile material and exposed to stress will sometimes shatter or crack. As the legs would be in regular use, I wasn’t certain how long the acrylic would last. With that knowledge ever present in my mind, I spent a lot of time trying to think of an alternate solution. Eventually I settled upon 3D printing and fabricating a single piece carry handle, as you can see in the picture the prototype came out pretty good.

Being Portable Means Being Portable

Part of this project was to make a portable micro computer that I could take with me wherever I liked. This ultimately meant using a battery, something I’d never done with a Pi before. So once I had the system working and all of the internal wiring finished, I began looking at batteries and also charging circuits. Obviously because of the screen, bluetooth & wifi dongles, I would need a pretty substantial battery to power everything. It was around this time that Pimoroni began stocking batteries via their online store. I also noticed they stocked the Adafruit Powerboost 1000C, a small 5v 1Amp board that doubled as a battery charger. Choosing one of their 4400mAh batteries and the power boost, I set about modifying the internal wiring of the Pi Portable. Instead of the power going directly to the Pi it would have to go via the Powerboost first, so that the internal battery could be charged.
I’ve seldom bought anything from Adafruit aside from perhaps a micro usb socket but I have to say the Powerboost is a fantastic bit of kit and really does credit to Adafruit. Not only was it straight forward and simple to wire up but I found the additional

A sneak peak inside, yes its crammed.

power switch an especially nice feature, one that I hadn’t been aware of at the time of purchasing. It was certainly a lot better than pulling the plug, as is the normal way to turn off your Pi after shutting it down. As the back panel was in need of revision due to some stress cracks showing, I added an additional hole for a switch, which complimented the rear panel really well, giving it a very professional look. Combined with all the accessories, the Pi portable draws approximately 740Mah, which means I should get nearly 5 hours out of the 4400 battery. I’ve yet to actually bench test the Pi portable to find out if those figures are anywhere near accurate, but even if the system can manage 2 hours, I will be happy and consider the upgrade a success.

Closing Thoughts

While it might not be as sleek or as compact as many other portable Raspberry Pi builds. I’ve taken the Nomad Pi/sx to several retro events and had nothing but positive feedback. Many remember using machines like the SX64 and Osborne back in the day and instantly latch on to the similarities. Loading up Dizzy via the C64 emulator never fails to generate a smile. But if I’m honest, I always end up playing Outrun or Stuntcar racer!
This has been a funny old build but one I’ll definitely remember if not for the fact that I do use the computer on and off when I need a distraction free typing environment.


Picade Build and Cabinet Art

banner

Produced by Pimoroni, a British company based in Sheffield, the Picade is an all singing and dancing tabletop arcade cabinet that can be put together in an afternoon. For £180 you get everything needed to build your own working cabinet (minus the Raspberry Pi) such as:

  • Black powder-coated cabinet panels
  • Picade PCB (Arduino compatible with stereo 2.8W amplifier) pre-loaded with the Picade software.
  • LCD panel mount with protective overlay
  • 8″ LCD panel & driver board
  • 2x speakers
  • 3.5mm stereo panel mounted headphone socket
  • Attractive decals for the marquee and controls
  • HDMI, audio, and USB cables
  • A proper arcade joystick
  • Twelve micro-switch arcade buttons
  • Custom assembled wiring looms
  • All other fixings, fastenings, nuts, and bolts

The kit is primarily geared towards users of the Raspberry Pi, but that doesn’t mean you couldn’t use it with a mini ITX board or Odroid. In fact the rear door on which you mount the logic board has markings for several different models of computer not just the Pi. Anticipating the needs of their customers, Pimoroni have designed the kit with the hacking and modding community in mind, something they do with a lot of their products.

picade-parts_1024x1024

Everything you need to make your own arcade

In 2012 when Pimoroni began their Kickstarter for the Picade I had an opportunity to try a working unit, needless to say the experience was enough to leave me wanting one. It wasn’t until the early last year when I finally got one of their kits but sadly didn’t have any time to assemble it. So the kit sat waiting on my to do list till October came around, when finally my partner and I put it together over several evenings. Assembling the Picade is pretty straight forward so long as you follow the PDF guide provided on Pimoroni’s website. There is also a video guide but in my opinion it is in need of updating, as it led us astray more than once. In the end we resorted to consulting the PDF exclusively, my partner reading the instructions as I placed the pieces together. Contrary to what the video tutorial suggests, make sure to tighten all the screws and nuts using a screw driver, otherwise your cabinet will soon begin to wobble and come apart as mine did after a few plays of DigDug.

The black power coated finish of Picade really sets it off with an old arcade feel, the buttons and joystick are of good quality and fairly responsive to use. At some point I will likely swap them out for more 80s recessed style buttons, but for now they get the job done and look fine.img_20161123_154601

The Picade comes bundled with an 8” flat panel LCD screen. Originally the kit was available with a 12” panel but I understand supplies dried up and Pimoroni have been unable to source any more at a reasonable price. At first when I removed the panel from its packaging I thought it was mighty small and had some misgivings about its effectiveness for playing games on, but honesty I hadn’t need for concern. The 8” panel compliments the cabinet really well and once your in playing Pacman or Pole Position you really don’t notice it. The picture is clear, sharp and the colours a vibrant, my only regret is the absence of any scanlines, but that’s more a personal preference and something I can probably fix within the Retro Pie software.

With the cabinet built, it is just a case of flashing an SD card with the relevant Retro Pie image, which you can download via their website @ https://retropie.org.uk. Setup is relatively painless and straight forward and should see you up and running in no time at all. Something I did discovered on my first outing, is that RetroPie has more than one Mame emulator to choose from and some ROMs work better in one than they do the other. If you find like I did that a great many of img_20170217_185138your ROMs aren’t working, you may wish to try using the other Mame emulator. The reason this happens is down to the chipsets the Mame is running, different revisions can sometimes expect different files to be present within the ROM archive. Newer revisions tend to be more compatible but unfortunately the one available on Raspbian isn’t, which is why RetroPie comes with more then one Mame emulator. Swapping between the different versions can be as simple as copying your ROMsets to the appropriate folder on your SD card. It is also possible to change it from within Retropie, just after selecting your ROM the option appear on screen to change the default settings, this also includes which version of Mame is used to run the selected ROMset.

When put together, the Picade and Retro Pie compliment one another well and one can hardly imagine one without the other, both are polished and easily accessible products.

Unfinished Business

img_20170213_151551When I began to assemble the Picade, I knew from the get go that I wanted to design some custom cabinet art for it – something that harkened back to the days of my childhood with crazy neon colours and funky 8 bit sprites. One thing about the Picade is that the only decals that come with it are for the marque and the control panel, the sides of the cabinet are left alone. As pretty as the powder coating is, I couldn’t help feel there was something better to do with them, such as cover them up with something bright and retro! So I went about designing the art on my recently aqcuired 15” Powerbook G4. Anyone who says PPC has had its day can go suck a lemon as far as I’m concerned, as this laptop not only oozes style but clocking in at 1.55Ghz it runs Photoshop without breaking a sweat.

img_20170119_162942As you can probably see in the photos from an early stage there was a very distinct 80s theme going on. One thing I had to keep in mind was to make sure the decal art lined up with the side panels on the cabinet, as I wasn’t just contending with the outside edge of each panel but also the various screw holes and speaker grills that the decals would be covering.

The side art is protected by 1mm thick sheet of clear acrylic that has been cut out to the same shape and size of both MDF side panels. Eventually I plan on making the marquee backlit so that the Picade logo and colours are more vivid to the eye.

IMG_20170213_154944.jpg


Bluetooth on the Raspberry PI

rpi2b

For anyone with a Raspberry Pi3, this topic may or may not be useful. If like me you own a Raspberry Pi2, you may be facing the challenge of using Bluetooth with your Pi and wondering how on earth you get things started. Depending on how Linux savvy you are, this can be either a walk in the park or a utter nightmare that will leave your pulling your hair out and crying in a corner.

Now thanks to a good friend introducing me to Linux, I’ve been enjoying various distros for well over seven years, my favorite being Xubuntu. But that isn’t to say that I’m by any means a Guru. There are times Linux honestly leaves me baffled, but I felt pretty confident that setting up a keyboard on the RPi would be a walk in the park. After all, the latest addition, the PI3 comes with Bluetooth built in, so you’d think it worked pretty much out the box. When I bought an ultra slim bluetooth keyboard from Pimoroni, I was a little shocked to spend the next two days fighting with it. No matter what I tried the Bluetooth software in x.org refused to work with the keyboard. Thankfully the Raspberry Pi forum came to the rescue and after an hour searching for a solution, I finally had my answer.

Bluesz-simple-agent

If like me you’ve been reading guides telling you to use bluez-simple-agent to set up your keyboard, then you know that such a command no longer works on Raspbian Jessie, Bluez has been updated since those guides were written. Fortunately however Archlinux has a great Wiki page dedicated to using Bluetooth in Linux and how to get things working using the new command “Bluetoothctl“. From what I can tell the process isn’t that dissimilar to “bluez-simple-agent“.

i9_square_large

Ultraslim, but not so easy to setup

Now I’m going to assume you’ve already installed Bluez on your machine. If you haven’t, then I suggest you get cracking.

– At the command prompt, type “bluetoothctl” and press enter.

– By default your controller is turned off, to switch it on enter “Power on“.

– Next, lets have a look at what your Pi can see, enter the command “Devices“. The computer will list any visible bluetooth devices, along with their MAC address. If you see the device your wanting to use, make a note of the MAC address now, as you’ll need it later.

– If your device wasn’t listed, try putting your pi in discovery mode with the “Scan on” command. Hopefully this will add any device that weren’t already discovered.

– Now turn agent on by typing the command “Agent on“. If successful your Pi should report: “agent registered“.

– Time to try connecting to your device using the address you jotted down earlier. Enter the command “Pair MAC address“. The PI should now attempt to pair to your device, so make sure you entered the address correctly, otherwise it will fail.

– If you’re using a device without a pin, you can manually instruct the PI to trust the device. This is sometimes necessary when your pi needs to reconnect to it. You can do this by entering the following command “Trust MAC xx.xx.xx“. Note after MAC, you should enter the address you have written down.

– Now lets finally establish a connection using the command “Connect MAC xx.xx.xx.xx“.

Hopefully your PI connected successfully to your keyboard, so why not try typing something? Did anything appear on your screen? If it didn’t, try retracing your steps. If you used the “Trust” command, you will have to use the command ‘Remove xx.xx.xx.xx’ to make your Pi forget the device. Once removed, try going through the tutorial again, making sure you didn’t miss any steps.

If typing on the keyboard resulted in letters appearing on the screen, congratulations! You successfully connected your keyboard to your Raspberry Pi. If you reboot your computer now, it will forget everything you have done so far and your Pi and keyboard will no longer be connected. To make sure this doesn’t happen and your keyboard remains connected, we’ll need to create a udev rule. This is our way of telling the Pi to look for our bluetooth device each time it boots up and if present, reconnect to it.

First quit bluetoothctl by typing ‘Quit’ and pressing the enter key, you should now be returned to Terminal. For the next step, begin by typing “nano /etc/udev/rules.d/10-local.rules“. Nano should load up a blank document, which we will use to fill with the following.

# Set bluetooth power up ACTION==”add”, KERNEL==”hci0″, RUN+=”/usr/bin/hciconfig hci0 up”

To save, press “CTRL+O” followed by the ‘ENTER’ key. Next press “CTRL+X” to exit Nano, your computer will now remember to reconnect to your device the next time you reboot.

The above guide is an adaptation of information found @ “wiki.archlinux.org/index.php/bluetooth#bluetoothctrl

 

 


Converting an Amiga Joystick to USB

AmigaPiReaders of my blog will probably have seen the Amiga 600PI I built not so long ago, using a Raspberry PI 2 under the hood. Out of all the projects, I honestly have to say this was a labour of love and a lot fun project to build. But like any build, there are the obligatory tweaks that must be made to fix things that might have been missed the first time around. Issues that only became obvious after using a build for a week or two. Which is pretty much how it was for me with the AmigaPi.

After using the AmigaPI for a couple of weeks, I began noticing one or two problems. First on the list, wasn’t so much a hardware problem as software. UAE4ARM is the de facto Amiga emulator for the Raspberry pi, in shorts it’s pretty amazing. But as fantastic as it is, there is yet to be any support for remapping the keyboard. This is useful if you like playing games using the cursor keys or say your old skool and prefer using the good old Spectrum controls Z,X,O,P. At the time of writing, this still isn’t an option, which means its still isn’t possible to make use of the built in joystick ports on my KeyRah V2 interface. Sadly it seems no matter how much people plead for the feature to be implemented, those bringing UAE4Arm to the Pi are focusing on performance over functionality. Which is understandable, as any good emulator requires a decent level of real time performance. Afterall nobody wants to play Amiga games at a snails pace with choppy sound. But in the pursuit for good performance, other features have been neglected. Making UAE4Arm a good attempt, but still vastly lacking when compared to FS-UAE or Win-UAE. Both of which offer a far more advanced level of configuration, we can only hope that UAE4Arm will one day follow suit. Given the number of people using their Raspberry Pi for gaming, it would be a missed opportunity if it didn’t.

smallxboxpad

Controller of choice for most Retroarch fans

In the meantime the only way to play games on UAE4Arm is using a controller, usually this means hooking up an Xbox 360 joypad. I know a lot of people use these on their RetroArch gaming setups as they’re easy to get hold of. Chances are if you own a 360, you already have one laying about the house. However for me, seeing one hooked up to an Amiga 600 seemed as out of place as a Chippendale in a nunnery.

My AmigaPi needed a proper looking joystick, not some Microsoft rubbish. Now there are a couple of ways this can be achieved. Firstly, you can purchase the ready made USB Competition Pro by Speedlink. It looks just like the original, except for the USB connector on the end of the lead. I did seriously consider getting one of those, however digging a little deeper, I discovered more then a few people complaining about lack luster performance. While opinions on the internet are ten a penny, usually where there’s smoke, there’s fire. And at £20 a pop, I didn’t fancy finding out which opinion was right. Especially when I was pretty confident that I could build my own joystick for a fraction of the price.

Buiding A Joystick

The first thing I had to find was a bust Amiga Joystick, I certainly wasn’t about to break a working one just for a hack. At least taking something that is broken and giving it a new life, you’re recycling and not just throwing it in landfill. Luckily in my loft I had a non-working Cheetah 128, which had been
a spare for my Spectrum, until it died.PRODPIC-13190-1

Taking it apart, I was surprised with the simplicity of the internal workings. Unlike some of my quickshot sticks, the Cheetah use simple metal pads to create open and shut gates. Press forward on the joystick and two metal pads would connect to make a circuit. Luckily for me, this would actually worked in my favour, as it would make converting the stick to USB pretty simple. The only problem now was finding the right sort of USB controller. Scouring the net, I found one company that sold a custom analogue to USB adapters, however they wanted £16! I thought this was a little pricey for a single sided, through hole PCB with only chip. It was after all, doing essentially what all the cheap Chinese controllers were doing – translating the inputs from a series of switches / buttons into something the computer could understand as UP, DOWN, LEFT, RIGHT and FIRE.

Ebay is full of USB controllers styled after SNES, NES and 360 joypads, which you can pick up for as little as a few quid. I was pretty sure one of these would contain everything I needed to convert the Cheetah to USB. So biting the bullet, I bought myself one and waited for it to arrive in the post.

A Note on Retro Game Pad Copies

Clones, not always as good as the originals.

Clones, not always as good as the originals.

After arriving at my doorstep, the first thing I noticed was the quality or lack of it Looks were pretty much the only thing the USB pad shared with the original super Nintendo controller. Unlike the latter, the build quality was cheap and flimsy and not at all solid as you’d expect. A quick game of Super Frog on the Amiga Pi quickly revealed how bad it really was, with the D pad often mashing two directions together. Resulting in a lot of unintentional left and right jumps that left me crying for it to end. After ten frustrating minutes I’d had enough and unplugged it. After seeing how rubbish it performed, I felt less guilty about scavenging it’s innards for my joystick mod.

 

Fitting A Square Block In A Round Hole

Inside the controller, I was faced with a major problem. The joy pad wasn’t constructed anything close to how I’d been expecting. Spanning the full width of the pad was a single PCB, populated with contact-less switches. I’d foolishly been expecting the pad to use mechanical switches, which I could have easily rewired. However a friend later explained to me that a lot of things these days are built using single a PCB to cut down the cost on components. In light of this revelation, I faced having to solder to the surface of the board. While not my joystick1preferred way of doing things, I’d just have to like it or lump it. If that wasn’t bad enough, the darn PCB turned out to be 2cm wider then the base of the Cheetah. I’d have to work some serious magic with my Dremmel if it was ever going to fit in the base.

One of the hazards with chopping up a PCB, is that they don’t usually work afterwards, not without a bit of rewiring. Such as reconnected broken ground planes etc, which are needed for the circuit board to function. Lucky for me the design was pretty simple, but I was still thrown a couple of times, chasing the ground. Having never attempted anything like this before, it was a learning process for me, figuring out how the board worked and where best to solder to. This was especially true, as I began cutting portions away to make it fit inside the base. After removing almost all the direction pads and three of the fire buttons, the PCB was finally narrow enough to fit inside the Cheetah, hurray!

joystick2If you fancy trying your hand at hacking your own joystick, my advice is to take your time, don’t rush and make a photographic record of your progress. Pictures can come in really handy if a wire pops out and your left wondering where the heck it came from!

To reduce the number of wires I had floating around inside the joystick, I shared the ground from one point on the PCB to all the other contacts. Interestingly, unlike other joysticks of the day, the Cheetah uses a cloverleaf for the main directional stick (pictured left). The only other joystick I know that shares this design, is the original Sinclair sticks that came with the grey Plus 2. This design actually made wiring everything up a lot easier, as its much simpler than those with internal switches. Beneath the star shaped metal plate are four contact screws, which represent UP, DOWN, LEFT, RIGHT. Using wire I’d stripped from an old IDE cable, I hooked the contacts up to those on controller’s D-pad. This is when having photo’s comes it really handy, as more then once I lost my way with the traces on the board. But consulting some photos, I figured out what I was doing wrong and soon had UP going to UP, LEFT going to LEFT and so on.

joystick3

IDE cable is great for fine work like this

In theory, when connect to a USB port, the board would register the movement of the stick just as it had the original D-pad. While I recycled a lot of the Cheetah’s original wiring, I also used a lot of wire from an old IDE cable. Not only is it very flexible, but its also very low gauge, which makes it perfect for soldering to the tiny traces on the joypads PCB.

First Test

After the wiring, came the next challenge: hooking the joystick up to a USB port and hoping it worked. I’d already had the pad albeit in original form, connected to my Windows PC. It worked straight out the box with a minimal amount of setting up. Hooking it back up, I was pleased to find everything worked first time! joypad4After a game of Stunt Car (obviously!) on WinUAE, I began wondering about the buttons in the base of the Cheetah and whether or not they could be made to work. True the wiring inside was more jammed than a sumo wrestler in a phone box. But I wasn’t satisfied, I wanted those darn buttons to work. After all, the natural way of holding the Cheetah was with both hands. The whole time I’d been playing Stunt Car, I kept feeling the urge to use the lower buttons instead of the trigger.

Achieving this feat took some hacking, I can tell you. First I had to find room for the micro switches. There was barely any for them to sit between the PCB and the lid, the only option was to cut out a cavity in the buttons for the switches to sit inside.

 

joystick5

From left to right, a converted button next to one waiting to be altered.

As you can see pictured, this was finally how the buttons looked, with the switches recessed inside the red plastic housing. It took several failed attempts on my part, before I found the right depth for the switches. But eventually I was firing nitros in Stunt Car without a hitch. I think the scariest moment was when I screwed everything together. With the top and base finally secured, I was worried everything would squashed together. Luckily, I didn’t need to worry, as it worked fine.

 

And here is a final image, which I think pretty much captures my feeling at the end of this hack.

 

joywin

This trophy’s bigger then my head!!

 

 


Raspberry Pi 4th Birthday Bash

birthday
Held in Cambridge on the 5th and 6th of March at the Cambridge Computer Laboratory, the official Raspberry Pi birthday celebrates the fourth year since the release of the original Raspberry Pi Model B. Going from strength to strength since its initial release, the success of the Raspberry Pi can’t be denied. This is made even more apparent by the fact the birthday bash is a sold out event, with people coming from all around the country and also Europe to celebrate this tiny micro computer. Attending the event where Pihut, CPC, IQaudio, PiTop, { Code Club }, Pimoroni and LinuxUser Magazine, to name but a few. This only skims the surface, as the event was teeming with clever boffins with something to display. If you missed this year’s birthday bash, I highly recommend trying to attend one or any Pi event in your area in the future. The atmosphere is inspiring and the people warm and friendly.

End of Day One

Thoroughly geeked out, the first day was a blast. This was my first time at a Raspberry Pi event and I have to say, it was an eye opener. Making it certain that I’ll be attending more in the future. Over the Saturday, I met some wonderful, friendly people, such as the

Amazing Pi Laptops from Pi-Top

Amazing Pi Laptops from Pi-Top

fantastic peeps from LinuxUser, who are clearly just as passionate about retro gaming as they are about Linux. The dead give away to this was the Pi Zero powered Xbox controller on their table, running Retroarch. Not only was I invited to play a game of Doom, but they even gave me a copy of their Magazine, containing tips on the Linux Terminal. Now I ask you, who can turn their nose up at that, seriously? Next in line for a mention is the chap from Pi-top, if you’ve not heard about Pi-top, they produce two impressive cases specifically for the Raspberry PI and I highly recommend looking them up. Having played around with the laptop model of the Pi-top, I can honestly say I was impressed. As you can probably tell from the photo, the striking green case it certainly eye catching. Pimoroni were also present, showing off their popular Picade and Flotilla products, which as one can expect, drew in a crowd.

Raspberry Pi3

Released only days before the birthday bash, the Pi 3 comes with Bluetooth and wireless built in, not to mention an A53 processor, clocked at 1.25Ghz. 10x faster than the original Pi, the Pi 3 is a quad-core computer like the Pi 2, however unlike the P2, which uses a 32bit CPU, the Pi 3 is 64bit. This step up, will scientifically improve the performance of the Pi, placing feasibly within the same realm of some laptops and Atom based net tops.

At the time of its release, the Pi 2 Model B was considered by many, myself included, as a lightweight desktop computer. That being the case, the specs of the Pi 3 most certainly elevate the fruity micro from just an educational computer to something that could easily be used at home for surfing the net and playing games. And while the primary goal of the Pi is to get kids back into computers (something it is doing remarkably well), both the Spectrum and C64 of yester years, owe much of their success to the games that were developed for them. Many of the kids playing those games back in the day later become programmers in their own right. Perhaps it’s just nostalgia, but I would love to imagine there are a bunch of kids out there some place, learning Python or Scratch, developing the next Dizzy or Crash Bandicoot on their humble Raspberry Pi 2/3, perhaps because playing games on Retroarch, inspired them to do so.

 

Day Two

The beginning to the second day at the birthday bash, began with a sausage sandwich and a cup of tea. Not very technical I know, but essential if you want the grey matter in your noggin to boot up! Fuelled up, the first event on my schedule was to sit in on Eban Upton’s talk about the Rapberry Pi. I had intended to record the talk for you guys to hear, so I set my Nexus 5 recording throughout the session. Sadly the recording sounded more akin to a scuba diver dictating into a baked bean tin while riding upon a flatulent whale. Instead you’ll have to settle for a photo of the Eban I took just before he beganeban. The talk overall was insightful and fun, Eban was down to earth in explaining the development of the Pi 3. He also made a point of crediting the people behind its development, the faces we don’t see who work tirelessly to develop, innovate and burn much of the midnight oil in an effort to make the Pi 3 a reality.

There was also mention of the AstroPi, which recently travelled in to space, on its way to the international space station. Without the doubt, the Astro Pi is one of the most expensive Pi every built, requiring a specially built enclose and mounts, made from some pricey materials.

After the talk, I found myself chatting to Jon Prove, director of Sales for Pi Top, a cool guy, who is clearly enthusiastic about the Raspberry Pi in general. I’d already spoken to one of his colleagues the previous day. I had seen Jon, but he was knee deep in people interested in his product.

Later I caught a talk on Sonic Pi, an adaptable music generator which you can program to create a wide variety of sounds. At the party the night before, its creator, Dr Sam Aaron performed live. Being as it was my first exposure to Sonic Pi, I have to say I was impressed. At times the music Aaron was playing, sounded uncannily like Daft Punk. It certainly left me wanting to learn more about the software, which thanks to the talk I now feel a little more informed about.

Dr Sam Aaron rocking with SonicPi

Dr Sam Aaron rocking with SonicPi

Not all the vendors who attended the first day, were present on the Sunday. CPCs table was unoccupied, but left on their table were freebies and a note, wishing everyone a fun day and to help themselves to one of the goodies they had left behind, ranging from Pi shaped coasters, pens, stickers and even some Pi cases. Now wasn’t that jolly well nice of them? FYI, I nabbed a coaster!

One of the nice features of the event was the layout, the ground floor held all the vendors and talks, the second and third floor were for workshops and also quiet spaces. Handy if you happen to be carrying around your G4 iBook and wanting to quickly jot down notes for your blog. Thank goodness I bought a new battery as the old one would never have lasted long enough!


Using Alpine with POP3 Hotmail accounts

clippit

I really, really wish I’d found a page with that heading when I’d been trying to configure Alpine to work with Hotmail. A lot of us, myself included, don’t understand the inner workings of Alpine, which is no surprise as I gather it’s a pretty powerful email client.
Like many, I’m used to application being glossy and intuitive, all thanks to the colourful GUI OS’s we use today. The downside however, and bare in mind this is just my personal opinion. Is that all this eye candy is making us stupid and overly dependent on dumbed down interfaces that a 3 year old could follow.
Developers today work hard to make modern operating systems easy to use. So much so, that when we are faced with the bleak barren landscape of DOS or the Unix Terminal, the absence of pretty buttons has us running for the hills. I grow up in the 80s, Spectrum’s, C64s, DOS 6.22, I lived through all of that and was pretty good in using the lot, apart from the old BBC Micro. I always felt intimidated whenever I sat in front of a Model B at school. But somewhere along the way, I lost the ability to bend my head around a simple blocky, ASCII based program like Alpine. Worse still was after going online I found I wasn’t the only one. So after an evening with my thinking cap firmly on, here is how you get pop3 Hotmail working on Alpine.

When is an IMAP, not an IMAP, when its a POP!

So your struggling with Alpine and still cant retrieve your mail from hotmail yes? Well your possibly in luck, because below are the settings I used to get my mail via Microsofts POP3 servers. I’ll even walk you through what I did, so you can replicate it.

Things you need
-Linux Ubuntu or Xubuntu (will probably work on other destros)
-Liquid refreshment and snacks
-Internet access

First let us install Alpine, open up a Terminal and type;
“Sudo apt-get install alpine”

BMV-alpine4

Fig.1

Once your computer has finished unpacking and installing the package, lets run it, in Terminal type;
“Alpine”

You should see something similar to fig 1, continue to the config screen by pressing “S”, then press “L” for “Add a new collection”. You should see a page similar to the one in fig 2.

Enter the fields as follows
Nickname: Hotmail
Server: pop-mail.outlook.com:995/pop3/ssl/user=BGates@hotmail.com
Path: mail/
View:

‘In the server address, replace BGates with your own email address. Unless you are BGates, in which case, hello! *waves* ahem!’

Fig.2

Fig.2

Once everything is entered, press Ctrl+X to save and exit the screen, then press ‘E’. You should now be back to the main menu, press ‘S’ and then ‘C’, you should see something like fig 3. This is the main configuration panel and we have a few things that still need entering.

Fig.3

Fig.3

Personal Name: B Gates
User Domain: hotmail.com
SMTP Server (for sending): smtp-mail.outlook.com:587/user=bgates@hotmail.com
Inbox Path: pop-mail.outlook.com:995/pop3/ssl/user=bgates@hotmail.com

Compare your screen with fig 3, the only fields I had to change were the ones I’ve listed above. Now scroll down the screen until you reach “Folder Preferences” and make sure “Enable Incoming Folders Collection” has a cross next to it. Now for all the changes to take effect, you must quit out of Alpine by pressing ‘E” and then ‘Q”. This will bring you back to the command
prompt. From here, type;
“Alpine”

If all has gone according to plan, Alpine should now prompt you for a password, so that it can log on and retrieve your mail. Finally enter the “Message Inbox” by pressing “I”.

Voila! Your online and accessing your POP3 hotmail!

BMV-alpine3


Raspberry Pi Winamp

winamp

Ah Linux, how we do love you, but why oh why are we forsaken to never enjoy a media player such as Winamp! I mean Parole is good, VLC isn’t bad either..But still, it isn’t Winamp is it? If your like me, then the Llama kicking audio player will be one of your staple apps. Its been on every one of my Windows machines for the past 12-13 years. So imagine my disappointment when I started using Linux 4 years ago and didn’t really find anything remotely like it. Fast forward to present day, last Monday to be precise and I’d got my newly built Amiga 600PI running pretty well, the only thing missing was a kickass mp3 player. After doing a search online, I found plenty of people in the same boat, they liked Linux, but they missed Winamp. After doing a little more digging  I learned about XMMS2 and the interesting things people had been doing to make it look like Winamp. Rolling up my sleeves, I gave it a go and while it wasn’t totally straight forward on the Raspberry PI, the results were still pretty successful, so read on.

The first thing you need to do, is install XMMS2 and Promoe client. I did this via the synaptic package manager. Which you can download via this terminal command.

Sudo apt-get install synaptic

Screenshot from 2015-11-19 13:17:19

When you have it installed, open it up and find these files. XMMS2 Promoe Once you have those two files installed, you will find Promoe is now listed in the Sound & Video section of your start menu. Run Promoe at least once, simply to test it works and also to allow XMMS2 to initialize itself. When your done, close the program and we’ll move on to the next step.

Audacious Classic Winamp skin, kicks the Llama’s ass!

Luckily the skins for Audacious seem to work on XMMS2 or perhaps thats the other way around, XMMS skins work with Audacious. Eitherway we need a classic Winamp skin to proceed, so go online and download the classic skin here.

Winamp+Classic+skin+for+Audacious

You should now have a file called “135799-winamp_classic.wsz“, make a new folder and call it ‘Winamp’, extract the archive inside it. See pic Right now here is the part where I hit trouble. According to everything I read online, Promoe stores its skins in the following location.

“/home/pi/.config/xmms2/clients/promoe/skins”

At least it would, if the location existed, which is didn’t on my system. When I navigated to the xmms2 folder, I discovered the ‘clients’ folder wasn’t there.

Here’s a handy tip if your trying to find a file or folder in on your Raspberry PI
find / -name filename 2>/dev/null
 
Swap out ‘filename’ for the name of what your looking for, press enter and wait. Your PI will now go off searching the entire SD card in search of your file. I used this to search for the missing ‘clients’ folder.

Even if the folder structure doesn’t exist, Promoe was still instructed to look in that location. So the best thing to do is make the directories ourselves, as Promoe will then find any skins we want to install. Because the xmms2 folder is a root folder, we’ll need root access to make alterations. Open the terminal and type

sudo nautilus

A new window will open up. You’re now navigating the file system with super user access, so be mindful young padwan. As one wrong keystroke or click here and you could break the entire operating system. And trust me, you really don’t want that! From the top menu, click ‘View’ and make sure “Show hidden files” is enabled. Now on the left panel, click on “File system”. Find the icon named ‘Home’, open it and then open the folder called ‘pi’. Next find a folder named ‘.config’, it will only be visible if you have ‘Show hidden files’ selected. Open the folder and scroll down until you find ‘xmms2’. Open the folder and from the top menu, click ‘File/Create New Folder’, name the folder ‘client’, making sure to keep it lowercase.
Open the ‘client’ folder and create another folder, this time name it ‘promoe’,

Should look like this

Should look like this

again all lowercase. Still following me? good, because we are almost done. Finally within ‘promoe’, make one last directory and name is ‘skins’. All going to plan, you will now have the follow directory structure;

“/home/pi/.config/xmms2/clients/promoe/skins”

 

But wait, we aren’t finished yet, we still need a skin to put inside the skins folder. If you downloaded the one I mentioned earlier, you need to copy the ‘Winamp’ folder in to the skins directory. The simplest way to do this is a drag and drop. First open the ‘skins’ folder you created, then from the start bar, open a new file manager window. Locate your ‘Winamp’ folder and drag it over to the open ‘skins’ folder. Now let us see if it all worked, fire up Promoe, by default it uses the Almond-blue theme. Click on the little blue box in the top left of the interface, from the drop down menu, select ‘Theme settings’. You should now see the Winamp skin listed, click it and voila! Winamp Classic on your Raspberry PI!

Screenshot from 2015-11-19 12:59:34

You can now close all the other windows, especially the one displaying the ‘skins’ folder. Once closed, it will terminate your root access and once more protect your system from any accidental clicks. Until next time, keep on geeking!


The Raspberry A600PI AMIGA

Amiga badge

What do an Amiga A600 and the Raspberry PI have in common? Well at the time of their release, both were considered small micro computers. So what do you get when you combine the quad core power of a RPI-2 Model B and the compact design of an Amiga 600? In theory, a compact quad core Amiga, that runs Linux. But that’s just a theory right? No one’s actually gone to the trouble of making such a freaky hybrid have they? Well actually yes, in fact plenty of people have been putting Raspberry Pi in all sorts of things, ranging from Spectrums, C64s, toasters and pants. Ok I made that last one up, but you just wait, the day is coming when someone will develop digital ‘smarty’ pants. That day is coming my friend. Most of the time the A1200 and A500 are utilised for modding purposes, most likely because of the space afforded in both machines.

Measuring in at 14” by 9.5” and 3” high, the A600’s small size works against it for modding purposes, it also lacks a full size keyboard, so there is no numerical pad. Even back in 1992, the A600 came under fire from people criticising the short comings of its design. For a machine intended to replace the aged A500+, it did a pretty poor job in many respects. Later the managing Director of Commodore UK, David Pleasance, would describe the A600 as a “complete and utter screw-up”

DPsmall

David Pleasance – Not the A600s biggest fan

As a kid at the time, I recall thinking the A600 looked like a waste of time compared to my expanded A500+. It wasn’t until later that year, when I saw the A1200 in Amiga Format, that I began drooling. Fast forward 23 years and here I am staring at a 600 case, wondering what I can do to it. In my head, I was picturing a useful Linux machine capable of going online, playing games and running UAE (Ultimate Amiga Emulator). I had a Keyrah sitting on the shelf begging to be used, so what am I to do? Initially, I did nothing. Back when the Raspberry Pi was first released, it was intended for hacking LEDs & light sensors together or acting as the brains inside an electronic project. It wasn’t meant to be a desktop computer, it simply didn’t have the memory or power to handle it. Gradually, the Pi evolved, more RAM was added, the design was refined, software was optimised, until finally the Foundation released the Raspberry PI 2 Model B. Upgrading the tiny computer with a quad core Arm Cortex A7 processor, this update opened the door to variety of new possibilities,  including my shelved Amiga project.

The RPI 2 Model B was a beast compared to the B+

The RPI 2 Model B is a beast compared to the B+

The Pi is very affordable when you compare it to other SBC boards. It also has the benefit of a rich and active community. Not to mention the copy cats that have emerged since its release. While some people might critisise them, I think it’s ace – competition is healthy. Children are once again wiring up things to their computers, learning how to program, learning LOGIC. Some of these kids might go on to shape our future and possibly develop the next breakthrough technology. But in the meantime, here at ByteMyVdu, we are more interested in seeing if a RPI2 can be merged with 20 year old Amiga…So read on and find out.

In the Beginning

Even before I started drilling or ordering parts, I knew one thing for sure, I wanted the hack to be neat, not just that, I wanted the Amiga PI to look no different to a regular Amiga. I wanted people to see it sitting on my desk and think it actually was an Amiga running Linux. But how to go about it? After all the RPI has vastly different ports to the Amiga. Instead of serial and parallel, we now have USB, and in place of composite there is VGA or if you prefer DVI / HDMI. There is also the RJ45 port, allowing you to hook the PI up to your network. Back in the day, the Amiga used serial or a PCMCIA modem to talk to the outside world. One thing was for certain, the back of the Amiga was going to look vastly different with all the new ports and connections, utilising the existing holes cut in the case would only end up looking odd.IMG_20151021_152425 So I decided to craft a new back panel from 3mm acrylic. Taking measurements of the rear panel of the A600, I spent a Saturday designing a vector on my Macintosh Classic. Originally I’d been planning to write an article for BMV about the Manchester Play Expo, but the idea popped in to my head that it would be more fun to design the back panel. Surprisingly the process was very easy and transferring the design over to the main computer went without a hitch. So anyone who says that 68k Macs are useless really needs to have a rethink.

IMG_20151103_222712

With the back panel cut from white acrylic, I began buying the cables necessary to extended the ports of the PI to the rear of the Amiga case. I shopped on eBay for all the things I needed, while Amazon might have stocked them, I wasn’t so enthusiastic about buying from them after being burnt in the past.

The list of parts I needed was as follows

  • 1x Panel mountable, RJ45 extension cable
  • 2x Panel mountable USB extension cable
  • 1x Panel mountable Micro USB female to male cable
  • 1x 3.5mm stereo to female RCA phono cable

IMG_20151022_135544With all the cables together, I went about installing the new back panel. Having already cut out the back from the Amiga case, I offered the new panel up to see how it look. Fortunately for me, my measurement had been pretty good and the new panel fit nicely against the back of the A600. Once the case was together, it was time to attach all the cables, screwing and gluing them in place where needed. While doing this, I discovered a handy Y shape USB splitter on eBay, turning one USB port in to two. It was only after I had installed the cable, that I discovered the splitter was only good for charging. No matter what I hooked up to the ports, nothing would appear. The only device that DID work was a mouse, pretty much cementing the fact, that the cable was complete rubbish. Luckily I’d bought two USB extension cables prior to seeing the splitter, so it was just a case of swapping the cables around. Even though I had glued the splitter in place, I was still able to extract it. With the new cables installed, I now had two fully working USB ports on the back of the case. As for the USB splitter, it went in the bin. The next step was installing the Keyrah. This little device from IndividualComputers turned the Amiga keyboard in to a USB device, enabling me to use it on the PI, so it was important I found space inside the Amiga to accommodate the PCB. Imagine my surprise when I discovered the joystick ports on the Keyrah lined up perfectly with those on the 600 case. I’m not sure whether this was intended, needless to say it made installation easy. The Keyrah does sit rather close to the floppy drive, which might cause problems in the future, should I wish to fit a disk drive. Later models of the Keyrah have a slot for connecting the keyboards ribbon cable, but mine is an early revision. So instead of a slot, the contacts are printed on to the PCB and a bar is used to hold the ribbon cable in place. All I shall say on this earlier design, is that I understand why they changed it. Every time I open the AmigaPI the ribbon cable would move, taking out the keyboard.

Keyrah, handy kit so long as you leave it alone.

Keyrah, handy kit so long as you leave it alone.

Because of the limitations of the A600 keyboard, the Keyrah has an on board switch, that swaps between two keymaps. Essentially giving you access to a full keyboard. Because the Keyrah resides inside the Amiga, I’m not sure exactly how they expect me to access the switch. Unless I was meant to cut an ugly hole just below the floppy drive, hmm I don’t think so! Perhaps at a later date, I will wire up a new switch and mount it on the back of the Amiga. One final aspect to wiring up the Raspberry PI with the Amiga case, was case lights. In what has to be the most hairy bit of soldering I’ve done. I removed the surfaced mounted LEDs from the Raspberry PI to gain access to the solder points below. Then using some IDE cable, I attached wires from the motherboard directly to the legs of the LEDS. Holding my breath, I turned the machine on and what do you know, the power and drive light came on. Not the sort of soldering I want to do on a regular basis, as my heart was in my throat the entire time I was soldering to the tiny PI board.

Power

Yes, they work!

Yes, they work!

The combined power requirements of all these devices undoubtedly pushes a PI to it’s limits, at it’s best the PI has 1.2A devoted to the USB bus. If one or two of your devices are power hungry, the 1.2A cap can quickly become annoying. The only solution is to use a powered hub, which is exactly what I did. Due to the limiting space factor, I tried to avoid using as many connectors as I could inside. Instead opting to chop the ends of cables and solder the wires directly to the points on the hub. The PI hub has a 5v 2A port dedicated for powering the PI, so instead of using the intended USB cable, I soldered wires straight to the 5v and ground. I then soldered them to the power points on the PI motherboard, just below the micro usb power port. I also converted the power socket of the hub in to a female micro USB socket, which I glued to the back panel of the Amiga case. This meant I could continue using PI specific power supplies.

Feeling Wired

Soldering all these wires together, I made a very rookie mistake, by not taking in to account the resistance of the wires on the whole circuit. This became apparent the first time I booted up the PI. Even though I was using an official Raspberry PI psu, the square rainbow under volts icon appeared in the top right corner of the screen. Running a volt meter over the ground and 5v pin on the GPIO port, I discovered it was reading around 4.5v, not the 5.15v that I was expecting. If there is one thing I learnt during this build, it is that USB cable makes a poor substitute proper gauge wire. If you want to reduce high levels of resistance, make sure to use a decent gauge wire.

I learnt this lesson the hard way, leading to me to rewire everything a second time. After which the voltage over the GPIO port was restored to just over 5v. The original psu for the PI hub is rated at 5.2V 2A, which is more then enough to power a PI under normal circumstances. In the AmigaPi’s current configuration, it appeared just enough to power everything, the under volts icon appears whenever the rear ports are in use. With this in mind, a 3A power source will likely be on the cards.

Software

IMG_20151105_101922

War, never been so much fun!

Under the hood the AmigaPI runs the latest version of Raspbian, I have also installed UAE4ARM, the lastest Amiga emulator for the Raspberry PI. Not only does it receive regular updates, but it quite possibly the fastest Amiga emulator you can get on the PI. Configuring it to work can be a little tricky and keyboard support is not all there yet, but anyone who spends time reading on the Raspberry forum have little trouble getting it running.

There are a surprising number of Linux games available for the PI, ranging from Doom clones to arcade Galaga, you can even get point and click adventure games such as Beneath a Steel Sky. All of these work fine with the Raspberry Pi and are definitely worth a look at. DOSbox is also available  I’ve yet to test it out, so I can’t say how good it is at emulating a DOS machine. But if UAE is anything to go by, it will hopefully manage 486 games without breaking out a sweat.

Being a Purist

As I mentioned earlier, I wanted the AmigaPI to look like an Amiga, with working Joystick ports, a functional floppy drive and PCMCIA port. Admittedly the rear of the computer looks different, but that couldn’t be avoided. The PI doesn’t have a serial or printer port like the Amiga, nor does it have an composite or RF connector. The only option I had was to give the new back panel an Amiga feel, which is why the power connector is in the far corner, why is has phono connectors for audio and two USB ports, in place of the old serial and parallel ports. The floppy drive is still a work in progress, as the floppy to USB adaptor I bought is sitting on my desk untested. Until I have a new power supply, I don’t wish to risk corrupting the SD card by causing a brown out. But hopefully in the near future the familiar click of a floppy drive will return to the old A600 case. Fitting the Amiga PI with a PCMCIA port seems a little redundant to me, as I had an old CF card reader kicking around, I decided to compromise. After all, when my A1200 isn’t on WIFI, it spends most of its time with a CF card adaptor stuck in the side. Equipping the AmigaPI with CF, meant I could easily transfer files, pictures, mods and ADFs back and forth between the AmigaPI and my regular Amiga’s. Something I envisioned being pretty useful at LAG meetings, when we are taking pictures of the meeting.

Final thoughts

I honestly can’t believe I’ve finished this project, that I’m sitting here at this moment, typing on what looks like a regular Amiga 600. Except the badge bares a berry shaped logo and next to it, reads Raspberry A600PI. Ok it’s not a next generation Commodore product, but then when are we likely to see that happen? The reason people are still rocking Commodore products is because of the mindset behind them. The passion that drove the team who made the Amiga, still lingers, the embers faintly glowing from a fire that blazed decades ago. All I know DO know, is that I get a certain buzz from using a computer that fits inside a keyboard. Unlike my Windows 7 tower, I can thrown the A600PI in my bag and take it with me and who knows, maybe even play a game of Sensible Soccer over at a mates. Yes its dirty filthy nostalgia  but on top of that, it’s turning the PI from a mass pile of wires, in to a compact, usable computer. I only have to connect power, VGA and mouse to get the AmigaPi up and running. Everything I need, is self contained within the confines of the A600 case. With a regular PI, I have to find my VGA to HDMI adaptor, WIFI dongle, powered hub, keyboard and mouse, before I even begin to think about powering it on. In short, its a real faff, but not any more!

IMG_20151104_133305

So if you’ll excuse me, I feel the need to play Cannon Fodder now, till next time keep on geeking!!

No Amigas were harmed during the making of this project, but one ropey looking, long dead 600 was given a new brain.