"plug-n-play" gcomp/gscart EXT adapter that enables auto-profiles for the RetroTink 4K
- A powered-on console on port 1-8 will load SVS profiles S201_ - S208_ on the RT4K Pro/CE
- Compatible with the SVS
- Connect multiple gSerial Enablers, Donut Holes, Donut Dongles simultaneously via a headphone jack splitter.
- Must reflash "firmware" with offset variable set so SVS profile numbers don't overlap.
- Ex: offset = 8, adds 8 to the default of 201. So ports 1 - 8 would now be S209_ - S216_
- Up to 5 have been connected together simultaneously. More may be supported, but this is the max number I've been able to test.
- Full instructions listed below for building your own!
- If DIY is not your thing, I also have a handful assembled and available for purchase on Ko-fi
Caution
- Currently does NOT work on gscartsw_lite v1.5 (if any of you DIY'ers have a solution, pls let me know!)
Note
The EXT port does not exist on all gscart/gcomp revisions. Make sure your switch has one! There are now 2 versions available.
- "Internal" is for EXT with no header. (exposed through-holes)
- "External" is for EXT with right angle header populating the port.
Thanks to Bob @RetroRGB for showcasing!

Tip
- If you wanted to use the External version on your headerless gcomp/gscart, you can easily solder a 2.54mm DC3 angled header onto the EXT port. Part listed in BOM below.
PCBs for this project:
- gSerial Enabler (Internal)
- gSerial Enabler (External)
- VGA Adapter (VGAPassthrough or YC2VGA)
Note
The "Internal" PCB can also be used for the "External" build. Only the through-holes are smaller. The through-holes have been made larger on the External version to make soldering the Dupont line easier. It should be noted that the reverse is not true. The through-holes on the External version are too big to properly secure to pogo-pins.
There are plenty of options for PCB manufacturing but I prefer JLCPCB (No affiliation). Using the gerber (.zip) files provided, it's easy to place an order. Below are some tips/guidelines:
- 1.6mm Thickness
- For Surface Finish, "HASL(with lead)" is fine
- 4 Layer PCBs are the same cost as 2 Layer for the VGA Adapters. Because of that, the inner 2 layers are being used as ground planes for better EMI protection. Thanks to https://x.com/zaxour for the idea!
- "Remove Mark" option is now free on JLCPCB. Use it!
- All remaining default options should be fine
- Let me know if you have any questions!
In addition to the top of the usb-c port, place two more 6x2mm rubber feet to the spots shown, to secure the PCB.
- Cut Dupont line in half for 10cm section.
- Remove plastic covers on Dupont line and insert into 2x4 Dupont shell as shown below.
- Strip wire on other end and solder into through-holes on PCB.
| Qty | Designation | Part | Link | Notes |
|---|---|---|---|---|
| 1 | C1 | 0.1 uf / 100nf 50V X7R 0805 Capacitor | Digikey | |
| 2 | R1, R2 | 10K OHM 1% 1/8W 0805 Resistor | Digikey | |
| 1 | U1 | IC BUF NON-INVERT 5.5V SOT23-6 | Digikey or alternate | |
| 1 | J2 | PJ-320 3.5MM Headphone Jack Audio Video Female | AliExpress | Color: PJ-320B DIP |
| 10 | J3,J4 | 2.54mm male pin headers | break off the male headers that come with the Arduino Nano | |
| 1 | Arduino Nano type c | Support RetroRGB! | Make sure the headers are not soldered. | |
| 1 | Any 3.5mm / aux / stereo / trs / cable | AliExpress | I prefer the one listed because the cable itself is very flexible and has no problem being routed inside the case. | |
| 1 | usb-c cable for Arduino programming | AliExpress | ||
| 3 | 6x2mm sticky rubber feet | Amazon | Internal version only | |
| 5 | Pogo-Pin | Mill-Max 0906-1-15-20-75-14-11-0 | Digikey | Internal version only |
| 1 | 2x4 Dupont shell | Pins: 2x4Pin | AliExpress | External version only |
| 1 | Dupont line 20cm | Color: Female to Female | AliExpress | External version only |
| 1 | CONN HEADER R/A 8POS 2.54MM | Part# 78207-108HLF | Digikey | (Optional) If you wanted to use the External version on your headerless gcomp/gscart, you can solder this part on. |
| 1 | Alt to the official header above | Color: Right Angle Type , Pins: 8P | AliExpress | Will most likely not fit inside the LaserBear bumper case, not confirmed. Just FYI. |
* VGA Adapter assembly and BOM can be found here
I recommend the Official Arduino IDE and guide if you're unfamiliar with Arduinos. All .ino files used for programming are listed above.
Some Arduino Nanos come with an Old Bootloader and won't Upload unless specified. If you get errors when trying to upload, swap to this option as a possible fix.
- 1 - Download and install the Arduino IDE for your PC or Mac
- 2 - Click the green "<> Code" button above and "Download ZIP".
- 3 - Extract the .zip file and open up the "gSerial_Enabler.ino" file in the Arduino IDE. It will ask if you would like to move this file inside a folder, select OK.
- 4 - With the source code now open, select "Tools" -> "Board" -> "Arduino AVR Boards" -> "Arduino Nano"
- 5 - Connect the gSerial Enabler device to your PC or Mac using a usb-c cable. You should see an LED light up when connected.
- If connecting the "External" version, you must remove the top half of the case by sliding it upwards while holding parts beneath the aux jack on one side and ribbon cable on other. This will expose the usb-c port.
- If connecting the "Internal" version, it's okay to flash it while still inside the gscart/gcomp. Just disconnect power from the gscart/gcomp first.
- 6 - With the gSerial Enabler now connected, select it's "port" by going to "Tools" -> "Port", and select the port that starts with "/dev/cu.usbserial-" (on Mac) or "COM" if on PC.
- 7 - Almost done! :) In the code itself, find the line that starts with "uint16_t const offset = 0;" and change the 0 to an 8. It should now look like this: uint16_t const offset = 8;
- At the moment this is line 27
- 8 - From the menu at the top, select "Sketch" -> "Upload". You should see the LEDs on the Arduino Nano flicker and a message that says "Done uploading." if successful.
- If you get errors, see the section above about changing the "Bootloader" type.
- 9 - Disconnect the usb-c cable and give it a whirl! You can repeat these steps in the future to make any other changes or update if a newer firmware is ever released.
-
Make sure "Auto Load SVS" is "On" under the RT4K Profiles menu.
-
The RT4K checks the /profile/SVS subfolder for profiles and need to be named: S<input number>_<user defined>.rt4 For example, SVS input 201 would look for a profile that is named S201_SNES.rt4. If there’s more than one profile that fits the pattern, the first match is used.
-
Check the RT4K Diagnostic Console for Serial commands being received as confirmation.
Ports 1-8 = S201_ - S208_
The "offset" option can be used if using multiple gSerial Enablers connected to the RT4K via a headphone splitter. If using a 2nd, change to "offset = 8" for the 2nd to be SVS profiles 209 - 216.
uint16_t const offset = 0; // Only needed for multiple gSerial Enablers. Set offset so 2nd, 3rd, etc gSEs don't overlap profiles. (e.g. offset = 8;)
By cutting the trace on the PCB, you can enable the S0_ profile which will load S0_<whatever>.rt4 when all inputs are off. If you wish to revert the change, you can bridge the trace with a solder blob.
Instead of cutting the trace, you can also change line 29 of the gSerial_Enalber.ino to "true" for the same functionality. ...Assuming you are able to program the Arduino Nano with the updated .ino. Up to you which method to choose.




