{"id":66210,"date":"2022-09-05T01:25:56","date_gmt":"2022-09-05T01:25:56","guid":{"rendered":"https:\/\/harchi90.com\/gp2040-a-configurable-game-pad-firmware\/"},"modified":"2022-09-05T01:25:56","modified_gmt":"2022-09-05T01:25:56","slug":"gp2040-a-configurable-game-pad-firmware","status":"publish","type":"post","link":"https:\/\/harchi90.com\/gp2040-a-configurable-game-pad-firmware\/","title":{"rendered":"GP2040: A Configurable Game Pad Firmware"},"content":{"rendered":"
\n

[feralAI] and fellow GitHub contributors present for your viewing pleasure GP2040: an open source game pad firmware for RP2040-based hardware. The dual-core RP2040 is a good platform to use for gaming inputs, as there is plenty of CPU grunt to get sub-1 ms USB polling time, regardless of any other tasks the controller may be performing. Currently the firmware supports PC, Android, RPi, Nintendo Switch, PS3, PS4 (legacy mode), and the sweet MiSTer FPGA-based retro-gaming platform.<\/p>\n

The firmware supports the older DirectInput API and the newer shiny (but rather restrictive) XInput API (no, it’s not the old X11 input extension with the same name) \u2014 as well as the usual controller features like SOCD cleaning, D-pad mapping, and RGB support for additional distractions. There is even support for those tiny OLED displays (SSD1306 and friends), although we can’t think of a use case for that at the moment. Configuration is particularly interesting, however, as it is based upon an embedded web application. This is where the pin mappings to your actual hardware are defined, as well as all that RGB bling, if you so desire.<\/p>\n

But how does the humble RP2040 (be it in Pico guise or compatible) provide a web page, you ask? The quick answer comes thanks to Microsoft and their Remote Network Driver Interface Specification (RNDIS) support. RNDIS implements a network device over USB, and luckily, other OSs have caught up and implemented it also. The GP2040 firmware leverages TinyUSB to implement the RNDIS protocol, lwIP to implement a lightweight network stack (whilst only occupying a rather paltry 40k of flash), and finally react-bootstrap to code the actual web logic. (Aren’t modern open source libraries awesome?) If you feel the need to use the source (whether you are named Luke or not) the project can be found on the GP2040 GitHub.<\/p>\n

If you’re into gaming on game pads, but quite like the responsiveness of the trusty mouse, look no farther than this neat hybrid controller. But if this modern stuff with 45 buttons and levers all over the place is just too much, and you’ve a hankering for the controllers of old, this might be more your style.<\/p>\n

Thanks to [DJBiohazard] for the tip!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"

[feralAI] and fellow GitHub contributors present for your viewing pleasure GP2040: an open source game pad firmware for RP2040-based hardware. The dual-core RP2040 is a good platform to use for gaming inputs, as there is plenty of CPU grunt to get sub-1 ms USB polling time, regardless of any other tasks the controller may be …<\/p>\n

GP2040: A Configurable Game Pad Firmware<\/span> Read More »<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1498,"url":"https:\/\/harchi90.com\/raspberry-pi-pico-w-adds-wi-fi-costs-just-6\/","url_meta":{"origin":66210,"position":0},"title":"Raspberry Pi Pico W Adds Wi-Fi, Costs Just $6","date":"July 1, 2022","format":false,"excerpt":"Raspberry Pi Pico WImage: Raspberry PiRaspberry Pi is adding to its family of ultra-low-cost microcontrollers with the debut of three new Pico models. Perhaps the one DIYers will be most excited to see is the Pico W, an exact copy of the original Pico except with the addition of 802.11\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":64243,"url":"https:\/\/harchi90.com\/galaxy-watch-4-is-getting-the-final-wear-os-3-5-beta-firmware-in-the-usa\/","url_meta":{"origin":66210,"position":1},"title":"Galaxy Watch 4 is getting the final Wear OS 3.5 beta firmware in the USA","date":"September 2, 2022","format":false,"excerpt":"Last updated: September 2nd, 2022 at 17:08 UTC+02:00 Samsung is almost ready to bring the Galaxy Watch 4 series software to the level of the new Watch 5. The company is now rolling out another Wear OS 3.5 beta firmware for the Galaxy Watch 4 series in the USA, and\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7142,"url":"https:\/\/harchi90.com\/apple-releases-new-beta-firmware-for-airpods-airpods-pro-and-airpods-max\/","url_meta":{"origin":66210,"position":2},"title":"Apple Releases New Beta Firmware for AirPods, AirPods Pro and AirPods Max","date":"July 7, 2022","format":false,"excerpt":"Following the Worldwide Developers Conference keynote in June, Apple provided developers with a beta firmware for several AirPods models, including the second-generation AirPods, third-generation AirPods, AirPods Pro, and AirPods Max. Apple today updated that firmware, with the version number going from 5A5282d to 5A5304a. The updated AirPods firmware is limited\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"AirPods Pro Beta Firmware","src":"https:\/\/i0.wp.com\/images.macrumors.com\/t\/CxOX2DszgihQ4hl76C0CpnEeR8w=\/400x0\/article-new\/2021\/06\/AirPods-Pro-Beta-Firmware.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"fifu_image_url":"https:\/\/hackaday.com\/wp-content\/uploads\/2022\/09\/GP2040-800.png","_links":{"self":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts\/66210"}],"collection":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/comments?post=66210"}],"version-history":[{"count":0,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts\/66210\/revisions"}],"wp:attachment":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/media?parent=66210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/categories?post=66210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/tags?post=66210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}