Sunday, August 14, 2016

The CY-822B USB led-joystick controller board

I wanted to build myself a MAME pedestal with a Raspberry Pi 3. I ordered a cheap joystick plus LED kit from eBay, and it came with this controller board. The print on the back reads USB CY-822B led-joystick. After a lot of Google searches, I came up pretty empty on results. So I decided I would post what I know about this board for others.

This board should be AUTOMATICALLY recognized by your OS. Windows, Linux, Mac, whatever. On Windows is appears as a Generic USB Joystick / HID-compliant game controller.

Below, you can see what the back side label says, and what the MAME software reads it as. Example, the top plug is K1 according to the back of the board (see the back side of the board picture below). The MAME software reads the button plugged in as L2.
USB CY-822B led-joystick controller board - face
USB CY-822B led-joystick controller board

USB CY-822B led-joystick controller board - backside
USB CY-822B led-joystick controller board - back side

I ordered another set of buttons and joystick a while later and received a blue variation of this board. This one had a female USB-B port as well.






I read another post somewhere referring to this board as the Bosega 822. Is it made by Bosega? I have no clue.

Bosega USB CY-822B led-joystick schematic
Bosega USB CY-822B led-joystick schematic


Many eBay listers just copy bad information from other sites for their listings, and don't provide any useful information for noobs like me in setting this up.

MODE - this port is absolutely useless. Might as well fill it in with hot glue. What does it do? It switches the Joystick input from the digital d-pad to the analogue joystick. Thing is, this board doesn't have the analogue joystick socket. It may be possible to solder on some sort of connection for an analogue joystick, but that will have to be for another post. NOTE: if the joystick isn't working for you, connection a button to MODE and try switching modes.

TURBO - this button is used by pressing it PLUS any other of the switch buttons. Let's say I want to put the L1/A button into auto fire. It press AUTO and L1/A at the same time. L1/A is now in auto fire mode. Instead of having to tap tap tap constantly on L1/A, I can just hold it down, and the controller will tap tap tap for me.

CLR - this clears the button. If L1/A is in AUTO mode, I press CLR + L1/A to set it back to normal mode.

AUTO - use it in the same way as TURBO. The difference is the controller will tap tap tap the button without me having to press the button.

EDIT: February 2020 - I happened to be tinkering around with this board and realized I made an error in some of my descriptions. I've corrected my errors. I've also added some more pictures to explain things better.

Wiring up the buttons


This board is designed to pass USB 5V to an LED button. Depending on how the connector cable is configured, the LED in the button will either always be on, or only illuminate when pressed.

I found this reference image online.


When connected to the controller board


Press to illuminate wiring

LED always on wiring



INNER PIN (the one with the red wire) is COMMON / GROUND.
OUTER PIN is 5V.
CENTRE PIN is trigger

NOTE: The wiring is how I received these from eBay. Having RED as ground/common may be confusing. I would normally use black as ground/common.





Pressing the button sends 5v to the Centre Pin.



My wires came configured as always on. I like the way my MAME console looks with all the buttons always lit up. I'll have to check what the current draw is with all the LEDs lit. Since I have two controllers, that's 24 LEDs drawing 5V from the USB power supply connected to my Raspberry Pi 3. It didn't seem to have any issues. I plan on using a powered USB hub between the RPi3 and controllers anyway.



36 comments:

  1. How can i set up the light of the button ? I would like it turns on all the time and it stops the light while pressing. Thank you

    ReplyDelete
    Replies
    1. I don't think that is possible.

      Delete
    2. So im trying to build an arcade machine for our home;however, im running into a problem. I have two of these set plug in at the same time for player 1 and 2 but it ready player 2 as the js0 and the player one spot as js1. How do i switch these. I already switched the encoders and the usb cables but nothing changed. Also, how do i configure the buttons for the games? They keep switching in the games and i tried programing them in retroarch but its isnt reading the player 1 and 2 buttons and also the coun buttons. I bought the ones from easy get. Any help is appreciated

      Delete
  2. Hey mate, I have the same USB led joystick setup with a Rpi as you have mentioned here... did you manage to get the Pi to see the controller? I have had no luck in being able to configure the controller... what do I need to do?

    ReplyDelete
    Replies
    1. My RPi3 with Retropie installed sees it no problem.

      Delete
  3. Hi.. I have a different Bosega board without led-support so I am basing my comments on that. My board identifies as "0079:0006 DragonRise Inc. Generic USB Joystick". I am assuming yours does the same.

    The DragonRise USB controller is commonly used in clones of the PS3 dual shock gamepad. (with 1,2,3 and 4 corresponding to triangle,circle, cross and square.) If wired up correctly it should be correctly configured in games that support these gamepads.

    I have my 8 button joystick wired up like so:

    K4 K1 R1 L1
    K3 K2 R2 L2

    (yes, R to the left of L is the correct mapping for games like street fighter on PC and consoles as R1/R2 is used as buttons 5 and 6 on a gamepad)

    The MODE switch is far from useless. It switches your joystick from providing output (not input) on axes 0 and 1 (The left analog stick) or axis 4 and 5 (the d-pad). The output on the analog stick is still discrete but provides the output on the left analog stick axes.

    This is especially usefull on linux with kernels 4.4-4.8 as there is a bug in the driver that messes up the analog axes. The d-pad works as intended though.

    ReplyDelete
  4. Thanks for posting this info. I got the same controller board together with a SANWA stick. I was wondering what the mode, turbo and clear inputs were for.

    I also ordered a fake SANWA stick with a non-LED controller board. It will be fun to compare them. The genuine SANWA stick was about 3 times the price and I doubt that it will be 3 times the quality.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. The 2nd black is just daisy chained with the first black wire. The cables and buttons I ordered from eBay came ready to go, already daisy chained.

      Delete
  6. hi guys I have the same board, but I want them to work with ledblinky, Is there any program or plugin that works with these buttons(joystickboard)

    ReplyDelete
  7. Hello, does this require a seperate cable for led power? I assumed it worked off the supplied usb but they aren't working. My PC recognizes it as a game pad when plugged it.

    ReplyDelete
    Replies
    1. My LEDs don't work either. Did you ever get a fix?

      Delete
    2. They should work out the box. Perhaps you have the connectors connected wrongly. They all need to be correct as per above image. Note the little boat like symbol on the plastic for the position.

      Delete
  8. Thanks for the guide. My arcade stick is a 6 button one. which buttons go to which ones if it is a 6 button?

    ReplyDelete
  9. my computer dosent recolonize to usb plug in! =( dose anyone have the driver i can download please.

    ReplyDelete
  10. Hi Guy, Thanks for the post, it was very helpfull.
    My 6 buttons arcade panel is working fine. I just have problem with special commands like "Hotkey + B" or "Hotkey + Y", so impossible to enter the retroarch menu to configure controls. However, "Hotkey + start" is working fine but it's the only one. Does your special commands working?

    Thanks

    ReplyDelete
  11. Hi guys, I am in the middle of making my own arcade machine, and I have the same cy 822 board, but I don't know where to connect the buttons, do they have a certain order in which they go in?

    ReplyDelete
    Replies
    1. Did you work it out? I am just going to plug them in then use the PC to work it out. Or this site.

      Delete
    2. http://html5gamepad.com/

      Delete
  12. Hi guys, I am in the middle of making my own arcade machine, and I have the same cy 822 board, but I don't know where to connect the buttons, do they have a certain order in which they go in?

    ReplyDelete
  13. Thank you! It is hard to find info on this board, and your info is very thorough. I've printed it and I'll stick it inside my arcade cabinet. Awesome!

    ReplyDelete
  14. Merci beaucoup pour se tuto .. il est d'une aide précieuse.

    ReplyDelete
  15. Hi! Thanks so much for the write up!! I'm doing a 6 button per player setup what would conventionally be the top 3 and the bottom 3 buttons in relation to this board? I.e. the symbols on the back like l1 l2 r1 and then k1 k2 k3 for the second row?

    ReplyDelete
  16. First of all thank you very much. Do you know of there is a windows xp driver? My old pc doesn't recognized it.

    ReplyDelete
  17. Just so people are aware. I was having a heck of a time getting daphne to work with this joystick. After days of racking my brain and getting bits of information from all over, using the mode button switches the joystick to point of view hat . Now daphne works on retropie, finally.

    ReplyDelete
    Replies
    1. Thanks very helpful answer. I can get the Axis right now in mode button but still not getting rigth the rest of buttons config in /opt/retropie/configs/daphne dapinput.ini I have tryied the jstest and fixed the numbers but the emulator still not recognicing them after full restart.

      Delete
  18. This comment has been removed by the author.

    ReplyDelete
  19. I know this is a bit late but I just need a few questions answered if possible. Does this encoder board plug into the raspberry pi USB slots? If so, does the raspberry pi 3B have enough amperage to power 2 controller boards with LED buttons? Lastly, what usb hub will work with this when plugging into a pi? The one i bought only powered the LED's but didn't allow the Pi to recognise it. Thanks

    ReplyDelete
    Replies
    1. You can plug two encoder directly to the usb slot of your Pi3. it works perfectly and it recognize it well. You will just have to configure the buttons in the edit files...

      Delete
  20. This is great information. I have mine working but I need some extension cables due to the placement of some of my buttons. But I have no clue what type of connector that is. Do you know the style / pat #???

    ReplyDelete
    Replies
    1. look for 2.8mm 3 Pin Wire cables for LED Buttons

      Delete
  21. Is there any way to treat the AU, AD, AL, and AR ports to be treated as different inputs then the 8 way joystick? I want to use them as an independent d-pad while using the joystick, but they are recognized as the same input. Is there someway to get around this?

    ReplyDelete
  22. I have got same board but for some reason the led2 is on but the led1 id off, afaik led2 is for power on and led1 for Mode LED light but its off and i get no les light on buttons, does anyone knows why?

    ReplyDelete
  23. Thanks for this. Does anyone have any experience configuring these boards with Batocera?

    ReplyDelete
  24. Buenas, yo tengo un problema con esta placa, no puedo hacer funcionar tengo dos y se desconfiguran constantemente. El player 2 me lo toma como 1 . Cambié los USB y continúo con el problema. Estoy hacer meses con el problema. Leí que les pasó a varios pero no di con la solución. Tengo Pi4 y con joy de xbox360 mi arcade anda bien, pero con los arcade no.

    ReplyDelete