1
0
Fork 0

Haptic feedback generalized - DRV2605 and solenoids (#4939)

* initial work to add eeprom to haptic feedback and decouple the feedback process from keyboards

* Haptic feedback enhancements: on/off toggle working, feedback order working
todo:
-work on modes switching
-get modes switching to save to eeprom

* haptic enhancement - eeprom and modes added

* Added set and get functions for haptic feedback

* initial implementation of solenoids under haptic feedback

* changed eeprom to 32 bits to reserve blocks for future features

* start documentation of haptic feedback

* change keycode per comment from reviewers

* typo fixes

* added eeprom for solenoid configs

* added solenoid and docs

* Add/fix default parameters configs, improve docs

* more doc cleanup

* add in solenoid buzz toggle, clean up doc

* some fixes for error in compiling solenoid

* fix a chibios specific i2c read function and added one for AVR controllers in DRV2605L.c

* fixes for avr side issues

* update keymap

* fix keymap compile error

* fix bugs found during solenoid testing

* set pin that is not powered during bootloader

* added warning about certain pins on the MCU may trip solenoid during DFU/bootloader
This commit is contained in:
ishtob 2019-02-16 21:39:30 -05:00 committed by MechMerlin
parent a7a647b7f6
commit 2cee371bf1
18 changed files with 750 additions and 48 deletions

View file

@ -17,7 +17,7 @@
#include "qwiic.h"
#include "action_layer.h"
#include "matrix.h"
#include "DRV2605L.h"
#include "haptic.h"
#ifdef QWIIC_MICRO_OLED_ENABLE
@ -167,20 +167,12 @@ void encoder_update_kb(uint8_t index, bool clockwise) {
#endif
void matrix_init_kb(void) {
#ifdef DRV2605L
DRV_init();
#endif
queue_for_send = true;
matrix_init_user();
}
void matrix_scan_kb(void) {
if (queue_for_send) {
#ifdef DRV2605L
DRV_EFFECT play_eff = strong_click;
DRV_pulse(play_eff);
#endif
#ifdef QWIIC_MICRO_OLED_ENABLE
read_host_led_state();
draw_ui();