From 8351cb1d15e10a08b07fb52b4ded229137f04a42 Mon Sep 17 00:00:00 2001 From: Joey Yakimowich-Payne Date: Wed, 2 Sep 2026 08:50:26 -0600 Subject: [PATCH] Enable strong rumble for 8BitDo Switch mode --- controller_hotkey_config.h | 4 +- firmware/switch-pico-aio.elf | Bin 4251964 -> 4253000 bytes firmware/switch-pico-aio.uf2 | Bin 1250816 -> 1250816 bytes patches/bluepad32-sdl3-imu.patch | 213 ++++++++++++++++++++- tests/bluepad32_backend_lifecycle_test.cpp | 4 +- 5 files changed, 214 insertions(+), 7 deletions(-) diff --git a/controller_hotkey_config.h b/controller_hotkey_config.h index 883d657..ebd2cc0 100644 --- a/controller_hotkey_config.h +++ b/controller_hotkey_config.h @@ -19,8 +19,8 @@ // Local confirmation pulse sent only to the controller that toggled. #define SWITCH_ABXY_FEEDBACK_DURATION_MS 120 -#define SWITCH_ABXY_FEEDBACK_WEAK_MAGNITUDE 0x80 -#define SWITCH_ABXY_FEEDBACK_STRONG_MAGNITUDE 0x80 +#define SWITCH_ABXY_FEEDBACK_WEAK_MAGNITUDE 0xFF +#define SWITCH_ABXY_FEEDBACK_STRONG_MAGNITUDE 0xFF // A longer pulse confirms disabled; a shorter pulse confirms enabled. #define SWITCH_MOTION_DISABLED_FEEDBACK_DURATION_MS 180 diff --git a/firmware/switch-pico-aio.elf b/firmware/switch-pico-aio.elf index aba04383b5b50a3301f9071ba41fbebcd47bf4f6..f0fa7339c2cdae91ebb2c3b8e3df1b5c2707cad9 100755 GIT binary patch delta 88305 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 delta 19227 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 diff --git a/patches/bluepad32-sdl3-imu.patch b/patches/bluepad32-sdl3-imu.patch index 90e27e8..5ba7ef7 100644 --- a/patches/bluepad32-sdl3-imu.patch +++ b/patches/bluepad32-sdl3-imu.patch @@ -259,10 +259,10 @@ index 0265f93..5c0f2bb 100644 return (psmove_instance_t*)&d->parser_data[0]; } diff --git a/src/components/bluepad32/parser/uni_hid_parser_switch.c b/src/components/bluepad32/parser/uni_hid_parser_switch.c -index 599fc35..c72f056 100644 +index 599fc35..9f073b4 100644 --- a/src/components/bluepad32/parser/uni_hid_parser_switch.c +++ b/src/components/bluepad32/parser/uni_hid_parser_switch.c -@@ -51,7 +51,8 @@ static const int16_t DEFAULT_ACCEL_OFFSET = 0; +@@ -51,13 +51,15 @@ static const int16_t DEFAULT_ACCEL_OFFSET = 0; static const int16_t DEFAULT_ACCEL_SCALE = 16384; static const int16_t DEFAULT_GYRO_OFFSET = 0; static const int16_t DEFAULT_GYRO_SCALE = 13371; @@ -272,7 +272,97 @@ index 599fc35..c72f056 100644 #define SWITCH_FACTORY_IMU_CAL_DATA_SIZE 24 static const uint16_t SWITCH_FACTORY_IMU_CAL_DATA_ADDR = 0x6020; -@@ -823,19 +824,26 @@ static void parse_imu(uni_hid_device_t* d, const struct switch_imu_data_s* r) { + + #define SWITCH_DUMP_ROM_DATA_SIZE 24 // Max size is 24 + #define SWITCH_SETUP_TIMEOUT_MS 800 ++#define SWITCH_RUMBLE_REFRESH_MS 40 + #if ENABLE_SPI_FLASH_DUMP + static const uint32_t SWITCH_DUMP_ROM_DATA_ADDR_START = 0x20000; + static const uint32_t SWITCH_DUMP_ROM_DATA_ADDR_END = 0x30000; +@@ -72,6 +74,7 @@ enum switch_state { + STATE_READ_FACTORY_IMU_CALIBRATION, // Factory IMU calibration info + STATE_SET_FULL_REPORT, // Request report 0x30 + STATE_ENABLE_IMU, // Enable/Disable gyro/accel ++ STATE_ENABLE_RUMBLE, // Enable controller vibration + STATE_DUMP_FLASH, // Dump SPI Flash memory + STATE_UPDATE_LED, // Update LEDs + STATE_READY, // Gamepad setup ready! +@@ -111,6 +114,7 @@ enum switch_subcmd { + SUBCMD_SPI_FLASH_READ = 0x10, + SUBCMD_SET_PLAYER_LEDS = 0x30, + SUBCMD_ENABLE_IMU = 0x40, ++ SUBCMD_ENABLE_RUMBLE = 0x48, + }; + + typedef enum { +@@ -137,6 +141,7 @@ typedef struct switch_instance_s { + // Although technically, we can use one timer for delay and duration, easier to debug/maintain if we have two. + btstack_timer_source_t rumble_timer_duration; + btstack_timer_source_t rumble_timer_delayed_start; ++ btstack_timer_source_t rumble_timer_refresh; + switch_state_rumble_t rumble_state; + + btstack_timer_source_t setup_timer; +@@ -322,6 +327,7 @@ static void fsm_read_user_stick_calibration(struct uni_hid_device_s* d); + static void fsm_read_factory_imu_calibration(struct uni_hid_device_s* d); + static void fsm_set_full_report(struct uni_hid_device_s* d); + static void fsm_enable_imu(struct uni_hid_device_s* d); ++static void fsm_enable_rumble(struct uni_hid_device_s* d); + static void fsm_update_led(struct uni_hid_device_s* d); + static void fsm_ready(struct uni_hid_device_s* d); + static void process_reply_read_spi_dump(struct uni_hid_device_s* d, const uint8_t* data, int len); +@@ -333,11 +339,16 @@ static void process_reply_set_report_mode(struct uni_hid_device_s* d, const stru + static void process_reply_spi_flash_read(struct uni_hid_device_s* d, const struct switch_report_21_s* r, int len); + static void process_reply_set_player_leds(struct uni_hid_device_s* d, const struct switch_report_21_s* r, int len); + static void process_reply_enable_imu(struct uni_hid_device_s* d, const struct switch_report_21_s* r, int len); ++static void process_reply_enable_rumble(struct uni_hid_device_s* d, const struct switch_report_21_s* r, int len); + static int32_t calibrate_axis(int32_t v, switch_cal_stick_t cal); + static void set_led(uni_hid_device_t* d, uint8_t leds); + static void on_switch_set_rumble_on(btstack_timer_source_t* ts); + static void on_switch_set_rumble_off(btstack_timer_source_t* ts); ++static void on_switch_refresh_rumble(btstack_timer_source_t* ts); + static void switch_stop_rumble_now(uni_hid_device_t* d); ++static void switch_send_dual_rumble_now(uni_hid_device_t* d, ++ uint8_t weak_magnitude, ++ uint8_t strong_magnitude); + static void switch_play_dual_rumble_now(uni_hid_device_t* d, + uint16_t duration_ms, + uint8_t weak_magnitude, +@@ -451,6 +462,10 @@ static void process_fsm(struct uni_hid_device_s* d) { + break; + case STATE_ENABLE_IMU: + logd("STATE_ENABLE_IMU\n"); ++ fsm_enable_rumble(d); ++ break; ++ case STATE_ENABLE_RUMBLE: ++ logd("STATE_ENABLE_RUMBLE\n"); + fsm_dump_rom(d); + break; + case STATE_DUMP_FLASH: +@@ -725,6 +740,12 @@ static void process_reply_enable_imu(struct uni_hid_device_s* d, const struct sw + ARG_UNUSED(r); + ARG_UNUSED(len); + } ++static void process_reply_enable_rumble(struct uni_hid_device_s* d, const struct switch_report_21_s* r, int len) { ++ ARG_UNUSED(d); ++ ARG_UNUSED(r); ++ ARG_UNUSED(len); ++} ++ + + // Process 0x21 input report: SWITCH_INPUT_SUBCMD_REPLY + static void process_input_subcmd_reply(struct uni_hid_device_s* d, const uint8_t* report, int len) { +@@ -752,6 +773,9 @@ static void process_input_subcmd_reply(struct uni_hid_device_s* d, const uint8_t + case SUBCMD_ENABLE_IMU: + process_reply_enable_imu(d, r, len); + break; ++ case SUBCMD_ENABLE_RUMBLE: ++ process_reply_enable_rumble(d, r, len); ++ break; + default: + loge("Switch: Error, unexpected subcmd_id=0x%02x in report 0x21\n", r->subcmd_id); + break; +@@ -823,19 +847,26 @@ static void parse_imu(uni_hid_device_t* d, const struct switch_imu_data_s* r) { switch_instance_t* ins = get_switch_instance(d); uni_controller_t* ctl = &d->controller; @@ -308,7 +398,7 @@ index 599fc35..c72f056 100644 if (ins->controller_type == SWITCH_CONTROLLER_TYPE_JCR) { accel[1] = -accel[1]; accel[2] = -accel[2]; -@@ -843,10 +851,13 @@ static void parse_imu(uni_hid_device_t* d, const struct switch_imu_data_s* r) { +@@ -843,10 +874,13 @@ static void parse_imu(uni_hid_device_t* d, const struct switch_imu_data_s* r) { gyro[2] = -gyro[2]; } @@ -326,6 +416,121 @@ index 599fc35..c72f056 100644 } // Process 0x30 input report: SWITCH_INPUT_IMU_DATA +@@ -1172,6 +1206,18 @@ static void fsm_enable_imu(struct uni_hid_device_s* d) { + req->data[0] = (ins->mode == SWITCH_MODE_IMU); + send_subcmd(d, req, sizeof(out)); + } ++static void fsm_enable_rumble(struct uni_hid_device_s* d) { ++ switch_instance_t* ins = get_switch_instance(d); ++ ins->state = STATE_ENABLE_RUMBLE; ++ ++ uint8_t out[sizeof(struct switch_subcmd_request) + 1] = {0}; ++ struct switch_subcmd_request* req = (struct switch_subcmd_request*)&out[0]; ++ req->report_id = OUTPUT_RUMBLE_AND_SUBCMD; ++ req->subcmd_id = SUBCMD_ENABLE_RUMBLE; ++ req->data[0] = 0x01; ++ send_subcmd(d, req, sizeof(out)); ++} ++ + + static void fsm_update_led(struct uni_hid_device_s* d) { + switch_instance_t* ins = get_switch_instance(d); +@@ -1203,6 +1249,10 @@ static struct switch_rumble_freq_data find_rumble_freq(uint16_t freq) { + return rumble_freqs[i]; + } + ++static uint16_t switch_magnitude_to_amp(uint8_t magnitude) { ++ return (uint16_t)(((uint32_t)magnitude * 1003 + 127) / 255); ++} ++ + static struct switch_rumble_amp_data find_rumble_amp(uint16_t amp) { + unsigned int i = 0; + if (amp > rumble_amps[0].amp) { +@@ -1259,6 +1309,7 @@ void uni_hid_parser_switch_play_dual_rumble(struct uni_hid_device_s* d, + break; + case SWITCH_STATE_RUMBLE_IN_PROGRESS: + btstack_run_loop_remove_timer(&ins->rumble_timer_duration); ++ btstack_run_loop_remove_timer(&ins->rumble_timer_refresh); + break; + default: + // Do nothing +@@ -1366,6 +1417,7 @@ static void switch_stop_rumble_now(uni_hid_device_t* d) { + + // No need to protect it with a mutex since it runs in the same main thread + assert(ins->rumble_state == SWITCH_STATE_RUMBLE_IN_PROGRESS); ++ btstack_run_loop_remove_timer(&ins->rumble_timer_refresh); + ins->rumble_state = SWITCH_STATE_RUMBLE_DISABLED; + + struct switch_subcmd_request req = {0}; +@@ -1379,6 +1431,22 @@ static void switch_stop_rumble_now(uni_hid_device_t* d) { + send_subcmd(d, (struct switch_subcmd_request*)&req, sizeof(req) - 1); + } + ++static void switch_send_dual_rumble_now(uni_hid_device_t* d, ++ uint8_t weak_magnitude, ++ uint8_t strong_magnitude) { ++ struct switch_subcmd_request req = { ++ .report_id = OUTPUT_RUMBLE_ONLY, ++ }; ++ // Fixed frequencies match the standard Switch LRA envelope and the ++ // 8BitDo Switch-mode implementation. Magnitudes control amplitude only. ++ switch_encode_rumble(req.rumble_left, 453, 135, ++ switch_magnitude_to_amp(weak_magnitude)); ++ switch_encode_rumble(req.rumble_right, 453, 99, ++ switch_magnitude_to_amp(strong_magnitude)); ++ // Rumble request don't include the last byte of "switch_subcmd_request": subcmd_id ++ send_subcmd(d, &req, sizeof(req) - 1); ++} ++ + static void switch_play_dual_rumble_now(uni_hid_device_t* d, + uint16_t duration_ms, + uint8_t weak_magnitude, +@@ -1391,14 +1459,17 @@ static void switch_play_dual_rumble_now(uni_hid_device_t* d, + return; + } + +- struct switch_subcmd_request req = { +- .report_id = OUTPUT_RUMBLE_ONLY, +- }; +- switch_encode_rumble(req.rumble_left, weak_magnitude << 2, weak_magnitude, 500); +- switch_encode_rumble(req.rumble_right, strong_magnitude << 2, strong_magnitude, 500); ++ ins->rumble_weak_magnitude = weak_magnitude; ++ ins->rumble_strong_magnitude = strong_magnitude; ++ switch_send_dual_rumble_now(d, weak_magnitude, strong_magnitude); + +- // Rumble request don't include the last byte of "switch_subcmd_request": subcmd_id +- send_subcmd(d, &req, sizeof(req) - 1); ++ // Refresh active rumble for Switch-compatible controllers that do not ++ // retain a single output packet, including 8BitDo Switch mode. ++ ins->rumble_timer_refresh.process = &on_switch_refresh_rumble; ++ ins->rumble_timer_refresh.context = d; ++ btstack_run_loop_set_timer(&ins->rumble_timer_refresh, ++ SWITCH_RUMBLE_REFRESH_MS); ++ btstack_run_loop_add_timer(&ins->rumble_timer_refresh); + + // Set timer to turn off rumble + ins->rumble_timer_duration.process = &on_switch_set_rumble_off; +@@ -1414,6 +1485,20 @@ static void on_switch_set_rumble_on(btstack_timer_source_t* ts) { + + switch_play_dual_rumble_now(d, ins->rumble_duration_ms, ins->rumble_weak_magnitude, ins->rumble_strong_magnitude); + } ++static void on_switch_refresh_rumble(btstack_timer_source_t* ts) { ++ uni_hid_device_t* d = btstack_run_loop_get_timer_context(ts); ++ switch_instance_t* ins = get_switch_instance(d); ++ if (ins->rumble_state != SWITCH_STATE_RUMBLE_IN_PROGRESS) { ++ return; ++ } ++ switch_send_dual_rumble_now( ++ d, (uint8_t)ins->rumble_weak_magnitude, ++ (uint8_t)ins->rumble_strong_magnitude); ++ btstack_run_loop_set_timer(&ins->rumble_timer_refresh, ++ SWITCH_RUMBLE_REFRESH_MS); ++ btstack_run_loop_add_timer(&ins->rumble_timer_refresh); ++} ++ + + static void on_switch_set_rumble_off(btstack_timer_source_t* ts) { + uni_hid_device_t* d = btstack_run_loop_get_timer_context(ts); diff --git a/src/components/bluepad32/parser/uni_hid_parser_wii.c b/src/components/bluepad32/parser/uni_hid_parser_wii.c index be2103e..4819639 100644 --- a/src/components/bluepad32/parser/uni_hid_parser_wii.c diff --git a/tests/bluepad32_backend_lifecycle_test.cpp b/tests/bluepad32_backend_lifecycle_test.cpp index 957bd37..cca33a1 100644 --- a/tests/bluepad32_backend_lifecycle_test.cpp +++ b/tests/bluepad32_backend_lifecycle_test.cpp @@ -889,8 +889,10 @@ void test_abxy_hotkey() { require(slot_zero.rumble_calls == 1 && slot_zero.last_high == kAbxyFeedbackWeakMagnitude && slot_zero.last_low == kAbxyFeedbackStrongMagnitude && + slot_zero.last_high == UINT8_MAX && + slot_zero.last_low == UINT8_MAX && g_slots[0].rumble_pending, - "ABXY confirmation did not take priority over host rumble"); + "ABXY confirmation was not full-strength or did not take priority"); platform_on_controller_data(&slot_zero, &input); process_rumble_timer(&g_rumble_timer);