Zero delay USB Joystick Encoder.

Enter the “Zero Delay” USB joystick encoder. A great solution to attain that retro feeling!

This entry isn’t as much of a tutorial but an over view of a device that has been selling on the net known as a “Zero delay USB Joystick Encoder.” It goes by other names such as a a “DIY Arcade replacement controller” or a “DIY Joystick control board.” Either way you slice it these boards are coming from China anywhere from as low as Three U.S. Dollars to as much as ten U.S. dollar depending on the features you want such as wiring harness and USB cables.

Would you like to know more?


betamax video tape - S-Config.ComVideo mirrors:

In case you have no-script enabled or for some reason cannot see the title video on this website. I have provided direct links for these videos.

  • WebM – Link – This is the newest video standard, works great on Opera, Firefox, Chrome, and newer android phones, not good for Safari, IE, Apple.
  • MP4 – Link – The most compatible codec but also rather large in file size. Make take a while to download.
  • OGV – Link – the fallback codec for older PC’s and Linux USB stick OS’s. 1st generation web video streaming based on Ogg-Vorbis encoding.

The need for joystick controllers.

Initially, in order for you to make your own joystick you would of course first collect all of the parts such as the joystick, buttons, wood, and finally the controller. When I first went down this adventure I bought an I-PAC controller which had great software and did the job perfectly but unfortunately was almost $40(USD) in price! While it was great to get a controller that served as a near-zero delay system that I could hook up to my PC. I decided to look for cheaper alternatives out there. Initially we thought it would be awesome load some virtual joystick software on a USB compliant aurdino. It turns out that China has beat us to the punch on this one.

zero delay joystick encoder board and cables.

For this blog we purchased the 7$(USD) kit as it came from an American vendor on Ebay. It came with the following items:

  • The encoder board.
  • a USB male A cable to 4-pin molex connector
  • 10x red and black joystick/button connectors
  • 1x joystick connector.

Notes on the 3rd party knock off Chinese joystick and buttons.

DIY USB joystick and buttons for the china encoder board.

Picture above: A 2-pack of knock-off china buttons and joysticks.

The wiring harness is only compatible with the buttons and joysticks that china provides (but that does not stop anyone with a soldering iron!) These buttons and joysticks are not HAPP quality by any stretch of the imagination. The company which made these are Seimitsu which is a knock-off of the official Sanwa buttons. Complete sets typically sell anywhere from $14(USD) to $28 USD. Compare that to a Suzo/HAPP DIY kit and you could pay that much for the joystick alone!

It should also be noted that due to the nature of these being china knock-offs of legit joystick controllers. They may also come in under different names. Such as “Joymee” or “Seimitsu” which look remarkably similar to the Samwa brand but are pure shit.

Seimitsu back connectors

The quality on the Seimitsu controllers are overall lacking which is why I only bought a handful of switches for my project. Although they are cheap feeling the major advantage of the Seimitsu/Sanwa buttons is they are very shallow making it easy to fit into project box cases like the ones we tend to use for many of our projects.

The joystick encoder board.

Joystick encoder board front and back.

When you look at the board itself there isn’t really a whole lot going on. Initially these boards came with a PS2 connector. Thus, why the button layout will be similar to that of a PS2 controller with R1, L1, R2, L2, etc. But there isn’t a whole lot going on here because China threw some electrical epoxy onto the chip. The big thing we with to point out to you is mind where the traces are. Notice how the bottom of the board all of the traces are connected together? That’s ground.

PSX/PS1/PS2 version.

What do you mean “Initially these boards came with a PS2 connector?” I want to hook one of these bad boys up to my PS1/PS2 !

Zero Delay Controller with PSX Port.

Although not as abundant or cheap as the Zero Delay Encoder used in this blog they are still available. If you type in “Zero Delay Encoder PS2” into Ebay you should get results for a handful of these controllers. Please keep in mind that because half of the Ebay community does not even know what they are selling that you will have to look out if the board you are purchasing has the PSX Connector pictured above. Ideally the vendor should be able to sell you the male PSX wiring harness to go along with it. Prices on these boards can range from $12(USD) to $30(USD) depending on how complete of a kit you want to choose.

Reversed grounding wires.

Connectors for joystick buttons.

If you look at the wires you’ll quickly find out that the red wire goes to ground and the black wire goes to your signal. We have lost count as to how many times the Chinese have refused to follow a wiring color standard as ground should always be black/brown and red is supposed to be signal or hot. This isn’t a problem with buttons as buttons are isolated. The problems get to connectors like the DB15 where you have one ground lead (pin1) and the rest are all signals that’s where the real problems begin to kick in! It was a mistake that was corrected by pushing out the Molex connectors using a 90 degree pick and then re-seating them in the right direction. If you put your signal trace to ground and start pressing buttons some really weird things happen like having to hold down multiple buttons to get one button to fire. Or suddenly having all directions active.

Extra parts and tools:

extra cables and parts for the DIY joystick encoder project.

The amount of parts you may use will totally be up to you and what you want out of your joystick encoder. Here’s a list of my parts.

  • Hammond style ABS plastic box
  • 4x rubber feet
  • 2x Seimitsu SPST buttons for “start” and “Select”
  • 2x panel mounted RJ-45 female connectors
  • 1x panel mounted USB “B” Style connector
  • 1x DB15 female connector.
  • 1x DB9 male connector.
  • 4x SPDT switches (extracted from old cash register drawers)
  • 3x small SPST buttons (used for the function mode buttons)
  • 2x LED’s with holders so we can mount the LEDs to the outside of the case.
  • Big pile “O” wire!

Alternative parts:

DB9 and DB15 breakout headers.

For those who are totally not feeling the soldering part of this blog. You can pick up what are known as “Terminal breakout connector” And they come in a variety of types and sizes. What is pictured above is male DB9 and DB15 but you can get them in both male and female components. These are super handy because if you mess up a wiring configuration you can simply rip them out and start over with a simple flat head screwdriver. The downside of these is they are a little more expensive then just getting a header which you could get for free out of old computer screw or almost nothing from your local electronics store.

Simply clip the alegator clips off with your cutter/plyers and slide them into the breakout connector. Use a flat head screw to tighten the wires in place. done!

The C=64 / Amiga / Atari joysticks are expecting DB9 male at the base.

The Cobalt Flux DDR pad is expecting a DB15 female at the base.


  • Soldering Iron
  • Small screwdrivers to lock the panel mounts into the ABS plastic and for tapping screws on the top cover of the case.
  • Dremmel with drill bit for carving out our holes in the ABS plastic
  • Files for smoothing out edges and for making the square edges a little cleaner.
  • Continuity tester – For actually making sure that you are connecting to the right pins on all sides.
  • pliers and/or wire strippers for soldering all of the connectors in.


Explanation of parts for our joystick encoder.

For me I wanted something that can test my C=64 and hook my cobalt flux DDR pads to right away similar to my v1 box I did with the I-PAC controller. But also be able to hook up RJ-45’s like my version 2 I-PAC box. Unlike the I-PAC which maps to a keyboard this encoder board maps to joystick.

Hardware switchable input.

If anyone has ever tried the Xbox 360 dance dance universe pad on their PC. You’ll know this problem very well where if you step and hold pads in the opposite direction the D-Pad only registers one direction. By adding 4 single pull switches into the mix we can redirect the direction pads to buttons allowing this joystick encoder to be used in situation like DDR/Stepmania holding all 4-6 buttons if we really wanted to.

Assembly of our joystick encoder.

Terrible wiring job of my joystick encoder board.

This is one of my not-so-proud moments in cable management. But it was totally unavoidable given that you have wires coming in from four different ports and the switches as well diverting direction pads to shoulder buttons of this controller. But it actually assembled very well. You’ll also note that the USB “B” connector also has the wrong wiring color for everything and had to do a continuity test on that as well prior to plugging it into the PC. Finally, the board itself is held down by Velcro as it doesn’t need much to remain seated and stable inside of the confines of this box.

The small LEDs were de-soldered off of the board allowing larger ones to be routed to the outer half of this case. The LED clamps allow for easy removal in case we ever have to eject this board.

Installing the joystick encoder board.

zero delay joystick encoder - device manager.

This is by far the greatest feature of this little board is that the moment you hook it up to your PC, or Raspberry Pi, or even Mac, it finds drivers for a generic joystick and that’s it!

Zero Delay Joystick Encoder board - Hardware ID

Pulling up the Hardware ID gives a VID_0079&PID_0006 Which simply put is a Generic USB Controller device ID that has existed from windows 95 all the way to today with Windows 10.

Verification of joystick functionality.

To pull up the window above. You can press the window key + R to bring up a rum prompt and type in:


Then click on the properties button.

Xbox receiver on windows 10 - control menus.

Alternatively, you can click on your windows logo and click on settings, devices, connected devices, and scroll down to devices and printers.

Zero Delay Joystick Encoder board - Devices and Printers.

Right-Click the Generic USB Joystick in Devices and Printers and click on properties.

Zero Delay Joystick Encoder Board- Properties.

From here you can take a flat head screwdriver and touch the ground with one of the signal pins to activate a button. Or, Plug the wires into buttons and begin pressing them to start building your very own DIY joystick.

What are the Pinouts of the joystick encoder?!?:

Zero Delay Joystick Encoder DIY pinouts.


Excluding the USB “B” connector Pinout i’ll try it break it down for you:

12Trigger 3 R - - -
11Trigger 3 L - Pin 10 -
10SelectRJ45 #2 Pin 7 - -
09StartRJ45 #2 Pin 6 - -
08Trigger 1 RRJ45 #2 Pin 5 - -
07Trigger 1 LRJ45 #2 Pin 4 - -
06 Trigger 2 RRJ45 #2 Pin 3 - -
05 Trigger 2 LRJ45 #2 Pin 2 - -
04SquareRJ45 #2 Pin 1 Pin 9 -
03TriangleRJ45 #1 Pin 7 Pin 8 Pin 5
02CircleRJ45 #1 Pin 6 Pin 7 Pin 9
01X buttonRJ45 #1 Pin 5 Pin 6 Pin 6
ADD ArrowRJ45 #1 Pin 4 Pin 3 Pin 2
AUU ArrowRJ45 #1 Pin 3 Pin 2 Pin 1
ALL ArrowRJ45 #1 Pin 2 Pin 4 Pin 3
ARR ArrowRJ45 #1 Pin 1 Pin 5 Pin 4
GNDGNDRJ45 #1 & #2 Pin 8 Pin 1 Pin 8

Just to run through what the connectors are again:

  • Input – The input source written on the USB joystick encoder board.
  • PS2 – What the button represents if it were hooked to a PS2 joystick. (only relevant if your USB joystick encoder has the additional PS2 port on it.)
  • RJ45 – This is a proprietary port set that we use for joysticks as it presents a cleaner approach to hooking joysticks up. See this blog article about the V2 stepmania pad.
  • DB15 – This is for the Cobalt Flux version 2 dance pads. There are other dance pads which also use the DB15 connection system and you may have to make modifications.
  • DB9 – This is our Atari/Commodore 64/Amiga Ports used for some really old joysticks. Keep in mine that the typical joystick only has one button thus additional modification may be necessary to get more buttons onto your old joystick.

Four switch DDR mode.

When the four switches are flipped up the following keys are remapped:

8Trigger 1 RRJ45 #1 Pin 4 Pin 3 Pin 2
7Trigger 1 LRJ45 #1 Pin 3 Pin 2 Pin 1
6 Trigger 2 RRJ45 #1 Pin 2 Pin 4 Pin 3
5 Trigger 2 LRJ45 #1 Pin 1 Pin 5 Pin 4

It’s important to keep the trigger buttons clear so that when switching back and forth with the DDR pads that they do not interfere especially if pin 10 is enabled for sessions such as “Pump it up” where diagonal pads are used and the center is also counted as well. Also, by switching the controls from directions on the joystick to buttons allows us to press all of the buttons on your DDR pad without any interference or extra software support such as XBCD/xb360ce needed with the xbox 360 DDR pads. The reason why the Custom RJ45 connector goes to these pins is in the event we hook up a fighting stick which will utilize many of the buttons this controller has to offer.

Related Blogs:

Waco Joystick Repair title.Interested in the Wico Joysticks? I repaired mine here.

I-Pac Controller for ddr and stepmania version 1.0 title.Want to see version 1.0 that started this project with the I-PAC? Click here.

I-PAC Controller V2 - TitleVersion 2 of my I-PAC controller with refined RJ-45 connectors.

Archived XBCD Title.Joystick key mapping via software for 360 Dance Pads started with the XBCD tutorial.

x360ce-titleWant to learn how to emulate a xbox 360 controller with this encoder? Click here for x360ce.


Final Thoughts:

zero delay joystick encoder box complete.

This really should be considered as my “Version 3” DDR joystick encoder project as it cuts the cost of the controller board itself by 80 percent over the I-PAC controller. Because it’s so cheap I won’t feel bad if any static shorts out any of the pins on this controller either. What I did is super over-kill and if you want to just setup this controller for a single function such as a fighting stick or a DancePad then you will not have the scary wiring nightmare that is going on within our black box.

The zero delay joystick encoder certainly gets the job done and it makes it exceptionally easy to add a joystick onto any computer be it a full pc, a raspberry pi and so-on. For it’s super low cost we couldn’t even feel bad if it sets itself on fire. But for now it’s working like a dream. You can find these on Ebay super cheap too. We say that it’s worth it.


20 thoughts on “Zero delay USB Joystick Encoder.

  1. Yeah, BUT How do I wire my old DB15(2-line) Flightstick for use with this Zero-Delay Joystick adapter? We are talking about something that uses 3 500k potentiometers and some have the “HAT” which might be useful for others.

    • Although the Zero Delay USB Encoder talks about AU, AD, AR, AL the “A” being analog. For your application something like a DIY Arduino solution would be more suitable for your project. I haven’t done a Arduino controller. I hope to cover that later on in the year. But there’s plenty of sites out there which can help getting analog control working for your flight-stick.

      Anyhow, best of luck.

  2. cants use it on 2 player… i have 2 of items plug in same hardware ids and now i cant use the other 1…
    please send me a solution for my problem so that my diy cabinet can be use…

    • We can’t really provide you a ‘solution’ to your problem because there’s too many variables that could be happening here. We don’t know your hardware configuration. We don’t know what troubleshooting steps you’ve already taken. How are you diagnosing your joysticks? Are you using joy.cpl like in the video above? or are you troubleshooting input controls from your emulation software?

      The best we could give you is some tips on troubleshooting in an attempt to see what is happening.

      Just because they share a the same ID’s does not mean they cancel each other out. If this was the case then you could only hook one Xbox 360 controller to a PC at time. Since you used the term “hardware ID” I’m going to assume you’re running on a windows OS. In which case I would recommend checking device manager to see if you have two “HID-Compliant Game controllers” underneath your “human interface devices” catagory. If necessary . Plug player 1 in by itself and see if it powers on. Then plug player 2 in by itself. This is to verify that each of the controllers are online. Now, with device manager open plug in player 1, wait for it detect, and then player 2. We must first determine if you have a DOA controller or more importantly if one of your controllers is drawing too much power knocking your other controller offline.

      Have you tried these two controllers connected on another PC? That’s another way of determining if the USB adapter on your current setup is not correct. A work-around for low-powered USB ports is installing a USB hub that supplies 5vdc power externally. The encoder only need around 100Ma of power, but laptops sometimes will not go past 200Ma without shutting down devices.

  3. Excellent write-up… Hoping you can help with a question I have… I have a zero delay encoder board like the one you have pinned-out here. My joystick is plugged into the Sanwa 5-pin port with a flat cable and everything works fine however I’d prefer to wire this to an iPac2 that I already have in my cabinet to eliminate the extra encoder. The AU, AD, AL and AR connections are obvious however I’m assuming I connect the VDD to 5V but where do I tie in ground since the harness is only 5-Pins and appears to use a common ground on the ZD board?

    • I have the IPAC board as well. Just the Ve edition but still. VDD should be ground as your AU, AD, AL, AR pins are all signal pins. similar to your buttons. In case you want to be extra sure you can check it with your multi-meter and you’ll find that pin 5 goes off ground that way in a continuity test.

      Hope that helps. Thanks for checking out this blog!

  4. Thanks for the guide – I followed and did something similar using the zero delay breakout board. Everything works for a while with my metal pad and the board, but after a little while of playing (varies – sometimes not even half a song on heavy, sometimes I’m good for 5-10), the entire pad stops responding. Research into this topic (reading old forum posts, combing through stepmania, reddit and other sources), tells me that it is static build up causing the USB port to malfunction. I have most of the wires surrounded in ferrite cores (supposedly to help with interference). I have tried using a powered USB hub, which seems to help mitigate the problem, but eventually the static build up will cause the port to give out temporarily (unplugging and replugging into my win7 machine bluescreens, but all is fine after a reboot).

    Do you have any ideas to help accommodate static build up within the custom control box solution – input capacitors/diodes, or a different break out board perhaps? My electronics knowledge is limited – but any information you can provide is greatly appreciated. Thank you.

    • I have heard of this issue before on some of the Stepmania forums. One of the manufacturers talked about using filtering caps to mitigate static build up and to prevent a pad which is prone for static buildup from destroying the chip. I’ll have to do some research on this but I remembered popping open my Cobalt flux controller they lined the I/O pins with .1uf ceramic caps which are tied from signal (up,down,left, right) and the other end to ground and they were placed as close to the IC as possible to act as a buffer from static build-up.

  5. Thanks for the advice. I tried to hook up using the 4 port like you suggested and I get the same results. I am starting to think I received a defective unit. I will continue to troubleshoot. If I come across a solution I will post and update here on this thread.

  6. I purchased 2 sets of buttons, joystick, and 2 encoders from ebay the same zero delay as shown above in the tutorial. I am new to the DIY arcades. I have a MAME arcade I’ve built using an X-Arcade Tank Stick which basically works itself and configures itself. These zero delay encoder seems to be self explanatory and so easy I purchased them thinking it was going to be a plug and play type project. I can get my six buttons to work and I even plugged in an extra switch for my MODE to convert my analog to digital and my joystick will not recognize all directions. There are two 5 pin Sawna/Molex style connections I use for my LED joystick that are located on the side of my joystick. I’ve connected them straight, upside down, and even switched 5 pin connectors and I cannot seem to get this joystick to work. Any suggestions? When I press the MODE button the green LED comes on and switches to digital but it still doesn’t recognize all directions. Any suggestions would be great. My bartop cabinet is complete and looks sweet but I can’t figure out this joystick.

    • Since there’s 4 ports for the directions next to the 5-pin sanwa labeled AU/AD/AR/AL. Have you plugged your buttons in there to verify directions that way? Just to eliminate a potential defective joystick? Another thing that comes to mind which we found out the hard way when wiring this controller is red goes to ground not black. so when i hooked multiple red leads together (as is common in a MAME setup where the ground wire is tied to the buttons in series) it was actually cancelling out certain buttons and directions from being pressed. after re-wiring all of the red leads correctly so ground was really ground and the signals were separated was when we got complete control of our controller back.

      Anyhow, hope that helped.

  7. Is there some bug, when you press “left”, “down” and “right” at the same time, the console or pc understand it like “up left diagonal”?
    How can I fix it?

    • It’s not really a bug in the controller as much as it is a limitation of the driver. As explained with the C64+DDR project box video. Pressing multiple direction keys cancels themselves out with the default windows joystick driver. A hardware work-around is to install toggle switches to transfer direction to buttons so that games like DDR/Stepmania work properly.

      Hope that helps!

    • If the unit has the red light on (default) it will use analogs.. Only when the mode button is pressed as shown in the video 3:00 does it switch from the red light to a green light indicating d-pads.

      Hope that helps. Thanks for checking out my blog!

  8. I currently have the board and hooked up to a raspberry. I cant figure how to hook up the select button or mode button to reset it. I need a reset button. Can you helo me

Leave a Comment to the Void