<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Cheapest Raspberry Pi Arcade Controls Encoder EVER!</title><link>https://community.element14.com/products/raspberry-pi/raspberrypi_projects/w/documents/1581/cheapest-raspberry-pi-arcade-controls-encoder-ever</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Cheapest Raspberry Pi Arcade Controls Encoder EVER!</title><link>https://community.element14.com/products/raspberry-pi/raspberrypi_projects/w/documents/1581/cheapest-raspberry-pi-arcade-controls-encoder-ever</link><pubDate>Mon, 10 May 2021 18:52:11 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:896a6c7a-8de5-40ed-ba61-f8908ea4a35c</guid><dc:creator>spannerspencer</dc:creator><comments>https://community.element14.com/products/raspberry-pi/raspberrypi_projects/w/documents/1581/cheapest-raspberry-pi-arcade-controls-encoder-ever#comments</comments><description>Current Revision posted to Documents by spannerspencer on 5/10/2021 6:52:11 PM&lt;br /&gt;
&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Okay, long story short, I needed an Arduino board, and the only one I had to hand was buried inside my double-awesome &lt;strong&gt;&lt;a class="jive-link-wiki-small" href="/products/raspberry-pi/raspberrypi_projects/w/documents/1383/pik3a-the-raspberry-pi-3-ikea-retro-gaming-table"&gt;PIK3A Raspberry Pi 3 Retro Gaming Table&lt;/a&gt;&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;I could rob it from the table, but then how was I supposed to loaf around all evening playing Double Dragon, or Bubble Bobble, or Gradius? As always, necessity proved to be the mother of invention, and I found an option for hacking together an ultra-cheap Raspberry Pi interface for arcade controls that works &lt;em&gt;superbly&lt;/em&gt; well.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/358x358/__key/communityserver-wikis-components-files/00-00-00-01-66/3730.contentimage_5F00_199814.jpg"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/3730.contentimage_199814.jpg-358x358.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=OB69fT4dTYTy3Uo0RPUXmwd2uK3QczikZICqUBCn89Y%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=D59tQDXJYWWqSipTsfZK8g==" style="max-height: 358px;max-width: 358px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;Cheapest. Arcade Controls. EVER!&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Because of all the cool retro gaming stuff we&amp;#39;ve been doing lately, I had one of these kicking around the house. It&amp;#39;s a knock off SNES-style USB controller for the PC, but it also works (plug &amp;#39;n&amp;#39; play) on the Raspberry Pi. I ripped out its guts, soldered wires to the button pads, connected the PIK3A table&amp;#39;s controls to those wires, and plugged it into the Raspberry Pi.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Note that &lt;strong&gt;it&amp;#39;s &lt;/strong&gt;&lt;em&gt;&lt;strong&gt;not&lt;/strong&gt; &lt;/em&gt;an original SNES controller. &lt;strong&gt;This is a USB joypad&lt;/strong&gt; -- don&amp;#39;t buy the wrong one or it won&amp;#39;t work!&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;It&amp;#39;s &lt;em&gt;very &lt;/em&gt;responsive (great for button bashing), doesn&amp;#39;t require any set up (unless you want to rearrange the buttons, but that&amp;#39;s not a necessity), it has six buttons plus START and SELECT/COIN, and it &lt;strong&gt;costs less than a fiver&lt;/strong&gt;. In fact, if you&amp;#39;re willing to wait for one to arrive from China, you can build this for &lt;strong&gt;less than two quid&lt;/strong&gt;, making it the &lt;strong&gt;cheapest arcade encoder on the entire interwebs&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;It&amp;#39;ll even work on your PC, and probably your Xbox and Playstation (untested).&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Here&amp;#39;s a bit more detail.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;STEP 1&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Take the controller apart, and remove the PCB.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1200x675/__key/communityserver-wikis-components-files/00-00-00-01-66/2234.contentimage_5F00_199815.jpg"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/2234.contentimage_199815.jpg-1200x675.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=4ccNCuNaFvKAU43qicMRV7v2nOENhfJfdUDEJiEMuaI%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=yl4x1KmLI3DP0fHUzJXk9w==" style="max-height: 675px;max-width: 1200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;/h1&gt;&lt;h1&gt;STEP 2&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Tin the button pads with solder, being careful not to melt them or lift them off the PCB. Be quick and neat with your tinning.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;If you look closely, every pad has two connections, and one side is common to every button. There&amp;#39;s a big, wide track that connects one side of all the pads together. This is the &lt;strong&gt;ground&lt;/strong&gt; connection. You &lt;strong&gt;only need to tin the side of each that &lt;em&gt;isn&amp;#39;t&lt;/em&gt; ground&lt;/strong&gt;. It&amp;#39;s the one that &lt;strong&gt;&lt;em&gt;isn&amp;#39;t&lt;/em&gt; &lt;/strong&gt;connected to the big wide track that loops around all the buttons.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Except, that is, for one of the buttons. You&amp;#39;re going to connect a &lt;strong&gt;ground&lt;/strong&gt; wire to that side of one pad, which is then automatically connected to one side of all the other buttons, thanks to the big wide ground track that&amp;#39;s running around the PCB. Make sense?&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1200x675/__key/communityserver-wikis-components-files/00-00-00-01-66/7532.contentimage_5F00_199816.jpg"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/7532.contentimage_199816.jpg-1200x675.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=VRWt%2BYaZHDhupJaw2lv1fblo3hjpPhtDkag9j4KNU60%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=c/rlGEMsv2eX2VpgKzPvdQ==" style="max-height: 675px;max-width: 1200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;STEP 3&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Solder a short wire to each of the button pads you just tinned, including one for the &lt;strong&gt;ground&lt;/strong&gt; side, which will serve all the buttons on the PCB.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;You can see my &lt;strong&gt;ground&lt;/strong&gt; wire on the far left hand pad. That&amp;#39;s the only button pad that has two wires connected to it.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;When soldering your wires, make sure you don&amp;#39;t short the two sides of the pad together, or the encoder will think the button is constantly being pressed.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1200x675/__key/communityserver-wikis-components-files/00-00-00-01-66/6036.contentimage_5F00_199817.jpg"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/6036.contentimage_199817.jpg-1200x675.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=o37Ev%2FTVe2mFiV54P0QUEUJUMwLbnmvl6zn34K7bAyc%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=9PQRf2/lQOP8N5uAgr1e4w==" style="max-height: 675px;max-width: 1200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;STEP 4&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Strip the ends of your wires, and stuff them into some chock block. I put mine into the connector block in order; so the wires go GROUND, UP, DOWN, LEFT, RIGHT, BUTTON 1, BUTTON 2, etc.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;You don&amp;#39;t have to, but it makes it easier when it comes to connecting your arcade controls to the other side of the chock block.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1200x675/__key/communityserver-wikis-components-files/00-00-00-01-66/6765.contentimage_5F00_199818.jpg"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/6765.contentimage_199818.jpg-1200x675.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=0HZT76EcNySp6Z1iJCZIjBxqi%2FrnlL0Lvw%2Fzl8oPeDg%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=CR8pNFAx4/eYUHGXBMr01g==" style="max-height: 675px;max-width: 1200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;STEP 5&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Connect your arcade controls to the other side of the chock block. Your arcade controls now take the place of the buttons that were on the joypad. In the image below, you&amp;#39;re looking at the underneath of my arcade buttons (on the left) and joystick (on the right). The wires from those go into the connector block for the encoder PCB. You could hard wire direct to the encoder, but if you ever need to replace it, that&amp;#39;d be a major pain. Better to make it removable.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;As with the &lt;strong&gt;ground&lt;/strong&gt; track that runs around one side of all the button pads on the encoder PCB, my arcade controls have a &lt;strong&gt;ground&lt;/strong&gt; wire that runs around one side of all the buttons and joystick microswitches. This way, only one &lt;strong&gt;ground&lt;/strong&gt; wire is needed, reducing the number of wires significantly.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Plug the encoder PCB&amp;#39;s USB cable into the Raspberry Pi, and it should work right off the bat!&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1200x675/__key/communityserver-wikis-components-files/00-00-00-01-66/8883.contentimage_5F00_199819.jpg"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/66/8883.contentimage_199819.jpg-1200x675.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=HB1NfqHjeLO%2BCxaYkkpJ3FGt08snVGtb%2B9mRaOa3JJQ%3D&amp;amp;se=2026-05-09T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=Kq4gaWNkuzoqfx7IEgnmiw==" style="max-height: 675px;max-width: 1200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;text-align:center;"&gt;&lt;span style="font-size:18pt;"&gt;&lt;strong&gt;Got your retro gaming blood pumping all over again?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:center;"&gt;&lt;span style="font-size:18pt;"&gt;&lt;strong&gt;&lt;a class="jive-link-blog-small" href="/challenges-projects/element14-presents/benheck/interactive/b/blog/posts/a-brief-history-of-hardware-hacking-in-video-games"&gt;Hacking video game gear is fun, and has a rich tradition.&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:center;"&gt;&lt;span style="font-size:18pt;"&gt;&lt;strong&gt;So go check out our awesome giveaway, &lt;a class="jive-link-blog-small" href="/challenges-projects/element14-presents/benheck/interactive/b/blog/posts/a-brief-history-of-hardware-hacking-in-video-games"&gt;where you can win Ben Heck&amp;#39;s one-of-a-kind portable Atari 2600 console&lt;/a&gt;!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: retro gaming, controller, rpibeginner, encoder, usb, arcade, pik3a, raspberry_pi_projects&lt;/div&gt;
</description></item></channel></rss>