FrameworkComputer / qmk_firmware

Fork of QMK for the Framework Laptop 16
GNU General Public License v2.0
84 stars 24 forks source link

Framework Laptop 16 Keyboards #1

Open JohnAZoidberg opened 1 year ago

JohnAZoidberg commented 1 year ago

Building:

qmk compile -kb framework/ansi -km default
qmk compile -kb framework/iso -km default
qmk compile -kb framework/jis -km default
qmk compile -kb framework/numpad -km default
qmk compile -kb framework/gridpad -km default

Other commands:

# Flash firmware (device must be in bootloader mode)
qmk flash -kb framework/ansi -km default

# Render layout with labels
qmk info -kb framework/ansi -km default -m

# Render layout matrix information
qmk info -kb framework/ansi -km default -m

# Show console output of connected QMK devices
qmk console

Resources:

Tasks

JohnAZoidberg commented 1 year ago

Fixed the build and made sure that GH Actions also tests that.

JohnAZoidberg commented 1 year ago

image Debugging via print and uprintf console works

JohnAZoidberg commented 1 year ago

Firmware sizes currently:

> ls -lh .build/*uf2
-rw-rw-r-- 1 zoid zoid 98K Jan  5 17:47 .build/lotus_ansi_default.uf2
-rw-rw-r-- 1 zoid zoid 95K Jan  5 18:15 .build/lotus_gridpad_default.uf2
-rw-rw-r-- 1 zoid zoid 85K Jan  5 18:14 .build/lotus_iso_default.uf2
-rw-rw-r-- 1 zoid zoid 85K Jan  5 18:15 .build/lotus_jis_default.uf2
-rw-rw-r-- 1 zoid zoid 84K Jan  5 18:15 .build/lotus_numpad_default.uf2

Much of that is UF2 overhead. The last byte in the .hex file is 0xC244 (49732), so the FW is roughly 50K big.

JohnAZoidberg commented 1 year ago

Testing while twisting potentiometer to provide ADC voltage, set the threshold at 3V:

Framework Computer Inc:Lotus Keyboard:1: Col 10 - Row 5 - State: 0, Voltage: 3.11                                                                                                             
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.88                                                                                                                                   
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 3.9                                                                                                                                     
Framework Computer Inc:Lotus Keyboard:1: Col 10 - Row 6 - State: 0, Voltage: 3.09                                                                                                              
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.88                                                                                                                                   
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 3.5                                                                                                                                     
Framework Computer Inc:Lotus Keyboard:1: Col 10 - Row 7 - State: 0, Voltage: 3.05                                                                                                              
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.64                                                                                                                                   
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 3.2                                                                                                                                     
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 0 - State: 0, Voltage: 3.09                                                                                                              
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.88                                                                                                                                   
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.98                                                                                                                                    
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 1 - State: 1, Voltage: 2.98                                                                                                             
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.64                                                                                                                                   
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.96                                                                                                                                    
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 2 - State: 1, Voltage: 2.96                                                                                                             
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)                                                                                                                                        
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.64                                    
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.92                                     
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 3 - State: 1, Voltage: 2.92              
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)                                         
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.64                                    
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.87                                     
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 4 - State: 1, Voltage: 2.87              
Framework Computer Inc:Lotus Keyboard:1: 5 ms (200 Hz)                                         
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.88                                    
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.83                                     
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 5 - State: 1, Voltage: 2.83              
Framework Computer Inc:Lotus Keyboard:1: 6 ms (166 Hz)                                         
Framework Computer Inc:Lotus Keyboard:1: Temperature: 19.88                                    
Framework Computer Inc:Lotus Keyboard:1: ADC Voltage: 2.80                                     
Framework Computer Inc:Lotus Keyboard:1: Col 11 - Row 6 - State: 1, Voltage: 2.80              
JohnAZoidberg commented 1 year ago

Works out of the box with a raspberry pi pico. Does not drive the column GPIOs because GP29 is not present on the pico, which we need to use for SDB to enable the RGB controller. I remapped that to GP22 for now. Will have to undefine PICO_LOTUS when we do a build for the factory next week.

JohnAZoidberg commented 1 year ago

Printing many times per cycle on the console slows QMK down A LOT! Will have to measure latency without logging every matrix scan.

JohnAZoidberg commented 1 year ago

Current ANSI FW size:

Without LTO: 61924 With LTO: 49668

pdalpra commented 6 months ago

@JohnAZoidberg Sorry to hijack this PR but is it the current best source to build a custom firmware (=> not using VIA's web UI) ?

Blue-Sauce commented 6 months ago

@JohnAZoidberg Sorry to hijack this PR but is it the current best source to build a custom firmware (=> not using VIA's web UI) ?

v0.2.9 is the latest version. You can find it here https://github.com/FrameworkComputer/qmk_firmware/tree/v0.2.9/