From 74e63c513f90470517bd5f4cbf3e5e6163e69b7b Mon Sep 17 00:00:00 2001 From: Nick Mello Date: Sat, 25 Jul 2026 17:51:19 -0500 Subject: [PATCH] Remap buttons Signed-off-by: Nicholas Mello --- src/keyboard.rs | 9 +++++++++ src/main.rs | 40 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/keyboard.rs b/src/keyboard.rs index 166df45..5325465 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -114,6 +114,15 @@ pub enum UsbKeycodes { Mute, VolumeUp, VolumeDown, + + ControlLeft = 224, + ShiftLeft, + AltLeft, + GUILeft, + ControlRight, + ShiftRight, + AltRight, + GUIRight, } pub struct Key<'a> { diff --git a/src/main.rs b/src/main.rs index 2665341..dc02b45 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,11 +47,11 @@ async fn main(_spawner: Spawner) { let driver = Driver::new(p.USB, Irqs); let mut usb_buf = usb::UsbKeyboardBuf::new(); let usbkey = usb::UsbKeyboard::create_usb(&mut usb_buf, driver); - let mut keyboard = Keyboard::<6>::new(); + let mut keyboard = Keyboard::<10>::new(); let mut signal_pin = Input::new(p.PIN_15, Pull::None); signal_pin.set_schmitt(true); - match keyboard.add_key(signal_pin, UsbKeycodes::Left) { + match keyboard.add_key(signal_pin, UsbKeycodes::X) { Ok(()) => info!("Key 'a' registered"), Err(e) => { defmt::panic!("Failed to register key! {:?}", e); @@ -59,7 +59,7 @@ async fn main(_spawner: Spawner) { } let mut signal_pin = Input::new(p.PIN_16, Pull::None); signal_pin.set_schmitt(true); - match keyboard.add_key(signal_pin, UsbKeycodes::Down) { + match keyboard.add_key(signal_pin, UsbKeycodes::C) { Ok(()) => info!("Key 's' registered"), Err(e) => { defmt::panic!("Failed to register key! {:?}", e); @@ -75,7 +75,7 @@ async fn main(_spawner: Spawner) { } let mut signal_pin = Input::new(p.PIN_18, Pull::None); signal_pin.set_schmitt(true); - match keyboard.add_key(signal_pin, UsbKeycodes::Right) { + match keyboard.add_key(signal_pin, UsbKeycodes::D) { Ok(()) => info!("Key 'd' registered"), Err(e) => { defmt::panic!("Failed to register key! {:?}", e); @@ -91,12 +91,44 @@ async fn main(_spawner: Spawner) { } let mut signal_pin = Input::new(p.PIN_20, Pull::None); signal_pin.set_schmitt(true); + match keyboard.add_key(signal_pin, UsbKeycodes::ShiftLeft) { + Ok(()) => info!("Key 'w' registered"), + Err(e) => { + defmt::panic!("Failed to register key! {:?}", e); + } + } + let mut signal_pin = Input::new(p.PIN_14, Pull::None); + signal_pin.set_schmitt(true); match keyboard.add_key(signal_pin, UsbKeycodes::Up) { Ok(()) => info!("Key 'w' registered"), Err(e) => { defmt::panic!("Failed to register key! {:?}", e); } } + let mut signal_pin = Input::new(p.PIN_13, Pull::None); + signal_pin.set_schmitt(true); + match keyboard.add_key(signal_pin, UsbKeycodes::Down) { + Ok(()) => info!("Key 'w' registered"), + Err(e) => { + defmt::panic!("Failed to register key! {:?}", e); + } + } + let mut signal_pin = Input::new(p.PIN_12, Pull::None); + signal_pin.set_schmitt(true); + match keyboard.add_key(signal_pin, UsbKeycodes::Right) { + Ok(()) => info!("Key 'w' registered"), + Err(e) => { + defmt::panic!("Failed to register key! {:?}", e); + } + } + let mut signal_pin = Input::new(p.PIN_11, Pull::None); + signal_pin.set_schmitt(true); + match keyboard.add_key(signal_pin, UsbKeycodes::Left) { + Ok(()) => info!("Key 'w' registered"), + Err(e) => { + defmt::panic!("Failed to register key! {:?}", e); + } + } let led = Output::new(p.PIN_25, Level::Low);