Remove rumble activity from Pico status LED

This commit is contained in:
Joey Yakimowich-Payne 2026-08-30 16:30:10 -06:00
commit 04df6b88ad
4 changed files with 1 additions and 14 deletions

View file

@ -55,7 +55,6 @@ Both `build.py --aio` and direct AIO CMake configuration apply `patches/bluepad3
4. Wait for the controller to connect. Pairing keys persist across Pico reboots.
The Pico 2 W onboard LED reports Bluetooth state: a slow 0.5-second blink means scanning, a fast 0.1-second blink means a controller connected but is not ready, and solid means the controller is ready. A solid LED immediately after boot that never starts blinking indicates Bluepad32 initialization did not complete.
While a controller is ready, a brief dark pulse indicates that a nonzero decoded rumble packet reached the wireless backend.
Only one wireless controller owns the emulated Pro Controller. Turn off or disconnect it before pairing another; scanning resumes automatically after disconnect. A disconnect immediately publishes neutral buttons, sticks, and motion.

View file

@ -21,7 +21,6 @@ constexpr int32_t kTriggerThreshold = (kTriggerMaximum * 35) / 100;
constexpr uint16_t kRumbleDurationMs = 50;
constexpr uint32_t kRumblePollIntervalMs = 5;
constexpr uint kRumbleQueueDepth = 8;
constexpr uint8_t kRumbleActivityLedTicks = 20;
enum class ConnectionStatus {
Initializing,
@ -48,7 +47,6 @@ btstack_timer_source_t g_rumble_timer{};
ConnectionStatus g_connection_status = ConnectionStatus::Initializing;
uint16_t g_status_led_tick = 0;
bool g_status_led_on = false;
uint8_t g_rumble_activity_led_ticks = 0;
SwitchInputState make_neutral_state() {
SwitchInputState state{};
@ -187,12 +185,7 @@ void update_status_led() {
led_on = true;
break;
case ConnectionStatus::Ready:
if (g_rumble_activity_led_ticks > 0) {
--g_rumble_activity_led_ticks;
led_on = false;
} else {
led_on = true;
}
led_on = true;
break;
case ConnectionStatus::Scanning:
led_on = (g_status_led_tick % 200) < 100;
@ -215,11 +208,6 @@ void process_rumble_timer(btstack_timer_source_t* timer) {
latest = packet;
have_packet = true;
}
if (have_packet &&
(latest.low_frequency_magnitude != 0 ||
latest.high_frequency_magnitude != 0)) {
g_rumble_activity_led_ticks = kRumbleActivityLedTicks;
}
if (have_packet && g_active_device != nullptr &&
g_active_device->report_parser.play_dual_rumble != nullptr) {

Binary file not shown.

Binary file not shown.