feat(core/bootloader): stronger haptic effect on power on
What changed, and why it matters
This commit changes the vibration pattern that the Trezor hardware wallet produces when it powers on. It adds a new dedicated 'power on' haptic effect and uses it instead of reusing the existing button-press vibration. There is no security relevance in this change.
No security action required. This is a benign UX/product change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch adds a new enum value HAPTIC_POWER_ON to the haptic effect type, defines a dedicated amplitude (50) and duration (50 ms) for it in the DRV2625 driver, and updates the bootloader’s boot sequence to play this new effect after 500 ms instead of HAPTIC_BUTTON_PRESS. The change is purely a user-experience tuning of haptic feedback strength at power-on.
Changed components
core/embed/io/haptic/drv2625/drv2625.ccore/embed/io/haptic/inc/io/haptic.hcore/embed/projects/bootloader/main.cInspect captured patch +10 / −1
diff --git a/core/embed/io/haptic/drv2625/drv2625.c b/core/embed/io/haptic/drv2625/drv2625.c
index 822bde7b..e547046b 100644
--- a/core/embed/io/haptic/drv2625/drv2625.c
+++ b/core/embed/io/haptic/drv2625/drv2625.c
@@ -41,6 +41,10 @@
#define BOOTLOADER_ENTRY_EFFECT_AMPLITUDE 100
// Duration of the bootloader entry effect
#define BOOTLOADER_ENTRY_EFFECT_DURATION 300
+// Amplitude of the power on effect
+#define POWER_ON_EFFECT_AMPLITUDE 50
+// Duration of the power on effect
+#define POWER_ON_EFFECT_DURATION 50
// Actuator configuration
#include HAPTIC_ACTUATOR
@@ -354,6 +358,9 @@ bool haptic_play(haptic_effect_t effect) {
return haptic_play_rtp(BOOTLOADER_ENTRY_EFFECT_AMPLITUDE,
BOOTLOADER_ENTRY_EFFECT_DURATION);
break;
+ case HAPTIC_POWER_ON:
+ return haptic_play_rtp(POWER_ON_EFFECT_AMPLITUDE,
+ POWER_ON_EFFECT_DURATION);
default:
break;
}
diff --git a/core/embed/io/haptic/inc/io/haptic.h b/core/embed/io/haptic/inc/io/haptic.h
index aef745ce..f24a1163 100644
--- a/core/embed/io/haptic/inc/io/haptic.h
+++ b/core/embed/io/haptic/inc/io/haptic.h
@@ -28,6 +28,8 @@ typedef enum {
HAPTIC_HOLD_TO_CONFIRM = 1,
// Bootloader entry
HAPTIC_BOOTLOADER_ENTRY = 2,
+ // Power on
+ HAPTIC_POWER_ON = 3,
} haptic_effect_t;
#ifdef KERNEL_MODE
diff --git a/core/embed/projects/bootloader/main.c b/core/embed/projects/bootloader/main.c
index 57d3739a..e8d80142 100644
--- a/core/embed/projects/bootloader/main.c
+++ b/core/embed/projects/bootloader/main.c
@@ -196,7 +196,7 @@ static secbool boot_sequence(void) {
}
#ifdef USE_HAPTIC
if (elapsed >= 500 && !haptic_played) {
- haptic_play(HAPTIC_BUTTON_PRESS);
+ haptic_play(HAPTIC_POWER_ON);
haptic_played = true;
}
#endif
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.