{"id":16979153,"url":"https://github.com/gareththegeek/gboxcontroller","last_synced_at":"2026-04-13T21:32:26.573Z","repository":{"id":116678954,"uuid":"49973865","full_name":"gareththegeek/GBoxController","owner":"gareththegeek","description":"A 31 button USB Windows game controller built using an ATMega328 microcontroller for use with Flight Simulators","archived":false,"fork":false,"pushed_at":"2016-01-19T20:20:12.000Z","size":1029,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T13:29:49.110Z","etag":null,"topics":["atmega","atmel-studio","flight-simulator","fritzing","game-controller","v-usb"],"latest_commit_sha":null,"homepage":"","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/gareththegeek.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}},"created_at":"2016-01-19T18:33:19.000Z","updated_at":"2023-09-08T17:06:01.000Z","dependencies_parsed_at":"2023-03-20T18:43:05.889Z","dependency_job_id":null,"html_url":"https://github.com/gareththegeek/GBoxController","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gareththegeek/GBoxController","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2FGBoxController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2FGBoxController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2FGBoxController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2FGBoxController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gareththegeek","download_url":"https://codeload.github.com/gareththegeek/GBoxController/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2FGBoxController/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31771826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["atmega","atmel-studio","flight-simulator","fritzing","game-controller","v-usb"],"created_at":"2024-10-14T01:44:58.238Z","updated_at":"2026-04-13T21:32:26.557Z","avatar_url":"https://github.com/gareththegeek.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GBoxController\n\nDesign for a 31 button USB Windows game controller built using an ATMega328 microcontroller for use with Flight Simulators.\n\nThis software was built using the following tools and libraries\n\n\u003ca href=\"https://www.obdev.at/products/vusb/index.html\"\u003eV-USB\u003c/a\u003e\u003cbr/\u003e\n\u003ca href=\"http://www.atmel.com/tools/STUDIOARCHIVE.aspx\"\u003eAtmel Studio 6.2\u003c/a\u003e\u003cbr/\u003e\n\u003ca href=\"https://www.arduino.cc/en/Main/Software\"\u003eArduino IDE\u003c/a\u003e\u003cbr/\u003e\n\u003ca href=\"https://code.google.com/p/diy-layout-creator/\"\u003eDIY Layout Creator\u003c/a\u003e\u003cbr/\u003e\n\u003ca href=\"http://fritzing.org/home/\"\u003eFritzing\u003c/a\u003e\u003cbr/\u003e\n\nThe device utilises the built in Windows human interface device (HID) driver and should appear in the Control Panel under Game Controllers as a 31 button device.  The controller has:\n\u003cul\u003e\u003cli\u003e8 x two way switches (one button each)\n\u003cli\u003e4 x three way switches (two buttons each)\n\u003cli\u003e5 x rotary encoders with push buttons (three buttons each)\u003c/ul\u003e\n\nSee the schematics folder for logical and physical circuit diagrams.  I have included png renderings of these diagrams in case you don't have/want the relevant software to view them.\n\nIn order to load onto the ATMega chip, I used the Arduino IDE with an Arduino Uno to act as the in service programmer (ISP).  See \u003ca href=\"https://www.arduino.cc/en/Tutorial/ArduinoISP\"\u003ethis tutorial\u003c/a\u003e for an example of how to do this.  The circuit design contains a standard 6 pin ISP socket for this purpose.\n\nThe Atmel Studio solution will compile to a binary .hex file.  I found it necessary to modify the Arduino IDE's boards.txt to include an additional entry entitled 'ATMega' which pointed to the location of the compiled binary file in order to use the Arduino ISP.\n\nThe controller is designed to send a pulse (button press) each time the state of a switch changes. For example, moving a two way switch up, down, up will result in three separate button presses for the corresponding button.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgareththegeek%2Fgboxcontroller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgareththegeek%2Fgboxcontroller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgareththegeek%2Fgboxcontroller/lists"}