- Created CONFIG_HIERARCHY.md to explain configuration file hierarchy and settings placement. - Added FLASH_HANDEDNESS.md detailing the flashing process for split keyboard handedness using Liatris controllers. - Introduced LIATRIS_QUICK_START.txt as a quick reference for handedness setup and flashing steps. - Included LICENSE file for GNU General Public License v2. - Added Makefile for building QMK firmware with user-specific configurations. - Updated README.md with instructions for configuring and building QMK userspace. - Created build_all.sh script to automate the building of regular and handedness initialization firmware. - Added qmk.json to define userspace version and build targets.
		
			
				
	
	
	
	
		
			4.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	QMK Firmware Build Guide for Fingerpunch Sweeeeep
This guide explains how to build and flash firmware for your split keyboard with EE_HANDS.
Quick Start
Build All Firmware Files
./build_all.sh
This creates three files:
fingerpunch_sweeeeep_smathev.uf2- Regular firmwarefingerpunch_sweeeeep_smathev_LEFT.uf2- LEFT hand initializationfingerpunch_sweeeeep_smathev_RIGHT.uf2- RIGHT hand initialization
First-Time Setup (One-Time Only)
You only need to do this ONCE to set the handedness in EEPROM:
- 
Initialize LEFT keyboard half:
- Unplug both halves
 - Plug in the LEFT half
 - Double-tap RESET button on Liatris controller
 - Drag 
fingerpunch_sweeeeep_smathev_LEFT.uf2to the RPI-RP2 drive - Wait for it to disconnect/reconnect
 
 - 
Initialize RIGHT keyboard half:
- Unplug both halves
 - Plug in the RIGHT half
 - Double-tap RESET button on Liatris controller
 - Drag 
fingerpunch_sweeeeep_smathev_RIGHT.uf2to the RPI-RP2 drive - Wait for it to disconnect/reconnect
 
 - 
Test: Plug either half in via USB - keys should work correctly regardless of which side is plugged in!
 
Regular Firmware Updates
After handedness is initialized, use the regular firmware for all future updates:
- 
Flash regular firmware to BOTH halves:
- Double-tap RESET on each half
 - Drag 
fingerpunch_sweeeeep_smathev.uf2to each 
 - 
Handedness is preserved: The EEPROM remembers which half is which, so you don't need the
_LEFTor_RIGHTfiles anymore (unless you want to change handedness). 
How It Works
EE_HANDS (EEPROM Handedness)
- Each keyboard half stores its identity (LEFT or RIGHT) in EEPROM
 - The handedness firmware (
_LEFT.uf2and_RIGHT.uf2) initializes this EEPROM value on first flash - After initialization, either half can be plugged in as master
 - Regular firmware preserves the EEPROM handedness value
 
Build Process
The build_all.sh script:
- Regular firmware: Builds with 
EE_HANDSdefined - LEFT firmware: Temporarily adds 
INIT_EE_HANDS_LEFTto config.h and builds - RIGHT firmware: Temporarily adds 
INIT_EE_HANDS_RIGHTto config.h and builds - Restores: Original config.h is restored after builds
 
The INIT_EE_HANDS_LEFT/RIGHT defines tell QMK to write the handedness to EEPROM on boot.
Troubleshooting
Keys are backwards when plugging in one side
- You probably flashed the wrong 
_LEFTor_RIGHTfile to the wrong keyboard half - Solution: Re-flash with the correct handedness files
 
Master side always seems to be the same regardless of which I plug in
- The 
EE_HANDSsetting may not be properly configured - Check that 
config.hhas#define EE_HANDS(notMASTER_LEFTorMASTER_RIGHT) - Rebuild and reflash handedness files
 
How do I reset/change handedness?
- Simply flash the opposite handedness firmware to swap a keyboard half's identity
 - Example: Flash 
_RIGHT.uf2to what was previously the LEFT half 
File Structure
qmk_userspace/
├── build_all.sh                          # Main build script (builds all 3 files)
├── build_handedness_manual.sh            # Legacy handedness-only builder
├── fingerpunch_sweeeeep_smathev.uf2      # Regular firmware
├── fingerpunch_sweeeeep_smathev_LEFT.uf2 # LEFT initialization
├── fingerpunch_sweeeeep_smathev_RIGHT.uf2# RIGHT initialization
├── keyboards/
│   └── fingerpunch/
│       └── sweeeeep/
│           └── keymaps/
│               └── smathev/
│                   ├── config.h          # Keyboard-specific config (EE_HANDS)
│                   └── keymap.c          # Your keymap
└── users/
    └── smathev/
        ├── config.h                      # Userspace config
        ├── combos.c/h                    # Combo definitions
        └── ...
Additional Notes
Liatris Controller
- The Liatris uses RP2040 (same as Raspberry Pi Pico)
 - Firmware files are 
.uf2format - Double-tap RESET to enter bootloader mode (appears as RPI-RP2 drive)
 - No need for QMK Toolbox - just drag and drop files
 
Configuration Hierarchy
- users/smathev/config.h - User preferences (applies to all keyboards)
 - keyboards/.../keymaps/smathev/config.h - Keyboard-specific overrides
 - Keyboard defaults - Base keyboard configuration
 
The EE_HANDS setting is in the keyboard-specific config because it's hardware-dependent.