{"id":19871435,"url":"https://github.com/esp32beans/m5stack_touch_sac_joystick","last_synced_at":"2026-05-13T04:39:46.913Z","repository":{"id":242948578,"uuid":"810577008","full_name":"esp32beans/M5Stack_Touch_SAC_Joystick","owner":"esp32beans","description":"M5Stack Dial Capacitive Touch Analog Joystick for Sony Access Controller","archived":false,"fork":false,"pushed_at":"2024-06-05T01:51:39.000Z","size":2346,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T16:35:42.141Z","etag":null,"topics":["arduino","esp32-s3","m5dial","m5stack","m5stack-dial","playstation-5","ps5","sac","sony-access-controller"],"latest_commit_sha":null,"homepage":"","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/esp32beans.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-06-05T01:05:35.000Z","updated_at":"2024-06-05T19:01:33.000Z","dependencies_parsed_at":"2024-06-05T22:03:26.349Z","dependency_job_id":"4732b5bb-3a19-46b8-a225-e815e6924b50","html_url":"https://github.com/esp32beans/M5Stack_Touch_SAC_Joystick","commit_stats":null,"previous_names":["esp32beans/m5stack_touch_sac_joystick"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp32beans%2FM5Stack_Touch_SAC_Joystick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp32beans%2FM5Stack_Touch_SAC_Joystick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp32beans%2FM5Stack_Touch_SAC_Joystick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp32beans%2FM5Stack_Touch_SAC_Joystick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esp32beans","download_url":"https://codeload.github.com/esp32beans/M5Stack_Touch_SAC_Joystick/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241295262,"owners_count":19939780,"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":["arduino","esp32-s3","m5dial","m5stack","m5stack-dial","playstation-5","ps5","sac","sony-access-controller"],"created_at":"2024-11-12T16:12:20.387Z","updated_at":"2026-05-13T04:39:46.887Z","avatar_url":"https://github.com/esp32beans.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# M5Stack Dial Capacitive Touch Analog Joystick\n\n![M5Stack Capacitive Touch Analog Joystick](./images/m5dial_to_sac.jpg)\n\nThe M5Dial analog joystick can be used with the Sony Access Controller (SAC) as\nwell as the Xbox Adaptive Controller (XAC) X1, X2 inputs.\n\nTested using Arduino IDE 1.8.19 and [M5Stack Dial](https://docs.m5stack.com/en/core/M5Dial).\n\nThe XAC has USB host ports for USB joysticks but the SAC does not. The SAC has\nexpansion ports for analog joysticks. This project coverts touchscreen touches\nto analog joystick voltages using a four channel digital to analog converter\n(DAC).\n\nThe level shifter board is used because the M5Stack grove port outputs 5V VCC\nbut expects 3.3V logic levels on SDA and SCL.\n\n## Hardware\n\n![Photo of proto board connected to M5Dial](./images/proto_board_photo2.jpg)\n\n* 1 X Sony Access Controller (SAC) for PS5\n* 1 X M5Stack Dial\n* 3 X Adafruit TRRS Jack Breakout Board\n* 3 X TRRS cables\n* 1 X Adafruit MCP4728 Quad DAC Breakout Board\n* 1 X Adafruit QT 5V to 3V Level Shifter Breakout - STEMMA QT / Qwiic\n* 1 X Adafruit Perma-Proto Half-sized Breadboard\n* 1 X [Seeed Studio Grove - 4 pin Female Jumper to Grove 4 pin Conversion Cable)](https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/110990028/5482559)\n* 1 X 5V phone charger with USB Type C connector to power the M5Dial\n\nNote: For the grove cable, cut off the lock/latch/buckle using wire cutters.\n\n![Illustration of the breakout boards connected to the breadboard](./images/grove_sac_bb.jpg)\n\n## Dependencies\n\nInstall the following libraries using the Arduino IDE Library Manager.\n\n* \"M5CoreS3\" by M5Stack\n* \"M5Dial\" by M5Stack\n* \"M5Unified\" by M5Stack\n* \"M5GFX\" by M5Stack\n* \"Adafruit BusIO\" by Adafruit\n\nThe following can be downloaded as a ZIP file then installed using the IDE \"Add\n.ZIP Library\" option.\n\n* https://github.com/touchgadget/Adafruit_MCP4728_eeprom\n\n## Arduino IDE Build options for M5Stack Dial\n\nEspressif released arduino-esp32 v 3.0.0. V3 has the M5Dial Board type so use\nit. If using an older version such as 2.0.17, select Stamp-S3.\n\n![Arduino IDE 1.8.19 build options v3.0.0](./images/M5Dial_build_options_v3.jpg)\n\nTo get the M5Dial into bootload mode, press and hold the BTN0 button at the\nmiddle of the M5Dial then press and release the RESET button on the right side.\nThen release BTN0. On other ESP32 boards the BTN0 button is usually labeled the\nBOOT button.  The colorful label covers BTN0 but the button can be pressed\nwithout removing the label.\n\n![M5Dial bootload buttons](./images/bootbutton.jpg)\n\n\n## References\n\n[Access™ Controller for PlayStation®5 Expansion Port Specifications Version 1.00](https://www.playstation.com/content/dam/global_pdc/en/corporate/support/manuals/accessories/ps5-accessories/access-controller/access-docs/Access%20Controller%20for%20PlayStation%205%20Expansion%20Port%20Specifications.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesp32beans%2Fm5stack_touch_sac_joystick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesp32beans%2Fm5stack_touch_sac_joystick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesp32beans%2Fm5stack_touch_sac_joystick/lists"}