This is an entry in the
Epilog Challenge 9
Welcome to the PiSwitch
Hello to the wonderful world of instructables. Sometimes this website feels like a second home to me I spend so much time drooling over the projects I wish I had the time and money to make. Alas, It's finally time for me to drop on you amazing people, my second instructable I call it The Pi-Switch. It's a conglomeration of the work of many people but this particular build is, certainly and uniquely my own. I do however want to give credit where credit is due. First off much thanks to Drew Wallace with the Switch Berry I couldn't make his software work but he helped get me started. Thanks to Adafruit they built the PiGrrl2 a while back and if the internals to my pi case seem familiar that's because the charging circuit and audio amplifier are the same circuits used in the PiGrrl 2. Third Thanks to the wonderful developers over at the pi foundation, RetroPie, and last but not least Kodi. My scripts are built around the incredible work you've done developing software to run on the raspberry pi. Finally, thanks to Nintendo for making me want to reverse engineer, poorly might I ad, their Switch Console.
Step 1: Procuring Provisions
You will need:
Soldering iron + solder + soldering flux
Hot Glue Gun
A 3D Printer or $20-$40 and 3dhubs.com
A decent micro screwdriver kit
A Dremel Tool with a fine bit or a drill with a 3/16th bit
3d Printed Case (Files Are Attached to this step the instructable assumes you've printed the part.)
Step 2: Soldering Headphone Jack to the Pi
I have pictures from the various steps above.
Start with the Pi and solder some 26 awg wire to it:
I used red for the left audio to pp26 near the audio jack (thank you pi foundation for labeling the solder pads)
solder black for ground to pp24
right audio is a yellow wire and you solder it to the upper left pin on the audio jack.
I recommend leaving the wires long 3-4" you can trim them down or tuck them in later. I leave them long because my projects often get pulled apart and rebuilt/re-purposed. I really like this particular 1/8 in jack. I chose it because the clear top means you can see and understand exactly how it works.
Soldering The Audio Jack (The pinout is in pics above):
Take the red wire from the pi and solder it to pin 2 on the 1/8 in jack.
Take the yellow wire from the pi and solder it to pin 5 on the 1/8 in jack.
take the black wire and twist another 3-4" length of black wire to it then solder to pin 1 on the 1/8 in jack.
solder a 3-4" red wire to pin 3 on the 1/8 in jack.
You should now have an audio jack connected to the pi, if you were to play sound with headphones plugged in you would have music playing clearly on this jack. I reccomend hot gluing the wires on the bottom of the pi and the bottom of the jack in order to secure the thin wires and also to protect them from damage and shorts.
Step 3: Soldering the Power Board & Switch
The PowerBoost 1000C for all your lithium charging needs.
Unfortunately this little deal though fantastic does not output enough power to run the Pi-Switch. It does however do a great job charging the battery which has plenty of amperage to power the pi, screen, and audio simultaneously for about 2-3 hours. I left the power on the pi open so that running out of battery just means you need to plug directly to the pi. I'm working on a better solution still. I may build a switching circuit. I will update this if I find a better way to power this device but 2-3 hours isn't bad.
Lets start by looking at Picture 1 above you'll notice 3 black circles and 3 red circles.
You Guessed IT !! solder 3 10" black wires and 3 10" red wires to the corrosponding spots marked on the PowerBoost.
The Switch (The Power Switch (Not Nintendo)):
Cut a single right or left leg off your switch and solder on a 2" wire to the remaining center and alternate legs of your amputee power switch.
solder one of the wires from you switch to en on the powerboost and the remaining wire to gnd on your powerboost board.
Hot Glue is cheap, quick, and easy. I reccomend now putting some hot glue over each of the wires connected to the PowerBoost Board
Step 4: Speaker and Audio Board and HeadPhone Jack (A.K.A. Tying It All Together)
This is the step in which we combine our various assets
Solder the Speaker:
Look at the picture above and solder one wire to each of the pads on the speaker as shown above. I'm too cheap for heat shrink so if you're like me HOT GLUE!
Solder the audio board:
grab your PAM8302 look at the writing. On the side where the board says 4-8 ohms solder your speaker wires to the two center pads as pictured above.
Solder the power to the audio:
Take one of you red power leads and one of your grounds from you PowerBoost board and solder the red wire to vin on the PAM8302 and the black wire to gnd on your PAM8302.
Solder headphone to the PAM8302:
Take the red wire from your headphone jack and solder it to A+ on your PAM8302
Take the black wire from your headphone jack and solder it to A- on your PAM8302
Solder the Pi:
There's a picture of the pi above. Take one black wire from your power boost solder it to the black dot on the picture of the pi.
Take one red wire from your power boost solder it to the red dot on the picture of the pi.
carefully be sure the remaining black wire from the power boost and red wire from the powerboost aren't touching anything. then attach the battery and flip the switch. if everything is hooked up correctly an led should light on the pi, on the charge board and you may hear a light buzz from the speaker if it's noisy enough to bother you you likely have an issue with you solder joints.
Step 5: Assembly
We should now have everything attached with exception of the LCD and the optional pi camera. in the first few pictures you'll see how to screw in the pi itself. it's quite simple, so pull out your kit of 80 various laptop screws find some screws just a mm or two longer than the thickness of the pi and thread them into the soft printed plastic. PLA is recommended. there should be two lovely pegs to set the pi on, and on the opposite corners there's holes to thread. the same goes for the power board. there's pictures above that shows the assembly of the power boards.
now push the switch through the tiny hole above the power board. grab the switch from the outside with with some tweezers or finger nails. While pulling gently on the switch to keep it from falling back into the case put some hot glue on the backside of the switch as pictured above. once the glue has cooled double check that the switch is in a good position for use. If it's not good peal off the glue and try again.
Drill a 3/16th inch hole between the pi and the powerboost you can also dremel a hole. This should be on the side of the case where the pi's usb ports are located. Slide the headphone jack into the hole and hot glue it in place.
Finally, glue the speaker battery and audio boards in place as pictured above. I put the speaker facing the plastic under the battery which i tucked directly behind the powerboost board. Then I glued the battery up against the sides of the 3d printed case. Ffinally I glued the speaker amplifier the top of the battery.
So if you've done everything right this far you should have the pi, powerboost, the PAM8302, the speaker, the power switch, and the battery all installed and secured in the back of the pi case. There should also be one 10" black wire and one 10" red wire left.
Step 6: Adding the Screen and Finshing Assembly
Pat yourself on the back you're almost done with a rather complex assembly. now take some 6mm long screws and thread the side bars. They should thread into the screw holes on the screen as shown in the pics above. If the screen doesn't line up and fit you probably have it upside down. Look at the pictures and you may notice I have prototyping wires attached to my screen. I actually put pin headers on my powerboost instead of soldering direct. if you followed through step by step without looking ahead then you're soldering the wires on. if not it's your choice. I prefer pin headers for quick easy modification because my creations are always in a state of flux and improvement.
Use the remaining Wires:
Solder the remaining red wire from the powerboost to the vin pin on the screen
Solder the remaining black wire from the powerboost to the gnd pin on the screen
Attaching The Camera (Optional):
plug the camera cable into the camera board
plug the cable in the pi as shown above
flip the camera over the ethernet jack.
bend the cable flat and glue in place.
Attaching the screen ribbon:
Plug the Ribbon cable in to the pi as shown
if you look at picture 5 it shows how I flip the back panel down into place after attaching the ribbon
Finally screw the four screws from the back panel into the brackets on the back of the screen and you're fully assembled.
Step 7: Building the Pi Software Image
plug a keyboard into your pi, and make sure the pi is plugged into a charger.
Go to this website and follow the install: (only setup your keyboard as a temporary controller)
You may have an annoying buzz sound (It's ok ignore for now, we'll fix it soon)
go through the ReroPie Menu as follows to setup wifi:
retropie / settings > raspi-config > interfacing options > SSH > Yes > Ok > Finish > Retropie Setup > Configuration Tools > wifi > (configure your wifi) > exit >
raspbiantools > Install Pixel Desktop Environment > yes > (wait a while) > ok (to flash player) > (wait a while longer) > ok > cancel > back >
Manage Packages > Manage Optional Packages > Kodi > Install from binary > (wait a while) > back > back > back>
register and connect your JoyCons:
Configuration /Tools > bluetooth > Register and Connect (while pressing the tiny button between L and R on the right joy-con) > choose Joy-Con (R) > NoInputNoOutput > (wait) > ok > ok
repeat step 5 with Joy-Con (L)
cancel > back > exit > (start button) > quit > quit emulation station> yes
type the following:
sudo apt-get update && sudo apt-get upgrade && sudo rpi-update
type the following:
sudo chmod 777 setup.sh && sudo chmod a+x setup.sh
I've added a controller connection menu, where the screen will tell you if both joy-cons are connected. also added a one player two player mode selection menu. on first competed boot you will now connect your controllers with the + and - buttons, click next, click retropie, and choose 1 player mode.
when the device gets to the touchscreen boot menu tap + and - to activate the two controllers and tap retropie.
Choose retropie hit start > configure controllers > configure your joycons
Tada this is your first boot to the completed device. Now you just need to set it up with your own media and roms.
Check back for updates with automatic controller connecting and parsec for computer to pi game streaming.
pywx.py is my touchscreen boot selection menu, it's not actually a boot selection being that all these options exist under one raspbian jessie build. I plan on adding a simpler way of pairing the controllers at boot to this menu. check back for updates, and please let me know if you build this especially if you make any improvements I'd love any co-op on this that's offered. Please check back on my repository I'll be updating it https://github.com/cfoote7/PiSwitch
Thanks for looking if you have any questions about my custom built hardware or software feel free to ask I like to answer questions and find ways to make my instructables clearer :)
We have a be nice policy.
Please be positive and constructive.
what games do have/use on this
I have a 128gb microsd full of 1000's of games. look up retropie, it'll run anything you can run on retropie.
Alas, I, like you, don't have nearly enough time to make all the projects I would like to. I'm more into cosplay and other physical projects than rasberry pi/arduino, though I would like to start doing both. However, this is still really cool!
I learned fibreglassing techniques from here years ago for cosplay, built a really cool dragon mask. I just stopped sleeping while I was working on this.
I saw an atomic purple switch shell on Amazon. How well would that work if I can't 3d print your case?
I've thought about this myself, you would have to strip the headers, usb, and gpio pins off of the pi. Tge screen may or may not fit. You'd have to use a different battery. I may try it in three future.
Thats awesome project! Great job!
How long it lasts on the battery?
About 2 asnd a half hours.
Questions that came to mind, so they may/may not be solved yet....
1) If I want to plug into "big screen", can I do so with this configuration?
2) Must it always run on battery power, or can it be plugged in also?
3) Can it be plugged in "while running?"
I truly despise tiny controllers. I'd be unscrewing these Joy-Cons in a heartbeat and fabricating a new controller that is far more comfortable for me, as they're that annoying. Any suggestions as to alternative controllers (wireless please!) that will also connect the same way and perform as well?
3.5) Just how many controllers (and players) can be connected at one time to the Switch-Pi? It'd be cool to add-on custom controllers for other games/features. I can't do the whole combo codes that easily, so I'd build a few pre-programmed macro buttons to get special skills working right every time.
Yes, the hdmi plug is left available but at the moment you have to switch the output via terminal commands. I haven't built an easy option to switch yet.
2 & 3)
If you plug into the battery charger port it discharges quicker than the PowerBoost can charge, if you plug into the pi it stays powered up but doesn't charge. You can absolutely plug both in and charge and play at the same time. I already built a circuit to deal with this but i don't want to make the case any larger so I'm working on a redesign to do this without making it any bigger.
I've connected 4 successfully, the, i don't know what the limit is but the systems that are emulated mostly have limited of 4.