The basic idea is simple. Put a Raspberry Pi inside an aluminum case, wire it up to a screen, keyboard, mouse & batteries. Then plug in a USB hub, connect Wifi, Bluetooth, and the receiver for a wireless keyboard. We will also need to extend the Network port, add a headphone socket & speakers, fit in a battery pack, and then wire it all together! Simples.
The LapPi made joint second in the Raspberry Pi Challenge! Congratulations to the other winners, and well done to everyone who entered.
Step 1: Materials & Preparations
Before I began work I checked that the Raspberry Pi worked with the screen. I also configured the display's resolution, and made a funky desktop picture.
1 x Raspberry Pi.
1 x 8gb SD Card.
1 x Raspy Juice Expansion Board.
1 x LCD with Logic Board & Menu Board.
1 x Aluminum Case.
1 x 4-Port USB Hub (powered).
1 x +5v 1a LDO from Flytron*
1 x USB GPS Dongle.
1 x USB WiFi.
1 x USB Bluetooth Dongle.
1 x Mini USB 2.4ghz Wireless Keyboard & Track-pad.
2 x Mini Speakers.
1 x Microphone Socket.
1 x Ten AA Battery Holder.
10 x NiMh 1.2v AA Cells | or | 8 x Alkaline 1.5v AA Cells.
1 x Panel Mount USB Socket.
1 x Panel Mount RJ45 Socket.
1 x Panel Mount 2.1mm DC Socket.
1 x Double Pole Double Throw (DPDT) Slide Switch.
1 x HDMI Cable.
1 x IDE Cable.
1 x Network Cable.
2 x Metal Mesh.
1 x Passive Heat-sink.
3 x Sticky Foam Strips.
1 x Ringed Tie-Wrap.
1 x Standard Tie-Wrap.
1 x Tie-Wrap Sticky Block.
I have removed the casings from the USB dongles, the USB HUB, and de-soldered the USB dongle plugs.
The battery pack will provide 12v if used with 10 1.2v NiMh Rechargeable batteries. To get 12v from standard alkaline batteries you will need only 8 cells, as Alkaline non-Rechargeable cells provide a higher output of 1.5v. The LapPi is designed to operate on 12v.
It is worth noting that not all USB devices are compatible with the Raspberry Pi. The elinux.org wiki contains a list of verified compatible peripherals.
UPDATE: In Step 14 I replace the underpowered LDO with a 15w DC-DC Converter & fit a 2x1watt Stereo Amplifier.
Additional parts used for the update;
1 x DC-DC 15w 12v-5v 3A Converter.
1 x RK Education Stereo Amplifier.
1 x Switch (DPDT).
Step 2: The LCD Surround
2 | Using the measurements cut a rectangle from plywood and shape it to fit inside the upper half of the case. I used 3mm 3-ply plywood as this is what I had to hand at the time, you can use just about any thickness you like. Be aware that there are some aluminum rivets which hold the case together. You may need to make grooves in thicker plywood to make room for them.
3 | Centre the LCD panel on the board, and mark the area to be removed so the screen will fit inside the plywood. It is worth measuring the visible area of the screen and taking the time to correctly align it so that the visible area sits in the center. There will also need to be a cut-out for the menu board.
4 | I have used some scrap veneer and glued it to the from of the plywood. The veneer should exclude the LCD metal surround from view and leave only the visible area viewable.
5 | Check the wood panel still fits tightly inside the upper case.
Step 3: Fitting the LCD & PCBs
2 | Fit the menu board into the recess making sure the buttons are correctly sat in the holes. I have used some spare veneer to support the menu board and hold it in place. Two plywood brackets are then screwed over the board to hold it tightly in position.
3 | With the LCD in position glue in four supports, these will be used to mount a brace behind the LCD onto which will go the logic board. I have left a 1mm space between the four supports and the edge of the LCD.
4 | Take note of the position of the logic board and measure out a backing plate to line-up with the previous four supports. Use these measurements to make the backing plate from thin plywood.
5 | Position the logic board so that the flat cable from the LCD is not twisted when inserted into the logic board. You will need to also take into consideration the HDMI cable to ensure there will be enough clearance when in the aluminum upper case. Using a pencil mark the back plate where the screw holes on the logic board will go.
6 | I have glued four additional smaller wood supports over the marks where the logic board holes will go. This will raise the circuit board up so the underside does not foul on the back plate. Make sure you remove the back plate from over the LCD when drilling screw holes for the logic board.
7 | Put some foam strip on the underside of the backing plate, this will help hold the LCD tight in place.
8 | The WiFi card is secured using two wood supports. Two strips of veneer keep the PCB straight, and two screwed on clips hold it tight. You will need to check the underside of your WiFi card for components, they should not foul or rest against the wood.
9 | The much smaller Bluetooth PCB will be stuck on with double-sided sticky foam.
Step 4: Wiring the Screen Pack
1 | Measure an approximate length of HDMI cable from the LCD logic board to the bottom of the wood panel.
2 | Very carefully cut around the plastic sleeve of the HDMI cable. You should then be able to pull the sleeve off the wiring.
3 | Cut around the molding of the HDMI socket. Make sure you don't catch any of the wires. I have used a small piece of heat-shrink at the plug end to help support the loose wires.
4 | Using some spare IDE cable connect four wires to both the WiFi PCB & the Bluetooth PCB. Use the red pin 1 indicator as the +5v wire. Fit the ends with DuPont connectors.
5 | Separate the wires from an IDE cable. Strip the ends to show bare wire, tin the wires with solder and place small lengths of heat-shrink over the wires. I have put the cable into a vice (with rubber grips) to hold the cable while soldering.
6 | There are 15 wires for the HDMI, 2 for the power supply, and 8 for the two USB PCBs. They all need to be soldered onto the IDE cable. I started with the HDMI. It is worth putting some heat-shrink over the wires to help with running the wires later,
7 | Use 3 wires for the +v supply and another 3 for gnd. Make sure all connections are protected with heat-shrink.
8 | Fit DuPont connectors to the IDE cable for the USB PCBs. I have marked one line on each with red heat-shrink, this will be used to correctly orientate the plug and socket so there are no crossed wires.
9 | Connect up all the wires making sure it all plugs in OK.
Step 5: Fitting the Screen Pack
2 | Test fit the panel in the upper case, push the sides of the case against the panel so there is no gap. I played around a bit testing out where the best place would be to fit screws so that it gave the tightest fit.
3 | Measure the width of the IDE cable and create a cut-out in the lower edge of the wood panel through which the IDE cable can pass.
4 | At the back of the wood panel glue in extra wood blocks to support the areas into which screws will go. I have used two top & bottom, and a single screw on each side.
5 | Before drilling into the case take extra care to check all drilling points are correctly aligned.
6 | Drill the holes.
7 | Fit the electronics back into the wood panel and secure it into the upper case with screws.
Step 6: The Other Half
1 | Using the same methods as used in the upper case; measure and cut out a plywood panel to fit into the lower case.
2 | Mark out areas on the wood panel where the speakers will go. Glue wood supports onto the back of the panel to hold the speakers after checking the speakers fit correctly into the holes.
3 | Cut some metal mesh to fit into the holes over the speakers to help protect them.
4 | Near the base at the back of the lower case drill a hole into which will fit a DC socket. At the front drill a similar hole for a headphones socket.
5 | Measure out the dimensions of the panel mount USB socket, find a suitable space on the wood panel and mark it up for drilling & cutting. Use counter-sunk screws to hold the socket in place.
6 | Measure the position of the battery pack inside the lower case. On the underside of the wood panel, glue guides which will hold the battery pack securely when the wood panel is in the lower case.
7 | Using the template from the Punnet Case cut out a cardboard template and glue it to a wooden plate. Leave enough room around the edge to attach brackets to hold the Raspberry Pi.
8 | Measure around the edge of the USB hub adding and extra 5mm around the sides, create a plywood board. Cut a cardboard template which matches the hub's footprint. Glue the template to the plywood board and secure it tightly.
9 | Measure the +5v LDO and cut out a matching shape from a passive heat-sink. Use some thermal glue and cement the LDO to the heat-sink. Make sure the correct pick-ups have already been soldered on. Mount the LDO onto the USB hub.
10 | On the underside of the wood panel find a spare area to mount the GPS dongle. Position the dongle so the GPS antenna will be facing upwards when the wood panel is in the lower case. Remember to leave a cut-out where the cable can go.
Step 7: The Keyboard
1 | Measure the keyboard, and add an extra 5-10mm boarder around the edge. Measure the height of the keyboard; you will need to layer plywood so that the thickness is equal to the height of the keyboard. Remember to consider the wood panel while calculating dimensions.
2 | Glue the height corrected plywood block you have just made front & centre on the underside of the wood panel. Use Clamps!
3 | On the upper side of the wood panel draw out where the block is in relation to the top. Mark the keyboards shape inside this area, where you want the keyboard to sit.
4 | Drill the four corners using wood drills, place a sample of scrap wood underneath to help prevent splintering of the underside.
5 | Use a jigsaw to rough cut inside of the pencil lines.
6 | With a Dremel, or equivalent sand down the hole to match the pencil lines. You can of course use hand tools if you don't have anything electric,
7 | Using hand tools carefully adjust the sides, making room for buttons, so that the keyboard will sit comfortably inside the space.
8 | Cut a base-plate for the keyboard cut-out and glue it to the underside of the panel.
9 | Groove out a space to make it easy to get the keyboard out using a finger.
10 | Smooth any rough edges with fine sandpaper.
11 | Test fit.
Step 8: Assembly & Cables
2 | I put the Raspberry Pi, complete with its card and headphones-out cable, positioned it where I wanted it to sit inside the case, with the SD Card close to the edge so it doesn't fall out, and then drilled through the previous holes into the case. This should give exact holes which you can now use to fit screws to hold the support in situ.
3 | Widen the holes and use a counter-sink bit in a drill to bevel the holes. Be very careful as the thin aluminum can split & tear easily. Check that the screw heads sit flush with the case.
4 | Fit the template into the case and screw down, refit the Raspberry Pi to check all is ok.
5 | Do exactly the same with the USB hub. I have fitted the receiver for the keyboard towards the case edge. The edge should help retain the receiver but it is best to leave a 1mm gap to absorb any knocks to the side.
6 | Find a spare space for a switch, measure its dimensions and cut a slightly smaller hole into the wood panel. Because I don't want the toggle of the switch protruding above the panel it will need to be mounted lower down then usual. I would recommend using the same process as used when fitting the keyboard to create a recess where the switch will fit. Being a bit of a numpty I didn't think to do that until after I had cut the hole!
7 | Yes, I know it looks a bit like a face. It gives it some character!
8 | The panel mount RJ45 socket was pulled from an old PC. I had to solder on some CAT5e cable, and then protect the socket with some heat-shrink.
9 | Measure the size of the RJ45 socket. Transfer the measurements onto the case where you would like the socket to fit. I used a Dremel cutting disk to start cutting out the hole for the socket. I then finished the hole with a sharp blade.
10 | The end of the socket is surrounded with a wooden bracket. The bracket puts the socket level with the edge of the case.
11 | Wire up the headphone socket to the headphones plug from the Raspberry Pi. Check you have the channels the right way round. Fit the cable into the case.
12 | The RJ45 socket is glued in against the side of the case. There is enough room for a screw toward the top if you think it needs one. It really depends on which socket you have.
Step 9: Cables
1 | Where the USB cable was detached from the hub we now need to reattach the new, shortened USB cable, along with a +5v input from the LDO. Using the same USB lead measure the cable so there is enough wire to go from the hub to the Raspberry Pi. Connect the White (D-), Green (D+) and Black (gnd) wires to the hub. Do not connect the Red (+5v) wire from the USB cable connected to the Raspberry Pi. We leave the +5 cable out so that we do not draw any power from the Raspberry Pi's USB connection. Instead power comes from the +5v LDO.
2 | To the USB hub attach a Red (+5v) & Black (gnd) wire, at the other end of this cable attached male DuPont connectors into a two-pin plug. This wire will connect to the regulated +5v & gnd lines from the LDO.
The slide switch will be used to direct power from either the battery pack (on position), or the DC socket (off position). When there is no jack in the DC socket the LapPi will be powered down. There are no charging circuits inside the LapPi so the batteries will need to be removed from the holder when the time comes to recharge them.
3 | The centre two poles of the switch will be the main power line. Connect the PP3 connector lead to one end of the switch, cover the connections with heat-shrink. At the other end connect lines which will come from the DC socket, connect and heat-shrink the DC supply wires. I have used DuPont connectors to make it easier to dismantle the LapPi should the need arise.
4 | The centre two poles need to be split into three outputs; 1 to the Raspberry Pi, 1 to the USB Hub's LDO, and the last will provide power for the screen pack. Again I have used DuPont connectors where appropriate. To make it simple to keep track of the different connections I have put a small length of heat-shrink tube on the corresponding positive wires for each connection. For example I have used blue to highlight the DC sockets wires.
5 | Connect a measured length USB cable to the GPS dongle.
6 | You now have to create the opposite end of the IDE cable used in the screen pack, the process is exactly the same as last time. I began working with the two USB connections. Once a set of four wires was finished I tested it worked correctly by plugging the cable into a USB port while the Bluetooth/WiFi dongle was connected to the other end. For the power supply to the screen use DuPont connectors to match the power supply from the switch.
7 | Connect the panel mount USB socket to a USB plug. Check the cable length before hand.
Step 10: Finishing & Final Assembly
2 | Test fit the screws in the wood panel. I have used three at the front, one on each side, and two at the rear.
3 | Cut counter-sink holes and test-fit the screws in the holes.
4 | Dismantle the screen pack and remove all screws, brackets and supports.
5 | Sand down the wood panel to give a smooth feel to the wood.
6 | Find a spare wire coat-hanger, straighten it out and add hooks to each end.
7 | Go outside find a suitable overhead beam or branch and hook one end of the hanger to it. I have used a cross member which holds up the roof of my car port (make sure the area is very well ventilated). At the other end hook on the wood panel. You now have a make-shift spray-booth.
8 | Begin the process of spray coating the panel in your favourite finisher. I've gone for a satin wood varnish. It's sprayed straight from the can, and the instructions say to spray another coat within the hour. I gave it three, and left it overnight to cure. You can use anything really, it is entirely up to you!
9 | Repeat this process with the lower case wood panel.
I liked how the counter-sunk screws looked on the lower case so I went ahead and found some more for the top. Obviously I needed to then cut counter-sunk holes.
Step 11: Final Assembly
2 | Add the logic board & Bluetooth. I have secured the HDMI cable with a ringed Tie-Wrap. Plug the Wifi Card & Bluetooth into the harness. Check all the connections. I have folded the IDE cable so it will sit comfortably in the space provided, and pass through the panel without snagging.
3 | Fit the screen pack into the upper case.
4 | Plug the harness into the USB Hub, & the Raspberry Pi. I have secured the cable with a Tie-Wrap and sticky block.
5 | Fit the speakers into the upper case. I had originally planned to use the grills to hold the speakers in place, but I decided against this and drilled out holes for screws.
6 | Wire the speakers wires into a 3-pin DuPont connector.
7 | Add the slide switch, and screw into place.
8 | Put the GPS in.
9 | Mount the panel mount USB socket.
10 | Check everything is as it should be and that you haven't lost the keyboard.
11 | Wire the top wood panel into the lower case.
12 | Secure the panel with counter-sunk screws.
13 | Make sure it closes properly.
Step 12: Power On
2 | Wait.
3 | Check everything works.
4 | Have fun!
Step 13: Things that went wrong!
2 | On powering up the LapPi it didn't work the first time! I had the DC socket gnd wire on the wrong pin. After it was fixed it powered straight on.
3 | The +5v LDO only outputs a maximum of 1 amp. Its not enough. The GPS, Wifi, Bluetooh & keyboard receiver are too much for the small LDO. I have ordered a 3A 12v to 5v DC to DC converter. For the time being I have unplugged all but the keyboard receiver.
4 | I don't have ten 1.2v NiMh Batteries so I haven't been able to run it from batteries yet. They are on order.
5 | I did want to stain the lower wooden panel a dark green, but I couldn't find any wood stain that didn't come it batches of 15 litres, so I went with the varnish instead.
Step 14: Righting the wrongs.
1 | We will be using an RKAmp1 stereo amplifier from RK Education. The amp comes in kit form, so the first thing to do is to put it together.
2 | Remove the old LDO from above the USB Hub. Compared to the 15w DC-DC converter the LDO is quite small, even with the heat-sink attached.
3 | Find a spare place for the Converter. It has brackets for bolts. I have used two counter-sunk screws, pushed through holes drilled on the underside of the lowercase. Two washers & nuts secure it to the lowercase. You can use the same power lines as the LDO.
4 | There is space on the underside of the lowercase to mount the amp. The circuit has two holes for mounting and I have used some scrap wood to raise the circuit board up so the pins don't catch in the wood.
5 | Run power to the amp, and connect in the speakers.
It has been mentioned in the comments the need to take the lower case apart to charge/change the batteries. Well taking note of this point I came up with a plan. While the main power switch is set to the PSU/OFF position I could use the DC socket with a battery charger to charge the batteries. By adding in another switch, I could divert power from powering the LapPi to charging the batteries. All I would need is a switch which moves between sending power to the batteries, and powering the LapPi.
6 | Make a mount for a DTDP switch, this switch will sit near the DC socket so check available space before committing yourself. You will need the DC input from the DC socket on the centre two pins, and outputs for connection to the batteries, and to the original switch on the lowercase panel.
7 | Measure the correct position of the switch toggle and cut out a hole on the rear of the lowercase where this will be.
8 | Attached the new switch assembly to the rear of the lower case and clean up any edges with a flat needle file.
9| Fit the batteries into their holder and then place the holder into the lowercase.
10 | Connect the lowercase panel.
11 | Power On
12 | Check that the Wifi, GPS, & Bluetooth all work.
13 | Hack the Planet!
The LapPi is shown with its big brother the FishPi POCV and its Base-Station. More information about the FishPi project can be found at fishpi.org