The Raspberry Pi is a remarkable machine. Lightweight, powerful, and until now it was completely tethered to a wall socket. The LapPi is built to free the Pi! It's made from a mixture of spare parts, unallocated electronics, and scrapped components & cables I have built it in response to the Raspberry Pi Challenge. The challenge was picked up on the 15th of October via retweet from @raspberry_pi, and by the end of the day I knew what I wanted to do….
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
I have used a 7″ LCD panel & logic board. It has HDMI, VGA, Composite & 2 AV inputs. For the purposes of the LapPi we will only be using the HDMI connection. The logic board also has a menu board with buttons to select inputs, & configure the LCD panel. The panel is 800×480 with LED backlights, it requires a 12v feed.
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
1 | Strip out the Aluminum case of all of its innards, measure the internal dimensions of the upper case, keeping the sides as straight as possible so you get an accurate measurement.
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
1 | Measure the spacing between the buttons on the menu board. Transfer these measurements onto the back of the panel and mark out where holes need to be drilled so that the buttons will poke out through the veneer. Double check they are aligned correctly because it will be very difficult to fix if it goes wrong. Drill out the holes from the back with the panel sat on a flat surface.
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
I'm going to be using an old IDE cable when connecting the upper and lower halves of the aluminum case. There should be more than enough wires in the 40 pin cable to carry HDMI, USB & power. To do this we need to dismantle and connect the HDMI cable. I went and bought two from the £1 shop in case I screwed one up.
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
1 | Remove all the electronics from the wood panel.
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
Remove the screen pack from the upper case.
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
The top of the keyboard needs to be level with the top of the wood panel or it will hit against the LCD, and the top won't close. You could just cut out a square hole, glue some wood strips on and call it a day, but I thought I'd show you a much better way.
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
1 | Drill holes in each corner of the Raspberry Pi's mount & the USB mount. I added an extra hole in the centre of the Pi's mount. You don't have to be too exact at this stage.
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
Correctly connecting USB cables can cause confusion between the four different wires in each cable. The USB standard uses Red, Black, Green & White wires, each must be correctly matched or the devices wont work. I used the Wikipedia USB Page as a guide.
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.
For more detail: LapPi – A Raspberry Pi Netbook