Daniel Schaefer
c97f3cd6d8
lotus: Avoid using floats
...
RP2040 doesn't have hardware floats. Software floats are slow.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-01-13 17:17:24 +08:00
Daniel Schaefer
dc0f2a6afa
lotus: Print matrix scan frequency
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-01-13 17:10:32 +08:00
Daniel Schaefer
2ce52c5b54
lotus: keypress command just does RGB handling
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-01-10 17:58:39 +08:00
Daniel Schaefer
e7061ed797
lotus: Update matrix to use NO_LED
...
Clearer than magic number.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-01-10 17:53:33 +08:00
Daniel Schaefer
5b4f836e8c
lotus: Fix Key Matrix to LED Index
...
Now the key press based animations work!
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-01-10 16:26:09 +08:00
Daniel Schaefer
78e762028f
lotus: Remove factory commands that overlap with VIA
...
Can use qmk_hid for those now, yay!
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-10 11:29:40 +08:00
Daniel Schaefer
30328f6f57
lotus: Enable RGB effects that react to keypress
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-10 10:18:35 +08:00
Daniel Schaefer
920b502077
lotus: Reduce sleep before ADC read
...
5us seems enough sleep. Still works
Also need to measure delay not between each ADC scan but between each
matrix scan! That's what matters to the user.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 22:49:16 +08:00
Daniel Schaefer
8d392644b0
lotus: Remove pins that we don't use
...
Now if you grep GP0 through GP29 they'll all only show for the exact
uses we need them for.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 22:25:27 +08:00
Daniel Schaefer
48deca2b32
lotus: Add host SLEEP# detection
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 22:17:19 +08:00
Daniel Schaefer
50136360e7
lotus: Auto start ADC conversion
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 21:58:51 +08:00
Daniel Schaefer
b192ff0c3e
lotus: Fix print_float
...
Would print 3.09 as 3.9. Need to add leading 0.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 21:53:35 +08:00
Daniel Schaefer
1413dfa26e
lotus: Add some comments
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 21:47:46 +08:00
Daniel Schaefer
e37039c23e
lotus: Add two missing columns
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 21:35:35 +08:00
Daniel Schaefer
12c192c323
lotus: Integrate ADC reading into matrix logic
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 21:35:16 +08:00
Daniel Schaefer
72247be69f
lotus: Clean up ADC code a bit
...
Should now work on non-pi and prints:
```
...
Framework Computer Inc:Lotus Keyboard:1: scan
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)
Framework Computer Inc:Lotus Keyboard:1: Temperature: 18.71
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 0.1
Framework Computer Inc:Lotus Keyboard:1: scan
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)
Framework Computer Inc:Lotus Keyboard:1: Temperature: 18.24
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 0.1
Framework Computer Inc:Lotus Keyboard:1: scan
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)
...
```
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 20:58:38 +08:00
Daniel Schaefer
37aae1748e
lotus: Implement quick ADC reading
...
Has to be started manually:
hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v --open -l33 --send-output 0,11,3
Will print:
```
Framework Computer Inc:Lotus Keyboard:1: After handle_samplescan
Framework Computer Inc:Lotus Keyboard:1: prev: 959345
Framework Computer Inc:Lotus Keyboard:1: curr: 959352
Framework Computer Inc:Lotus Keyboard:1: 7 ms
Framework Computer Inc:Lotus Keyboard:1: 142 Hz
Framework Computer Inc:Lotus Keyboard:1: letsgo
Framework Computer Inc:Lotus Keyboard:1: adc_end_callback
Framework Computer Inc:Lotus Keyboard:1: After adcConvert
Framework Computer Inc:Lotus Keyboard:1: Raw ADC samples: 1004, 892, 1003, 892
Framework Computer Inc:Lotus Keyboard:1: Temp: 19.64
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 0.80
```
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 19:49:24 +08:00
Daniel Schaefer
e1997affa0
lotus: Fix non-pico build and GPIOs
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 17:01:33 +08:00
Daniel Schaefer
877e2f9ace
lotus: Implement ADC on correct pin
...
Verified with potentiometer knob. Voltage goes from 0.1V to 3.1.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 16:52:28 +08:00
Daniel Schaefer
4eb191c845
lotus: Add ifdef for pico variant
...
Pico doesn't expose all the pins so it'll be a bit different.
Just for prototyping.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-07 13:34:25 +08:00
Daniel Schaefer
8990a17d32
fixup! lotus: Add RGB factory commands
2023-01-07 13:31:44 +08:00
Daniel Schaefer
229d5eebe2
fixup! lotus: Add RGB factory commands
2023-01-06 18:26:10 +08:00
Daniel Schaefer
e61c85c212
lotus: Add RGB factory commands
...
Example to enable RGB:
```
hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 \
--open -l32 --send-output 0,11,4
```
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 18:11:39 +08:00
Daniel Schaefer
aef9c8a91b
lotus: Fix RGB LED order
...
This makes them work with the correct x/y position.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 18:02:55 +08:00
Daniel Schaefer
dd1de24050
lotus: Update gridpad LED positions
...
New schematic!
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 17:05:23 +08:00
Daniel Schaefer
f56d8cf742
lotus: Fix RGB
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 15:41:11 +08:00
Daniel Schaefer
02a496cad2
fixup! lotus: Configure I2C
2023-01-06 09:43:48 +08:00
Daniel Schaefer
f0d6021e84
lotus: Enable RGB effects
...
Same as Keychron Q1. Can adjust.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 08:30:37 +08:00
Daniel Schaefer
15def1ac4b
lotus: RP2040 UART driver isn't ready yet
...
https://github.com/qmk/qmk_firmware/issues/17744
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-06 08:29:48 +08:00
Daniel Schaefer
80b4bc533a
lotus: Enable MUX on init
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-05 21:09:18 +08:00
Daniel Schaefer
c7f8acb4ce
lotus: Configure I2C
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-05 21:02:13 +08:00
Daniel Schaefer
f7f339c414
WIP: Dummy serial number
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-05 16:08:12 +08:00
Daniel Schaefer
3ea4ec2a9c
lotus: Update USB PIDs
...
Different PID for each layout so that VIA can tell them apart.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 17:30:38 +08:00
Daniel Schaefer
4cd6cc1323
lotus: Upload UF2 packages
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 15:59:28 +08:00
Daniel Schaefer
b23e075e19
fixup! Add analog support for RP2040
2023-01-04 15:50:46 +08:00
Daniel Schaefer
116a4af371
lotus: Need to define ADC IRQ priority
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 15:40:57 +08:00
Daniel Schaefer
04d20771f4
lotus: Fix compilation with rp2040 adc fix
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 15:35:56 +08:00
Daniel Schaefer
42db647ce6
lotus: Add ADC reading code
...
Trigger with:
```
hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 \
--open -l32 --send-output 0,11,3
```
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 14:01:45 +08:00
Sergey Vlasov
5ae444a395
Add analog support for RP2040
2023-01-04 11:53:26 +08:00
Daniel Schaefer
f15099cfc9
lotus: Add RGB backlight controls
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-04 11:02:41 +08:00
Daniel Schaefer
5f604a6035
lotus: Fix via on the rp2040
...
I do remember it working before, not sure why it's not anymore.
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-03 23:35:26 +08:00
Daniel Schaefer
22579e3bf6
lotus: Fix VIA backlight menus
...
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-03 23:31:03 +08:00
Daniel Schaefer
c593ebe3bd
lotus: Add WIP factory HID protocol
...
Use like:
```sh
./hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v \
--open -l32 --send-output 0,1 --read-input
./hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v \
--open -l32 --send-output 0,11,0
./hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v \
--open -l32 --send-output 0,11,1,4
./hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v \
--open -l32 --send-output 0,11,2,1
./hidapitester --vidpid 32ac/0012 --usagePage 0xFF60 --usage 0x0061 -v \
--open -l32 --send-output 0,11,2,0
```
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2023-01-03 21:20:28 +08:00
Daniel Schaefer
e981025660
lotus: Enable numlock
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-30 12:24:46 +08:00
Daniel Schaefer
f392272ee4
lotus: Update building and flashing instructions
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-29 23:52:44 +08:00
Daniel Schaefer
80987831fb
lotus: Split layouts into separate keyboards
...
VIA needs separate PIDs for the layouts.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-29 23:33:52 +08:00
Daniel Schaefer
6dcfb422aa
lotus: Jump to bootloader via raw HID
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-29 21:05:35 +08:00
Daniel Schaefer
3cdcca467a
Temporarily remove VIA files from .gitignore
...
To fix lint
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-28 17:07:53 +08:00
Daniel Schaefer
61a32b79aa
fixup! lint: Ignore via files for now
2022-12-28 17:04:41 +08:00
Daniel Schaefer
dab5dba48d
Ignore python file formatting for now
...
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2022-12-28 17:03:29 +08:00