good luck tracking it down! if anyone stumbles upon simillar issue i fixed it by changing the way i call usb related functions: ```rust loop { if reset_pin.is_low().unwrap() { delay.delay_ms(10u8); if reset_pin.is_low().unwrap() { reset_into_dfu(); } } let usb_ready = usb_dev.poll(&mut [&mut keyboard]); if usb_ready { if tick_timer.wait().is_ok() { let _ = keyboard.tick(); } if pool_timer.wait().is_ok() { let event = if row.is_low().unwrap() { led.set_low().unwrap(); Keyboard::A } else { led.set_high().unwrap(); Keyboard::NoEventIndicated }; match keyboard.device().write_report([event]) { Err(UsbHidError::WouldBlock) => {} Err(UsbHidError::Duplicate) => {} Ok(_) => {} Err(e) => { core::panic!("Failed to write keyboard report: {:?}", e) } }; } } } ```