{"id":26923062,"url":"https://github.com/controllercustom/gigaxac_usb","last_synced_at":"2025-04-02T00:38:48.969Z","repository":{"id":268775862,"uuid":"901849372","full_name":"controllercustom/gigaxac_usb","owner":"controllercustom","description":"Connect Sony Access Controller to Xbox Adaptive Controller","archived":false,"fork":false,"pushed_at":"2024-12-18T20:25:37.000Z","size":402,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-18T21:27:47.688Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/controllercustom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-11T12:36:31.000Z","updated_at":"2024-12-18T20:25:41.000Z","dependencies_parsed_at":"2024-12-18T21:38:18.696Z","dependency_job_id":null,"html_url":"https://github.com/controllercustom/gigaxac_usb","commit_stats":null,"previous_names":["controllercustom/gigaxac_usb"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fgigaxac_usb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fgigaxac_usb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fgigaxac_usb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fgigaxac_usb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/controllercustom","download_url":"https://codeload.github.com/controllercustom/gigaxac_usb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246735366,"owners_count":20825223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-02T00:38:48.456Z","updated_at":"2025-04-02T00:38:48.957Z","avatar_url":"https://github.com/controllercustom.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gigaxac_usb -- SAC to XAC DIY Adapter\n\n![Photo of SAC connected to XAC](./images/gigaxac.jpg)\n\nThe Microsoft Xbox Adaptive Controller (XAC) for Xbox consoles and the Sony\nAccess Controller (SAC) for PlayStation 5 consoles work well for their\nrespective consoles. The SAC comes with a variety of different joystick toppers\nand button shapes but has only four input jacks for external buttons and\njoysticks. The XAC includes 19 input jacks for external buttons and joysticks\nbut has only two big buttons, a direction pad, and no joysticks.\n\nSince the XAC does not include any joysticks, the SAC seems like a good add-on\nfor the XAC. Unfortunately, the SAC does not work because the XAC accepts a\nsmall set of USB controllers. If only there were a USB adapter that makes\nthe SAC work when plugged the XAC. This project, gigaxac_usb, creates that\ngiga XAC USB adapter.\n\n![SAC, XAC, and Xbox One controller on Xbox One console](./images/sac_xac_gigaxac_usb.svg)\n\nThe gigaxac controller (SAC + gigaxac_usb + XAC) can be used on Xbox consoles\nand Windows. Using commercially available USB controller adapters (for example,\nMayflash and Brook Gaming) the gigaxac controller can be used on PlayStation 4,\nPlayStation 5, and Nintendo Switch.\n\nFor a gigaxac deluxe controller, plug SAC + gigaxac_usb into both USB host\nports on the XAC. All three game controllers work for Player 1. A fourth\ncontroller may be added using either by using assist/co-pilot features.\n\n![SAC x 2, XAC, and Xbox One controller on Xbox One console](./images/sac_xac_gigaxac_usb_squared.svg)\n\n## Prepare the gigaxac_usb Adapter Hardware\n\n* Adafruit Feather RP2040 with USB Type A Host\n* Snap-on Enclosure for Adafruit Feather RP2040 USB Host\n\nPut the RP2040 board in firmware update mode by pressing and holding the BOOT\nbutton then pressing and releasing the RESET button. Then release the BOOT\nbutton. A USB flash drive should appear named RPI-RP2.\n\nDrag and drop the [gigaxac_usb UF2\nfile](https://github.com/controllercustom/gigaxac_usb/releases/download/r2024-12-15/gigaxac_usb.ino.adafruit_feather_usb_host.uf2)\non the RPI-RP2 drive.  After a few seconds, the drive disappears indicating the\nupdate is done. The adapter is ready to use.\n\n## Prepare the SAC\n\nTo configure the SAC, use a PlayStation 5 or [this web site](https://www.jfedor.org/ps-access/).\n\nWhen shipped from the factory, most of the SAC buttons do not work so this is\nrequired to use all buttons and input jacks.\n\n## Prepare the XAC\n\nUse the Xbox Accessories app to upgrade to the newest firmware. The app is\nincluded in Xbox Consoles and can be installed on Windows from the\nMicrosoft Store with no charge.\n\nUse the Xbox Accessories app to remap the buttons. The default profile is not\nuseful.\n\nPowering the XAC using a 5V 2A wall adapter is required. The voltage must be 5V\nbut the current rating may be 2A or higher. The XAC only draws as much current\nas it needs. The SAC can draw as much as 0.5 A that the XAC cannot supply\nwithout the wall adapter.\n\n## Other consoles\n\nThe XAC is well supported by commercial controller adapters from Mayflash\nand Brook Gaming so gigaxac_usb can be used to bridge SAC on other consoles.\n\n### PlayStation 4\n\nThe Mayflash Magic-S Pro is shown in the following diagrams but the Magic-S\nUltimate also works. The DS4 controller is connected to the Mayflash\nadapter via Bluetooth so this controller can be used by a helper or a co-pilot.\nThe PS4 console does not have an assist or co-pilot feature but the Mayflash\nadapter can perform that function.\n\nAll the game controllers are for Player 1.\n\nThe Mayflash adapter supports other Bluetooth controllers. For example, a\nDualSense controller can be used instead of the DS4 controller.\n\n#### SAC and DualShock 4 on PlayStation 4\n![SAC and DualShock 4 on PlayStation 4](./images/sac_gigaxac_usb_mayflash_ps4.svg)\n\n#### SAC, XAC, and DualShock 4 on PlayStation 4\n![SAC, XAC, and DualShock 4 on PlayStation 4](./images/sac_xac_gigaxac_usb_mayflash_ps4.svg)\n\n#### SAC x 2, XAC, and DualShock 4 on PlayStation 4\n![SAC x 2, XAC, and DualShock 4 on PlayStation 4](./images/sac_xac_gigaxac_usb_mayflash_squared_ps4_squared.svg)\n\n### PlayStation 5\n\nThe SAC and DualSense are designed for PS5 so both can be used at the same time\nwithout adapters or XAC. Two SACs can be used also. But if the XAC must be\nincluded, the Brook Gaming Wingman FGC 2 adapter is the only option at this\ntime. Sony may in the future ban the FGC 2 so let the buyer beware.\n\nThe FGC 2 controller adapter does not support Bluetooth. But the PS5 can use a\nDualSense as the main controller and the FGC adapter as the assist controller.\nAll controllers work for Player 1.\n\n#### SAC and XAC on PlayStation 5\n![SAC and XAC on PlayStation 5](./images/sac_xac_gigaxac_usb_brook_ps5.svg)\n\n#### SAC x 2 and XAC on PlayStation 5\n![SAC x 2 and XAC on PlayStation 5](./images/sac_xac_gigaxac_usb_brook_ps5_squared.svg)\n\n### Nintendo Switch\n\nThe Mayflash Magic-NS adapters is shown in the following diagrams but other\nadapters may work. The Joy-Con controllers are connected to the Mayflash\nadapter via Bluetooth so this can be used by a helper or a co-pilot. The Switch\nconsole does not have an assist or co-pilot feature but the Mayflash adapter\ncan perform that function. All the game controllers are for Player 1.\n\nThe Mayflash adapter supports may other using USB and Bluetooth controllers.\nFor example, a DualSense controller can be used instead of the Joy-Cons.\n\n#### SAC on Nintendo Switch\n\n![SAC on Nintendo Switch](./images/sac_ns.svg)\n\n#### SAC and Joy-Cons on Nintendo Switch\n\n![SAC and Joy-Cons on Nintendo Switch](./images/sac_ns_mayflash.svg)\n\n#### SAC, XAC, and Joy-Cons on Nintendo Switch\n\n![SAC, XAC, and Joy-Cons on Nintendo Switch](./images/sac_xac_ns_mayflash.svg)\n\n#### SAC x 2, XAC, and Joy-Cons on Nintendo Switch\n\n![SAC x 2, XAC, and Joy-Cons on Nintendo Switch](./images/sac_xac_ns_mayflash_squared.svg)\n\n## Building from source code\n\n### Arduino IDE Setup\n\nAdafruit provides a tutorial on installing the Arduino IDE for this board.\n\nhttps://learn.adafruit.com/adafruit-feather-rp2040-with-usb-type-a-host/arduino-ide-setup\n\n### Libraries\n\nInstall the following libraries using the IDE Library manager.\n\n* \"Adafruit TinyUSB Library\" by Adafruit\n* \"Pico PIO USB\" by sekigon-gonnoc\n\nInstall the following libraries from github.com by downloading zip files\nthen installing them using the IDE Library manager \"Install .ZIP library\" option.\n\n* https://github.com/touchgadget/switch_tinyusb\n\n### Build Options\n\nThe following are the options that must be changed.\n\n* Set \"Board\" to \"Adafruit Feather RP2040 USB Host\"\n* Set \"CPU Speed\" to 120 MHz.\n* Set \"USB Stack\" to \"Adafruit TinyUSB\".\n\n![Screen shot of Arduino IDE options for this project](./images/build_options.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrollercustom%2Fgigaxac_usb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontrollercustom%2Fgigaxac_usb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrollercustom%2Fgigaxac_usb/lists"}