Converting the Suncom SFS Throttle to USB

The time has come to convert the Suncom throttle as well.

sfs_throttle

Suncom SFS Throttle

 

The Suncom SFS is a pretty well made throttle with split grip and programmable buttons. The programmable feature was good for the days where game ports could only support 4 buttons, but USB game controllers have no such limit.

I strongly recommend reading the previous post on the Suncom joystick as it has several tips I will not repeat here.

 

Suncom SFS hardware overview

The Suncom SFS have pretty dense electronics under the hood. It has 3 separate PCBs and a whole bunch of cable harnesses. As opposed to the Suncom joystick, there is no separate controller for the buttons. Instead, the buttons are electronically ordered in a grid of 4 by 4, and need to be scanned sequentially to get their status.

SFS_original_electronics

Suncom SFS original electronics

 

Preparation before fitting the new hardware

1. Remove the old PCBs

3 PCBs need to be removed. The first one is the smallest. It holds the 2 extension connectors. Remove the screws and pull the PCB out. You will probably need to use some force and bend the surrounding plastic to get this one out. Do it carefully. The other 2 PCBs will be easier to remove. When removing the mid size PCB, pay attention that this will loosen up the 4 red button cups, take care not to loose them.

SFS_pcbs

Throttle’s 3 PCBs taken apart

2. Disconnect cables.

The main body should be disconnected now from the PCBs. There are 2 cable harnesses coming from the grips (11 pin and 5 pin) and 4 wires coming from the potentiometers.  All the wires are connected to the main PCB. The cables should be just pulled out from the board. The 4 POT wires should be de-soldered.

Main_PCB

Disconnecting cables and wires

 

3. Adding a 3rd wire to the POTs

In the original electronics, as in all PC Game-Port devices, only 2 wires are connected to the potentiometers. But in our case we need 3: VCC, GND and return. So, as in the joystick case, we need to add another wire to the POT’s pin number 3. The POTs are not easily accessible  for soldering. To get access we need to detach the grip assembly from the main body.  To do that, first remove the 4 screws attaching the grip assembly to the body:

GripAssyScrews

Yes, this time the screws are not just for decoration

Now carefully lift the grip assembly out of the main body. You will need to play with it a bit and again maybe use some slight force to do it. Be very careful not to damage the wires while doing so!

Now that the POTs are accessible, add a 3rd wire to both POTs by soldering an extra wire to pin number 1 (might be pin no 3 if the POT is flipped)

pot1

Right pot, a wire should be soldered to pin 1

pot2

Left pot with pin 1 already wired

Note wire colors for later:  Wire connected to the pin closest to the front of the throttle (pin 3 on both POTs in my case) is the VCC. Back wire is the GND, and middle wire is the return.

You can now reattach the grips assembly back to the body, again, careful on the wires.

 4. Salvaging parts from the main PCB.

Some electronic components from the main PCB are needed for reuse. You will need to carefully de-solder the following parts: The 9 LEDs, the 4 tact switches, the slide switch, the 5 pin connector, the 22 pin right-angled pin header, and the 4 diodes.

PartsToSalvage

Components from main board needed for the new PCB

Preparations done!

 

Assembling the new PCB

1. Collect necessary parts

Order a PCB from Itead Studio, using the attached Gerber Files.
Order parts from digikey or another place, using the attached BOM.
Find a USB cable.  I used a USB2 extension cable, and just cut the female end.
(For any of you who wish to play with the PCB, here is the complete KiCad project: SuncomSFS_Kicad)

2. Assemble the PCB

Start with the SMD parts.As noted in the Joystick post, there are many Youtube tutorials on how to solder smd parts. Here is my method:

For resistors/capacitors, First apply some lead with the soldering iron on one of the pads on the PCB. Then using tweezers pick the resistor/capacitor and solder one side to the already coated pad. Now that the component is fixed into place go ahead and solder the other side.

For fine pitch ICs, such the PIC MCU, again, apply some lead on one of the component pads on the PCB, then solder the component to its place, and since only 1 pin is being soldered to the one coated pad, it is easy to play with the IC until all pins are aligned correctly. Then solder another pin on the other side of the IC fixing it into place. Make sure that all the pins are still aligned to the pads, and then start to solder all the rest of the pins. You don’t have to be accurate and it is OK if you short a pin or 2 at this stage. When all pins are soldered, Use solder-wick to remove excess lead from the pins, freeing any of the shorted ones on the way. Use a cleaning solvent to remove any leftover dirt. Using a magnifier glass  inspect and make sure all pins are soldered correctly and no shorts left.

pcbSmd

New PCB with smd parts assembled

Next, Solder all through-hole components (3 connectors, 5 switches, 4 diodes and 9 LEDs). For each components, first solder 1 pin, then make sure the component is places correctly, and only then solder the rest of the pins. (if it is not places correctly, since only one pin is soldered, you can heat-up this pin with the soldering Iron and move the component until it is placed correctly.) for the LEDs, pay attention for the polarity: align the strait cut on the bottom of the led dome with the strait line on the PCB symbol. The LEDs should have a small bending on their leads helping you place them at the correct height above the PCB. Note also the diodes polarity – black stripe on diode goes to the white line on the PCB.
Important note: The the JST programming connector goes on the BACK side of the PCB.

3. prepare the USB cable.

To hold the new cable nicely into the body, we need to reuse the rubber gasket that held the original cables. There are 2 cables passing through the gasket. Cut both cables as close as possible to the surface of the gasket from both sides.

SFSGasket1

Cable gasket. Cut on both sides.

After cutting the cables, pull out all internal wires from the gasket to free the holes. Take the new USB cable. If you use a USB extension cable as I did, cut out the female side. Try to pass the cut edge of the new cable through the gasket hole (either of them).  If the hole is too tight, measure the cable diameter, and use a standard drill bit with the similar diameter to widen the hole. Make sure you insert the cable from the correct side.

SFSUSBCable

New USB cable inserted through gasket.

After the cable is inserted, expose about 1 Inch of wires from the cut edge, then from each wire expose a few millimeters of copper.

It is very important now to make sure the wire colors of the USB cable are correct. (In my case I found out that they ware not). Using a multimeter or similar device make sure the wire colors are as in the following pinout table:

USBConn

USB type A connector looking from the front side.

1. Red (VCC)
2. White (D-)
3. Green (D+)
4. Black (GND)

If the wiring is not correct, make sure you map them correctly when connecting to the PCB.

4. Connecting the PCB to the main body

First you want to solder the USB cable to the PCB. Use the following image to see where each wire goes:

SFSPCBUSB

USB cable to PCB wire connection.

Now you need to connect the 3 x 2 potentiometers wires.  Solder the POT wires using the image below and the notes you made at step 3 of preparation stage.

PCBPOT1

Left POT connections

PCBPOT2

Right POT connections

Last, you need to connect the 5 and 11 wire cables coming from the grip assembly. There is only one way to connect the 5 pin connector. The 11 pin connector connect to the upper line of pins in the 11 pin header, noting that the side with brown and black wires are toward pin number 1.

SFSPCBComplete

PCB fully assembled and connected to main body.

 5. Fitting the PCB in place.

Before placing the PCB in place, make sure the slide switch is aligned with its cup on the body. Now carefully place back the 4 red tact switch caps. Make sure the springs in the cups are placed correctly. Carefully turn the PCB upside down making sure all connected wires are getting in the way of the switches or the screw holes. Screw back the 3 PCB screws to hold the PCB in place.

PCBInPlace

PCB fit in place.

That’s about it for the hardware part!

Programming the software

The software for the PIC is similar to the one used on the F15 joystick. Similarly, when the slide-switch is on (LED is lit), several buttons become toggle buttons. The left and right grip are mapped to X and Y analog axis. In addition there are 16 switches, and 2 8-direction POVs.

Download the project from this link: SuncomUsbThrottle_PIC18F25K20

Use the same procedure as in the Suncom Joystick post to program the Throttle.

That’s it for the software part!

Final touch

Before closing everything, 2 last things should be done:

1. You may want to cover the original extension connector holes by inserting back the small connector PCB. Cut all wires coming out of it before you do so.

2. As one of the readers suggested, place a cable tie at the entry side of the USB cable, to make sure the cable will not be accidentally pulled out.  (Thank you, Craig!)

SFSFinalTouch

Final touch

SFSCableEntry

Cable entry and extension connectors in place

Thats all!

Close up the bottom plate, and enjoy your renewed Suncom SFS Throttle!

-SHS

Update:
As asked by Rajeen, here is a (rough) button connections diagram for the grip: GripButtonDiagram

29 Responses to 'Converting the Suncom SFS Throttle to USB'

  1. Trevor Henderson says:

    I just found my winter project. Thanks so much for sharing this!

  2. Craig says:

    While I had used the zip tie on the Talon joystick, for the throttle I instead opted to put a knot in the USB cable and put the loop from that around the nearby plastic mounting post that the base screws into. The Talon’s posts have extra plastic stabilizing them to the shell walls but the throttle does not, in turn allowing the knot to support the cable. But, anything to help to keep the cable from moving about is a plus. With the USB cable I used on my Talon joystick (think I salvaged it from an old webcam) it happened to include a clip-on ferrite bead. While it may be not be necessary for EMI filtering in this application, it happens to work as a nice stop on the outside of the joystick to ensure the cable doesn’t get pushed inside the housing. Unfortunately don’t have one for my throttle cable, but the knot will do a decent enough job.

  3. Rajeen Nabid says:

    I am doing this same project using unojoy and an arduino uno. Could you please share the switch scanning layout you discovered for the throttle switches? I’ve been looking through your kicad project and it seems like the switches are in a 3×8 array for the right throttle and base switches, but how are the left throttle switches scanned? What is the actual layout for the right throttle?

    i.e., if you enable SEL1 what switch position corresponds to SW1, SW2, etc?

    • shaise says:

      Hi Rajeen,
      I have added a rough diagram at the end of the post. Hope it helps.

      • Thanks for this. I have an SFS throttle I am modding using a Teensy. The teensy is already running my Thrustmaster F22 and the SFS pots, so I will use the 15-way to get the buttons over to the Teensy too.

        Could you give me a couple of pointers on the wiring of the buttons? I am nut very familiar with handling buttons on a matrix, so excuse me if I ask something stupid.

        Are the SELx lines to be read as columns? So would it something like the following –

        for each SEL line – set each button line high and read the corresponding state of the SEL line. This is the state of each button on that SEL line. I guess an array to store the states would make sense.

        I guess this gives us a 3 x 8 array, with not all points on the matrix having a button, right? So 11 lines should be enough to carry the states to the Teensy?

        Thanks in advance…
        Gerry

    • Keith Weiland says:

      Hey Rajeen,

      I am going to attempt this same project myself, have you got a project page at all, I would love to look at how you have accomplished the conversion with an arduino. I am trying to evaluate whether to go with the custom PCB or the arduino route.

      Keith

  4. Carlos Zorrilla says:

    You are my hero too. I have a set of Suncom Throttle and Flight and a Thrustmaster FLCS/TQS set too. I will get myself ready for this project thanks to you.

    I hope that some day you could make the same for the Thrustmaster FLCS and TQS.

    There are lots flight simmers out there that should find this excellent work of yours.

    • shaise says:

      Hi Carlos,
      Unfortunately without actually having the Thrustmaster devices to reverse engineer its hard to make a solution for them. Basically, the same PCBs can be used for that, but the software needs to be adapted accordingly. Hopefully someone will do it and post his modifications.

    • Hi Keith…
      I have started modding a Thrustmaster F22, which is pretty similar to the FLCS. I am using an Arduino Leo/Pro Mini as the ‘brains’. I will post a blog entry when I get done.
      I also managed to snare a Suncom SFS Throttle for €30 on eBay, so when that arrives, I will do a similar mod on that.
      / Gerry

      http://gerryk.com/

    • Turns out the Thrustmaster F16 FLCS, Cougar and F22 use shift-registers in the handle that feed SPI down a 1-wire interface (well, 5 wires if you include +ve, GND, enable and CLK).

      I have wiring & code here if you’re interested -> http://gerryk.com/node/45

      Regards
      Gerry

  5. Hi Shai…
    With your help, I finished the throttle conversion using a Teensy. I have a blog-post here: http://www.gerryk.com/node/46
    I used your wiring drawing, but will replace it with another if you wish… otherwise, credit where due and all.
    Thanks for all the work and information you provided.
    // Gerry

    • shaise says:

      Great!

      I was happy help.

      • Jack says:

        Hello Shaise,

        I have an old Suncom I bought at a garage sale,

        Would you happen to have the manual showing how to program this?

        Thanks, Jack

        • shaise says:

          Hi Jack,

          What model of Suncom are you talking about, what type of connector?

          • Jack Houck says:

            Hi Shaise,

            I am finally am back on this project, it has been in storage for a number of years after I moved and found it again. My question regarding the manual was for the original Suncom electronics. However , now I have the time to convert this throttle controller the way it is described in the article. Does anyone happen to have a pcb board for sale? Also, will this need any kind of setup before it can be used? Any help is much appreciated!

            Thanks, Jack

  6. simpit says:

    what is the part number of the tactile switch that you used in your project? thanks!

    • shaise says:

      Hi Simpit,

      The tactile switches used where disassembled from the original PCB of the throttle. Therefore no need to order them separately.
      However, they are quite standard. Any 6x6mm through hole tactile switch with actuator height of 7mm will do. (such as Panasonic EVQ-PAD07K)

      • simpit says:

        thanks for quick reply. i will look into it. i just know i attempted to buy replacement switches back in 2009 when i was modding the same hotas, but switches varied in grams of force for the pressing of the switch. are you on steam? its nice to meet fellow modders, i like to see more of your custom builds, and i also have custom builds also.

        • shaise says:

          I definitely agree buying switches will most likely get you different force specs. Yet another reason to salvage the original ones. However regarding these 4 specific switches there functionality is less important and standard switches might suffice. All other switches of the throttle are left untouched anyways.

  7. Der Gerät says:

    Awesome project! I want to attempt it as well.

    There is one descrepancy in the shopping list, I noticed, though. It says you should buy one 33k resistor, but the partnumber for digikey references to a 33 ohm one. Which one should I get?

  8. Grosu Claudiu says:

    Great project.just finish testing.is there any chance to modify the project instead of using the x and y axis to use x rotation y rotation axis .it will apear in the control panel as linear axis not the cross in the square.

  9. Grosu Claudiu says:

    is there any chance to change the hex file instead of using the x and y axis to use x rotation and y rotation axis???

  10. Darren says:

    I recently unearthed my SFS stick & throttle (again) and remembered coming across your site years ago. I’m getting the itch to fly again, and am wondering if converting this is still “worth it”, and/or if there are any lessons you’ve learned recently that would change how you did this?
    Also looking for the boards, if the answer is “still worth it”. Thanks!

    • Victor says:

      I converted mine a year ago. I would say its still worth it. The only thing that I don’t like are the pots on this throttle and I wish it had buttons/switches on the base. I wanted to get a warthog but it was out of stock on Amazon, and still is.

      I might have some extra boards left over, if someone is interested.

  11. Ignacio says:

    Yes I know…too late but your work its great, nice job and best regards from Spain!!!! Cheers!!!.

Leave a Reply

Your email address will not be published. Required fields are marked *

*