{"id":19570002,"url":"https://github.com/dxbang/bangbuttons","last_synced_at":"2026-04-16T02:31:40.119Z","repository":{"id":214366386,"uuid":"736340669","full_name":"DxBang/BangButtons","owner":"DxBang","description":"2x35 Buttons Box for Sim-Racing","archived":false,"fork":false,"pushed_at":"2024-05-01T04:27:25.000Z","size":104,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T10:33:47.461Z","etag":null,"topics":["arduino","arduino-leonardo","assetto-corsa-competizione","button-box","buttons","controller","cpp","gamepad-controller","joystick","joystick-control","keyboard","macros","sim-racing","simracing"],"latest_commit_sha":null,"homepage":"https://bang.systems/project/buttonbox/buttons","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DxBang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-12-27T16:32:44.000Z","updated_at":"2024-10-24T08:25:15.000Z","dependencies_parsed_at":"2023-12-31T09:23:21.387Z","dependency_job_id":"142f9ee8-a433-4fbe-8aa7-9c54440ddd49","html_url":"https://github.com/DxBang/BangButtons","commit_stats":null,"previous_names":["dxbang/bangbuttons"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DxBang/BangButtons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DxBang%2FBangButtons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DxBang%2FBangButtons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DxBang%2FBangButtons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DxBang%2FBangButtons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DxBang","download_url":"https://codeload.github.com/DxBang/BangButtons/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DxBang%2FBangButtons/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31868492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","arduino-leonardo","assetto-corsa-competizione","button-box","buttons","controller","cpp","gamepad-controller","joystick","joystick-control","keyboard","macros","sim-racing","simracing"],"created_at":"2024-11-11T06:13:10.859Z","updated_at":"2026-04-16T02:31:40.102Z","avatar_url":"https://github.com/DxBang.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bang Buttons\n\nA Sim Racing Button Box with support for 6x6 buttons with 1 button working as a \"shifted\" button called BANG. The BANG button is primarily used to switch allow for 35 more buttons, so giving a total of 70 buttons. Holding the BANG button down and pressing the ENGINE button allows the user to change game profiles such as Assetto Corsa Competizione (more games to be added), or direct Keyboard and Joystick buttons.  \n\n[Layout Preview](https://bang.systems/project/buttonbox#bangbuttons).  \n\n\n_Tips_  \n[Get your USB Products IDs at pid.codes](https://pid.codes).  \n\n\n## Patch Notes\n### 1.0.0\n- Initial Release\n- Added support for 6x6 buttons\n- Added support for SHIFT button\n### 1.0.1\n- Renamed SHIFT button to BANG button\n- Added Asseto Corsa Competizione macros to buttons\n- Renamed keyboard presses to prefix as keyStuff\n### 1.0.2\n- Added support for Joystick\n- Added BANGED support for Joystick\n### 1.0.3\n- Tweaked some ACC macros\n- Tweaked Color HSL \u0026 RGB \n### 1.0.4\n- Added BANGED support for ACC macros\n### 1.0.5\n- Added support for keyboard\n- Added BANGED support for keyboard\n### 1.0.6\n- Tweaked ACC Banged Engine start to 1s\n### 1.0.7\n- Added support for Arduino Micro\n- Changed to HID-Project instead of Keyboard.h\n- Added Multimedia keyboard support for testing\n\n\n## Build\nUse PlatformIO for VSCode to build the firmware.  \n\n## Setup\nSoder the USB cable to the [Bang Systems Matrix 6x6 Grid PCB](https://bang.systems/project/pcb/matrix-grid) and connect the I/O pins to the Arduino Leonardo/Micro board. \n\n```cpp\nconst unsigned char ROW_NUM = 6;\nconst unsigned char COL_NUM = 6;\n\nchar buttonsGrid[ROW_NUM][COL_NUM] = {\n\t{B_ENGINE, B_BB_UP, B_RAINLIGHT, B_CYCLE_LIGHT, B_FLASH, B_INDICATOR_LEFT},\n\t{B_IGNITION, B_BANG, B_WIPER, B_ABS_DOWN, B_CAM_CHASE, B_CAM_COCKPIT},\n\t{B_PIT_LIMITER, B_TC_UP, B_INDICATOR_RIGHT, B_BB_DOWN, B_CYCLE_CAMERA, B_CAM_BONNET},\n\t{B_TIME_TABLE, B_NAV_SELECT, B_ABS_UP, B_EM_DOWN, B_NULL, B_NULL},\n\t{B_MFD_PITSTOP, B_MFD_ELECTRONICS, B_TC_DOWN, B_TCC_UP, B_TCC_DOWN, B_EM_UP},\n\t{B_MFD_STANDINGS, B_MFD_POSITIONS, B_NAV_UP, B_NAV_RIGHT, B_NAV_DOWN, B_NAV_LEFT}\n};\n\n\nunsigned char rowPins[ROW_NUM] = {2, 3, 4, 5, 6, 7};\nunsigned char colPins[COL_NUM] = {A0, A1, A2, A3, A4, A5};\n```\n\nSet DEBUG to true in the ```Bang.h``` file to enable the debug mode.  \nUncomment the ```#include \u003cGame/ButtonsDebug.h\u003e``` in the ```main.cpp``` file to enable the debug mode and uncomment the Debug Controller under the ```Controller controllers[] ...``` in the ```main.cpp``` file. This will allow you to test the buttons and place the correct value for the ```buttonsGrid```. Best way is to follow the buttons. e.g. Press the button you want for ```B_BANG``` and check the name printed in the debug console. Lets say it says ```B_ENGINE``` then replace it with ```B_BANG``` and then find the location for ```B_ENGINE``` and replace, etc etc etc.  \n\n\n\n### USB Product ID\n_untested_  \nEdit the Arduino hardware boards.txt file:  \n```txt\n---\nleonardo.build.usb_product=\"Bang Buttons\"\nleonardo.build.vid=0x1209\nleonardo.build.pid=0xB501\nleonardo.build.board=AVR_LEONARDO\nleonardo.build.core=arduino\nleonardo.bootloader.low_fuses=0xff\n\n\nbangsystemsbangbuttons.name=Bang Buttons\nbangsystemsbangbuttons.vid.0=0x2341\nbangsystemsbangbuttons.pid.0=0x0036\nbangsystemsbangbuttons.vid.1=0x2341\nbangsystemsbangbuttons.pid.1=0x8036\nbangsystemsbangbuttons.vid.2=0x2A03\nbangsystemsbangbuttons.pid.2=0x0036\nbangsystemsbangbuttons.vid.3=0x2A03\nbangsystemsbangbuttons.pid.3=0x8036\nbangsystemsbangbuttons.vid.4=0x1209\nbangsystemsbangbuttons.pid.4=0xB501\n\nbangsystemsbangbuttons.upload.tool=avrdude\nbangsystemsbangbuttons.upload.protocol=avr109\nbangsystemsbangbuttons.upload.maximum_size=28672\nbangsystemsbangbuttons.upload.maximum_data_size=2560\nbangsystemsbangbuttons.upload.speed=57600\nbangsystemsbangbuttons.upload.disable_flushing=true\nbangsystemsbangbuttons.upload.use_1200bps_touch=true\nbangsystemsbangbuttons.upload.wait_for_upload_port=true\n\nbangsystemsbangbuttons.bootloader.tool=avrdude\nbangsystemsbangbuttons.bootloader.low_fuses=0xff\nbangsystemsbangbuttons.bootloader.high_fuses=0xd8\nbangsystemsbangbuttons.bootloader.extended_fuses=0xcb\nbangsystemsbangbuttons.hex\nbangsystemsbangbuttons.bootloader.unlock_bits=0x3F\nbangsystemsbangbuttons.bootloader.lock_bits=0x2F\n\nbangsystemsbangbuttons.build.mcu=atmega32u4\nbangsystemsbangbuttons.build.f_cpu=16000000L\nbangsystemsbangbuttons.build.vid=0x2341\nbangsystemsbangbuttons.build.pid=0x8036\nbangsystemsbangbuttons.build.usb_product=\"Bang Buttons\"\nbangsystemsbangbuttons.build.board=AVR_LEONARDO\nbangsystemsbangbuttons.build.core=arduino\nbangsystemsbangbuttons.build.variant=leonardo\nbangsystemsbangbuttons.build.extra_flags={build.usb_flags}\n\nbangsystemsbangbuttons.build.usb_product=\"Bang Buttons\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxbang%2Fbangbuttons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdxbang%2Fbangbuttons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxbang%2Fbangbuttons/lists"}