~ruther/qmk_firmware

ref: 3ece80f73f781a719ea6665af1d01b99922388e9 qmk_firmware/keyboards/lily58/keymaps/druotoni/readme.md -rw-r--r-- 3.6 KiB
3ece80f7 — zvecr Merge remote-tracking branch 'origin/master' into develop 2 years ago

#HELL0 NAVI. Interface

HELL0 NAVI. Interface is a GUI based en Serial Experiments Lain. Turn your Lily58 keyboard into a Navi computer with its own Copland OS.

Ready to dive into the Wired ?

HELL0 NAVI provides interactive animations for both sides :

  • a scope on left side for burst, WPM and active layer
  • a ring on right side for the last key stroke

#Typing animation

The scope displays your burst time on a chart. The WPM is represented by an horizontal line.

The ring display the last letter in the upper frame. Each time you enter a key, the Navi searches into the circular database and locks the position. A special animation is displayed when Enter, Backspce or Escape are struck.

#Startup animation

Your Navi boots when it leaves the sleep mode. The animation can be canceled by typing.

#Waking up animation

After a period of inactivity, the scope and the ring turn off and the Navi runs in Idle mode. A new key stroke wakes them up.

#Idle animation

The Copland OS is still in beta test. After a while, some visual glitches will occur.

#Shutdown animation

The Navi runs in sleep mode after 10 seconds in Idle mode. A nice (and difficul to render in a gif) animation is run. The OLED display turns off.

#How to build & flash

You need to flash each side with a specific version based on config.h configuration.

#Left side (master)

IS_RIGHT needs to be commented in config.h

#define IS_LEFT 1
//#define IS_RIGHT 1

Connect the left side and flash

#Right side (slave)

Comment IS_LEFT and uncomment IS_RIGHT in config.h

//#define IS_LEFT 1
#define IS_RIGHT 1

Connect the right side and flash

#Customization

Logo can be change in navi_logo.c. The new logo must be 32x32 pixels.

static void render_logo_clean(void) {
    // your logo here
    static const char PROGMEM logo_raw[] = {
        0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 128, 128, 192, 192, 204, 222, 222, 204, 192, 192, 128, 0, 0, 0, 128, 128, 0, 0,
        0, 0, 0, 0, 192, 240, 248, 28, 14, 7, 3, 249, 252, 255, 15, 7, 3, 225, 241, 241, 241, 241, 225, 3, 7, 15, 255, 252,
        249, 3, 7, 14, 28, 248, 240, 192, 192, 227, 231, 206, 28, 56, 112, 99, 15, 31, 60, 120, 240, 225, 227, 3, 3, 227,
        225, 240, 120, 60, 31, 15, 103, 112, 56, 28, 206, 231, 227, 192, 0, 1, 1, 0, 0, 0, 56, 120, 96, 192, 192, 192, 
        96, 127, 63, 0, 0, 63, 127, 96, 192, 192, 192, 96, 120, 56, 0, 0, 0, 1, 1, 0,
    };
    oled_write_raw_P(logo_raw, sizeof(logo_raw));
}

#Layer names

The current version handle 3 differents layers. Names can be changed in layer_frame.h.

// layer name : must be 3 chars
#define LAYER_NAME_0 "ABC"
#define LAYER_NAME_1 "NAV"
#define LAYER_NAME_2 "SPE"

#Timing

You can tweak states timing in gui_state.h.

// states timing
#define BOOTING_TIME_TRESHOLD 7000
#define WAKING_UP_TIME_TRESHOLD 300
#define IDLE_TIME_TRESHOLD 4000
#define HALTING_TIME_TRESHOLD IDLE_TIME_TRESHOLD + 6000
#define SLEEP_TIME_TRESHOLD HALTING_TIME_TRESHOLD + 8000

#Need space ?

Boot and gliches can be commented in config.h

// states timing
// logo glitch
//#define WITH_GLITCH
// boot sequence
//#define WITH_BOOT

My Navi

Keyboard : https://github.com/kata0510/Lily58

Case : https://github.com/BoardSodie/Lily58-Acrylic-Case