Hori Real Arcade Pro Hayabusa (XBox One) teardown and PC mod

Thread in 'Hardware' started by Snaaahhh, 11 Nov 2015.

  1. Introduction

    Recently I decided to buy an arcade stick and last week I ran into a really good offer: a brand new Hori Real Arcade Pro Hayabusa for XBox One for 74 euros that was send back to a webshop for 'not meeting the customers expectations'

    Since there are pretty decent drivers for the XBox One controller for Linux I figured this one would work as well. However hooking it up to my computer it completely failed to work. I also tried it one a friends Windows PC and it too did not recognise the device. So either it was broken or the driver do not recognise this device. I figured that since this was a one time offer, if I send it back I would just get my money and be back at square one, so instead I decided to try and get it to work.

    First I tried if maybe I could get a response out of it from python, then at least I would have a shot at writing a driver for it.
    Since this is not a programming forum I will spare the details (if someone is interested feel free to ask), but no matter what I tried all I got back was a simple 'heartbeat' signal. Every attempt in activating the device (like all XBox One controllers need) or otherwise communicating with it resulted in usb protocol errors. So either this particular device is broken or it has some obscure activation mechanism which I could probably only figure out if I intercepted the communication between it and an actual XBox (which I don't have).

    So after two hours of disappointment I decided to open the thing up and see if could just replace the PCB with an arduino and get it to work that way. In the rest of this post I will show the teardown of the device and in the next post I will give a short guide on modding it for PC use.

    The teardown
    Before opening it up let me say something about the outside of the device. In my opinion it is one of the best looking arcade sticks, no flashy graphics or exaggerated colors, just a simple red on black theme.
    It is a bit too big in my opinion, but I can definitely live with that.
    The unit feels very sturdy and it can probably take a fear bit of abuse. In fact it already survived a fall from my desk on a hard floor after one of my cats decided it was standing on the exact spot he wanted to take a nap.
    Another very nice touch is the cable compartment in the back where the cable can be stored when the unit is not used, very nice!

    Opening the device was just a matter of removing 7 screws, one of which under the 'Warranty void if removed' sticker, then the metal bottom plate just lifts out. The first thing I noticed is how neat the cable management is (third picture). All long cables are held in place by a tie wrap and are color coded, making it very easy to make modifications. Also notice the stress relief on the usb cable, in addition to the rubber bit where it leaves the case the cable is wrapped around two plastic studs to prevent it from tugging on the connector.

    Because this is my first arcade stick I cannot say much about the buttons and stick at this point (there are some videos on Youtube by other people about them if you are interested in that), but I do notice there is no restriction plate (which I knew before buying it). There is however a way to mod one in: http://forums.shoryuken.com/discussion/comment/8688341/#Comment_8688341

    The attention to detail continues if we check the main PCB. It looks very well designed and all PCB design best practises are take into account, someone definitely knows what they are doing. They even labeled all the connections in the silk screen (even for the debug connectors!). Hori also spared no expense on manufacturing as the PCB is clearly made by high quality PCB manufacturer, not just some cheap Chinese one and there is even goldplating on the pads.
    The buttons on the side and the power LED are mounted on separate PCBs .


    All in all I'm very impressed by the build quality of the Hori Real Arcade Pro Hayabusa. Now that I have seen the insides I can imagine why the price is normally around $150 for one of these units.

    Stay tuned for my next post where I'll describe how to mod the stick to work on PC.
    TGGC likes this.
  2. Zaphod77

    Zaphod77 Resident Misinformer

    It has a square gate on it, like most stock fightsticks. that square gate is not replaceable. but as the picture shows, it's possible to add a jlf gate.
  3. Sorry for the log delay. I had an important deadline for my studies last Monday, so I have hardly had time to play tetris let alone write about it.


    As I said in the previous post I planned on replacing the Hori's PCB with and Arduino. Luckily I had an Arduino Leonardo lying around. The nice thing about a Leonardo has the USB communication on the microcontroller itself (rather than as a separate chip), which allows it to emulate a keyboard or joystick directly. The same is true for the Arduino Micro and Due, but not the other ones, so if you plan to use this hack make sure you use one of these models.

    The first step is connecting the joystick and buttons to the Arduino. To connect the joystick I only had to replace the connector with some header pins that plug into the Arduino. I then use pins 10 through 13 on the Arduino, which are conveniently placed next to a ground connection, so no separate ground connector is necessary for the joystick. The buttons each need a ground connection as well, so I needed to connect them all together somehow. Because there is plenty of space inside the case I decided to just use the existing PCB for this since it already connects all buttons to the ground plane. So I left one wire of each button (the ones closest to the edge, which are the ones connected to the ground plane) connected and only cut the other wires. I then soldered the wires I cut on another strip of header pins which I connected to pins 0 through 7. The extra buttons on the side and the white button on the far right I left untouched for now, since I have no use from them at moment. Finally I had to connect the ground of the Arduino to the ground of the existing PCB as you can see in the picture (the grey wire in the bottom right and top of the picture).
    The Arduino itself I just stuck under the connector in the joystick where it fits quite nicely. It might fall out of there sometime and start rattling but I will deal with then when it happens.

    With the connections made it was just a matter of writing the Arduino software. I chose to emulate a keyboard for now, because there is an official Arduino library for that. If I ever feel the need I might rewrite it to emulate an actual joystick.

    Reading the state of the buttons and sending the key commands is very straightforward using the keyboard examples on the Arduino website. The 'hard' part however is debouncing. Each physical button or switch has the tendency to bounce a few times when closed, which could send multiple keystrokes where you want only one. Debouncing code prevents this from happening by ignoring these rapid state changes. The final code can be found here: https://gist.githubusercontent.com/...d9acd4d5f3ca4bb0836d/Arduino_arcade_stick.ino

    Choosing the correct debounce time required some experimenting, but I settled on 35 milliseconds which seems to work very well.

    First impressions
    Again since this is my first arcade stick I might not be the best one to review it however these are my first impressions of using the Hori Real Arcade Pro Hayabusa.

    The joystick feels very nice and solid and the switches make a nice mechanic click when activated. I would have liked the switched to be a little less loud so I could play when other people are in the room without driving them crazy with the constant clicking sound, but on the other hand it is nice to have a little feedback on when the switches activate. Getting used to the joystick I see a huge difference in my playstyle compared to when I used a PS3 controller. Even though I got very accurate using the analog stick it is definitely a lot more comfortable playing with an actual arcade stick and it is a lot easier to play fast now. Not having an octagonal restriction plate is a bit of a limitation for playing very quickly, but right now I'm still focussing on getting to level 999, so this not such a big deal for me now. When I start focussing on speed I will most likely try to hack in a restriction plate.

    The buttons needed quite a bit of wearing in before they worked like they should. When pressing the buttons straight down with my finger exactly in the center the button would activate with very little force however if I put my finger slightly of center or forced the button sideways a little it would require quite a lot more force to activate. This resulting in quite a few misdrops as you can imagine. However after about ten hours of total use this improved a lot and missdrops caused by sticky buttons are now very rare or nonexistent. The buttons are still a bit squeaky but that does not affect gameplay and I expect that go away over time as well.
  4. Just as a small hint, if you do not want to use a ardunio (its a bit over the top for a simple thing like that) you can search for stuff like that: http://www.ebay.de/itm/191558246116

    It is complete with cables, which if you buy them seperate can be quite expensive.

Share This Page