b3c0548ed3
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Joel Challis <git@zvecr.com> |
||
---|---|---|
.. | ||
boot.c | ||
boot.h | ||
burst.c | ||
burst.h | ||
config.h | ||
draw_helper.c | ||
draw_helper.h | ||
fast_random.c | ||
fast_random.h | ||
gui_state.c | ||
gui_state.h | ||
keymap.c | ||
layer_frame.c | ||
layer_frame.h | ||
navi_font.c | ||
navi_logo.c | ||
navi_logo.h | ||
readme.md | ||
ring.c | ||
ring.h | ||
rules.mk |
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
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
Keyboard : https://github.com/kata0510/Lily58