<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="https://amaiorano.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://amaiorano.io/" rel="alternate" type="text/html" /><updated>2025-09-04T23:22:40+00:00</updated><id>https://amaiorano.io/feed.xml</id><title type="html">amaiorano::blog</title><subtitle>Welcome to my blog, where you&apos;ll mainly find stuff related to programming, electronics, and retro console modding. All thoughts and opinions are my own, and do not represent those of my employer.</subtitle><author><name>Antonio Maiorano</name></author><entry><title type="html">Lava RGB</title><link href="https://amaiorano.io/2025/09/03/lava-rgb.html" rel="alternate" type="text/html" title="Lava RGB" /><published>2025-09-03T00:00:00+00:00</published><updated>2025-09-03T00:00:00+00:00</updated><id>https://amaiorano.io/2025/09/03/lava-rgb</id><content type="html" xml:base="https://amaiorano.io/2025/09/03/lava-rgb.html">&lt;p&gt;Back in 2021, I installed an &lt;a href=&quot;https://etim.net.au/nesrgb/&quot;&gt;NESRGB&lt;/a&gt; on a front loader, which has been working great. For years now, NESRGB was pretty much the only mod available to get RGB out of the NES; but recently, a new mod known as Lava RGB came on the scene from a company in China. I bought one, and in this post I go over how I installed it on another front loader.&lt;/p&gt;

&lt;p&gt;I bought the Lava RGB mod off AliExpress from &lt;a href=&quot;https://www.aliexpress.com/store/1104098883&quot;&gt;Lava FC Store&lt;/a&gt;, specifically from &lt;a href=&quot;https://www.aliexpress.com/item/1005007757543340.html&quot;&gt;this listing&lt;/a&gt; (although I suspect these links will not survive very long). The “color” I bought is the one named “NES senior VER 2.0”, which includes both the mod board itself, along with a replacement power A/V module. Version 2.0 adds a bunch of new features on top of the previous version 1.2, such as 24-bit color output, 8 integrated palettes, the ability to reset the console and change palettes using controller 1, an OSD that displays the palette name when switching them, and a micro usb port that allows for firmware upgrades in the future.&lt;/p&gt;

&lt;p&gt;Compared to the NESRGB, Lava RGB 2.0 is definitely a worthy contender. The palette switching OSD, and ability to easily update firmware, are improvements, and I wonder if future firmware updates might add more OSD-based options. However, one thing Lava RGB does not do is process and output audio like the NESRGB. Although not a huge deal, it does mean audio needs to be tapped from the main audio output circuit. This is probably why the latest version now offers a power A/V replacement PCB which routes audio output to its Saturn-style DIN connector.&lt;/p&gt;

&lt;p&gt;Although the power module includes a Saturn-style DIN connector, I don’t own a compatible cable, and prefer to use VGA cables. So for my install, I decided to add a SNES multiout port.&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/1005007757543340.html&quot;&gt;Lava RGB 2.0 mod board and power module&lt;/a&gt; - $81.37 CAD&lt;/li&gt;
  &lt;li&gt;Two 20 rounded pin headers - $16 CAD for ten on Amazon&lt;/li&gt;
  &lt;li&gt;SNES multiout parts (more on that later)&lt;/li&gt;
  &lt;li&gt;47K resistor for expansion audio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Lava RGB kit took about a week to arrive, and was packaged decently well:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0195.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;h3 id=&quot;prepare-nes-main-board&quot;&gt;Prepare NES main board&lt;/h3&gt;

&lt;h4 id=&quot;remove-ppu&quot;&gt;Remove PPU&lt;/h4&gt;

&lt;p&gt;I picked a front loader with an NES-CPU-10 main board that was in excellent shape. I took it apart, and extracted the main board from the shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0192.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First order of business was to desolder the PPU:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0204.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I started by adding fresh solder, using flux to make it flow into the existing solder:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0206.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0207.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then used my trusty desoldering pump to remove all the solder from the pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0205.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0208.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0211.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using a trick I learned from &lt;a href=&quot;https://www.youtube.com/voultar&quot;&gt;Voultar&lt;/a&gt;, I used my finger nails to move each pin back and forth until they moved freely. For the usual more stubborn pins on the thicker ground plane, I added more solder and desoldered again until I was able to move the pins. With that, I extracted the PPU:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0212.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;remove-power-module&quot;&gt;Remove power module&lt;/h4&gt;

&lt;p&gt;Next I needed to remove the original power module to replace it with the new one:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0218.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This can be pretty challenging, but with the right tools and technique, it’s not too bad. I started by adding flux to the four large pins that anchor the power module to the main board and use my desoldering gun to remove most of the solder:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0220.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0222.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I use wicking braid to remove the solder lodged around the pins. I added a little more solder and flux to the pins until I was able to wick away most of the remaining solder:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0223.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0224.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point, the gaps around the pins are pretty clear:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0228.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next trick is to desolder the 5 pins visible above - but not from this side, but rather from inside the power module. This is actually necessary for properly installing the new power module that comes with the Lava RGB kit. I pried off the metal plate:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0229.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0230.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I switched tips on my desoldering gun to one with a larger pitch, and desoldered the 5 pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0232.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0234.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With that done, I grabbed hold of the power module with one hand, while holding the main board with the other, and rocked the power module back and forth until it came free:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0237.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0238.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We’re left with the 5 pins still attached to the main board, ready to be soldered to the new power module later:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0240.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;push-main-board-capacitors-flat&quot;&gt;Push main board capacitors flat&lt;/h4&gt;

&lt;p&gt;As with the NESRGB, the caps on the main board need to be pushed down flat for the Lava RGB PCB to fit:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0242.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0243.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0244.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Normally this is simply a matter of pushing the caps down while heating the vias with a soldering iron. However, as I have a bunch of NES cap kits that I ordered from &lt;a href=&quot;https://console5.com/store/nintendo-nes-frontloader-cap-kit-nes-001.html&quot;&gt;Console5&lt;/a&gt;, I decided to replace them:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0245.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I desoldered the three caps:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0246.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And replaced them with the new ones, making sure to match the capacitance values, and ensuring the voltage rating is equal or above the original one. When placing the caps, I laid them flat before soldering them in:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0248.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;solder-wires&quot;&gt;Solder wires&lt;/h3&gt;

&lt;p&gt;At this point, I decided to solder the ends of the Lava RGB wire connector to the power module and to the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0249.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What’s nice is that the order of the pads on the power module and on the mod board match, so it’s easy to solder the first eight wires:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0251.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0252.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0253.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered the eight wires to the pads:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0254.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The remaining four wires are used to allow controller 1 to perform an in-game reset (IGR) as well as palette swapping using key combos. IGR is performed by holding Select for about 2 seconds, then pressing A; while for palette swapping, you hold Select for 2 seconds and press Up on the dpad. To make this work, the RST wire needs to be wired to the reset line on the main board (where the actual Reset button is wired to), while the CLK, DATA, and LATCH pins need to be wired to their respective pins on the player 1 controller input lines.&lt;/p&gt;

&lt;p&gt;I put this handy image together to identify the pins to solder to:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/NES_mainboard_IGR.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Noting the colors of each pin, I first soldered the RST line:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0256.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0257.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I soldered CLK, DATA, and LATCH. Note that DATA and LATCH are not in the same order as on the Lava RGB PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0258.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;power-module&quot;&gt;Power module&lt;/h3&gt;

&lt;p&gt;As already mentioned, for my install I planned to add a SNES-style multiout. Rather than grab these connections from the Lava RGB mod board itself, I decided to get them from the power module since it’s closer to where the port would be installed. For this, I used an 8 wire ribbon cable:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0259.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In retrospect, I should have made this cable longer, as I was limited to where I could place the multiout. Anyway, I soldered the cable to the power module. Conveniently, the power module PCB offers two ways to connect wires to it, pads and vias, so I used the vias for this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0261.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0262.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that two of the wires, the grey and the purple, are not soldered yet. One of these will be used for 5V, and the other for audio, both of which will be wired later to the PV and PA pins of the 5 pin connector.&lt;/p&gt;

&lt;p&gt;I also soldered a wire to GND, and soldered it to the ground plane of the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0263.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0267.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0269.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point, I loosely positioned the PCBs to get a sense for where I was heading:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0265.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the power module to the five pins coming from the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0266.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0272.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And now I could solder the 5V and audio wires to PV and PA respectively:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0273.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0274.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is what everything looked like at this point:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0275.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;mod-board&quot;&gt;Mod board&lt;/h3&gt;

&lt;p&gt;Next up was installing the mod board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0276.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As can be seen above, the kit includes two 20 square pin headers. Their official instructions expect you to solder the mod board PCB directly to the NES main board using these square pin headers, making sure to first solder the round pin socket onto the mod board itself so that the PPU can be inserted into it. The apparent advantage here is being able to swap out the PPU, but with the major disadvantage that the mod board cannot be removed from the main board, making it difficult to service the mod in the future. So instead of this, I did as is usually done with the NESRGB mod: solder the socket to the main board, and the PPU directly to the mod board. For this, I needed to either get a socket that works with the included square pin headers, or rounded pin headers - I chose the latter.&lt;/p&gt;

&lt;p&gt;I soldered the socket to the main board, making sure to line up the notch:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0277.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0278.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0279.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the two rounded pin headers I purchased separately into the sockets, longer pins down:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0281.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0282.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0283.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then laid the PCB over the pins, making sure to insert them into the right vias, and soldered them in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0284.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0286.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I carefully detached the mod board from the socket by rocking each edge back and forth. Some care has to be taken here as these rounded pins can bend and break very easily:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0287.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before soldering the PPU to the mod board, I use my flush cutters to cut down the one set of pins that would be underneath the PPU, and then touched them up with the soldering iron. Although not strictly necessary, this allows the PPU to lay flat on the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0288.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0289.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0290.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the PPU onto the mod board, making sure to line up the notch, and soldered it in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0292.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0293.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0294.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the wire connector to the mod board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0295.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0296.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0297.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now I carefully inserted the mod board back into the socket, making sure to line up the socket pins, while also routing the wires down and to the side, as there isn’t much space between the connector and the expansion port (note that we’re seeing the reflection of the wires on the edge of the expansion port):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0301.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0302.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;first-test&quot;&gt;First test&lt;/h3&gt;

&lt;p&gt;At this point, I could finally test the mod out. I hadn’t soldered the multiout yet, and I didn’t have a way to hook up the Saturn-style DIN, so I couldn’t test RGB, but I could test composite. So I loosely put everything together and composite video and audio worked perfectly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0303.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0304.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0306.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;multiout&quot;&gt;Multiout&lt;/h3&gt;

&lt;p&gt;For the SNES multiout, I 3D printed Laser Bear’s &lt;a href=&quot;https://www.laserbear.net/pages/downloads&quot;&gt;Multiout Panel Mount Snap In Connector&lt;/a&gt;, and used PCBWay to print &lt;a href=&quot;https://github.com/TRP-Retromods/SNES_AV_Connector?tab=readme-ov-file&quot;&gt;The Real Pheonix’s PCB&lt;/a&gt;. I also needed to order the right #2 x 1/2” screw. Alternatively, one could order the parts directly from &lt;a href=&quot;https://www.laserbear.net/products/nes-front-loader-snap-fit-multiout?variant=42703526494420&quot;&gt;Laser Bear&lt;/a&gt; and &lt;a href=&quot;https://trp-retromods.ca/index.php?route=product/product&amp;amp;path=59_64&amp;amp;product_id=70&quot;&gt;The Real Phoenix&lt;/a&gt;. Anyway, here are the parts:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0187.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0307.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0314.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;solder-ribbon-to-multiout-pcb&quot;&gt;Solder ribbon to multiout PCB&lt;/h4&gt;

&lt;p&gt;I mapped out the pins I’d need to solder to, along with the specific color wires from my ribbon cable:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0308.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered the ribbon cable to the multiout PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0310.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0311.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0312.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0313.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For testing, I inserted the PCB into the 3D printed frame and screwed it in:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0316.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0318.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;second-test&quot;&gt;Second test&lt;/h4&gt;

&lt;p&gt;Using an old cable I made, I gave it a quick test:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0319.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0320.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It worked! Although note that the colors aren’t quite right. It turned out that my cable was defective - green wasn’t being passed through. I later used a better cable, and all was fine.&lt;/p&gt;

&lt;h4 id=&quot;cut-shell-for-multiout-connector&quot;&gt;Cut shell for multiout connector&lt;/h4&gt;

&lt;p&gt;Using the 3D printed bracket, I marked off where I would need to cut into the shell to fit the 3D printed connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0323.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0324.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0326.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I made sure to position the hole as to not interfere with the posts. I actually wanted to position it more to the right, but as already mentioned, I had cut the ribbon cable too short, and didn’t feel like redoing it.&lt;/p&gt;

&lt;p&gt;Next came the most annoying part for me, since I still don’t own a proper dremel: I used a drill, flush cutters, and filing tools to cut out the hole:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0327.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0328.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0329.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0330.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0331.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0332.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0333.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, after way too long, the connector fit in perfectly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0334.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0335.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0336.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used the 3D printed clip to hold the connector in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0337.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0338.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The fit was a little snug considering that raised portion inside, but thankfully it was fine:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0339.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;expansion-audio&quot;&gt;Expansion audio&lt;/h3&gt;

&lt;p&gt;Before closing everything up, I also wanted to enable expansion audio. I decided to use &lt;a href=&quot;https://oshpark.com/shared_projects/ROD6ciPv&quot;&gt;Voultar’s PCB&lt;/a&gt; because this is what I had done for my NESRGB install. What I didn’t realize at the time was that this wasn’t necessary at all since the Lava RGB doesn’t process audio like the NESRGB. I’ll show my misteps here, and how I corrected it, but this could definitely have been simpler!&lt;/p&gt;

&lt;p&gt;I soldered a 1K and 47K resistor to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0355.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0360.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I positioned the PCB on pins 2 and 9 on the expansion port pins and soldered the PCB in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0361.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0362.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was at this point that I tested expansion audio and realized it wasn’t working. After chatting with Toxic_Tripod0 on Discord, I realized my mistake. To enable expansion audio without NESRGB, all that’s needed is a 47K resistor between pins 3 and 9. This PCB is expressly designed to route expansion audio to the NESRGB for processing. At this point, I could have removed the PCB, but I realized I could fix this relatively easily by removing the 1K resistor, and soldering a wire from the exposed pad to pin 3:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0366.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0369.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As required, pins 3 and 9 were now connected via a 47K resistor:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0371.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I tested expansion audio, and it worked! If I were to redo this, I’d probably just connect a 47K throughole resistor between pins 3 and 9 instead.&lt;/p&gt;

&lt;h3 id=&quot;closing-everything-up&quot;&gt;Closing everything up&lt;/h3&gt;

&lt;p&gt;It was finally time to put everything back together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0342.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I attached the power and controller cables to the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0343.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the multiout PCB into the connector and screwed it in:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0345.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0349.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I reattached the cartridge slot to the main board, and carefully inserted the main board into the bottom shell. The new power module is only held by those 5 pins to the main board, so some care has to be taken when fitting it in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0350.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I decided not to put in the RF shielding as it’s not really necessary, and would pinch and possibly short the reset and controller 1 wires used for IGR and palette switching. I put in all the screws, including the ones in the posts used for the RF shielding:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0384.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I screwed on the top shell, and was finally done! Here it is in all its glory:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0386.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0387.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0388.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0389.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;final-test&quot;&gt;Final test&lt;/h3&gt;

&lt;p&gt;With everything back together, I hooked it up using my &lt;a href=&quot;/2024/02/05/snes2vga.html&quot;&gt;SNES2VGA&lt;/a&gt; with a VGA cable to my gbs-control:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0390.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0391.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Looking good in RGB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0392.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Interestingly, the colors don’t exactly match the composite output:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0393.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using the palette switching control (hold select + Up on dpad), I cycled through the palettes, which displays the name of the palette for a few seconds. Here are some samples:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0394.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0395.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/lava-rgb/IMG_0396.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;I’ve been playing with this modded NES for a few days now, and it works and looks great. The Lava RGB 2.0 is definitely a worthy contender to the NESRGB, especially for the price. Although it doesn’t process audio, tapping the NES-produced audio out from the new power module works fine, and the sound is very clean.&lt;/p&gt;

&lt;p&gt;It’s worth noting that this mod doesn’t require the new power module at all, especially in my case as I added the SNES-style multiout. However, for those who don’t want the multiout, and want a no-cut mod, this is a nice way to do it. In my case, the power module made it easier to wire up the multiout, and possibly improved the audio output as the older power modules are known to add interference to the audio signal.&lt;/p&gt;

&lt;p&gt;I just wanted to give a quick shout out to the folks on the &lt;a href=&quot;https://consolemods.org/wiki/Main_Page&quot;&gt;ConsoleMods&lt;/a&gt; discord, especially Toxic_Tripod0, manadream, and RobStrange for their help.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="NES" /><summary type="html">Back in 2021, I installed an NESRGB on a front loader, which has been working great. For years now, NESRGB was pretty much the only mod available to get RGB out of the NES; but recently, a new mod known as Lava RGB came on the scene from a company in China. I bought one, and in this post I go over how I installed it on another front loader.</summary></entry><entry><title type="html">Adding “VGA Audio” to my gbs-controls</title><link href="https://amaiorano.io/2024/02/08/gbs-control-vga-audio.html" rel="alternate" type="text/html" title="Adding “VGA Audio” to my gbs-controls" /><published>2024-02-08T00:00:00+00:00</published><updated>2024-02-08T00:00:00+00:00</updated><id>https://amaiorano.io/2024/02/08/gbs-control-vga-audio</id><content type="html" xml:base="https://amaiorano.io/2024/02/08/gbs-control-vga-audio.html">&lt;p&gt;In my recent post about my build of the &lt;a href=&quot;/2024/02/05/snes2vga.html&quot;&gt;SNES2VGA dongle&lt;/a&gt;, I mentioned how the dongle exposes the stereo audio signal in two ways: from the headphone jack, as well as via two unused pins on the VGA port, which I’m dubbing &lt;em&gt;VGA audio&lt;/em&gt;. In this post, I’ll share how I modified my two gbs-controls to extract these audio signals from the DB15 port.&lt;/p&gt;

&lt;h2 id=&quot;my-setup&quot;&gt;My Setup&lt;/h2&gt;

&lt;p&gt;As a reminder, I have two gbs-controls, one that I use to output HDMI to my modern LCD TV, and another that outputs YPbPr to my CRT:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4567.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4568.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before making the SNES2VGA dongle, I used these &lt;a href=&quot;/2022/09/29/multiout-custom-cable-take-2.html&quot;&gt;custom cables&lt;/a&gt; that I made to connect my SNES and N64 to my gbs-controls:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_8149.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_9524.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This worked, but as I wrote last time, making these cables was fiddly, the connections weren’t great, and the audio RCA connections were starting to flake out on me recently.&lt;/p&gt;

&lt;p&gt;With the SNES2VGA dongles, I can now use nice, solid VGA cables to pass the video signal through, but I’m forced to also use a stereo RCA cable to pass the audio signal from the dongle to my gbs-control:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4394.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4396.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The idea is to get rid of that audio cable altogether by taking advantage of the signals that’s being passed through the VGA cable.&lt;/p&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;p&gt;The SNES2VGA PCB passes the left and right audio signals via pins 12 and 15, respectively. Note that this isn’t clearly explained on Jeff’s &lt;a href=&quot;https://github.com/jeffqchen/SNES2VGA?tab=readme-ov-file#audio&quot;&gt;SNES2VGA page&lt;/a&gt;, but it appears in his other guides, such as for the &lt;a href=&quot;https://github.com/jeffqchen/PS2VGA/wiki/1.-Features#audio-signals&quot;&gt;PS2VGA&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So the plan is simple: tap pins 12 and 15 on the input DB15 connector, and wire them up to the left and right audio input jacks inside my custom gbs-control cases.&lt;/p&gt;

&lt;p&gt;First I tackled the gbs-control with HDMI out:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4598.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4599.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here you can see the two audio input jacks with ground wires (black) and signal wires (red and white) that are soldered to the HDMI output board. The goal is to splice the signals from pins 12 and 15 to these:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4600.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I took everything apart to be able to gain access to the underside of the GBS board, as there’s no other way to access pins 12 and 15:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4601.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4602.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is the area we need to work in. Before doing anything, I made sure that both pins 12 and 15 are actually not connected to anything, including ground. Luckily they weren’t, as it’s not always possible to isolate pins like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4603.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered two wires to the pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4606.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I decided to pass the wires through this hole nearby, where part of the plastic shell around the component input jacks is held:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4607.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4610.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The hole was a bit small, so I decided to snip off a bit of the plastic. This doesn’t really affect the strength of the connector, as it’s held down quite strongly by several soldered pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4611.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4613.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4617.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the wires passed through, I flipped the board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4618.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I needed some ground wires for the audio signal. The DB15 input connection has ground on both pins 5 and 10, and since these are simply connected to the ground plane of the GBS board, I could tap any ground connection on the board. I decided to use these two vias where the original RGB pots used to be:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4619.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4620.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4621.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All four wires were now soldered and ready to be hooked up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4622.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I spliced in the left (white) and right (red) signal wires together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4624.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And then the ground wires:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4625.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s a side shot:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4628.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And with that, I was done!&lt;/p&gt;

&lt;h2 id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;

&lt;p&gt;I gave it a test, and it worked perfectly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4631.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4630.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Of course, you can’t hear it working in the screenshots above, so I uploaded this video to demonstrate:&lt;/p&gt;

&lt;!-- Feel free to change the width and height to your desired video size. --&gt;

&lt;div class=&quot;embed-container&quot;&gt;
  &lt;iframe src=&quot;https://www.youtube.com/embed/FZWvgsRre5o&quot; width=&quot;800&quot; height=&quot;600&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I then did pretty much the same thing on my other gbs-control, the one with YPbPr outputs:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4594.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here they are, back in their place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-vga-audio/IMG_4635.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;I’m super happy with this mod! Since the GBS board leaves pin 12 and 15 disconnected, it’s easy to tap into them and take advantage of this cool feature of Jeff Chen’s VGA dongles. In his documentation, Jeff warns that the audio signal may be affected sometimes depending on the video signal passing through, but so far I haven’t noticed buzzing or anything.&lt;/p&gt;

&lt;p&gt;It’s really convenient to be able to connect a single VGA cable from my consoles to the scalers. Now I just need to VGA-ify the rest of my consoles!&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="gbs-control" /><summary type="html">In my recent post about my build of the SNES2VGA dongle, I mentioned how the dongle exposes the stereo audio signal in two ways: from the headphone jack, as well as via two unused pins on the VGA port, which I’m dubbing VGA audio. In this post, I’ll share how I modified my two gbs-controls to extract these audio signals from the DB15 port.</summary></entry><entry><title type="html">SNES2VGA</title><link href="https://amaiorano.io/2024/02/05/snes2vga.html" rel="alternate" type="text/html" title="SNES2VGA" /><published>2024-02-05T00:00:00+00:00</published><updated>2024-02-05T00:00:00+00:00</updated><id>https://amaiorano.io/2024/02/05/snes2vga</id><content type="html" xml:base="https://amaiorano.io/2024/02/05/snes2vga.html">&lt;p&gt;A while ago, I made a &lt;a href=&quot;/2022/09/29/multiout-custom-cable-take-2.html&quot;&gt;custom cable&lt;/a&gt; with a SNES/N64-style multiout connector on one end, and on the other end, a VGA connector to carry the video signal, along with two RCA connectors to carry the audio signal. I use this cable to connect my SNES or N64 to my gbs-control scaler, and although it mostly works, I’ve had a few connection issues recently. I eventually stumbled upon the &lt;a href=&quot;https://github.com/jeffqchen/SNES2VGA&quot;&gt;SNES2VGA&lt;/a&gt; project by &lt;a href=&quot;https://github.com/jeffqchen&quot;&gt;Jeff Chen&lt;/a&gt;, which is a much better solution, and in this post, I’ll go over how I built one.&lt;/p&gt;

&lt;p&gt;The SNES2VGA is a dongle that adapts the SNES/N64 multiout to a VGA-style female connector. This allows one to use a standard VGA cable to connect the console to the video input medium (e.g. scaler). The dongle also includes a female headphone jack so that a standard headphone wire can be used to connect the audio signal. Alternatively, the dongle also passes audio through two typically unused pins on the VGA connector, allowing only the VGA cable to be used alone if the receiving end can support it.&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;p&gt;Here are the parts I used to make this dongle (prices converted to USD). (Check out the &lt;a href=&quot;https://github.com/jeffqchen/SNES2VGA?tab=readme-ov-file#parts&quot;&gt;official BOM&lt;/a&gt; for links):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2 PCBs
    &lt;ul&gt;
      &lt;li&gt;Main - 3x for $5.60 from OSHPark&lt;/li&gt;
      &lt;li&gt;Sub - 3x for $1.10 from OSHPark&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Multiout plug - 2x for $6.70 from AliExpress&lt;/li&gt;
  &lt;li&gt;Female VGA port - 10x for $3.84 from AliExpress&lt;/li&gt;
  &lt;li&gt;Headphone jack - 5x for $2.43 from AliExpress&lt;/li&gt;
  &lt;li&gt;3D-printed shell: top and bottom - printed with my Prusa&lt;/li&gt;
  &lt;li&gt;1x M3x20mm screw and nut - $0.03 each from a 500 piece kit I bought from Amazon&lt;/li&gt;
  &lt;li&gt;SMD components (common)
    &lt;ul&gt;
      &lt;li&gt;2x 0603 10uF 6.3V caps - $0.02 each from a kit from Ali Express&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;SMD components for NTSC configuration + CSYNC
    &lt;ul&gt;
      &lt;li&gt;3x 1206 220uF 6.3V caps - $0.50 each from a kit from AliExpress&lt;/li&gt;
      &lt;li&gt;1x 0603 470 Ohm resistor - $0.003 each from a kit from AliExpress&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4474.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For a single dongle, the total cost is about $8 each, not counting the 3D-printing cost.&lt;/p&gt;

&lt;p&gt;Note that for the SMD components, what you need depends on whether you’re building for a NTSC or PAL system, as well as what type of sync signal you intend to use. Definitely check out the &lt;a href=&quot;https://github.com/jeffqchen/SNES2VGA?tab=readme-ov-file#ntsc-configuration&quot;&gt;official BOM&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;h3 id=&quot;pcbs&quot;&gt;PCBs&lt;/h3&gt;

&lt;p&gt;First, I used some flush cutters to cut the little spacers off the edges of the PCBs. This is important as the fit within the 3D-printed shell is very tight:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4475.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4476.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4477.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the castellated edges of the sub PCB to the main one. I used some Kapton tape to help hold the sub PCB down:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4478.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4479.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I added flux to help the solder flow:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4480.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4481.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then carefully soldered each castellated edge:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4483.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4484.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The PCB should be well aligned on all sides:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4486.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;multiout-connector&quot;&gt;Multiout connector&lt;/h3&gt;

&lt;p&gt;Next up was soldering the multiout connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4487.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First, I bent the pins down towards each other using the edge of a table:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4488.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4491.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I wedged the PCB into the connector, making sure the notched side of the connector is oriented towards the “Top” of the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4493.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before soldering, I inserted the PCB and connector into the top shell to make sure everything was perfectly aligned:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4494.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4495.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;While in the shell, I soldered the exposed pins to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4496.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With that side done, I removed the PCB from the shell, and soldered the pins on the other side:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4499.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;smd-components&quot;&gt;SMD components&lt;/h3&gt;

&lt;p&gt;Next, I soldered the three 220uF capacitors to C3, C4, and C5. These coupling caps filter out any DC signal so that only the AC color signal (RGB) passes through:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4500.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4502.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the two 10uF capacitors to C4 and C5. These connect the left and right audio signals to VGA output pins 12 and 15 respectively. These DC-decoupling caps protect the equipment on the other end if they’re incompatible with these signals:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4505.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4506.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4507.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I decided to use the CSYNC signal for sync, I soldered a 470 ohm resistor to R1. This resistor attenuates the TTL CSYNC signal to what most input devices expect:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4510.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that instead of CSYNC, you can also either enable sync on composite (CVBS) or on luma by soldering one of the pads to the center JP1 pad in the picture above, along with shorting J2.&lt;/p&gt;

&lt;h3 id=&quot;vga-connector-and-headphone-jack&quot;&gt;VGA connector and headphone jack&lt;/h3&gt;

&lt;p&gt;Next up was soldering the VGA connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4511.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4512.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4513.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4514.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then the headphone jack:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4515.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4516.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4517.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4518.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I had almost forgotten to solder in the VGA ground anchors:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4519.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4520.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;shell&quot;&gt;Shell&lt;/h3&gt;

&lt;p&gt;Finally, it was time to put it all together into the shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4528.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4529.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4530.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4531.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Fitting the top was a little challenging, as there isn’t much room in the shell, but eventually it all came together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4532.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4534.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I popped in the nut:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4535.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4536.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then pushed the screw through the other side, and tightened it up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4539.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4540.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4542.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;

&lt;p&gt;The dongle inserted easily into the back of the SNES:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4545.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4546.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I connected a standard VGA cable, along with a headphone to RCA splitter:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4547.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the other end of the VGA cable connected to my gbs-control, and audio directly to my TV, everything worked perfectly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4549.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The video quality is at least as good as it was with my custom cable, although probably better:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4551.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;3d-printing&quot;&gt;3D Printing&lt;/h2&gt;

&lt;p&gt;Before ending this post, I wanted to share my experience 3D printing the shell. I tried three different ways to print them, each with its advantages and disadvantages.&lt;/p&gt;

&lt;p&gt;Officially, Jeff &lt;a href=&quot;https://github.com/jeffqchen/SNES2VGA?tab=readme-ov-file#printing-the-shell&quot;&gt;recommends printing the top and bottom shell with the split face facing downwards&lt;/a&gt;, with full supports enabled. I tried this first:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4460.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Removing the supports took a long time:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4461.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After removing supports, the inside wasn’t great:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4462.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But the outside was perfect:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4463.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I tried printing with the outside faces facing downwards:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4457.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There were a lot less supports, and they were easier to remove:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4458.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m missing a pic of the inside, but as expected, printing this way made the inside perfect. However, the outside looked less good:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4464.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, after discussing with some folks in the RetroRGB Discord (thanks &lt;em&gt;SeeThruHead&lt;/em&gt; and &lt;em&gt;cray.io&lt;/em&gt;), I tried placing them on one of the diagonal faces with minimal tree supports:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4469.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The supports came right off:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4470.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The result was pretty good, and is what I used in this post:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4471.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes2vga/IMG_4473.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although this last option was very easy to clean up, and looked pretty good, printing at an angle did create some minor distortions that may have made fitting the assembled PCBs inside a little more challenging. Next time, I would try this again, but instead of using 0.3 mm layer heights as I did, I would try 0.2 mm or 0.1 mm.&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;Overall, I think this project is really great! Jeff’s design is very well done: it’s both compact and versatile, supporting NTSC and PAL, as well as different sync methods. I also love that the audio signal is passed through the VGA cable, which is something I intend to take advantage of (stay tuned for a future post on this!).&lt;/p&gt;

&lt;p&gt;SNES2VGA is actually part of a larger series of &lt;a href=&quot;https://github.com/jeffqchen/Console-VGA-Dongle-Series&quot;&gt;Console VGA Dongles&lt;/a&gt; that Jeff has designed. Personally, I think going the route of using VGA for all my old consoles makes a lot of sense because VGA cables are cheap, and many scalers support it, and there are some pretty cool VGA switches out there, like the Extron MVX ones.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="SNES" /><summary type="html">A while ago, I made a custom cable with a SNES/N64-style multiout connector on one end, and on the other end, a VGA connector to carry the video signal, along with two RCA connectors to carry the audio signal. I use this cable to connect my SNES or N64 to my gbs-control scaler, and although it mostly works, I’ve had a few connection issues recently. I eventually stumbled upon the SNES2VGA project by Jeff Chen, which is a much better solution, and in this post, I’ll go over how I built one.</summary></entry><entry><title type="html">SNES 2-Chip RGB Filter Mod: SNS-CPU-GPM and SNS-CPU-RGB</title><link href="https://amaiorano.io/2024/01/23/snes-2-chip-rgb-filter-gpm-and-rgb.html" rel="alternate" type="text/html" title="SNES 2-Chip RGB Filter Mod: SNS-CPU-GPM and SNS-CPU-RGB" /><published>2024-01-23T00:00:00+00:00</published><updated>2024-01-23T00:00:00+00:00</updated><id>https://amaiorano.io/2024/01/23/snes-2-chip-rgb-filter-gpm-and-rgb</id><content type="html" xml:base="https://amaiorano.io/2024/01/23/snes-2-chip-rgb-filter-gpm-and-rgb.html">&lt;p&gt;A while back, I posted about how I &lt;a href=&quot;/2022/10/14/snes-2-chip-rgb-filter-mod.html&quot;&gt;modded my 2-chip SNES&lt;/a&gt;, model &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU-01&lt;/code&gt;, to improve the video output quality using &lt;a href=&quot;https://www.aussiearcade.com/topic/90003-snes-sfc-shvc-cpu-001-2-chip-rgb-filter-mod-video-fix/&quot;&gt;Buttersoft’s filter board&lt;/a&gt;, then later posted how user &lt;a href=&quot;/2023/03/07/snes-2-chip-rgb-filter-rgb-02.html&quot;&gt;&lt;em&gt;axmcxx&lt;/em&gt; performed a similar mod&lt;/a&gt; on his &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-RGB-02&lt;/code&gt;. Well, another user on the &lt;a href=&quot;https://consolemods.org/wiki/Main_Page&quot;&gt;ConsoleMods&lt;/a&gt; Discord named &lt;em&gt;Toxic_Tripod0&lt;/em&gt; reached out after modding various &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-GPM-01/02&lt;/code&gt; models, and graciously shared his pics and steps with me so that I can share it with the community on my blog. He also performed this mod on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-RGB-01/02&lt;/code&gt; models, and we’ll go over some of the improvements he made for these.&lt;/p&gt;

&lt;h2 id=&quot;sns-cpu-gpm-0102&quot;&gt;SNS-CPU-GPM-01/02&lt;/h2&gt;

&lt;h3 id=&quot;parts&quot;&gt;Parts&lt;/h3&gt;

&lt;p&gt;The list of parts is about the same as for the &lt;a href=&quot;/2022/10/14/snes-2-chip-rgb-filter-mod.html#parts&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU-01&lt;/code&gt;&lt;/a&gt;, with these differences/extras:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cap Kit - $4.95 on &lt;a href=&quot;https://console5.com/store/snes-cap-kit-non-shvc-models.html&quot;&gt;Console5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;35V In 5V Out 2A linear voltage regulator - ~$1.10 each from Mouser&lt;/li&gt;
  &lt;li&gt;470uF 6.3V electrolytic capacitor - included in the Console5 cap kit, or $1.21 for 10 on AliExpress&lt;/li&gt;
  &lt;li&gt;1x 22uF X5R 0805 ceramic caps - $2.90 for 100 on AliExpress&lt;/li&gt;
  &lt;li&gt;11x 10uf X7R 0805 ceramic caps (instead of 8x) - $1.80 for 100 on AliExpress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that the voltage regulator is difficult to find as they are no longer in production. Look on Mouser, Digikey, eBay, or AliExpress, and make sure it’s rated for 2A - most are 0.5A or 1A, and also rated for 35V input - most are 6.5V. The higher current rating means it runs cooler.&lt;/p&gt;

&lt;h3 id=&quot;the-build&quot;&gt;The Build&lt;/h3&gt;

&lt;p&gt;Toxic_Tripod0 took apart his SNES, and then recapped it using a capacitor kit from Console5. He recommends this, especially after seeing that upon removal, most caps had leaked underneath. Leaking capacitors indicates that they are no longer working optimally, which not only affect their performance, but can erode and cause damage to the main board. Unfortunately, I don’t have any pics of the recap, but Console5 provides excellent documentation and images to follow.&lt;/p&gt;

&lt;p&gt;Next, he followed the &lt;a href=&quot;(/2022/10/14/snes-2-chip-rgb-filter-mod.html#the-build)&quot;&gt;steps on my first post&lt;/a&gt; on how to populate the filter board PCB. As with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU-01&lt;/code&gt;, he removed and transferred the 3 transistors - this time at locations Q3, Q7, and Q5 - to the PCB, and wired them up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/gpm_mainboard_rgb_wiring.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, he stacked the eleven 10uF ceramic caps on top of the existing ones at these locations (he actually recommends replacing them entirely rather than stacking):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/gpm_mainboard_filter_caps.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the picture above, we can also see that the 5V supply for the PCB is connected to the right-hand side of C83, while the board’s ground is connected to the top of C91.&lt;/p&gt;

&lt;p&gt;Here is where we diverge from the previous posts. The original voltage regular is known to produce enough noise or ripple that it can result in a single thick white vertical line across the screen. To address this, Toxic_Tripod0 replaced the regulator with a new one:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/voltage_reg.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finding a new regulator can be difficult, so another option, &lt;a href=&quot;https://www.retrorgb.com/snesverticalline.html&quot;&gt;as described on RetroRGB&lt;/a&gt;, is to add a 470uF electrolytic capacitor between the 5V and GND pins of the regulator, and to replace the 1uF cap next to it with a 22uF one. Toxic_Tripod0 had already replaced the regulator, so doing this mod was not really necessary, but since the Console5 cap kit came with the 470uF cap, he went ahead and did it anyway:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/gpm_mainboard_voltage_reg_filter.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that even if the SNES does not display the thick white line, Toxic_Tripod0 found that doing this mod helped to dim the faint vertical lines (“jailbars”) that he was seeing.&lt;/p&gt;

&lt;p&gt;Finally, he lifted pin 27 on PPU2, as this has the greatest impact on reducing jailbars:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/gpm_ppu2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that Toxic_Tripod0 did not lift pin 3 on PPU2 because he did not notice any diagonal lines, as is common on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-RGB&lt;/code&gt; models. Lifting pin 3 results in the composite and s-video signals losing their color signal, so it’s better if it can be avoided.&lt;/p&gt;

&lt;p&gt;Here’s a complete picture of all the mods made to the underside of the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/gpm_mainboard_full.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;sns-cpu-rgb-0102&quot;&gt;SNS-CPU-RGB-01/02&lt;/h2&gt;

&lt;p&gt;As I’ve already covered &lt;a href=&quot;(/2023/03/07/snes-2-chip-rgb-filter-rgb-02.html)&quot;&gt;&lt;em&gt;axmcxx&lt;/em&gt;’s mod of a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-RGB-02&lt;/code&gt;&lt;/a&gt; before, we’ll focus on the differences here.&lt;/p&gt;

&lt;h3 id=&quot;parts-1&quot;&gt;Parts&lt;/h3&gt;

&lt;p&gt;As usual, get the parts listed for the &lt;a href=&quot;/2022/10/14/snes-2-chip-rgb-filter-mod.html#parts&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU-01&lt;/code&gt;&lt;/a&gt;, with these differences/extras:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Cap Kit - $4.95 on &lt;a href=&quot;https://console5.com/store/snes-cap-kit-non-shvc-models.html&quot;&gt;Console5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;3x extra transistors (2SA1037AKT146Q) - $0.30 each from &lt;a href=&quot;https://www.digikey.com/en/products/detail/rohm-semiconductor/2SA1037AKT146Q/650439&quot;&gt;Digikey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;35V In 5V Out 2A linear voltage regulator - ~$1.10 each from Mouser&lt;/li&gt;
  &lt;li&gt;470uF 6.3V electrolytic capacitor - included in the Console5 cap kit, or $1.21 for 10 on AliExpress&lt;/li&gt;
  &lt;li&gt;1x 22uF X5R 0805 ceramic caps - $2.90 for 100 on AliExpress&lt;/li&gt;
  &lt;li&gt;12x 10uf X7R 0805 ceramic caps (instead of 8x) - $1.80 for 100 on AliExpress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-GPM&lt;/code&gt; models, we need to leave the 3 transistors on the main board, which is why 3 more need to be bought.&lt;/p&gt;

&lt;h3 id=&quot;the-build-1&quot;&gt;The Build&lt;/h3&gt;

&lt;p&gt;Toxic_Tripod0 took apart his SNES and recapped it using the kit from Console5. Next, he followed the &lt;a href=&quot;(/2022/10/14/snes-2-chip-rgb-filter-mod.html#the-build)&quot;&gt;steps on my first post&lt;/a&gt; to populate the filter board PCB, this time installing the three new transistors on the PCB.&lt;/p&gt;

&lt;p&gt;On the main board, he lifted the ‘base’ leg of each of the three transistors at Q1, Q2, and Q3, and then wired up to the mod board as follows:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_mainboard_rgb_wiring.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s a pic from &lt;em&gt;axmccx&lt;/em&gt;’s install that shows more clearly how to lift the transistor legs, using some kapton tape to ensure it doesn’t short with the pad on the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/transistor_leg_lift.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, he replaced the twelve 10uF ceramic caps at the following locations:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_mainboard_filter_caps.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Above, we can also see that the 5V supply for the PCB is connected to the right of C63, while ground is connected to the left of C64. Also, the 10uF cap that sits between R9 and C10 is actually floating - there are no pads to solder to:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_floating_cap.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Toxic_Tripod0 used a wire to bridge the gap between the two locations, as the cap is too small. If you have a 1206 10uF capacitor, it might fit better. The reason for this capacitor is that on the schematics for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SHVC-CPU&lt;/code&gt; model, there is a filter cap between the green line at that point and ground, but this cap is missing from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-RGB&lt;/code&gt; models entirely.&lt;/p&gt;

&lt;p&gt;As with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-GPM&lt;/code&gt;, he then replaced the voltage regulator:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/voltage_reg.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the underside of the board, where the three pins of the voltage regulator are soldered, he added a 470uF electrolytic capacitor on the 5V and GND pins of the regulator, and also replaced the 1uF ceramic cap at C61 with a 22uF X5R:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_mainboard_voltage_reg_filter.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, he lifted pins 3 and 27 on PPU2, to fix diagonal lines and jailbars respectively:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_ppu2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s a complete picture of all the mods made to the underside of the main board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/snes-2-chip-rgb-filter-gpm-and-rgb/rgb_mainboard_full.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;I thought it might be useful to summarize all the mods made along with what they fix in a table:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Modification&lt;/th&gt;
      &lt;th&gt;What it fixes&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Recapping the top side of the board&lt;/td&gt;
      &lt;td&gt;Saves main board from damage, and may clean up signals.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Installing the filter board&lt;/td&gt;
      &lt;td&gt;Reduces blur and ghosting in video output.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Replacing/stacking 10uF ceramic caps&lt;/td&gt;
      &lt;td&gt;Further helps in reducing noise in video output.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Replacing voltage regulator&lt;/td&gt;
      &lt;td&gt;Helps reduce thick white line across the screen, as well as jailbars. Also runs less hot, so may prolong lifetime of caps underneath the regulator’s heatsink.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;470uF cap on voltage regulator&lt;/td&gt;
      &lt;td&gt;Can be used instead of replacing the original voltage regulator, though less effective.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Replacing 1uF cap with 22uF cap next to regulator&lt;/td&gt;
      &lt;td&gt;Further helps in reducing the thick white line across the screen.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Lifting pin 3 on PPU2&lt;/td&gt;
      &lt;td&gt;Reduces diagonal lines. NOTE: composite and s-video output lose their color signal.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Lifting pin 27 on PPU2&lt;/td&gt;
      &lt;td&gt;Most effective at reducing jailbars.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;Unfortunately, Toxic_Tripod0 did not take before/after pics, as he felt that it was difficult to see the differences this way. However, we can expect that the differences should be at least as good as what I’ve shown in the previous two posts, if not better considering the extra mods that were made. Toxic_Tripod0 told me that in person, the video output from his modded &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SNS-CPU-GPM&lt;/code&gt; looks identical to the 1-chip or the Jr.&lt;/p&gt;

&lt;p&gt;Anyway, our hope is that this post is useful to those looking to perform a similar mod. Huge thanks to Toxic_Tripod0 for sharing his pics and experience!&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="SNES" /><summary type="html">A while back, I posted about how I modded my 2-chip SNES, model SHVC-CPU-01, to improve the video output quality using Buttersoft’s filter board, then later posted how user axmcxx performed a similar mod on his SNS-CPU-RGB-02. Well, another user on the ConsoleMods Discord named Toxic_Tripod0 reached out after modding various SNS-CPU-GPM-01/02 models, and graciously shared his pics and steps with me so that I can share it with the community on my blog. He also performed this mod on SNS-CPU-RGB-01/02 models, and we’ll go over some of the improvements he made for these.</summary></entry><entry><title type="html">DaisyDrive64</title><link href="https://amaiorano.io/2024/01/06/daisydrive64.html" rel="alternate" type="text/html" title="DaisyDrive64" /><published>2024-01-06T00:00:00+00:00</published><updated>2024-01-06T00:00:00+00:00</updated><id>https://amaiorano.io/2024/01/06/daisydrive64</id><content type="html" xml:base="https://amaiorano.io/2024/01/06/daisydrive64.html">&lt;p&gt;&lt;a href=&quot;https://github.com/nopjne/DaisyDrive64&quot;&gt;DaisyDrive64&lt;/a&gt; is an N64 cartridge emulator by &lt;a href=&quot;https://github.com/nopjne&quot;&gt;nopjne&lt;/a&gt; (aka Scorp0rX0r on Discord), that uses a &lt;a href=&quot;https://www.electro-smith.com/daisy/daisy&quot;&gt;Daisy Seed board&lt;/a&gt;. It’s similar to the &lt;a href=&quot;https://github.com/kbeckmann/PicoCart64&quot;&gt;PicoCart64&lt;/a&gt;, except that by using a more powerful MCU with more memory, is able to offer a more complete flash cart experience, including support for loading all official N64 games from SD card, as well as saving savestates. In this blog post, I’ll go over how I built this very cool project.&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;DaisyDrive64 PCB - $10 (see below for how to get one)&lt;/li&gt;
  &lt;li&gt;Daisy Seed (65MB, comes with headers) - ~$25 + shipping from &lt;a href=&quot;https://www.electro-smith.com/daisy/daisy&quot;&gt;Electrosmith&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SD card slot - $2.42 + shipping from &lt;a href=&quot;https://www.mouser.com/ProductDetail/Molex/104031-0811?qs=udsGRKD4nA3Tvy7wqky%2BuA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD&quot;&gt;Mouser&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SD card (128 GB is good) - $7.50 from Amazon&lt;/li&gt;
  &lt;li&gt;N64 cartridge shell - $5 from &lt;a href=&quot;https://www.aliexpress.com/item/1005005335119610.html?spm=a2g0o.order_list.order_list_main.4.21ef1802XV8vXq&quot;&gt;AliExpress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3946.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At the time of this writing, the only way to get the PCB is to join the &lt;a href=&quot;https://discord.com/channels/989902502063398982/1035068924015947796&quot;&gt;Dubious Technology Discord server&lt;/a&gt;, and ask Scorp0rX0r for one.&lt;/p&gt;

&lt;p&gt;All told, this cost me around $70 USD, when taking shipping to Canada into account. For US residents, this would probably be closer to $60 USD.&lt;/p&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;h3 id=&quot;soldering-parts-to-the-pcb&quot;&gt;Soldering parts to the PCB&lt;/h3&gt;

&lt;p&gt;First, I soldered the SD card slot to the board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3948.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3951.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once I aligned the pins, I used some Kapton tape to hold it in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3952.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using flux, I then proceeded to solder the pins and anchor points to the pads on the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3954.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3956.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Initially, I didn’t realize that I had applied too much solder to the anchor point on the right side of the pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3958.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With this much solder there, I could not insert an SD card. I wicked away this blob, and touched up the outside of the anchor point with much less solder:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4048.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next up was soldering the Daisy Seed board to the PCB. First, I inserted the headers into the board and soldered them to the underside of the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3960.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3962.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3966.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I placed the Daisy Seed board onto the header pins and soldered them in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3969.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3970.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The last step is to bridge the Q1 connection underneath the PCB with a bit of wire:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3993.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3994.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This connection was originally designed for a mosfet to protect against the N64 sinking current from the Seed’s USB connection; however, it isn’t necessary as the Seed has its own circuitry to prevent this issue, so we simply bridge the connection as shown above. Note that sinking current through the GPIO pins is still an issue when the firmware is halted, and therefore it’s recommended to take the cart out when flashing firmware through the USB port.&lt;/p&gt;

&lt;p&gt;And with that, the PCB soldering is done.&lt;/p&gt;

&lt;h3 id=&quot;flashing-the-daisy-seeds-firmware&quot;&gt;Flashing the Daisy Seed’s firmware&lt;/h3&gt;

&lt;p&gt;With the hardware bit all done, it was time to flash the Daisy Seed with the firmware that Scorp0rX0r developed. Ideally, we’d follow the &lt;a href=&quot;https://github.com/nopjne/DaisyDrive64&quot;&gt;build steps on the GitHub page&lt;/a&gt; to build the very latest firmware and related software, or download the latest build from the &lt;a href=&quot;https://github.com/nopjne/DaisyDrive64/releases/tag/93e8aad6&quot;&gt;releases page&lt;/a&gt;. However, the version on the GitHub repo lags behind the version Scorp0rX0r makes available on Discord.&lt;/p&gt;

&lt;p&gt;At the time of this writing, the latest GitHub release is a build from Jan 5 2023. On Discord, Scorp0rX0r has made a more recent &lt;a href=&quot;https://discord.com/channels/989902502063398982/1035068924015947796/1174149954822996008&quot;&gt;Nov 11 2023 build available&lt;/a&gt;, which, among other things, adds full support for FlashRam and SRAM savestates. I downloaded this file, DaisyDrive64_111423.zip, and extracted the two files in there:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;DaisyDrive64_data.bin&lt;/li&gt;
  &lt;li&gt;DaisyDrive64_fw.bin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To flash these files, I connected the Daisy Seed to my PC using a micro-USB to USB-A cable &lt;em&gt;with data pins connected&lt;/em&gt;. Note that some USB cables are only used for charging, and are missing the data pins. When data pins are connected in the cable, Windows will play the “device connected” chime, and display the device in the Device Manager.&lt;/p&gt;

&lt;p&gt;When I connected the Seed to my Windows machine, the board was recognized right away. However, when I put the Seed into DFU mode by holding the Boot button, then pressing and releasing the Reset button, the device now showed up as unrecognized in Device Manager:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3975.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This meant that I needed to install the driver for it. To do this, I downloaded &lt;a href=&quot;https://zadig.akeo.ie/&quot;&gt;Zadig&lt;/a&gt;, and with the Seed in DFU mode, I selected “DFU in FS Mode” from the pull-down (this is the same name as seen in the Device Manager), and pressed “Install Driver”:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3977.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once installed, Device Manager no longer showed the yellow exclamation icon.&lt;/p&gt;

&lt;p&gt;With the drivers properly installed, it was time to flash the two files I downloaded earlier using the &lt;a href=&quot;https://electro-smith.github.io/Programmer/&quot;&gt;browser-based Programmer&lt;/a&gt;. Here are the steps to do so:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Put the Seed into DFU mode by holding the Boot button, and pressing and releasing the Reset button.&lt;/li&gt;
  &lt;li&gt;From the Programmer, click “Connect” and select “DFU in FS Mode”.&lt;/li&gt;
  &lt;li&gt;Scroll down, click on “Advanced…”, which should reveal a “Flash Bootloader Image” button. Click on it. This will go through a few steps, and then eventually print “Done!”.&lt;/li&gt;
  &lt;li&gt;Get the Seed out of DFU mode by disconnecting the USB cable, and reconnecting it.&lt;/li&gt;
  &lt;li&gt;From the Programmer, click “Connect” and select “Daisy boot loader”.&lt;/li&gt;
  &lt;li&gt;Click on “Choose File” and select the file “DaisyDrive64_data.bin”.&lt;/li&gt;
  &lt;li&gt;Click on “Program”.&lt;/li&gt;
  &lt;li&gt;Put the Daisy back into DFU mode again, “Connect” to it, click “Choose File” and this time, select the file “DaisyDrive64_fw.bin”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With that, the Daisy Seed was now fully flashed and ready to go.&lt;/p&gt;

&lt;h3 id=&quot;preparing-the-sd-card&quot;&gt;Preparing the SD card&lt;/h3&gt;

&lt;p&gt;With the Seed’s firmware flashed, I now needed to setup the SD card with the right files and folders:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;OS64P.z64 –&amp;gt; This is a modified version of the &lt;a href=&quot;https://github.com/ariahiro64/altra64&quot;&gt;Altra64&lt;/a&gt; menu rom. This goes at the root of the SD card. As with the firmware, the latest version is not available on GitHub, but can be downloaded from &lt;a href=&quot;https://discord.com/channels/989902502063398982/1035068924015947796/1119884418459390043&quot;&gt;Discord from the June 17 2023 build&lt;/a&gt;. Only copy the “OS64P.z64” from this zip file.&lt;/li&gt;
  &lt;li&gt;DD64EC/ –&amp;gt; Create a folder named “DD64EC” at the root of the SD card.&lt;/li&gt;
  &lt;li&gt;DD64EC/CFG/ –&amp;gt; And within the “DD64EC” folder, create another folder named “CFG”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last step, of course, is to copy some N64 roms to the SD card. These can be placed anywhere, such as in the root, or into folders. I copied some roms into a folder named “roms”. Note that the rom files must not be zipped.&lt;/p&gt;

&lt;h2 id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;

&lt;p&gt;At this point, I could finally test everything. I inserted the SD card into the slot, and carefully inserted the PCB into my N64:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3997.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_3998.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4001.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Success! Actually, it was not an immediate success. Initially, my SD card was not being read properly, and I experienced one of the coolest features of the DaisyDrive64: when it detects an error, it plays an error message through the audio output of the N64! In my case, “SD card initialization failed” came out of my TV speakers over and over. After reflowing the solder joints on the SD card connector, the message was gone, and everything worked.&lt;/p&gt;

&lt;h2 id=&quot;cart-shell&quot;&gt;Cart Shell&lt;/h2&gt;

&lt;p&gt;With the PCB all working, the last thing I did was place it into an N64 cartridge shell. Unfortunately, this didn’t go as smoothly as I would have liked, but it still turned out alright.&lt;/p&gt;

&lt;p&gt;First, I opened up the shell and got rid of the metal RF shielding, which can’t be used because the PCB with the Daisy Seed soldered onto it doesn’t fit otherwise:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4004.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, getting rid of the shield is not that simple because apart from RF shielding, it also serves another purpose: there are 4 slots at the base of each side of the shell that the shield fills in:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4006.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These slots need to be filled in, otherwise we risk breaking the N64’s cart slot. To do this, I filled in the 4 slots on each side of the shell with epoxy:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4007.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4008.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4009.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I let it cure for 24 hours:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4013.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although it was fully cured, my epoxy remained a little soft and tacky. This isn’t great, but it seems to work fine. When I discussed this with Scorp0rX0r, he said he used a UV-light curing epoxy that, once cured, was hard as plastic. I would definitely recommend going this route instead.&lt;/p&gt;

&lt;p&gt;Finally, even with the RF shield removed, the PCB still doesn’t quite fit in the shell because of the debug header pins on top of the Seed:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4014.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The simplest solution is to cut them off with flush cutters, or to bend them to the sides. I opted to use my heat gun to remove them, being careful to cover up the buttons with Kapton tape so that they wouldn’t melt, and being careful not to accidentally remove the small pull-up resistor right next to the header:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4024.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4025.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4027.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After cleaning up the solder with some wick:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4030.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It’s worth mentioning that Scorp0rX0r has a work-in-progress design where the Seed is soldered flush to the PCB, which adds the necessary clearance for the debug header, and would avoid the need to remove or modify it as I did above. This PCB is not yet available, but it would certainly help make the install a easier.&lt;/p&gt;

&lt;p&gt;Finally, I was able to put it all together in the shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4034.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4035.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is when I found out that the screws AliExpress sent me were too large for the screw posts:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4037.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There wasn’t much I could do about that one, but for the second one, I used my drill to make the hole larger, and managed to screw in at least one side of the PCB (on the left):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4041.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The screws for the outside of the case also didn’t fit, so I ended up using some wood screws I had lying around:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4042.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Despite the issues with the screws, I think it looks pretty good:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4043.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And here it is looking great in the N64:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/daisy-drive-64/IMG_4044.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;This is a really awesome project. I’ve been playing a bunch of N64 games over the past couple of weeks, and the DaisyDrive64 has been working really well. For a project that cost me around $70 USD (including shipping and the SD card), I’d say it’s well worth it for a fully functioning flash cart.&lt;/p&gt;

&lt;p&gt;It’s worth noting that the DaisyDrive64 can also be used for N64 game development, and actually supports advanced debugging features if wired up correctly. For those interested in this, I would recommend hitting up the &lt;a href=&quot;https://discord.com/channels/989902502063398982/1035068924015947796&quot;&gt;Discord server&lt;/a&gt;. It’s a nice community, and Scorp0rX0r is always ready to help.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="Mods" /><category term="N64" /><summary type="html">DaisyDrive64 is an N64 cartridge emulator by nopjne (aka Scorp0rX0r on Discord), that uses a Daisy Seed board. It’s similar to the PicoCart64, except that by using a more powerful MCU with more memory, is able to offer a more complete flash cart experience, including support for loading all official N64 games from SD card, as well as saving savestates. In this blog post, I’ll go over how I built this very cool project.</summary></entry><entry><title type="html">SFC Controller 8BitDo Mod Kit</title><link href="https://amaiorano.io/2024/01/01/sfc-controller-8bitdo-mod-kit.html" rel="alternate" type="text/html" title="SFC Controller 8BitDo Mod Kit" /><published>2024-01-01T00:00:00+00:00</published><updated>2024-01-01T00:00:00+00:00</updated><id>https://amaiorano.io/2024/01/01/sfc-controller-8bitdo-mod-kit</id><content type="html" xml:base="https://amaiorano.io/2024/01/01/sfc-controller-8bitdo-mod-kit.html">&lt;p&gt;After &lt;a href=&quot;/2023/11/06/blueretro-aio.html&quot;&gt;BlueRetro-fying&lt;/a&gt; most of my consoles, I realized that I much prefer using original controllers. 8BitDo makes some really great “mod kits” that are PCB replacements for controllers with Bluetooth support and rechargeable batteries. In this post, I’ll go over how I installed &lt;a href=&quot;https://shop.8bitdo.com/products/8bitdo-mod-kit-for-original-snes-sfc-controller-old-edition&quot;&gt;their mod kit for SNES/SFC controllers&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;p&gt;I had originally wanted four SNES controllers, but it turns out that SNES controllers are actually pretty expensive at around $20 each on Marketplace or eBay. Instead, I opted for Super Famicom (SFC) controllers, which are generally less expensive. SFC controllers are slightly different from their SNES counterpart in a couple of ways: the buttons are colored differently, all four buttons are convex while Y and X are concave on the SNES controller, and the cable is significantly shorter. The differences in button color and shape don’t bother me at all, and since I’m going to be replacing the PCB with a Bluetooth one, the cable length doesn’t matter.&lt;/p&gt;

&lt;p&gt;I bought a single lot of 6 SFC controllers on eBay that cost me a total of $42.56 USD, or around $7 each:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3513.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also bought four mod kits from 8BitDo for $100 USD in total, or $25 each:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3559.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;cleaning&quot;&gt;Cleaning&lt;/h2&gt;

&lt;p&gt;The SFC controllers were pretty dirty and yellowed, so they needed cleaning and retrobriting. I started with taking them all apart, then giving everything a good clean:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3515.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3518.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3521.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3522.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3523.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The button membranes were particularly gross:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3551.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3552.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3553.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3554.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The dpad and buttons were also pretty grimy:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3555.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3556.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3557.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The screws and shoulder button posts weren’t too bad, so I just gave them a quick bath in IPA and scrubbed them with a toothbrush:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3558.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;retrobring---vapor-method&quot;&gt;Retrobring - “Vapor Method”&lt;/h2&gt;

&lt;p&gt;As mentioned earlier, the controllers were pretty yellowed:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3517.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Instead of the usual retrobrite method of submerging the plastics in a hydrogen peroxide solution, I decided to try out a new method &lt;a href=&quot;https://twitter.com/A3rgan/status/1539964670039076865&quot;&gt;shared by Simon Lock&lt;/a&gt; that has come to be known as the “vapor method”. This method consists of pouring a much smaller amount of the solution in the bottom of a container, placing plastics onto a stand within the container, then sealing the container. As usual, UV light from a lamp or the sun is required, but the key is that we use a lot less solution, and the plastics are not in direct contact with the hydrogen peroxide solution.&lt;/p&gt;

&lt;p&gt;I used 35% food grade hydrogen peroxide, which I diluted down to about 12% (2 parts water, 1 part peroxide). I used about half a bottle:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3525.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After pouring the solution in the bottom of my transparent container, I placed the controller parts onto some baskets within:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3526.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then sealed the container and placed my 50W UV lamp on top:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3527.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3528.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3529.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The results were great. Here are some before/after shots.&lt;/p&gt;

&lt;p&gt;Before:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3530.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3533.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3534.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3535.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the pic above, you can see how some pieces were particularly stubborn. So I placed these last pieces back in for about two more days:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3536.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Getting better:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3537.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The last few very stubborn pieces:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3538.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A day later:
&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3548.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The final result:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3549.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Without a doubt, the vapor method is definitely the way to go. Because I wasn’t submerging the plastics, I wasn’t worried about leaving the parts in there for a few days until all yellowing was gone.&lt;/p&gt;

&lt;h2 id=&quot;putting-it-all-together&quot;&gt;Putting it all together&lt;/h2&gt;

&lt;p&gt;With everything cleaned and retrobrited, all I had left to do was to put the controllers back together using the 8BitDo mod kits.&lt;/p&gt;

&lt;p&gt;This is what the PCB looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3565.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3566.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First, I attached the charging port ribbon cable to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3568.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3569.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I put back the buttons and membranes into the front face of the controller:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3570.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3572.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then installed the PCB, being careful to route the charging port where the controller cable normally goes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3575.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I put back the shoulder buttons, and closed it all up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3576.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3577.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3578.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3579.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Rinse and repeat for the other three controllers:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3581.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also put together the extra two controllers with original cables, which may come in handy at some point:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/sfc-controller-8bitdo-mod-kit/IMG_3582.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;I am definitely a fan of 8BitDo’s mod kits. Nothing beats the feel of the original controllers for me, and 8BitDo’s PCBs are perfectly shaped so as not to change that feel in any way. The only downside I can think of is the fact that the charge port is proprietary, so you definitely don’t want to lose the charging cables they include with the kit. But I personally don’t think this is a big deal.&lt;/p&gt;

&lt;p&gt;I’m also super happy with how well the controllers cleaned up and retrobrited. They look practically new! The vapor method is great, and will be my go-to method from now on. Based on this experience, I also added &lt;a href=&quot;https://consolemods.org/wiki/Retrobrite#Simon_Lock&apos;s_Vapor_Method_Recipe&quot;&gt;this section to the ConsoleMods wiki&lt;/a&gt; about the vapor method.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="Mods" /><category term="SNES" /><summary type="html">After BlueRetro-fying most of my consoles, I realized that I much prefer using original controllers. 8BitDo makes some really great “mod kits” that are PCB replacements for controllers with Bluetooth support and rechargeable batteries. In this post, I’ll go over how I installed their mod kit for SNES/SFC controllers.</summary></entry><entry><title type="html">gbs-control - Take 2</title><link href="https://amaiorano.io/2023/11/07/gbs-control-take-2.html" rel="alternate" type="text/html" title="gbs-control - Take 2" /><published>2023-11-07T00:00:00+00:00</published><updated>2023-11-07T00:00:00+00:00</updated><id>https://amaiorano.io/2023/11/07/gbs-control-take-2</id><content type="html" xml:base="https://amaiorano.io/2023/11/07/gbs-control-take-2.html">&lt;p&gt;A while ago, I &lt;a href=&quot;/2022/04/01/gbs-control.html&quot;&gt;wrote about&lt;/a&gt; how I built a &lt;a href=&quot;https://github.com/ramapcsx2/gbs-control&quot;&gt;gbs-control&lt;/a&gt; scaler. Although that post covers the basics, I mostly glossed over the details, expecting the reader to watch &lt;a href=&quot;https://youtu.be/1AVXhiTlmgo&quot;&gt;Voultar’s video&lt;/a&gt;. In this post, I’ll go over how I built a second gbs-control in a lot more detail, which should help anyone who wants to build one, and who prefers a web page to a video.&lt;/p&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;p&gt;As before, I ordered the parts I needed:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;GBS8200 board - V4.0 only (eBay $22 USD)&lt;/li&gt;
  &lt;li&gt;ESP8266 “NodeMCU” board (AliExpress $4 USD)&lt;/li&gt;
  &lt;li&gt;Si5351A Clock Breakout Board (AliExpress $4 USD)&lt;/li&gt;
  &lt;li&gt;0805 SMD 10uF caps (AliExpress $2 USD for 100 pcs)&lt;/li&gt;
  &lt;li&gt;VGA male to HDMI female converter (AliExpress $4.30 USD)&lt;/li&gt;
  &lt;li&gt;A good 5V 2A DC power adapter (Amazon $15 USD)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8423.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that I highly recommend getting a V4.0 GBS8200. Other &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/GBS-8200-Variants.html&quot;&gt;variants&lt;/a&gt;, like the V5.0, also work, but produce a noisy picture. Unfortunately, I know that this is true from experience. I built two gbs-controls, one with a V4 and one with a V5, and the latter produces such a noisy picture that I ordered a third V4 to replace it. In this build, I’ll be using the V4.&lt;/p&gt;

&lt;h3 id=&quot;gbs8200-prep&quot;&gt;GBS8200 Prep&lt;/h3&gt;

&lt;p&gt;The first thing we need to do is make some modifications to the GBS8200 board itself. We start by &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/RGB-Potentiometers.html&quot;&gt;removing the three RGB input potentiometers&lt;/a&gt;. These pots can be used to tweak the brightness of the RGB values coming in on the DB15 input. This step is technically not required, but even with the pots turned all the way down, they still apply a little resistance, making the video output slightly darker.&lt;/p&gt;

&lt;p&gt;These are the caps we want to remove:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8434.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using my desoldering gun, I desoldered the three legs of each pot underneath the board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8435.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8438.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used a piece of wire that I stripped and tinned, and then cut into three to bridge the connections where the pots were:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8439.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8441.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8443.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next step is to stack some 10uF capacitors on top of existing ones to add more capacitance for &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Power-supply-bypass-capacitors.html&quot;&gt;power supply bypassing&lt;/a&gt;, which can reduce some forms of visible noise:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8444.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We start with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C23&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8446.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Add flux and solder to both sides of the cap:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8447.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then stack one of the 0805 10uF caps on top, and touch each side with the soldering iron:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8448.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8450.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8451.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We do the same with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C41&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C42&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8454.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C48&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8456.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, we remove &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C11&lt;/code&gt;, which should help &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/GBS-8200-Variants.html#original-gbs-8220&quot;&gt;LDO oscillation problems&lt;/a&gt; with power supplies &amp;gt; 5V (though in this build, we really should only use a 5V power supply to avoid damaging the VGA to HDMI adapter):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8458.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8459.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As we’ll be mounting the ESP8266 to the edge of the GBS board, we need to remove these connectors at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;P5&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;P6&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;P8&lt;/code&gt;, which I did with my desoldering gun:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8460.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8463.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8464.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To allow the gbs-control to actually override the default GBS functionality, we need to &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Build-the-Hardware.html#basic-install&quot;&gt;bridge the programming port at P8&lt;/a&gt;. I did this by soldering a small wire between the two vias underneath the board. This ensures that it doesn’t get in the way of mounting the ESP8266 along that edge:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8465.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8466.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8467.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s it for the board prep.&lt;/p&gt;

&lt;h3 id=&quot;esp8266-programming-and-install&quot;&gt;ESP8266 Programming and Install&lt;/h3&gt;

&lt;p&gt;Now we tackle the brains of the operation: the ESP8266. This device basically overrides the built-in firmware of the GBS8200, providing many features such as a web-based GUI that you can control from your phone or computer. The gbs-control firmware is written by &lt;a href=&quot;https://github.com/ramapcsx2&quot;&gt;ramapcsx2 (Robert Neumann)&lt;/a&gt; and is open source and &lt;a href=&quot;https://github.com/ramapcsx2/gbs-control&quot;&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My ESP8266 came with pin headers installed, so first thing I did was desolder them:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8471.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8475.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then, I followed the detailed &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Software-Setup.html&quot;&gt;Software Setup&lt;/a&gt; steps to install the Arduino IDE, along with the ESP8266 support libraries, etc. Then I downloaded the &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Software-Setup.html#download-gbs-control-compile-and-upload&quot;&gt;gbs-control firmware&lt;/a&gt; and installed it onto the ESP8266 from my laptop:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8477.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8478.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point, while still connected to the PC, you should be able to test that the firmware is installed properly by searching for WiFi networks and looking for one named “gbscontrol”. You can connect to it, using the default password &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;qqqqqqqq&lt;/code&gt; (that’s 8 q’s), then opening  http://gbscontrol to access the control panel UI. If this works, you’re good! You can optionally configure the ESP8266 to &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Software-Setup.html#connecting-to-your-wifi-optional&quot;&gt;connect to your home WiFi&lt;/a&gt;, which I recommended, as it allows you to easily control the system without disconnecting from your home network every time.&lt;/p&gt;

&lt;p&gt;With the ESP8266 programmed, I proceeded to install it onto the GBS board using Voultar’s method - that is, installing it sideways along the edge of the board, lining up the GND vias:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8480.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I stripped back some wire and tinned it, then threaded it through both GND vias of the ESP8266 and GBS board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8481.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Holding the ESP8266 in place, I added more solder to the bit of wire between the two to make a strong connection, and to make it hold in place:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8483.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There is a second GND via on the board that also lines up with the ESP8266, so I did the same thing with that:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8485.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8487.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once both GNDs are connected, the ESP8266 shouldn’t move:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8490.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, we have a few connections to make between the ESP8266 and the GBS.&lt;/p&gt;

&lt;p&gt;First, I &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Build-the-Hardware.html#connect-debugpin&quot;&gt;connected the “Debug Pin”&lt;/a&gt; from the controller IC to “D6” on the ESP8266, which allows the gbs-control to enable automatic image positioning and timing adjustments:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8494.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8495.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Build-the-Hardware.html#basic-install&quot;&gt;connected the two I2C bus wires&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SCL&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;D1&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SDA&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;D2&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8497.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8498.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I connected a wire from the right side of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;D2&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Vin&lt;/code&gt;, which will supply 5V to the board once powered:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8499.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8503.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;clock-generator-install&quot;&gt;Clock Generator Install&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://ramapcsx2.github.io/gbs-control/Wiki/Si5351-Clock-Generator-install-notes.html&quot;&gt;Si5351 clock generator&lt;/a&gt; board is optional, but recommended to allow the gbs-control to output precise frequencies:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8504.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First, I stuck some kapton tape to the underside, making sure to keep the vias uncovered:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8505.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8506.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using hot glue, I then stuck that kapton-covered part onto the edge of the heat sink-covered TrueView chip:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8508.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8509.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8510.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now to connect the clock generator, I started by soldering a wire from pin &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;40&lt;/code&gt; of the TrueView to the center &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CLK0&lt;/code&gt; pad:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8511.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8512.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8513.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8513_2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I connected the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CLK2&lt;/code&gt; edge pad to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C41&lt;/code&gt; for the ground connection:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8515.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that the official instructions suggest connecting the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CLK2&lt;/code&gt; pad to ground sides of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C47&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C48&lt;/code&gt;; however, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C41&lt;/code&gt; is closer and works just as well.&lt;/p&gt;

&lt;p&gt;To power the clock generator, I soldered a wire from the positive side of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C41&lt;/code&gt; to the unlabelled capacitor near the edge:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8516.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, we need to connect two wires between the MTV230 chip and the TrueView chip: from pin &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;25&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SCL&lt;/code&gt;, and from pin &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;26&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SDA&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8517.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8524.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8525.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that the wires actually cross over each other:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8523.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point, I’m done with all the soldering on the GBS itself:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8526.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8527.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;vga-to-hdmi-adapter&quot;&gt;VGA to HDMI Adapter&lt;/h3&gt;

&lt;p&gt;The VGA to HDMI adapter that we got needs to be powered by 5V, and comes with a short micro-USB power cable for just that reason. Instead of hooking it up to an external source, we’ll modify the cable so that we can connect it directly to the GBS board. We do this by using the red and black power connector that comes with the board itself:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8529.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I hooked up the adapter to the VGA output port, then measured out the USB cable so that the other end lines up with the 2-pronged power jack:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8530.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I cut the cable there, stripped it back, then stripped and tinned the two wires inside:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8531.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used my multimeter to make sure I knew which wire was GND and which was 5V, then proceeded to solder the cable to GBS power connector (black is ground, red is 5V):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8534.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8535.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8536.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8537.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And with that, I can now easily power the adapter from the board itself:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8542.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;

&lt;p&gt;I hooked up my SNES to the gbs-control, and hooked up the HDMI output to my TV, and played some Super Metroid:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8544.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8545.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-2/IMG_8546.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The picture quality is really quite good!&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;Of course, my opinion on the gbs-control hasn’t changed since the first one I build. It’s an excellent scaler, especially for the price!&lt;/p&gt;

&lt;p&gt;If this post helps you to build one of your own, then please let me know!&lt;/p&gt;

&lt;p&gt;Also check out my posts about how I made gbs-control cases &lt;a href=&quot;/2023/03/14/gbs-control-case-hdmi.html&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;/2023/03/15/gbs-control-case-ypbpr.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="Mods" /><category term="gbs-control" /><summary type="html">A while ago, I wrote about how I built a gbs-control scaler. Although that post covers the basics, I mostly glossed over the details, expecting the reader to watch Voultar’s video. In this post, I’ll go over how I built a second gbs-control in a lot more detail, which should help anyone who wants to build one, and who prefers a web page to a video.</summary></entry><entry><title type="html">BlueRetro AIO</title><link href="https://amaiorano.io/2023/11/06/blueretro-aio.html" rel="alternate" type="text/html" title="BlueRetro AIO" /><published>2023-11-06T00:00:00+00:00</published><updated>2023-11-06T00:00:00+00:00</updated><id>https://amaiorano.io/2023/11/06/blueretro-aio</id><content type="html" xml:base="https://amaiorano.io/2023/11/06/blueretro-aio.html">&lt;p&gt;I love the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro&quot;&gt;BlueRetro&lt;/a&gt; project, and on this blog, I’ve shown how I’ve made multiple &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki#1---building-hardware-hw1&quot;&gt;DIY HW1&lt;/a&gt; adapters for &lt;a href=&quot;/tags/#BlueRetro&quot;&gt;different consoles&lt;/a&gt; by soldering wires to DB25 connectors, and wrapping them up in DB25 shells. In this blog post, I’m going to cover a different way to make these adapters using PCBs and 3D-printed shells designed by &lt;a href=&quot;https://github.com/pmgducati&quot;&gt;pmgducati&lt;/a&gt; known as &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units&quot;&gt;BlueRetro AIO Units&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;my-setup&quot;&gt;My Setup&lt;/h2&gt;

&lt;p&gt;Before getting into how I made these AIO units, I thought I’d share what my final setup looks like with them, so that you know where we’re headed. I currently have 6 BlueRetro AIO adapters, and one receiver (connected to the NES adapter in these pics):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/setup/IMG_3661.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/setup/IMG_3666.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also have an array of Bluetooth controllers as well:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/setup/IMG_3662.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When I want to play a different system, I simply disconnect and reconnect the receiver to that system’s adapter. It’s quick, and since I have only one receiver, I only have one device to configure and update.&lt;/p&gt;

&lt;p&gt;Alright, let’s get into the how I made these.&lt;/p&gt;

&lt;h2 id=&quot;making-blueretro-aio-units&quot;&gt;Making BlueRetro AIO Units&lt;/h2&gt;

&lt;p&gt;Making BlueRetro AIO units requires a few parts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PCB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the PCBs, I personally use &lt;a href=&quot;https://jlcpcb.com/&quot;&gt;JLCPCB&lt;/a&gt; because it’s cheaper for me than most other options. Simply download the &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/tree/main/Gerbers&quot;&gt;Gerber files&lt;/a&gt; for the system you need, and uploaded them to JLCPCB, sticking to default options (except board color). Note that the BlueRetro “receiver” - the part that holds the ESP32 devkit board - is called “Main_&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;date&amp;gt;&lt;/code&gt;.zip”. The file names for each console-specific PCB has the name of the console in it (e.g. “SNES_&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;date&amp;gt;&lt;/code&gt;.zip”).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3D-printed shell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the 3D-printed shells, the STL files can be &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/tree/main/STL&quot;&gt;downloaded from here&lt;/a&gt;. The way it works is that there are two parts, the top and the bottom. For the receiver, you’ll want to print &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/blob/main/STL/Blue%20Retro%20Main%20Housing%20Top.STL&quot;&gt;this top&lt;/a&gt; and &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/blob/main/STL/Blue%20Retro%20Main%20Housing%20Bottom.STL&quot;&gt;this bottom&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For each console adapter, select the top that’s specific to the console. The only difference here is that each one has a nice logo embedded into it (see the &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/blob/main/STL/Aux%20Top%20-%20Nintendo%20SNES.STL&quot;&gt;SNES one&lt;/a&gt;, for example). For the bottom part, you’ll need to choose from one of the “Aux Bottom - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;N&amp;gt;&lt;/code&gt; Player.STL” files, where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;N&amp;gt;&lt;/code&gt; is the number of controllers you intend to connect. This basically translates into how many holes the bottom case will have for the controller cables to pass through. You don’t have to match the number of ports on the target console; for instance, the N64 supports up to four controllers, but I decided to only connect two, as I don’t expect to play four player games. See this &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/blob/main/BOM%20-%203D%20Printed%20Parts.pdf&quot;&gt;BOM&lt;/a&gt; for what you’d typically want to print for each console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controller cables and other components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally, you’ll also need controller cables, and depending on the console, potentially some other components, such as through-hole level-shifter ICs. For controller cables, I normally buy extension cables from AliExpress that I can cut, keeping the console plug side intact. See this &lt;a href=&quot;https://github.com/pmgducati/Blue-Retro-AIO-Units/blob/main/BOM%20-%20Purchased%20Parts.pdf&quot;&gt;very detailed BOM&lt;/a&gt; for the parts you’ll need per console.&lt;/p&gt;

&lt;h2 id=&quot;the-builds&quot;&gt;The Builds&lt;/h2&gt;

&lt;h3 id=&quot;receiver&quot;&gt;Receiver&lt;/h3&gt;

&lt;p&gt;Let’s start with the receiver, which is the part that connects to each adapter.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;3D printed shell&lt;/li&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;ESP32-DEVKITC-32E (aka ESP32-WROOM-32E)&lt;/li&gt;
  &lt;li&gt;DB25 connector (female, 90 degrees)&lt;/li&gt;
  &lt;li&gt;2x 19 position pin sockets&lt;/li&gt;
  &lt;li&gt;Optional:
    &lt;ul&gt;
      &lt;li&gt;Blue LED (470nm 3.3V 1206)&lt;/li&gt;
      &lt;li&gt;84.5 ohm resistor (SMD 1206)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are the main parts:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9214.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Along with the 3D-printed shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9063.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And the optional LED and resistor:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_13348.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To save money, instead of buying two 19-pin sockets, I bought a bunch of 4-pin ones from AliExpress. Unfortunately, when inserting them into the PCB, I realized that they didn’t quite fit well together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9215.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So I ended up filing the edges of each one with some sandpaper until they fit well enough:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9217.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9218.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9220.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After inserting 4 of them on one side, the last one needed to be 3 pins wide, so I cut off the extra one with flush cutters:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9221.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9222.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I did the same for the other side, and to hold everything in place, I inserted the ESP32 board into them:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9224.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9223.jpg&quot; alt=&quot;&quot; /&gt;
(Note that the ESP32 board is actually inserted the wrong way in the pic above, as this was only temporary to solder in the sockets).&lt;/p&gt;

&lt;p&gt;I soldered the pins to the underside:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9234.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9235.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This worked out okay, but I would recommend just getting the 19-pin sockets instead.&lt;/p&gt;

&lt;p&gt;Next, I soldered the female DB25 connector to the PCB. Note that the AIO BOM suggests using a male connector for the receiver, and female ones for each console adapter. I went the opposite way, which is totally fine:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9236.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9237.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9238.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9239.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I removed the two screw posts from the DB25 connector. The 3D printed shells are made such that these posts should be removed, though the metal plate that is held by the screw posts is kept:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9241.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I placed the board into the shell, and closed it up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9243.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9244.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_9245.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At this point, we can stop. However, I got the optional LED and resistor, which are useful for showing the status of the BlueRetro receiver (e.g. it flashes in pairing mode). I soldered on the LED and the resistor to the underside of the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_13350.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_13363.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The LED shows through the hole in the 3D-printed cover:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_13359.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here it is in action:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/receiver/IMG_13364.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;n64&quot;&gt;N64&lt;/h3&gt;

&lt;p&gt;The N64 is probably the easiest adapter to build, so let’s start with that one.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;3D-printed shell&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;N64 extension cables (1, 2, or 4)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3324.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The N64 supports up to 4 controllers, but as I don’t expect to play 4 player games very often, I decided to only build a 2-player adapter.&lt;/p&gt;

&lt;p&gt;First, I undid my existing DIY adapter. If starting from scratch, you’d want to cut and strip the ends of the extension cables, and tin each end:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3326.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3328.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the two cables into the 2-player bottom shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3329.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then soldered the DB25 connector to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3330.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3331.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next up was wiring the cables to the PCB. I referred to the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#cable-schematic-15&quot;&gt;schematic&lt;/a&gt; I had printed before where I had identified which color wire each of the three pins mapped to:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3327.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my case, white is data, red is 3V3, and black in ground. So I soldered the three wires from the first controller to P1DATA, P13V3, and P1GND respectively. I then did the same for the second controller:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3334.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since I decided not to connect player 3 and player 4 cables, as per the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#assembly-instructions-26&quot;&gt;assembly instructions&lt;/a&gt;, I needed to connect P3DATA and P4DATA to 3V3. This is how the BlueRetro knows that these are not connected. I did this by soldering a short (pink) wire to P23V3 on one end, and the other end to both P3DATA and P4DATA:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3335.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the wiring done, it was time to put it all together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3336.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To avoid the wires being ripped off the PCB, I used a couple of small zip ties that I tied very tightly to the ends of the cables:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3337.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then threaded the cables out, positioned the PCB in the shell, and closed it all up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3338.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3339.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3340.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/n64/IMG_3343.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;gamecube&quot;&gt;GameCube&lt;/h3&gt;

&lt;p&gt;The GameCube adapter is about as easy as the N64 one, only with a few more wires to solder.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;3D-printed shell&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;GameCube extension cables (1, 2, or 4)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3631.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;First, I undid my existing adapter. If starting from scratch, you’d want to cut and strip the ends of the extension cables, and tin each end:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3634.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the two cables into the 2-player bottom shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3643.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the DB25 connector to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3636.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3639.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3642.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now for wiring the cables to the PCB. I referred to the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#cable-schematic-17&quot;&gt;schematic&lt;/a&gt; I had printed before where I had identified which color wire each of the three pins mapped to:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3644.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my case, red is DATA, white is 5V, black and blue are GND, and green is 3V3, which is not used in this adapter.&lt;/p&gt;

&lt;p&gt;I started off by soldering the black and blue GND wires for player 1 and 2 to their respective pads, P1GND and P2GND:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3646.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then soldered the rest of the wires, player 1 red and white to P1DATA and P15V, and player 2 red and white to P2DATA and P25V:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3649.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to the N64 adapter, because I wasn’t connecting player 3 and 4 cables, I needed to connect P3DATA and P4DATA high, so I used a short piece of orange wire to connect these two pads to P25V. Note that the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#assembly-instructions-30&quot;&gt;assembly instructions&lt;/a&gt; actually say to connect these to 3V3, which I could have done by hooking up the 2 green wires to these two pads; but the ESP32 module should be able to handle the 5V on these two pins.&lt;/p&gt;

&lt;p&gt;With the wiring done, I used zip ties to create strain reliefs:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3650.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3651.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3652.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once again, the screw posts on the DB25 connector need to be removed, though the metal face plate remains:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3653.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3654.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3655.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3656.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here it is, hooked up to the receiver:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/gamecube/IMG_3657.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;psxps2&quot;&gt;PSX/PS2&lt;/h3&gt;

&lt;p&gt;The PSX/PS2 adapter is also straightforward to build.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;3D-printed shell&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;PSX/PS2 extension cables (1 or 2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First, I undid my existing adapter. If starting from scratch, you’d want to cut and strip the ends of the extension cables, and tin each end:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3106.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3107.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered the DB25 connector to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3108.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3111.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I threaded the cables through the bottom shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3121.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now it was time to wire the cables to the PCB. I referred to the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#cable-schematic-10&quot;&gt;schematic&lt;/a&gt; I had printed before, where I had identified which color wire maps to which of the controller 9 pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3115.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The PCB has all the player 1 pads on one side, and player 2 pads on the other side. I soldered the player 1 wires to each pad:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3117.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then flipped the PCB and soldered the player 2 wires:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3119.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that on both sides, I did not solder anything to pads P1-3 and P2-3. This is because Pin 3 is 8V and Pin 5 is 3V3, and you should only solder one of these, not both for BlueRetro to work properly. I chose to solder to pin 5, and left the white wire (pin 3) disconnected.&lt;/p&gt;

&lt;p&gt;With wiring done, it was time to close things up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3123.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I removed the screw posts. Note that the metal face plate should be kept on the DB25 connector, unlike in this pic:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3124.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used zip ties to create strain reliefs:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3125.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3127.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then closed everything up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3128.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3130.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3131.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/psx-ps2/IMG_3132.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;snes---2-player&quot;&gt;SNES - 2 Player&lt;/h3&gt;

&lt;p&gt;The first time I made the SNES adapter, it only supported 2 players. I also didn’t have my 3D printer yet, so this build was a little bare-boned.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;SNES extension cables (x2)&lt;/li&gt;
  &lt;li&gt;74AHCT125N quad level-shifters (x2 for 2-player)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8331.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Looking at the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#cable-schematic-6&quot;&gt;schematic&lt;/a&gt;, it initially looks like we need to wire up 7 wires for the first controller, and 6 for the second, because the LATCH (pin 3) is not required for player 2:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/schematic_left.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, the rest of the schematic outlines connections in blue that only need to be made if you want multitap support:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/schematic_right.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In this build, we’re only interested in supporting 2 players, so we don’t need to connect P1-SEL, P2-SEL, P1-D1, and P2-D1. We also don’t need a third level-shifter. So that means we only need 5 wires for the first controller, and 4 for the second. In fact, it turns out that SNES controllers (and extension cables) only have 5 wires in them. The other pins are left unpopulated, and were there for third-party adapters, such as the light gun and the multitap.&lt;/p&gt;

&lt;p&gt;Alright, on with the build!&lt;/p&gt;

&lt;p&gt;First, I cut, stripped, and tinned the extension cables:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8334.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8342.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using my multimeter, I identified the mapping of each pin to each wire color. You can see how there are only 5 wires:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8343.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I soldered in the 2 level-shifters to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8344.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8346.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I soldered the DB25 connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8347.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8352.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If I had the 3D-printed shells, I would normally have inserted the controller cables into them here. But I didn’t, so I proceeded to solder each one to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8353.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Player 1 side:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8354.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Player 2 side:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8357.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that the player 2’s latch wire (white) is not soldered to the board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8358.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In retrospect, I realize that one thing I forgot to do is to “connect IO21 &amp;amp; IO25 to GND”, as per the &lt;a href=&quot;https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions#assembly-instructions-11&quot;&gt;assembly instructions&lt;/a&gt;, since we’re not enabling multitap support. Concretely, this means I should have soldered the P1-D1 and P2-D1 pads to one of the GND pads.&lt;/p&gt;

&lt;p&gt;As I didn’t have my 3D printer yet, I used a couple of zip ties to secure the wires:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-2p/IMG_8377.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And with that, I was done. In the next section, I convert this one to support 4-player multitap mode, and add a proper shell.&lt;/p&gt;

&lt;h3 id=&quot;snes---multitap&quot;&gt;SNES - Multitap&lt;/h3&gt;

&lt;p&gt;Making a &lt;a href=&quot;https://en.wikipedia.org/wiki/Multitap#Fourth_generation&quot;&gt;multitap&lt;/a&gt; BlueRetro adapter is a bit more work because SNES controllers/extensions only have 5 wires in them, but we need 7 for the first player, and 6 for the second. This means we need a 7 wire cable for each controller, as well as 3 extra pin ends to insert into the SNES controller ends. All of this will be made clearer below.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;7 wire cable (can use a PSX/PS2 controller cable)&lt;/li&gt;
  &lt;li&gt;SNES controllers/extensions (3x)&lt;/li&gt;
  &lt;li&gt;74AHCT125N quad level-shifters (x3 for 4-player)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First, I took apart the 2-player version I had made, and soldered in the third level-shifter:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0976.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0978.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0979.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I had bought a lot of Super Famicom controllers on eBay with the intention of converting four of them into Bluetooth controllers using &lt;a href=&quot;https://www.8bitdo.com/mod-kit-for-snes-controller/&quot;&gt;8BitDo mod kits&lt;/a&gt;. As I didn’t need the cables, I decided to use the controller ends from two of them:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0982.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It turns out it’s really heard to open up the controller end. I made myself a little tool using one of those paper clips:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0983.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0985.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0986.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_0987.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This was still really hard, so I ended up using a blade to cut off the two plastic pegs on the other side. Once cut, and using my tool, I was finally able to pry off the end:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1078.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Lifting up the plastic “door”, we can see how SNES controllers only have 5 wires in them, leaving 2 pins empty:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1042.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our goal is to cut off all those metal pins and resolder them to a 7-cable wire. But for that, I needed 3 more pins, which I got from one of the extension cables:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1073.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1075.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1081.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I cut off all the ends, keeping a little bit of the wire:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1085.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1088.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;7 wires for player 1 (top), and 6 for player 2 (bottom):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1089.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used an 8-wire cable I had lying around. Another alternative is to use a PSX/PS2 controller cable, which has 7 wires in it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1090.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1091.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1092.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered the controller end pins to each cable:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1102.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1103.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1104.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1105.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then reinserted the pins back into the controller ends, making sure they matched up with the schematic.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1106.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1111.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1112.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I slid the cap back on, but left it loose until the very end. It was a pain to remove, so I wanted to make sure everything worked first:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1116.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I inserted the player 2 cable wires, which is missing the LATCH wire (third from left):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1125.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1129.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These cables were pretty thick, so to insert them into the bottom shell, I needed to make the hole bigger by manually twisting a drill bit through the holes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1134.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1136.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1137.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1138.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered the player 1 wires to one side of the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1139.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then player 2:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1141.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1142.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To close things up, I needed to add some kind of strain relief to the cable end:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1152.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1154.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This didn’t quite fit in the little cavity inside the cable end cover, so I snipped a little off the zip tie, and that worked:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1162.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1163.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also put the usual strain reliefs on the other end of the cables so that they stay inside the shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1171.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1172.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And closed everything up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1174.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1178.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1179.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/snes-4p/IMG_1180.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;nes&quot;&gt;NES&lt;/h3&gt;

&lt;p&gt;The last build I’m covering is the NES one. This one is simpler that the SNES one, but I cover it afterwards because I ended up using a SNES PCB instead of an NES one. The reason for this is that the NES and SNES controllers are very similar, as are the PCBs for both. Since JLPCB requires a minimum order of 5 PCBs, this also allowed me to save money and avoid printing 5 more for the NES.&lt;/p&gt;

&lt;p&gt;Parts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PCB&lt;/li&gt;
  &lt;li&gt;DB25 connector (male, 90 degrees)&lt;/li&gt;
  &lt;li&gt;NES extension cables (x2)&lt;/li&gt;
  &lt;li&gt;74AHCT125N quad level-shifters (x2)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first thing I did was compare the two PCBs online, and map out the differences:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8664.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Basically, the pads map this way:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;NES&lt;/th&gt;
      &lt;th&gt;SNES&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;P1-D0&lt;/td&gt;
      &lt;td&gt;P1-D0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;P1-CUP&lt;/td&gt;
      &lt;td&gt;P1-CLK&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;OUT0&lt;/td&gt;
      &lt;td&gt;LATCH&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;GND1&lt;/td&gt;
      &lt;td&gt;GND1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;5VIN1&lt;/td&gt;
      &lt;td&gt;5VIN1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;P2-D0&lt;/td&gt;
      &lt;td&gt;P2-D0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;P2-CUP&lt;/td&gt;
      &lt;td&gt;P2-CLK&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;GND2&lt;/td&gt;
      &lt;td&gt;GND2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;5VIN2&lt;/td&gt;
      &lt;td&gt;5VIN2&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The other important part is how the BlueRetro identifies that it’s the NES that’s connected, and not the SNES. The way it does this is by looking at pin 22 of the DB25 connector: if it’s tied to GND, then it’s a SNES, if it’s tied to 3V3, it’s an NES. The SNES PCB is designed to tie pin 22 to GND, so we need to address this.&lt;/p&gt;

&lt;p&gt;First, I soldered the two level-shifters to the PCB:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8666.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8667.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8668.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now here is where we address pin 22 that needs to be tied to 3V3. What I did was bend pin 22 across this way:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8669.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I soldered the connector to the PCB. Notice how one of the vias has no pin coming through it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8670.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That pin 22 I lifted is visible on the other side:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8672.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8673.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since we need this to be tied to 3V3, I soldered a short wire from that pin to the 3V3 leg of one of the level shifters:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8675.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For the cables, I took apart the DIY adapter I had made before:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8676.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8679.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I stripped and tinned the wires, then passed the cables through the bottom shell:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9096.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered the wires to the PCB, starting with player 1:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8682.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And player 2:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_8684.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I removed the screw posts, added zip tie strain reliefs, and put it all together:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9099.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9103.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9105.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9106.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9107.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blueretro-aio/nes/IMG_9108.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;I’ve already mentioned multiple times how much I love the BlueRetro project, so I’ll share my thoughts on the difference between these AIO units over the standard DIY through-hole method.&lt;/p&gt;

&lt;p&gt;Overall, the main advantages to the AIO units are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;They’re easier to build, as you get to solder wires to a PCB rather than to pins of a DB25 connector or level shifter.&lt;/li&gt;
  &lt;li&gt;It’s easier to get the orientation right when connecting the receiver to the adapter, since the 3D-printed shell has a very clear “top” side that you need to line up.&lt;/li&gt;
  &lt;li&gt;They just look nicer with the 3D-printed shell.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The disadvantages are:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;They’re more expensive to make, as you need to get the PCBs and 3D-printed parts made.&lt;/li&gt;
  &lt;li&gt;The 3D-printed part models don’t print as nicely with FDM printers. The general shape and small grooves results in long bridges, which despite my best efforts, never looked as beautiful as I hoped.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Having said all that, I’m actually quite happy with these AIO units, and would definitely recommend them!&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="BlueRetro" /><category term="3D-printing" /><category term="NES" /><category term="SNES" /><category term="N64" /><category term="GameCube" /><category term="PS1" /><category term="PS2" /><summary type="html">I love the BlueRetro project, and on this blog, I’ve shown how I’ve made multiple DIY HW1 adapters for different consoles by soldering wires to DB25 connectors, and wrapping them up in DB25 shells. In this blog post, I’m going to cover a different way to make these adapters using PCBs and 3D-printed shells designed by pmgducati known as BlueRetro AIO Units.</summary></entry><entry><title type="html">gbs-control Case for YPbPr Out</title><link href="https://amaiorano.io/2023/03/15/gbs-control-case-ypbpr.html" rel="alternate" type="text/html" title="gbs-control Case for YPbPr Out" /><published>2023-03-15T00:00:00+00:00</published><updated>2023-03-15T00:00:00+00:00</updated><id>https://amaiorano.io/2023/03/15/gbs-control-case-ypbpr</id><content type="html" xml:base="https://amaiorano.io/2023/03/15/gbs-control-case-ypbpr.html">&lt;p&gt;In &lt;a href=&quot;/2023/03/14/gbs-control-case-hdmi.html&quot;&gt;my last post&lt;/a&gt;, I went over how I designed and built a case for my gbs-control used for up-scaling with HDMI output. This post will be about my second case, designed for the gbs-control I use for down-scaling/transcoding with RGB/YPbPr out.&lt;/p&gt;

&lt;h2 id=&quot;design&quot;&gt;Design&lt;/h2&gt;

&lt;p&gt;My second gbs-control is used for transcoding and down-scaling input signals, usually from RGB to YPbPr, using a &lt;a href=&quot;/2022/12/30/gbs-control-db15-to-ypbpr-cable.html&quot;&gt;custom DB-15 to RCA cable&lt;/a&gt; to feed the YPbPr signal to my CRT, along with a stereo RCA extension for audio:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_8660.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here were my design goals for this second case:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Keep the VGA out connector, but also add 5 RCA output jacks to the back panel to carry YPbPr (or RGB) along with left/right audio. This would allow me to hook up this gbs-control directly to my CRT using regular RCA cables, rather than my custom one.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;As with the HDMI case, I wanted the same reset button and status LED on the front panel.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having made the back panel a separate piece in my original design, all I had to do was design a new one:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/YPbPr_Case_Back.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I decided to label each of the RCA output holes because finding RCA jacks of the right color isn’t easy.&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;p&gt;Here are all the parts I needed to build this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A fully assembled gbs-control with the Node MCU positioned along the edge - see &lt;a href=&quot;/2023/11/07/gbs-control-take-2.html&quot;&gt;my post here&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;A green LED&lt;/li&gt;
  &lt;li&gt;100 ohm throughole resistor for the LED&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.homedepot.ca/product/paulin--4-x-3-8-in-flat-head-square-drive-steel-wood-screw-zinc-plated-36pcs/1000111448&quot;&gt;#4 x 3/8” wood screws (846-020)&lt;/a&gt; - 6x total: 4 to attach the GBS to the case, and 2 to attach the back plate to the case.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/1005004981102542.html?spm=a2g0o.detail.pcDetailTopMoreOtherSeller.1.3d89zHEKzHEKYZ&amp;amp;gps-id=pcDetailTopMoreOtherSeller&amp;amp;scm=1007.40050.354490.0&amp;amp;scm_id=1007.40050.354490.0&amp;amp;scm-url=1007.40050.354490.0&amp;amp;pvid=9d5d6ce7-8a53-4661-9869-6adfbca9416d&amp;amp;_t=gps-id:pcDetailTopMoreOtherSeller,scm-url:1007.40050.354490.0,pvid:9d5d6ce7-8a53-4661-9869-6adfbca9416d,tpp_buckets:668%232846%238114%231999&amp;amp;pdp_npi=4%40dis%21CAD%213.35%213.35%21%21%212.42%212.42%21%40210324bf17107096935908219ed310%2112000031234910673%21rec%21CA%211901445408%21&amp;amp;utparam-url=scene%3ApcDetailTopMoreOtherSeller%7Cquery_from%3A&quot;&gt;Momentary button&lt;/a&gt; - the “hole diameter” must be 10mm. The ones I bought were from a local store, but I’ve linked one on AliExpress that I think should work.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/32881798201.html?spm=a2g0o.productlist.main.33.4f0cl7vll7vlJa&amp;amp;algo_pvid=56eebe06-c531-4ef8-8fda-47215237acea&amp;amp;algo_exp_id=56eebe06-c531-4ef8-8fda-47215237acea-16&amp;amp;pdp_npi=4%40dis%21CAD%212.34%212.34%21%21%211.69%211.69%21%402101cff817107114166446475eae09%2165605658345%21sea%21CA%211901445408%21&amp;amp;curPageLogUid=zesdXab8gyOe&amp;amp;utparam-url=scene%3Asearch%7Cquery_from%3A&quot;&gt;7x RCA female socket connectors&lt;/a&gt; - the “hole diameter” should be 5.6mm. In this post, I used 2 larger ones for the front, but I’ve since updated my design so that the 2 in the front panel, and the 5 in the back panel, are all the same size.&lt;/li&gt;
  &lt;li&gt;4x rubber feet to stick underneath the case&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/amaiorano/gbs-control-case&quot;&gt;3D printed case&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;p&gt;This process went smoother than the for the HDMI case. The one hitch was that I had two versions of the gbs board, a V4 and a V5, and I didn’t realize that they weren’t exactly the same size. I had to make the case a little smaller for the V4 used in this build. But apart from that, it was pretty smooth sailing.&lt;/p&gt;

&lt;p&gt;I printed all the parts again:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9842.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is the V4 board destined for this case:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9850.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I desoldered this header that shares the connections from the VGA output connector next to it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9851.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9853.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered a ribbon cable to the exposed pads. This time, I only needed the red, green, blue, along with three ground connections:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9854.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As before, I soldered a resistor to one of the legs of a LED:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9856.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9860.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One leg (green wire) is connected to D7, and the other (pink) is connected to ground:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9864.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9863.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For the reset button, I soldered two wires to the RST and ground pins:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9865.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9866.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The board was now ready to be put into the case:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9867.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9869.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s the new back panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9870.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I bought a set of 20 RCA connectors off Amazon for the back panel for $14 ($0.70 each), which was a lot cheaper than the ones I had bought for the front ($2 each):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9871.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9872.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9873.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I screwed them into the back panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9874.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9875.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I oriented the ground tabs away from the power and VGA output connectors:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9877.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered up the red, green, and blue connections. For the gbs-control, when YPbPr mode is enabled, red maps to Pr, green to Y, and blue to Pb:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9881.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For audio, I used another ribbon cable:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9882.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9883.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next I installed the reset button and audio input jacks:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9885.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9887.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I slid the board into the case and screwed it into place in the four corners:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9890.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I soldered up the reset button:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9891.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then screwed in the back panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9893.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And finally soldered the other end of the audio ribbon cable to the RCA input jacks, being careful to swap the ends so that left and right are correctly oriented:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9894.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All done, and looking mighty clean:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9896.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9898.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9899.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9900.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9901.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9902.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here it is hooked up with regular RCA cables for YPbPr and audio going straight to my CRT:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9905.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9906.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Success!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-ypbpr/IMG_9908.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;Building this second case went a lot smoother than the first one, both because it was my second go-around, and also because I didn’t have to mess around with the VGA-to-HDMI adapter.&lt;/p&gt;

&lt;p&gt;As with the first one, I would definitely make the case walls thicker so that they don’t bend when pushing in cables to connect them. Another thing I would consider doing is adding some artificial weight to the cases so that they don’t move around so easily.&lt;/p&gt;

&lt;p&gt;Having said all that, I’m super happy with the final result for both cases. They look great in my setup – definitely a lot better than the exposed PCBs screwed into blocks of wood!&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="3D-printing" /><category term="gbs-control" /><summary type="html">In my last post, I went over how I designed and built a case for my gbs-control used for up-scaling with HDMI output. This post will be about my second case, designed for the gbs-control I use for down-scaling/transcoding with RGB/YPbPr out.</summary></entry><entry><title type="html">gbs-control Case for HDMI Out</title><link href="https://amaiorano.io/2023/03/14/gbs-control-case-hdmi.html" rel="alternate" type="text/html" title="gbs-control Case for HDMI Out" /><published>2023-03-14T00:00:00+00:00</published><updated>2023-03-14T00:00:00+00:00</updated><id>https://amaiorano.io/2023/03/14/gbs-control-case-hdmi</id><content type="html" xml:base="https://amaiorano.io/2023/03/14/gbs-control-case-hdmi.html">&lt;p&gt;A little while ago, I &lt;a href=&quot;/2022/04/01/gbs-control.html&quot;&gt;built a gbs-control&lt;/a&gt; to up-scale up video signals from my old consoles to my LCD TV. I eventually built a second one to use as a down-scaler/transcoder to my CRT, and &lt;a href=&quot;/2022/12/30/gbs-control-db15-to-ypbpr-cable.html&quot;&gt;made a custom cable for it&lt;/a&gt;. The final missing touch for both these projects was a nice case. In this first post, I’ll go over how I designed, printed, and assembled a case for the HDMI out gbs-control. My next post will cover the second case.&lt;/p&gt;

&lt;h2 id=&quot;design&quot;&gt;Design&lt;/h2&gt;

&lt;p&gt;My first gbs-control is the one I use to up-scale RGB and YPbPr input signals to HDMI out:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_8632.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the PCB is screwed into a piece of wood I cut, and there’s a VGA-to-HDMI adapter hanging off the back, along with female RCA cables for stereo audio input that connect to the same adapter.&lt;/p&gt;

&lt;p&gt;My goals for this case were:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Get rid of the ugly adapter hanging out the back. Inspired by &lt;a href=&quot;https://www.thingiverse.com/thing:4946190&quot;&gt;this case design&lt;/a&gt;, I’d incorporate the adapter inside the case, and expose only the HDMI port out the back.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Add a reset button to the front. Sometimes the gbs-control gets in a weird state when disconnecting and connecting devices, and I’ve found it useful to be able to press the reset button on the NodeMCU board. Since this will be tucked in the case, I decided to expose it at the front of the case.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Display a status LED on the front. The gbs-control source code turns the NodeMCU on-board LED on to indicate when a proper signal has been detected, and off otherwise. I’ve found this useful as well, and similar to the reset button, decided to expose it on the front of the case since the NodeMCU would no longer be visible.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;case&quot;&gt;Case&lt;/h3&gt;

&lt;p&gt;After spending many hours (mostly learning) Fusion 360, here’s what I came up with for the case itself:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/HDMI_Case_Front.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/HDMI_Case_Back.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can see that the front panel has holes for the gbs board’s inputs, along with a top row of holes for audio inputs, reset button, and the status LED. On the side is the HDMI “cradle”, used to hold the VGA-to-HDMI PCB in place against the back panel.&lt;/p&gt;

&lt;p&gt;Note how the back panel is a separate piece. I decided to do this because I knew I’d want a different back panel for my second gbs-control. As it turned out, it also made it much easier to slide in the gbs board into the case.&lt;/p&gt;

&lt;h3 id=&quot;reset-and-status-led&quot;&gt;Reset and Status LED&lt;/h3&gt;

&lt;p&gt;To be able to reset the gbs-control from the front panel, I bought a momentary switch:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/ResetButton.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Resetting the NodeMCU is done very simply by connecting the RST pin to ground:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/NodeMCUReset.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For the status LED, it’s slightly more complicated. The NodeMCU’s LED state is connected to D0 (GPIO16), but it’s an “active low” signal, meaning that when the LED is on, D0 is low (GND), and when the LED is off, D1 is high (Vin). This is the opposite of what we need for our external LED. One solution would be to build an inverter circuit, or to use an inverter IC.&lt;/p&gt;

&lt;p&gt;Instead, I decided to fix it in software by modifying the gbs-control code to output the non-inverted status on an unused pin, like D7, which is exactly what I did (you can see &lt;a href=&quot;https://github.com/ramapcsx2/gbs-control/compare/master...amaiorano:gbs-control:amaiorano-changes&quot;&gt;my changes here&lt;/a&gt;). The crux of the change was to modify the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LEDON&lt;/code&gt; AND &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LEDOFF&lt;/code&gt; macros to also write the opposite level to D7:&lt;/p&gt;

&lt;div class=&quot;language-cpp highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#define LEDON                         \
    pinMode(LED_BUILTIN, OUTPUT);     \
    digitalWrite(LED_BUILTIN, LOW);   \
    pinMode(D7, OUTPUT);    &lt;/span&gt;&lt;span class=&quot;cm&quot;&gt;/* NEW */&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt; \
    digitalWrite(D7, HIGH); &lt;/span&gt;&lt;span class=&quot;cm&quot;&gt;/* NEW */&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#define LEDOFF                        \
    digitalWrite(LED_BUILTIN, HIGH);  \
    pinMode(LED_BUILTIN, INPUT);      \
    digitalWrite(D7, LOW); &lt;/span&gt;&lt;span class=&quot;cm&quot;&gt;/* NEW */&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;  \
    pinMode(D7, INPUT)     &lt;/span&gt;&lt;span class=&quot;cm&quot;&gt;/* NEW */&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So now, I could simply wire up a LED with one end connected to D7 (with a resistor in series), and the other to ground:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/NodeMCUStatusLED.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;parts&quot;&gt;Parts&lt;/h2&gt;

&lt;p&gt;Here are all the parts I needed to build this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A fully assembled gbs-control with the Node MCU positioned along the edge - see &lt;a href=&quot;/2023/11/07/gbs-control-take-2.html&quot;&gt;my post here&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/1005006132639628.html?spm=a2g0o.order_list.order_list_main.9.bcee1802cJk4Od&quot;&gt;VGA to HDMI adapter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A green LED&lt;/li&gt;
  &lt;li&gt;100 ohm throughole resistor for the LED&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.homedepot.ca/product/paulin--4-x-3-8-in-flat-head-square-drive-steel-wood-screw-zinc-plated-36pcs/1000111448&quot;&gt;#4 x 3/8” wood screws (846-020)&lt;/a&gt; - 8x total: 4 to attach the GBS to the case, 2 to attach the HDMI cradle clamp, and 2 to attach the back plate to the case.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.homedepot.ca/product/paulin--4-x-1-2-in-flat-head-square-drive-steel-wood-screws-zinc-plated-100pcs/1000140508&quot;&gt;#4 x 1/2” wood screws (197-543)&lt;/a&gt; - 2x to attach the HDMI cradle to the back plate&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/1005004981102542.html?spm=a2g0o.detail.pcDetailTopMoreOtherSeller.1.3d89zHEKzHEKYZ&amp;amp;gps-id=pcDetailTopMoreOtherSeller&amp;amp;scm=1007.40050.354490.0&amp;amp;scm_id=1007.40050.354490.0&amp;amp;scm-url=1007.40050.354490.0&amp;amp;pvid=9d5d6ce7-8a53-4661-9869-6adfbca9416d&amp;amp;_t=gps-id:pcDetailTopMoreOtherSeller,scm-url:1007.40050.354490.0,pvid:9d5d6ce7-8a53-4661-9869-6adfbca9416d,tpp_buckets:668%232846%238114%231999&amp;amp;pdp_npi=4%40dis%21CAD%213.35%213.35%21%21%212.42%212.42%21%40210324bf17107096935908219ed310%2112000031234910673%21rec%21CA%211901445408%21&amp;amp;utparam-url=scene%3ApcDetailTopMoreOtherSeller%7Cquery_from%3A&quot;&gt;Momentary button&lt;/a&gt; - the “hole diameter” must be 10mm. The ones I bought were from a local store, but I’ve linked one on AliExpress that I think should work.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aliexpress.com/item/32881798201.html?spm=a2g0o.productlist.main.33.4f0cl7vll7vlJa&amp;amp;algo_pvid=56eebe06-c531-4ef8-8fda-47215237acea&amp;amp;algo_exp_id=56eebe06-c531-4ef8-8fda-47215237acea-16&amp;amp;pdp_npi=4%40dis%21CAD%212.34%212.34%21%21%211.69%211.69%21%402101cff817107114166446475eae09%2165605658345%21sea%21CA%211901445408%21&amp;amp;curPageLogUid=zesdXab8gyOe&amp;amp;utparam-url=scene%3Asearch%7Cquery_from%3A&quot;&gt;2x RCA female socket connectors&lt;/a&gt; - the “hole diameter” should be 5.6mm. The ones I used in this post are actually larger, but I’ve updated my design to fit the more commonly available connectors from AliExpress that I’ve linked here.&lt;/li&gt;
  &lt;li&gt;4x rubber feet to stick underneath the case&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/amaiorano/gbs-control-case&quot;&gt;3D printed case&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;the-build&quot;&gt;The Build&lt;/h2&gt;

&lt;p&gt;As a novice to 3D printing and designing, I spent a fair bit of time iterating and printing tests to make sure everything fit:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9366.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9371.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9376.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9377.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9389.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, with everything ironed out, I printed out the pieces for the case:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9402.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9456.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the case printed, it was time to prep the gbs board. First I desoldered the VGA output connector off the back of the board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9419.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9422.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9423.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next up was getting the VGA-to-HDMI adapter PCB out of its case, and removing a few components off of it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9581.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9582.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using a hot air rework station, I carefully removed the audio input jack:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9583.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As well as the micro-usb power connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9584.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And finally, the VGA input connector:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9585.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With all that done, it was time to solder the adapter to the gbs board. Using ribbon cable, I soldered the R, G, and B pads, as well as ground:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9590.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And on the other side, the H-sync and V-sync pads:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9592.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The other end of the ribbon cable was soldered to the pins that sat behind the VGA output connector I removed:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9457.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note that ground wire isn’t connected above. You’ll see it connected in later pics.&lt;/p&gt;

&lt;p&gt;I soldered a red and white wire - for right and left audio, respectively - to the adapter where the audio input jack used to be:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9587.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the other end, I soldered two ground wires for the audio signals:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9589.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You’ll see these four wires getting hooked up to the RCA input jacks at the front of the case later below.&lt;/p&gt;

&lt;p&gt;To power the adapter, I soldered a yellow wire for 5V and black for ground to this component:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9593.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then soldered the other ends to the gbs board:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9476.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I placed the gbs board into the case, and screwed in the four corners:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9488.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9487.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next up were the status LED and reset button:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9481.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9491.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9493.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The other ends are connected to the NodeMCU board as shown below. The purple reset wire is tied to the RST pin (obscured in the pic), with the black ground wire next to it. For the LED, the green wire is tied to pin D7, and the brown to ground:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9504.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the LED and reset buttons done, I screwed in the RCA audio input jacks:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9495.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next, I placed the HDMI adapter into its cradle, and screwed it to the back panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9497.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9499.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then screwed the back panel to the case:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9500.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I soldered the audio wires coming from the HDMI adapter to the RCA jacks:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9503.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And with that, I was done!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9595.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9597.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9512.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9514.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here it is, with my N64 hooked up to it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gbs-control-case-hdmi/IMG_9524.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;I have to say that I’m really happy with the way this case turned out! This was practically my first time designing something more complicated for 3D printing, and although it took quite some time, I learned a great deal and had fun doing it.&lt;/p&gt;

&lt;p&gt;The case isn’t perfect. For instance, the walls are a bit thin at 2mm, and I can feel them bending a little when I push in cables into it, especially on the back. I’d definitely try making it a little thicker. But apart from minor things like that, overall, I’m quite happy with the result.&lt;/p&gt;

&lt;p&gt;In the &lt;a href=&quot;/2023/03/15/gbs-control-case-ypbpr.html&quot;&gt;next post&lt;/a&gt;, I’ll go over how I made a similar case for my second gbs-control that I use for down-scaling/transcoding.&lt;/p&gt;</content><author><name>Antonio Maiorano</name></author><category term="Electronics" /><category term="3D-printing" /><category term="gbs-control" /><summary type="html">A little while ago, I built a gbs-control to up-scale up video signals from my old consoles to my LCD TV. I eventually built a second one to use as a down-scaler/transcoder to my CRT, and made a custom cable for it. The final missing touch for both these projects was a nice case. In this first post, I’ll go over how I designed, printed, and assembled a case for the HDMI out gbs-control. My next post will cover the second case.</summary></entry></feed>