This is an early '80s Sharp VC-2300H portable VCR that I've converted - it now has a Raspberry Pi at its heart, running the excellent Raspbmc media centre software. Other upgrades include a snazzy arduino-based clock and an EL wire "tape" that ejects to reveal the slots of a powered USB hub. The original buttons are used for various functions and it has an integrated 15" HD screen at the back, with a clear access panel on the side showing off the Pi.
I picked up this unusual old VCR for £6 from ebay back in June with the goal of making it into something special for my first Raspberry Pi project - I had no idea it would be so long and complicated to build, but it's my favourite upcycling project so far.
It's controlled via a standard media centre remote control (or mobile app) and does a cracking job of streaming content via WiFi from the BBC Iplayer & Youtube, as well as playing internet radio and files from the local network or USB storage.
There are stacks of photos - also a short video of the VCR in action - enjoy!
Step 1: Dismantling
The VCR was in a broken state when I bought it, so I didn't feel bad about tearing it down - I did need to go carefully though, as I always aim to retain some of the functions and character of the original. In this case it was the Eject mechanism I wanted to keep at all costs, I remember the top-loading VCRs of my childhood very fondly - enormous, noisy and ejecting tapes with a certain amount of violence - but magically holding 3 hours of cartoons!
As with most tech from this period it was screwed and bolted together and came apart really nicely, revealing an enormous amount of components packed tightly on large circuit boards. These were obviously designed to be replaceable and though complex you can see how individual components or boards could be swapped out to keep it running.
There were also several heavy-duty motors, solenoids, levers etc, and metres of internal wiring, some of which I re-used. The front and back cases held fewer components and lifted off easily, leaving a central plastic structure containing an aluminium chassis with the switch circuit boards in a row across the top. I carefully disconnected and stripped out all the components except the tape cage and eject mechanism, and moved from destruction to the head-scratching phase!
Step 2: The Eject
One of the first jobs was to make sure the eject mechanism would work. Some of these old VCRs have a mechanical button, which just releases a spring-loaded latch, but I think this one used solenoids to convert a soft button-press into spitting out the tape. Sticking through the chassis was a small latch, which somehow needed to be moved about 10mm to release the tape. I firstly tried re-using some of the original solenoids but keeping the voltage fairly low these just didn't have enough grunt to pop it open.
Looking through my box of discarded parts I found a small mechanism consisting of a motor, worm wheel and cogs and this turned out to be ideal. The worm wheel meant the motor couldn't be pushed backwards by the pressure of the latch, and it ran well from a 9v battery. To make it move the latch I stripped down one of the cogs, removing most of its teeth to leave behind kind of a rotating arm that would mount next to the latch, tripping it when the cog rotated.
The motor & cogs needed to be mounted pretty accurately to make this work, so I fashioned a bracket from meccano to securely bolt it to the metal chassis.
Wiring in the eject button itself was a breeze by comparison - all of the circuit boards were commented so it was straightforward to wire in some flying leads and isolate the push switch from the rest of the circuit.
Step 3: The Pi and Raspbmc
I've always liked media centre PCs and have tinkered for years with Windows XP MCE and MediaPortal - I love the latter especially as it offers so much customisation and community support, being open-source. A few commenters on my previous instructables mentioned building a Raspberry Pi into a project, but until I looked into it in more detail I didn't take the Pi option that seriously - surely something so small couldn't offer the same performance as a "proper" PC, and it must be hard to learn from scratch, right?
I was proved wrong on both counts within about an hour of my model B+ Pi arriving in the post! Initially I wasn't so interested in the programming side so just followed basic instructions and installed the latest Raspbmc build - a version of XBMC specifically for the Pi. I was pleasantly surprised straightaway with the maturity of this media centre software, the interface was intuitive, it played all my video content nicely and worked out of the box with the IR receiver from one of my old Windows media centre projects. I experimented with settings and skins over a few days and ended up with a tiny and efficient engine for this VCR, it was literally that easy.
I decided to mount the board just inside the case to make it easily accessible, luckily there was a convenient Pi-sized gap left by the discarded side connection panel. With it mounted to the VCR chassis and working happily with both the TV and IR Receiver I moved on to less straightforward things.
Step 4: The Tape
I mentioned earlier that keeping the eject feature was a must with this build, so I started thinking about what would be ejected and how this could fit in with the overall design. Something built into an old VHS tape was the obvious answer - I debated having the ethernet or power plug into the tape, or for the tape to contain a portable hard drive, but settled on incorporating a powered USB hub. Even with the B+ model's four USB ports I was running a bit short, and I wanted to be able to plug in a self-powered USB hard drive without having to worry about the PI having enough power to run it.
I picked up an old USB hub from a rummage box at the car boot for £1, and soon found a power brick for it in the "I'll keep that just in case" drawers in my workshop. It snapped apart easily and it was an easy job to bolt it into a dismantled VHS tape, with the cables running out of the underside of the tape so they'd be hidden away. Next I cut the holes for the USB sockets, which was quite fiddly work - thankfully old VHS tapes are easy to get hold of, as I wasted a few in this process.
It needed something more though, and the idea came to me to create a "tape" out of EL wire, so it would glow or flash nicely in the case. I'd enjoyed doing this before with an audio cassette and it didn't take too long - the most difficult part was unwinding the endless metres of VHS tape! I cut through the tape spindles so there would be enough clearance over the installed USB hub circuit, leaving a small lip to wind the EL wire around, supergluing it with every turn to keep it in place. I used Orangy-Red EL wire to keep with the overall "Raspberry" theme.
With the EL wire and hub in place and the tape screwed together I created some labels on the PC to fit with the overall theme, including the Pi, Raspbmc and Carbon Frog (guys who make the clock) logos. This was a nice little project on its own, and with it completed I set it aside, took a deep breath and attacked the VCR buttons.
Step 5: Buttons and Boos
I always like to use the original controls in my projects as far as possible, and with an embarrassment of buttons to choose from on this VCR I looked forward to the possibilities. I started by removing the two button circuits from the case, then with a 5v LED and breadboard mapped out which wire was which, labelling them as I went. This was greatly helped by the boards being well commented, displaying both the switch names and the route of the cable on the upper side. The circuits were straightforward enough, basically just a cable for each button and a shared negative connection.
This was about when the trouble started! I wanted to use as many buttons as possible, for media control (play/pause etc), Raspbmc navigation and other functions like TV, EL wire, LEDs etc. To do this I figured I could just cannibalise an old USB keyboard, cable up the connectors and away I'd go - it didn't really work out that way.
Firstly I sliced up an old flexible USB keyboard, fixing the button cables to the connectors that usually touch when you press a key, so that the VCR buttons would send keystrokes to the Pi, which could then be mapped to control functions. This worked up to a point, but the number of connections (16 buttons, 32 cables) meant it took ages to put together. After testing it with a PC I found that the connections weren't as reliable as I'd hoped (I tried everything from stapling, hole poking, paperclips and hot glue to geomag magnets to connect to the keyboard!). I gave up on the keyboard as too complicated in the end - too much to go wrong - and instead had the idea that maybe I could use an arduino uno to imitate a keyboard. Having had that idea and investigated a bit I realised that the Pi itself has a set of GPIO pins, which could potentially be used to interface directly with the VCR buttons.
I spent quite a while experimenting with various options, learned a lot about GPIO pins, pull-up resistors and other stuff, and came very close to a solution with some Pi code called Pikeyd, but hit a bit of a brick wall with it in the end. Next I tried an Adafruit Trinket, a teeny-tiny microcontroller, but after a lot of time spent tinkering it proved to only really offer a couple of input buttons. I had similar luck with the USB gamepads I had lying around. By now several weeks had passed and the rest of the project, the case, TV etc were nearing completion, so I decided it was make-or-break for the buttons!
Thinking about the finished product and with the other components almost ready I took a step back and realised that space was going to be much tighter inside the case than I'd thought. Also that it would actually be of limited use having a full set of navigation and control buttons on the VCR itself, because when viewing the screen the buttons would be facing away from you! I decided on one last effort to salvage some basic functions (Play/Pause, Rewind and Fast Forward) and got this working with the circuit of one of the lowliest creatures on earth - a USB mouse from the £1 shop.
The mouse was dismantled very easily and I wired in the switches for left, right and middle click to the VCR buttons. All I needed to do then was to edit an XML file on the Pi called keymaps.xml - this tells the Pi what functions to perform, for example I mapped LeftClick to the Raspbmc function for Rewind, MiddleClick to Play/Pause and RightClick to FastForward. I left all of the wires to the other buttons labelled up and tucked away in the case so that I can revisit other options at a later date if I need to.
Getting the buttons sorted was the most time-consuming and frustrating part of this build, and in the end I made a compromise for the sake of moving forward and keeping it fun. I did manage to make the VCR buttons control the EL wire, LEDs, Eject and TV on/off, so in the end I'm pleased with how it worked out.
Step 6: The TV
The idea of having a TV screen built into the back of the VCR was one of the things that brought this to the top of my project list, as it makes a real feature out of the unit's quirky design. I managed to pick up an HD-ready TV at the car boot for £5, with an HDMI input for the Pi but no cables or remote, which suited me fine! I kept it in its original state while getting the Raspbmc side working, and dismantled it once the button problem had been resolved.
It dismantled into three main internal parts, the screen, power board and control board with various inputs. I should say up front that I didn't plug it into the mains from this point on until it was built into the case, safety first! The screen panel proved to be an amazingly lucky fit for the back of the case, leaving only about a 20mm "bezel" at the sides.
I cut the hole in the back cover with a jigsaw, then tidied up the rough edges with a rotary tool and sandpaper. I also needed to chop out some plastic from the inside of the case to make the panel sit flush. Through complete luck the screen assembly fitted with about 2mm to spare on either side, meaning I could use the original flat panel brackets to secure it.
Next I took an old sheet of perspex and made a holder for the TV's control board, which fitted to the back of the LCD panel. The Power board was a few mm too thick to mount next to it, so I had to locate it under the Pi in the main "business" part of the VCR. I didn't do this lightly as it meant having to extend the TV's backlight cables and build a box around the circuit to protect anyone sticking fingers in the case - still at this point the end was in sight and I knew exactly which gaps could be used. After it amazed me by working when turned on I dismantled the whole assembly ready for painting.
Step 7: IR Control
I used a USB Microsoft Media Centre receiver and remote while setting up the Raspbmc software, and it worked so nicely I decided to build it in to the final design. I took the receiver apart first, revealing a smallish circuit with handy slots that I used to bolt it to the case under the TV panel.
I cut a hole in the case with a rotary tool, tidying it up with a small file and job done! Or so I thought - when I looked again at the case and the lack of free space I realised the coiled-up cable for the IR sensor would have to go - it was about 2 metres long! I chopped and shortened it to about 20cm, making a big space saving.
Step 8: The Clock
I started this project in August, and a replacement clock was on my car boot shopping list every week, but none of the digital clocks I saw really leapt out at me. In September however we went to Brighton Mini Maker Faire, and on one of the stalls were the guys from Carbon Frog - they had a bunch of these clocks running on the table, and although I was a bit worried about the size I knew it would be perfect and I had to have one, the perfect souvenir of a great day out.
Their matrix clock is arduino-based, and has a range of inbuilt transitions that are displayed when the minute changes. The default one is a kind of "Matrix" style green rain, my current favourite is just a simple wipe from left to right, but at some point I hope to create a pac-man one of my own, it's designed so that you can tinker with the firmware and it's well documented.
The clear panel from the original clock was way too small for the matrix clock to peep through, but usefully the panel was just painted perspex, so I was able to scratch off the black paint to enlarge the clear part - I scratched a bit too hard in some places but it looks OK!
You can cycle through the clock's transition effects by pressing a push switch on its side, and wanting to keep this feature in the build I needed to make a button to connect through the VCR case and connect with it. I made the entire thing from a promotional pen, using the pen's clicker as the button and connecting it up inside using the refill, spring and chopped-down pen body, having drilled a hole in the case for the clicker to poke through.
Step 9: The Power
How to power all the individual bits of this project? I wanted to have a single plug coming from the VCR, but I didn't want to mess around too much with mains electricity. In the end I sacrificed space inside the case and used a standard 4-way extension lead. This gave me all the power options I needed (TV, Pi, Powered hub, Matrix Clock) with space for more if I needed them.
I drastically shortened the extension cable and wired it to a fused socket, of the kind you get on a PC power supply - I figured if we took this on holiday and forgot the power lead that would be an easy one to find in most places. It also provided a master power switch on the outside of the case, which I liked.
With the soldering complete I plugged in and nervously (sometimes I use a stick) switched on - nothing! Tried another lead and nothing. I was about to resolder the whole thing when I read on the product website that the socket has space for a fuse, but doesn't ship with one. I dug around the workshop for fuses but they were all standard sizes and this one needed the smaller internal kind - I located one on a discarded VCR circuit and once connected up it worked fine.
Step 10: The Case
I wanted to keep the case fairly tidy, so didn't add in any extra buttons except for the clock. Mainly the work on the outer case was making holes for bolting in components, but I did make a nice inspection panel for the side, which shows off the Pi board. I made this to exactly fit the hole left by the original connection panel, scoring and snapping a bit of perspex from an old screen glare protector, which was a new thing for me. The perspex is screwed to two plastic brackets, which I made from a handy broken VHS tape. I set a surface-mounted LED in the top bracket to illuminate the Pi but managed to fry it while putting the case together! Thankfully as the perspex can be easily unscrewed it's a quick fix next time I make a trip to Maplins.
With all the holes cut or drilled it was time to paint, so I stripped out the components and got cracking. The "direct to plastic" paint didn't take despite my thorough sanding and degreasing, so I went with a coat of primer first, which I'll probably always do now in future builds. I originally planned to do the whole thing in black, but seeing the case primed up I realised it would be a bit too much, so I was stuck again until I could decide on a colour - I kept the back part black though as it's what you see while watching the screen. I was leaning towards retro brown for the front when my wife suggested red to go with the general raspberry theme, which was inspired! The closest they had in the local DIY shop was Satin Strawberry, which was close enough for me. I really love the way the colour has worked out, it's not for everyone but it's really grown on me, especially with the glossy black panels back in place on the front.
Step 11: Assembly
So far the build was really in three separate sections, the front red part with built-in power, the middle section with the Pi, buttons and circuits and the rear part with the TV. Having been spread to the four corners of the workshop it was time to put this monster together.
The first attempt at assembly didn't go so well, with everything put together there was a gap of about 3cm between the front and back sections, so some parts clearly didn't fit. This was a bit disappointing but the only way to fix it was to work through each square inch shedding bulk wherever possible. I tidied up all of the internal cables, ditched the ethernet connector as a compromise and cut down some of the plastic brackets with a rotary tool. After a while I had the front and middle sections fitting together snugly.
The rear section was a bigger problem - the board for the IR sensor was literally just 5mm too wide for the case to close fully, and was fouling directly against the bottom of the aluminium chassis. I considered relocating the sensor but after having cut a hole for it and shortened its cable this felt like a fudge. The only thing for it was to chop out a section of aluminium, not easy to do with everything bolted together and cables everywhere. Using a hacksaw would have risked damaging components or the freshly-painted case so I bit the bullet and broke out the rotary tool and cutting disk. The aluminium was about 2mm thick but after a couple of slightly worrying showers of sparks I'd broken through.
With more space in the case it now fitted together with a bit of a squeeze, so I switched on to test it - everything worked except the TV, which was what I had been dreading - it's always a bit dodgy re-using circuits outside of their original case and I was convinced I had snapped off a capacitor or something, which would have spelled the end for this project until an identically sized TV could be found. It turned out to be just a short in the cable between the TV and the on/off button however, and with a bit of soldering it sprang into life.
The front and back of the case screwed together at the top and bottom, sandwiching the middle section in between.
Step 12: Finally Finished
It was a huge relief to get this put together, several times towards the end of the build I was convinced I'd been too ambitious and would have to abort altogether, but each big problem got solved by breaking it into smaller stages and not rushing things.
It's the most complicated thing I've built so far and I'm super-pleased with the result, but my next project will definitely be more straightforward!
I guess I've spent up to an hour a day on this since August, and for the most part I've found it really rewarding - I've learned new skills along the way (because I had to) and it's been great to get to grips with the awesome capabilities of the Pi - my first job as soon as I hit Publish is to order a model A+ board for the next conversion on my list.