PiSwitch

103,043

479

74

About: Hey my name is Chris, welcome to my instructors page. I'm happily married with a wonderful son, he makes the best workshop assistant ever. Plus I find a 7 year old has much more creative ideas than me. I wo...

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:

Tools:

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

Patience

Parts:

Pi Foundation 7" Raspberry Pi screen

Kingwin 80 Piece Assorted Notebook Replacement Screw Kit or (various screws of fortunate sizes lying about)

26 awg wire

1/8 inch stereo jack with switch

Mini Metal Speaker

tiny power switch

6600 mah battery of plentiful life

Joy-Con Controllers (reccomend the addition of a charger)

Raspberry Pi 3 (Bluetooth and WiFi built in)

PAM8302 2.5W Audio Amp

PowerBoost 1000C

3d Printed Case (Files Are Attached to this step the instructable assumes you've printed the part.)

Optional:

PiCamera V2

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.

UPDATE: 3-26:

Some more testing showed to me that PP24 directly to the metal pad is ground PP25 is right audio and PP26 is left audio. Picture of updated solder pad usage attached.

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.

Power Leads:

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.

Testing:

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

Step 1)

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)

https://github.com/RetroPie/RetroPie-Setup/wiki/Fi...

Step 2)

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 >

step 3)

Install Pixel:

raspbiantools > Install Pixel Desktop Environment > yes > (wait a while) > ok (to flash player) > (wait a while longer) > ok > cancel > back >

step 4)

Install Kodi:

Manage Packages > Manage Optional Packages > Kodi > Install from binary > (wait a while) > back > back > back>


step 5)

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


step 6)

repeat step 5 with Joy-Con (L)

step 8)

cancel > back > exit > (start button) > quit > quit emulation station> yes

step 9)

type the following:
sudo apt-get update && sudo apt-get upgrade && sudo rpi-update
sudo reboot

step 10)

type the following:
wget  https://raw.githubusercontent.com/cfoote7/PiSwitc...
sudo chmod 777 setup.sh && sudo chmod a+x setup.sh 
./setup.sh

Update:

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.

Old:

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.

Notes:

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 :)

Epilog Challenge 9

Runner Up in the
Epilog Challenge 9

Share

    Recommendations

    • Sensors Contest

      Sensors Contest
    • Backyard Contest

      Backyard Contest
    • Classroom Science Contest

      Classroom Science Contest

    74 Discussions

    0
    None
    hooperre

    Question 1 day ago

    Hey, Chris.

    Amazing build. (Sorry I think I posted on your YouTube as well, but I'll post here.) Looking at making this build, but see that there are some questions regarding the Pi3B+ and both power consumption and Jessie vs Stretch. Have you updated your build at all? It seems like the power consumption issue may be tied directly to the touchscreen and not another 7" display. Not sure if the initial modifications have been adapted to a non-touchscreen. While awesome, the touchscreen isn't really used within Retropie itself, so just curious if a controller based selection screen is viable. I suppose that would require some sort of auto-pairing on startup. Meh. Just thinking out loud. It's father's day and I'm allowed to be drunk mid-day today.

    Anyway, man, amazing build and I'm hoping to replicate it. All my images are 3B+ builds for the extra GPU output (I know, crazy considering same hardware), so I was hoping to kind of go from there.

    Thanks,
    Ryan

    1
    None
    akrishna.4132

    Question 2 days ago on Step 7

    Can you please give me a repository for just getting both the joy-cons to work at the same time I am new to coding and I do not know how it works so sorry if this is noob~ish

    0
    None
    Hunter0324

    10 days ago

    I want to start off by saying this is a great and fun project and you have put a ton of work into it, thank you. As I was building my own version I ran into a few roadblocks that I thought I might bring up. For the box that holds the pi, battery, etc. I think it would be convenient to have a cut out for the USB port, just in case the battery is dead, but you have access to an outlet. I personally found the power switch hard to mount as you put it and ended up wiring it outside of the slot, pulling it in, then using a metric buck-ton of hot glue to hold it in place (that could have been user error on my part, but i just want to try and make the project better if I can). The last thing is that I would have personally appreciated a wiring diagram, even a simple, pictograph one made in Word. I ended up wiring the screen incorrectly and had to Jerry-rig something after everything was set. My last observation came when installing the software. I think it might be beneficial to move step 7 before step 1 as I have been having issues with the pi and a difficult time accessing components (so installing software before any of the soldering). I do admit, this is very well my own error and lack of pi knowledge, but I wanted to bring it up. I think your PiSwitch is a really cool and fun project, thank you for putting this guide up for us to use!

    0
    None
    Davidneedshelp

    19 days ago

    I would gladly pay someone to build me one of these (I have no technical skills, this is infinitely beyond my level ---- epic and brilliant project though -- infinite props !!

    0
    None
    Burnttoast900

    Question 2 months ago on Step 7

    When I start it up after installing everything I needed too, it just loads to a blank screen with a blinking cursor, I can’t type or anything, can you please help me:)?

    1 answer
    0
    None
    Nata_Maker

    3 months ago

    What a nice project :)

    0
    None
    Luwate

    Question 3 months ago on Step 7

    Hello how can we have the same os (operating system) lile the switch

    0
    None
    FrancisM87

    Question 11 months ago on Step 1

    Hi Chris, Tried checking the 3d stencils on 3dhubs.com and the case is showing me this error: Hard to Remove Support issues detected.

    This part has hard to remove support with FDM.

    Would appreciate getting some clarification on what the problem is. Thanks!

    Francisco

    Screen Shot 2018-07-12 at 11.24.25 AM.png
    1 answer
    0
    None
    11006wnsdudFrancisM87

    Answer 3 months ago

    Actually, there is no problem in the picture, but it just warns you that it is hard to remove the support. (It will be able to print it any way)

    1
    None
    MuhammadG38

    4 months ago

    That's very cool project!
    I want to ask, how do you make that launcher menu (where you can select retropie, kodi, desktop, and cli)? I have zero basic for programming, but I would love to learn how to make one for my project.

    0
    None
    BrianS553

    Question 5 months ago on Step 7

    how do you attache the switch controller to the side of the screen case?

    0
    None
    charles543

    Question 5 months ago

    I haven't taken the time to read this instructable in detail. but I noticed that it jumped right into building the PiSwitch, and never did answer the basic questions of What is a PiSwitch and why would I want one?

    0
    None
    KevinB532

    Question 1 year ago

    I'm still at this; how is the Raspberry Pi 3B being powered through the PowerBoost 1000C? The Pi 3 needs 2A at max usage (which admittedly isn't all the time), but I'm getting the Low Voltage symbol almost constantly whenever I'm playing - anybody solve this? I see some solutions would be to use an alternate power source, like an Anker 13000, but that doesn't seem like a very clean solution

    1 answer
    0
    None
    jasdfKevinB532

    Answer 10 months ago

    Hey, did you ever come up with a better power solution?

    0
    None
    KevinB532

    Question 11 months ago

    Does anybody know how to implement the "joy-mouse" mapping? I have played around and got it working with SCUMMVM, but it only works if I ONLY call this mapping on boot. I lose the dual joy-con/keyboard mapping. I would like to call this using the runcommand-onstart.sh script only for SCUMMVM programs (and possibly DOSBOX), but I can't find a way to make it play nice

    0
    None
    kuppi.s90

    Question 11 months ago

    Hi,

    Is the Analog Stick only mapped as digital signals (up, down, left, right) or as real analog axis?

    Greetings from Switzerland

    Simon

    1 answer
    0
    None
    KevinB532kuppi.s90

    Answer 11 months ago

    It's only digital signals (up, down, left, right). The joystick mapper only maps as keyboard presses, not as real analog axis

    0
    None
    KevinB532

    Tip 1 year ago

    Hi everyone,

    I've tried building this project directly, and there are a few points I would like to pass on to future builders.

    As is, this project is based around Retropie 4.3; unless cfoote7 ever updates it, as of April 2018, it MUST be based on Jessie and not Stretch to use as-is. This project will NOT work with a new Raspberry Pi 3B+. Even with a regular 3B, if you initially base your build on Stretch, all you will get is a black screen with a flashing cursor.

    Next, the build instruction seem like a "hodge-podge" from Adafruit's PiGrrl 2, mixed with a few random notes here and there. When built exactly as these instructions list, it didn't really work for me. I have documented my changes to the wiring diagram, and list them here:

    http://s000.tinyupload.com/index.php?file_id=05772...

    Finally, the case STL file has been redesigned, closing some of the unnecessary gaps, adding standoffs for the PAM8302, adding a speaker mount and a mount for the headphone jack.

    http://s000.tinyupload.com/?file_id=52711687719593195465

    Even after this, I'm still having minor issues with this project; using all of the original parts list, the Raspberry Pi and the Touchscreen both issue "low voltage" and "under-voltage" warnings. Also, the joy cons never respond when choosing "two-player" mode from cfoote's selection menu.

    Hopefully my experiences following this project will help others :)


    PiSwitchInternal.jpg
    1 reply
    0
    None
    jasdfKevinB532

    Reply 11 months ago

    Thanks for posting the edits! Were you able to work through the power issues?