Skip to content

"plug-n-play" gcomp/gscart EXT adapter that enables auto-profiles for the RetroTink 4K

License

Notifications You must be signed in to change notification settings

svirant/gSerialEnabler

Repository files navigation

gSerial Enabler

"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!
Thanks Bob Thanks Bob

Internal



External

Conversion!

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.

Thanks to



Ordering PCBs

PCBs for this project:


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!

Assembly

Interactive HTML BOM

Internal assembly

In addition to the top of the usb-c port, place two more 6x2mm rubber feet to the spots shown, to secure the PCB.


External assembly

  • 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.


PCB

Schematic

Bill of Materials (BOM)

* gSerial Enabler

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


Programming an Arduino Nano

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.

bootloader

Steps to update offset

  • 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.

How to Use

  • 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.

SVS Profile numbering scheme

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

S0_ profile Enable

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.

About

"plug-n-play" gcomp/gscart EXT adapter that enables auto-profiles for the RetroTink 4K

Resources

License

Stars

Watchers

Forks

Sponsor this project