- 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.
		
			
				
	
	
		
			125 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
# Complete firmware builder for fingerpunch/sweeeeep with Liatris
 | 
						|
# Builds three versions:
 | 
						|
#   1. Regular firmware (for normal use after handedness is set)
 | 
						|
#   2. LEFT handedness initialization firmware
 | 
						|
#   3. RIGHT handedness initialization firmware
 | 
						|
 | 
						|
set -e  # Exit on error
 | 
						|
 | 
						|
KEYBOARD="fingerpunch/sweeeeep"
 | 
						|
KEYMAP="smathev"
 | 
						|
OUTPUT_NAME="fingerpunch_sweeeeep_smathev"
 | 
						|
 | 
						|
CONFIG_FILE="$HOME/git_dev/keyboards/qmk_userspace/keyboards/fingerpunch/sweeeeep/keymaps/smathev/config.h"
 | 
						|
BACKUP_FILE="${CONFIG_FILE}.backup"
 | 
						|
QMK_FIRMWARE_DIR="$HOME/git_dev/keyboards/qmk_firmware"
 | 
						|
OUTPUT_DIR="$HOME/git_dev/keyboards/latest_firmware"
 | 
						|
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "🔨 Building ALL firmware versions for $KEYBOARD"
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo ""
 | 
						|
echo "⚙️  Keyboard: $KEYBOARD"
 | 
						|
echo "⚙️  Keymap: $KEYMAP"
 | 
						|
echo "⚙️  Controller: Liatris (RP2040)"
 | 
						|
echo ""
 | 
						|
 | 
						|
# Clean build
 | 
						|
echo "🧹 Cleaning previous build..."
 | 
						|
qmk clean > /dev/null 2>&1
 | 
						|
echo ""
 | 
						|
 | 
						|
# ============================================================================
 | 
						|
# 1. Build REGULAR firmware (for normal use)
 | 
						|
# ============================================================================
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "📦 [1/3] Building REGULAR firmware..."
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
qmk compile -kb "$KEYBOARD" -km "$KEYMAP"
 | 
						|
if [ $? -eq 0 ]; then
 | 
						|
    cp "$QMK_FIRMWARE_DIR/${OUTPUT_NAME}.uf2" "$OUTPUT_DIR/${OUTPUT_NAME}.uf2"
 | 
						|
    echo "✅ Regular firmware: ${OUTPUT_NAME}.uf2"
 | 
						|
else
 | 
						|
    echo "❌ Regular firmware build failed!"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
echo ""
 | 
						|
 | 
						|
# Backup original config for handedness builds
 | 
						|
cp "$CONFIG_FILE" "$BACKUP_FILE"
 | 
						|
 | 
						|
# ============================================================================
 | 
						|
# 2. Build LEFT handedness initialization firmware
 | 
						|
# ============================================================================
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "📍 [2/3] Building LEFT hand initialization firmware..."
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
# Add INIT_EE_HANDS_LEFT to config
 | 
						|
sed -i '/^#define EE_HANDS/a #define INIT_EE_HANDS_LEFT' "$CONFIG_FILE"
 | 
						|
 | 
						|
qmk compile -kb "$KEYBOARD" -km "$KEYMAP"
 | 
						|
if [ $? -eq 0 ]; then
 | 
						|
    cp "$QMK_FIRMWARE_DIR/${OUTPUT_NAME}.uf2" "$OUTPUT_DIR/${OUTPUT_NAME}_LEFT.uf2"
 | 
						|
    echo "✅ LEFT hand firmware: ${OUTPUT_NAME}_LEFT.uf2"
 | 
						|
else
 | 
						|
    echo "❌ LEFT hand build failed!"
 | 
						|
    cp "$BACKUP_FILE" "$CONFIG_FILE"
 | 
						|
    rm "$BACKUP_FILE"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Restore config
 | 
						|
cp "$BACKUP_FILE" "$CONFIG_FILE"
 | 
						|
echo ""
 | 
						|
 | 
						|
# ============================================================================
 | 
						|
# 3. Build RIGHT handedness initialization firmware
 | 
						|
# ============================================================================
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "📍 [3/3] Building RIGHT hand initialization firmware..."
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
# Add INIT_EE_HANDS_RIGHT to config
 | 
						|
sed -i '/^#define EE_HANDS/a #define INIT_EE_HANDS_RIGHT' "$CONFIG_FILE"
 | 
						|
 | 
						|
qmk compile -kb "$KEYBOARD" -km "$KEYMAP"
 | 
						|
if [ $? -eq 0 ]; then
 | 
						|
    cp "$QMK_FIRMWARE_DIR/${OUTPUT_NAME}.uf2" "$OUTPUT_DIR/${OUTPUT_NAME}_RIGHT.uf2"
 | 
						|
    echo "✅ RIGHT hand firmware: ${OUTPUT_NAME}_RIGHT.uf2"
 | 
						|
else
 | 
						|
    echo "❌ RIGHT hand build failed!"
 | 
						|
    cp "$BACKUP_FILE" "$CONFIG_FILE"
 | 
						|
    rm "$BACKUP_FILE"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Restore original config
 | 
						|
cp "$BACKUP_FILE" "$CONFIG_FILE"
 | 
						|
rm "$BACKUP_FILE"
 | 
						|
rm "$QMK_FIRMWARE_DIR/${OUTPUT_NAME}.uf2"
 | 
						|
 | 
						|
 | 
						|
echo ""
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "🎉 ALL FIRMWARE FILES BUILT SUCCESSFULLY!"
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo ""
 | 
						|
echo "📁 Files created:"
 | 
						|
ls -lh "$OUTPUT_DIR/${OUTPUT_NAME}.uf2" "$OUTPUT_DIR/${OUTPUT_NAME}_LEFT.uf2" "$OUTPUT_DIR/${OUTPUT_NAME}_RIGHT.uf2"
 | 
						|
echo ""
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo "📝 USAGE GUIDE:"
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 | 
						|
echo ""
 | 
						|
echo "🔧 FIRST-TIME SETUP (Set handedness in EEPROM):"
 | 
						|
echo "   1. Flash ${OUTPUT_NAME}_LEFT.uf2 to LEFT keyboard half"
 | 
						|
echo "   2. Flash ${OUTPUT_NAME}_RIGHT.uf2 to RIGHT keyboard half"
 | 
						|
echo "   3. Only do this ONCE to initialize handedness"
 | 
						|
echo ""
 | 
						|
echo "🔄 REGULAR UPDATES (After handedness is set):"
 | 
						|
echo "   1. Flash ${OUTPUT_NAME}.uf2 to BOTH keyboard halves"
 | 
						|
echo "   2. Handedness is preserved in EEPROM"
 | 
						|
echo "   3. Either half can be plugged in as master"
 | 
						|
echo ""
 | 
						|
echo "💡 TIP: To enter bootloader, double-tap RESET on Liatris"
 | 
						|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
 |