Skip to content

Releases: thnikk/GP2040-th

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 20:18

Changes

This is a huge update that implements changes to make configuration easier, with the biggest two changes being improvements to the Web Config and Mini menu.

Frontend changes

Layout page

Instead of the old pin mapping page, there's now a new Layout page for graphically mapping and changing LED colors.

Board SVG

The Board SVG view shows you the exact layout of a board with the keys and LEDs in their physical positions.

Widgets

New widgets for selecting controller and keyboard keys.

New landing page

Simple landing page with links to dections and other relevant pages.

Configuration options are hidden by default

These are settings that are meant for making custom boards, and changing them (like the i2c pins) can leave your controller in an unbootable state. The tab will appear when holding start+select at boot, but is otherwise hidden.

I still don't recommend touching any of these settings. If something makes sense to expose to the end user, it should be moved to settings.

Firmware changes

Switch Pro Input Mode

Merged upstream PR for Switch Pro input mode for better Switch 2 support.

Xbox One Input Mode changes

Removed auth requirement since it works fine on PC without it and added the capture button from Xbox Series controllers.

New Ripple LED animation

Pressing a key activates a propegating wave of pressed color.

Mapped LEDs and keys to physical positions

Instead of mapping actions to pins and LEDs to actions, both are mapped to physical positions. This means you don't need to memorize pin locations on the board and have LED colors jump around when remapping.

New old splash screen

Re-implemented the old splash screen from my original GP2040 fork.

Mini Menu

The Mini Menu was built into GP2040-CE, but using it required a bunch of dedicated keys or hotkeys.

The new system uses a single hotkey to toggle the menu. You can navigate using udlr + a/b and all keys are blocked to the connected device while the menu is active.

New board LED addon

Added addon for using the LED built into the RP2040 Zero. It shows a color for the current input mode by default and will blink a number of times when switching between profiles.

Miscellaneous

Docker Build

I used PlatformIO for a long time before the original GP2040, so the switch to the pico SDK was a bit annoying for me. Now there's a dockerfile and build script for an easy one-command build process that automatically pulls the SDK in a docker container.

Image Processing Script

I like it when screenshots look nice, so I added a script for automatically rounding corners, adding a transparent border, adding a drop shadow, and creating split images.


See the full changelog for all 401 commits.

Installation

  1. Download the .uf2 firmware file for your board below
  2. Enter BOOTSEL mode — hold the BOOTSEL button while plugging in (or double-press the reset button)
  3. A removable drive named RPI-RP2 will appear — copy the .uf2 file onto it
  4. The device will flash and reboot automatically

If the device was previously used for other firmware, flash flash_nuke.uf2 first to clear memory.

Firmware

Board File
Fightboard v3 Basic Mirrored GP2040-th_1.0.0_52a3dc3_Fightboard-v3-b-m.uf2
Fightboard v3 Basic GP2040-th_1.0.0_52a3dc3_Fightboard-v3-b.uf2
Fightboard v3 Mirrored GP2040-th_1.0.0_52a3dc3_Fightboard-v3-m.uf2
Fightboard v3 GP2040-th_1.0.0_52a3dc3_Fightboard-v3.uf2
Springboard GP2040-th_1.0.0_52a3dc3_Springboard.uf2

v1.0.0-rc

v1.0.0-rc Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 04:34

Changes

See the full changelog for all 382 commits.

Installation

  1. Download the .uf2 firmware file for your board below
  2. Enter BOOTSEL mode — hold the BOOTSEL button while plugging in (or double-press the reset button)
  3. A removable drive named RPI-RP2 will appear — copy the .uf2 file onto it
  4. The device will flash and reboot automatically

If the device was previously used for other firmware, flash flash_nuke.uf2 first to clear memory.

Firmware

Board File
Fightboard v3 Basic Mirrored GP2040-th_1.0.0_31e0dcb_Fightboard-v3-b-m.uf2
Fightboard v3 Basic GP2040-th_1.0.0_31e0dcb_Fightboard-v3-b.uf2
Fightboard v3 Mirrored GP2040-th_1.0.0_31e0dcb_Fightboard-v3-m.uf2
Fightboard v3 GP2040-th_1.0.0_31e0dcb_Fightboard-v3.uf2
Springboard GP2040-th_1.0.0_31e0dcb_Springboard.uf2

Release v1.0.0-beta

Release v1.0.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 17:38

Initial Release

Full Changelog: v1.0.0-alpha...v1.0.0-beta

Release v1.0.0-alpha

Release v1.0.0-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Jul 02:22

Initial Release

Full Changelog: v0.7.10-1...v1.0.0-alpha

v0.7.10

Choose a tag to compare

@thnikk thnikk released this 27 Apr 22:38

The goal of this release was to bring GP2040-CE to feature parity with my old build of GP2040.

Changes from upstream:

  • Added configs for the springboard and fightboards
  • Added an LED theme for the springboard
  • Removed banner when showing the active profile
  • Reduced snow spawn rate on screen saver
  • Turn LEDs off when display is on screen saver (this is tied to the display timeout)
  • Wake display when any key is pressed (upstream doesn't check d-pad and sticks)

Flashing

  • Download the uf2 for your model and the flash nuke uf2 if you're coming from the stock firmware or upstream GP2040-CE on the Fightboard.
  • Double press the recessed reset button in the middle of the Fightboard or the right recessed button on the Springboard. You should see a removable storage device called "RPI-RP2" get mounted.
  • (Only if coming from different firmware) Copy flash_nuke.uf2 to the removable storage device and it should unmount and remount.
  • Copy the firmware uf2 for your model to the removable storage device. It should automatically reboot in about 10 seconds. If it doesn't, wait about 30 seconds and manually unplug it and plug it back in.