Chrysalis icon indicating copy to clipboard operation
Chrysalis copied to clipboard

Firmware flash fails on Model 100

Open alarsyo opened this issue 2 years ago • 13 comments

Describe the bug Firmware flashing fails on the Model 100 on NixOS, using an updated Chrysalis package.

To Reproduce Steps to reproduce the behavior:

  1. Launch flashing procedure on a Model 100
  2. During step 2, switch to programmable mode, press the PROG key
  3. PROG key turns red, then stays that way (stuck in bootloader mode?)
  4. See screenshot for what chrysalis displays after a few seconds of the PROG key LED being red

Expected behavior Flashing goes fine

Screenshots

image

Desktop (please complete the following information):

  • OS: NixOS unstable
  • Chrysalis Version: 0.11.3

Additional context

The debug bundle logs aren't relevant because when I reproduce the issue, Chrysalis freezes and I can't discard the message window shown in the screenshot. Here's the debug bundle in case there's anything else useful in there, as well as logs grabbed from .config/chrysalis/logs/ from a time I reproduced the issue:

https://gist.github.com/alarsyo/49386d77aeda45e50232f7d18cb1182b

I do have /etc/udev/rules.d/60-kaleidoscope.rules setup correctly, in case that matters.

I have to unplug the keyboard to get it out of bootloader mode, and when I plug it back in it's reset to the default layout, I have to set it up again in Chrysalis restoring a backup.

alarsyo avatar Sep 23 '22 22:09 alarsyo

Here's a debug bundle from flashing a Model 01 firmware just fine on the exact same setup:

{
  "timestamp": "2022-09-23T22:36:39.714Z",
  "uuid": "193a0db9-649e-424c-9de2-27ec1920206e",
  "chrysalis": {"version": "0.11.3"},
  "os": {"platform": "linux", "distro": "NixOS", "release": "22.11", "codename": "Raccoon", "kernel": "5.15.67", "arch": "x64", "hostname": "zephyrus", "fqdn": "zephyrus.alarsyo.net", "codepage": "UTF-8", "logofile": "nixos", "serial": "", "build": "22.11.20220912.5f326e2", "servicepack": "", "uefi": true},
  "usb": [],
  "logs": [
    {"function": "find", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:34:37.047Z"},
    {"devices": [{"focusDeviceDescriptor": {"bootloader": false, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}], "function": "find", "label": "focus", "level": "debug", "message": "supported devices found", "timestamp": "2022-09-23T22:34:37.049Z"},
    {"level": "info", "message": "Connecting to port", "path": "/dev/ttyACM0", "timestamp": "2022-09-23T22:34:41.876Z"},
    {"level": "info", "message": "Probing for focus support...", "timestamp": "2022-09-23T22:34:42.003Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 0}, "timestamp": "2022-09-23T22:34:42.008Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 1}, "timestamp": "2022-09-23T22:34:42.009Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 2}, "timestamp": "2022-09-23T22:34:42.009Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 3}, "timestamp": "2022-09-23T22:34:42.010Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 4}, "timestamp": "2022-09-23T22:34:42.028Z"},
    {"args": ["/editor"], "level": "debug", "message": "navigating to location", "timestamp": "2022-09-23T22:34:42.029Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "keymap.default", "id": 5}, "timestamp": "2022-09-23T22:34:42.052Z"},
    {"data": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:34:42.266Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 0}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:34:42.267Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 1}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:34:42.269Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 2}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:34:42.274Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 3}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:34:42.275Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 4}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:34:42.283Z"},
    {"data": ".", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:34:42.305Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "keymap.default", "id": 5}, "timestamp": "2022-09-23T22:34:42.305Z"},
    {"args": [], "command": "keymap.custom", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.306Z"},
    {"args": [], "command": "keymap.onlyCustom", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.306Z"},
    {"args": [], "command": "keymap.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.306Z"},
    {"args": [], "command": "keymap.roLayers", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.307Z"},
    {"args": [], "command": "palette", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.308Z"},
    {"args": [], "command": "colormap.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.308Z"},
    {"args": [], "command": "macros.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.313Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "settings.defaultLayer", "id": 6}, "timestamp": "2022-09-23T22:34:42.316Z"},
    {"data": "0 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:34:42.571Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "settings.defaultLayer", "id": 6}, "response": "0", "timestamp": "2022-09-23T22:34:42.571Z"},
    {"args": [], "command": "keymap.layerNames", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:34:42.574Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "version", "id": 7}, "timestamp": "2022-09-23T22:35:57.847Z"},
    {"data": ".", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:35:58.100Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "version", "id": 7}, "timestamp": "2022-09-23T22:35:58.100Z"},
    {"level": "info", "message": "Starting to flash", "timestamp": "2022-09-23T22:36:02.403Z"},
    {"label": "flash", "level": "info", "message": "executing step", "step": "saveEEPROM", "timestamp": "2022-09-23T22:36:02.410Z"},
    {"args": [], "command": "keymap.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.461Z"},
    {"args": [], "command": "keymap.roLayers", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.461Z"},
    {"args": [], "command": "palette", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.462Z"},
    {"args": [], "command": "colormap.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.462Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "settings.defaultLayer", "id": 8}, "timestamp": "2022-09-23T22:36:02.462Z"},
    {"data": "0 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:02.715Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "settings.defaultLayer", "id": 8}, "response": "0", "timestamp": "2022-09-23T22:36:02.715Z"},
    {"args": [], "command": "escape_oneshot.cancel_key", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.716Z"},
    {"args": [], "command": "idleleds.time_limit", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.716Z"},
    {"args": [], "command": "keymap.layerNames", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.716Z"},
    {"args": [], "command": "led.brightness", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.717Z"},
    {"args": [], "command": "led_mode.auto_save", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.717Z"},
    {"args": [], "command": "led_mode.default", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.717Z"},
    {"args": [], "command": "macros.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.718Z"},
    {"args": [], "command": "tapdance.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.718Z"},
    {"args": [], "command": "hostos.type", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.719Z"},
    {"args": [], "command": "autoshift.enabled", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.719Z"},
    {"args": [], "command": "autoshift.timeout", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.719Z"},
    {"args": [], "command": "autoshift.categories", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.720Z"},
    {"args": [], "command": "typingbreaks.idleTimeLimit", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.720Z"},
    {"args": [], "command": "typingbreaks.lockTimeOut", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.720Z"},
    {"args": [], "command": "typingbreaks.lockLength", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.720Z"},
    {"args": [], "command": "typingbreaks.leftMaxKeys", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.721Z"},
    {"args": [], "command": "typingbreaks.rightMaxKeys", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.721Z"},
    {"args": [], "command": "spacecadet.mode", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.721Z"},
    {"args": [], "command": "spacecadet.timeout", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:02.722Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 9}, "timestamp": "2022-09-23T22:36:02.723Z"},
    {"data": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:02.979Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 9}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:36:02.979Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "plugins", "id": 10}, "timestamp": "2022-09-23T22:36:02.980Z"},
    {"data": "Macros\nMouseKeys\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:03.233Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "plugins", "id": 10}, "response": "Macros\nMouseKeys", "timestamp": "2022-09-23T22:36:03.233Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "eeprom.contents", "id": 11}, "timestamp": "2022-09-23T22:36:03.234Z"},
    {
      "data": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 ",
      "label": "focus",
      "level": "debug",
      "message": "incoming data",
      "timestamp": "2022-09-23T22:36:03.639Z"
    },
    {
      "label": "focus",
      "level": "verbose",
      "message": "response",
      "request": {"args": [], "command": "eeprom.contents", "id": 11},
      "response": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255",
      "timestamp": "2022-09-23T22:36:03.639Z"
    },
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "eeprom.free", "id": 12}, "timestamp": "2022-09-23T22:36:03.640Z"},
    {"data": "1020 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:03.893Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "eeprom.free", "id": 12}, "response": "1020", "timestamp": "2022-09-23T22:36:03.894Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "settings.valid?", "id": 13}, "timestamp": "2022-09-23T22:36:03.894Z"},
    {"data": "false ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:04.148Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "settings.valid?", "id": 13}, "response": "false", "timestamp": "2022-09-23T22:36:04.149Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "settings.version", "id": 14}, "timestamp": "2022-09-23T22:36:04.149Z"},
    {"data": "1 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:04.403Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "settings.version", "id": 14}, "response": "1", "timestamp": "2022-09-23T22:36:04.403Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "settings.crc", "id": 15}, "timestamp": "2022-09-23T22:36:04.406Z"},
    {"data": "0/17", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:04.659Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "settings.crc", "id": 15}, "response": "0/17", "timestamp": "2022-09-23T22:36:04.659Z"},
    {
      "eeprom": {
        "autoshift.categories": "",
        "autoshift.enabled": "",
        "autoshift.timeout": "",
        "colormap": {"colorMap": [], "palette": []},
        "eeprom.contents": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255",
        "eeprom.free": "1020",
        "escape_oneshot.cancel_key": "",
        "help": ["help", "plugins", "settings.defaultLayer", "settings.valid?", "settings.version", "settings.crc", "eeprom.contents", "eeprom.free"],
        "hostos.type": "",
        "idleleds.time_limit": "",
        "keymap": {"custom": [], "default": [], "onlyCustom": false},
        "layernames": {"names": [], "storageSize": 0},
        "led.brightness": "",
        "led_mode.auto_save": "",
        "led_mode.default": "",
        "macros": {"macros": [], "storageSize": 0},
        "plugins": "Macros\nMouseKeys",
        "settings.crc": "0/17",
        "settings.defaultLayer": "0",
        "settings.valid?": "false",
        "settings.version": "1",
        "spacecadet.mode": "",
        "spacecadet.timeout": "",
        "tapdance.map": "",
        "typingbreaks.idleTimeLimit": "",
        "typingbreaks.leftMaxKeys": "",
        "typingbreaks.lockLength": "",
        "typingbreaks.lockTimeOut": "",
        "typingbreaks.rightMaxKeys": ""
      },
      "key": ".internal.6073e433-206c-43c1-a7a5-d996dbcf50af",
      "label": "flash",
      "level": "debug",
      "message": "Writing structured EEPROM data to session storage",
      "timestamp": "2022-09-23T22:36:04.662Z"
    },
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 16}, "timestamp": "2022-09-23T22:36:04.670Z"},
    {"data": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:04.926Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 16}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:36:04.926Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "eeprom.contents", "id": 17}, "timestamp": "2022-09-23T22:36:04.926Z"},
    {
      "data": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 ",
      "label": "focus",
      "level": "debug",
      "message": "incoming data",
      "timestamp": "2022-09-23T22:36:05.332Z"
    },
    {
      "label": "focus",
      "level": "verbose",
      "message": "response",
      "request": {"args": [], "command": "eeprom.contents", "id": 17},
      "response": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255",
      "timestamp": "2022-09-23T22:36:05.332Z"
    },
    {
      "label": "focus",
      "level": "verbose",
      "message": "request",
      "request": {
        "args": [
          "255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255"
        ],
        "command": "eeprom.contents",
        "id": 18
      },
      "timestamp": "2022-09-23T22:36:05.333Z"
    },
    {"data": ".", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:12.083Z"},
    {
      "label": "focus",
      "level": "verbose",
      "message": "response",
      "request": {
        "args": [
          "255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255"
        ],
        "command": "eeprom.contents",
        "id": 18
      },
      "timestamp": "2022-09-23T22:36:12.084Z"
    },
    {"label": "flash", "level": "debug", "message": "baud update", "timestamp": "2022-09-23T22:36:12.097Z"},
    {"label": "flash", "level": "debug", "message": "dtr on", "timestamp": "2022-09-23T22:36:12.599Z"},
    {"label": "flash", "level": "debug", "message": "dtr off", "timestamp": "2022-09-23T22:36:13.101Z"},
    {"label": "flash", "level": "info", "message": "executing step", "step": "bootloader", "timestamp": "2022-09-23T22:36:13.603Z"},
    {"descriptor": {"bootloader": false, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "checking bootloader presence", "timestamp": "2022-09-23T22:36:13.636Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"path": "/dev/ttyACM0"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:13.861Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial device not found", "timestamp": "2022-09-23T22:36:13.862Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"path": "/dev/ttyACM0"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:13.987Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial device not found", "timestamp": "2022-09-23T22:36:13.987Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 19}, "timestamp": "2022-09-23T22:36:13.987Z"},
    {"error": "Device not connected!", "label": "focus", "level": "error", "message": "request timed out", "request": {"args": [], "command": "help", "id": 19}, "timestamp": "2022-09-23T22:36:13.988Z"},
    {"label": "flash", "level": "debug", "message": "baud update", "timestamp": "2022-09-23T22:36:13.988Z"},
    {"descriptor": {"bootloader": false, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "checking bootloader presence", "timestamp": "2022-09-23T22:36:15.989Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:16.196Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial device not found", "timestamp": "2022-09-23T22:36:16.196Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:16.336Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "info", "message": "serial port found", "port": {"focusDeviceDescriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, "timestamp": "2022-09-23T22:36:16.336Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 20}, "timestamp": "2022-09-23T22:36:16.337Z"},
    {"data": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:16.591Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 20}, "response": "help\nplugins\r\nsettings.defaultLayer\nsettings.valid?\nsettings.version\nsettings.crc\r\neeprom.contents\neeprom.free", "timestamp": "2022-09-23T22:36:16.592Z"},
    {"label": "flash", "level": "debug", "message": "baud update", "timestamp": "2022-09-23T22:36:16.592Z"},
    {"label": "flash", "level": "debug", "message": "dtr on", "timestamp": "2022-09-23T22:36:17.093Z"},
    {"label": "flash", "level": "debug", "message": "dtr off", "timestamp": "2022-09-23T22:36:17.595Z"},
    {"descriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "checking bootloader presence", "timestamp": "2022-09-23T22:36:20.097Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio ", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_kbio01-if00", "productId": "2300", "serialNumber": "kbio01", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:20.324Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "info", "message": "serial port found", "port": {"focusDeviceDescriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio ", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_kbio01-if00", "productId": "2300", "serialNumber": "kbio01", "vendorId": "1209"}, "timestamp": "2022-09-23T22:36:20.325Z"},
    {"label": "flash", "level": "info", "message": "executing step", "step": "flash", "timestamp": "2022-09-23T22:36:20.326Z"},
    {"label": "flash", "level": "debug", "message": "flashing done", "timestamp": "2022-09-23T22:36:28.348Z"},
    {"label": "flash", "level": "info", "message": "executing step", "step": "reconnect", "timestamp": "2022-09-23T22:36:28.349Z"},
    {"descriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "reconnecting to keyboard", "timestamp": "2022-09-23T22:36:28.370Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio ", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_kbio01-if00", "productId": "2300", "serialNumber": "kbio01", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:28.532Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial device not found", "timestamp": "2022-09-23T22:36:28.532Z"},
    {"descriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "checking bootloader presence", "timestamp": "2022-09-23T22:36:28.532Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio ", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_kbio01-if00", "productId": "2300", "serialNumber": "kbio01", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:28.667Z"},
    {"device": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "info", "message": "serial port found", "port": {"focusDeviceDescriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio ", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_kbio01-if00", "productId": "2300", "serialNumber": "kbio01", "vendorId": "1209"}, "timestamp": "2022-09-23T22:36:28.667Z"},
    {"label": "flash", "level": "debug", "message": "rebooting to normal mode", "timestamp": "2022-09-23T22:36:28.668Z"},
    {"descriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "label": "focus", "level": "info", "message": "reconnecting to keyboard", "timestamp": "2022-09-23T22:36:30.669Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:30.854Z"},
    {"device": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}, "function": "checkForSerialDevice", "label": "focus", "level": "info", "message": "serial port found", "port": {"focusDeviceDescriptor": {"bootloader": true, "components": {}, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, "timestamp": "2022-09-23T22:36:30.854Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "help", "id": 21}, "timestamp": "2022-09-23T22:36:30.855Z"},
    {"data": "keymap.custom\r\nkeymap.default\r\nkeymap.onlyCustom\r\nhelp\r\ndevice.reset\r\nplugins\r\nsettings.defaultLayer\r\nsettings.valid?\r\nsettings.version\r\nsettings.crc\r\neeprom.contents\r\neeprom.free\r\neeprom.erase\r\npalette\r\ncolormap.map\r\nmacros.map\r\nmacros.trigger\r\nversion\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:31.112Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "help", "id": 21}, "response": "keymap.custom\r\nkeymap.default\r\nkeymap.onlyCustom\r\nhelp\r\ndevice.reset\r\nplugins\r\nsettings.defaultLayer\r\nsettings.valid?\r\nsettings.version\r\nsettings.crc\r\neeprom.contents\r\neeprom.free\r\neeprom.erase\r\npalette\r\ncolormap.map\r\nmacros.map\r\nmacros.trigger\r\nversion", "timestamp": "2022-09-23T22:36:31.113Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "plugins", "id": 22}, "timestamp": "2022-09-23T22:36:31.113Z"},
    {"data": "EEPROMKeymap\r\nColormapEffect\r\nMacros\r\nDynamicMacros\r\nMouseKeys\r\nQukeys\r\nMagicCombo\r\n", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:31.370Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "plugins", "id": 22}, "response": "EEPROMKeymap\r\nColormapEffect\r\nMacros\r\nDynamicMacros\r\nMouseKeys\r\nQukeys\r\nMagicCombo", "timestamp": "2022-09-23T22:36:31.370Z"},
    {"label": "flash", "level": "info", "message": "executing step", "step": "restoreEEPROM", "timestamp": "2022-09-23T22:36:31.372Z"},
    {
      "eeprom": {
        "autoshift.categories": "",
        "autoshift.enabled": "",
        "autoshift.timeout": "",
        "colormap": {"colorMap": [], "palette": []},
        "eeprom.contents": "0 1 17 0 255 255 0 30 0 31 0 32 0 33 0 34 67 0 0 224 0 228 96 1 0 35 0 36 0 37 0 38 0 39 68 1 0 53 0 20 0 26 0 8 0 21 0 23 0 43 0 42 0 44 0 40 0 28 0 24 0 12 0 18 0 19 0 46 0 75 0 4 0 22 0 7 0 9 0 10 0 41 0 227 0 226 0 230 0 11 0 13 0 14 0 15 0 51 0 52 0 78 0 29 0 27 0 6 0 25 0 5 68 44 0 225 0 229 68 44 0 17 0 16 0 54 0 55 0 56 0 45 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 0 255 255 0 36 0 37 0 38 0 86 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 33 0 34 0 35 0 87 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 30 0 31 0 32 0 46 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 39 0 55 0 85 0 84 0 40 255 255 0 58 0 59 0 60 0 61 0 62 0 57 255 255 255 255 72 182 0 63 0 64 0 65 0 66 0 67 0 68 0 43 255 255 80 1 255 255 80 66 80 96 80 41 0 76 0 40 72 205 72 181 8 47 8 48 0 47 0 48 0 69 0 74 80 4 80 2 80 8 80 65 80 37 80 42 255 255 255 255 0 101 0 80 0 81 0 82 0 79 255 255 255 255 0 77 0 70 0 73 255 255 80 68 80 38 255 255 255 255 255 255 255 255 72 226 72 234 72 233 255 255 0 49 8 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255",
        "eeprom.free": "1020",
        "escape_oneshot.cancel_key": "",
        "help": ["help", "plugins", "settings.defaultLayer", "settings.valid?", "settings.version", "settings.crc", "eeprom.contents", "eeprom.free"],
        "hostos.type": "",
        "idleleds.time_limit": "",
        "keymap": {"custom": [], "default": [], "onlyCustom": false},
        "layernames": {"names": [], "storageSize": 0},
        "led.brightness": "",
        "led_mode.auto_save": "",
        "led_mode.default": "",
        "macros": {"macros": [], "storageSize": 0},
        "plugins": "Macros\nMouseKeys",
        "settings.crc": "0/17",
        "settings.defaultLayer": "0",
        "settings.valid?": "false",
        "settings.version": "1",
        "spacecadet.mode": "",
        "spacecadet.timeout": "",
        "tapdance.map": "",
        "typingbreaks.idleTimeLimit": "",
        "typingbreaks.leftMaxKeys": "",
        "typingbreaks.lockLength": "",
        "typingbreaks.lockTimeOut": "",
        "typingbreaks.rightMaxKeys": ""
      },
      "key": ".internal.6073e433-206c-43c1-a7a5-d996dbcf50af",
      "label": "flash",
      "level": "debug",
      "message": "Restoring structured EEPROM data from session storage",
      "timestamp": "2022-09-23T22:36:31.426Z"
    },
    {"args": [], "command": "keymap.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:31.427Z"},
    {"args": [], "command": "keymap.roLayers", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:31.427Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "palette", "id": 23}, "timestamp": "2022-09-23T22:36:31.428Z"},
    {"data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:31.694Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "palette", "id": 23}, "response": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0", "timestamp": "2022-09-23T22:36:31.694Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "colormap.map", "id": 24}, "timestamp": "2022-09-23T22:36:31.695Z"},
    {
      "data": "15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ",
      "label": "focus",
      "level": "debug",
      "message": "incoming data",
      "timestamp": "2022-09-23T22:36:32.052Z"
    },
    {
      "label": "focus",
      "level": "verbose",
      "message": "response",
      "request": {"args": [], "command": "colormap.map", "id": 24},
      "response": "15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15",
      "timestamp": "2022-09-23T22:36:32.052Z"
    },
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": ["0"], "command": "settings.defaultLayer", "id": 25}, "timestamp": "2022-09-23T22:36:32.052Z"},
    {"data": ".", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:32.306Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": ["0"], "command": "settings.defaultLayer", "id": 25}, "timestamp": "2022-09-23T22:36:32.306Z"},
    {"args": [""], "command": "escape_oneshot.cancel_key", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.307Z"},
    {"args": [""], "command": "idleleds.time_limit", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.307Z"},
    {"args": [" 0"], "command": "keymap.layerNames", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.308Z"},
    {"args": [""], "command": "led.brightness", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.308Z"},
    {"args": [""], "command": "led_mode.auto_save", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.308Z"},
    {"args": [""], "command": "led_mode.default", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.308Z"},
    {"label": "focus", "level": "verbose", "message": "request", "request": {"args": [], "command": "macros.map", "id": 26}, "timestamp": "2022-09-23T22:36:32.309Z"},
    {"data": "255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 ", "label": "focus", "level": "debug", "message": "incoming data", "timestamp": "2022-09-23T22:36:32.608Z"},
    {"label": "focus", "level": "verbose", "message": "response", "request": {"args": [], "command": "macros.map", "id": 26}, "response": "255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255", "timestamp": "2022-09-23T22:36:32.608Z"},
    {"args": [""], "command": "tapdance.map", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.608Z"},
    {"args": [""], "command": "hostos.type", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.608Z"},
    {"args": [""], "command": "autoshift.enabled", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.608Z"},
    {"args": [""], "command": "autoshift.timeout", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "autoshift.categories", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "typingbreaks.idleTimeLimit", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "typingbreaks.lockTimeOut", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "typingbreaks.lockLength", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "typingbreaks.leftMaxKeys", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "typingbreaks.rightMaxKeys", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "spacecadet.mode", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"args": [""], "command": "spacecadet.timeout", "label": "focus", "level": "verbose", "message": "request (noop)", "timestamp": "2022-09-23T22:36:32.609Z"},
    {"level": "info", "message": "Successfully flashed", "timestamp": "2022-09-23T22:36:32.634Z"},
    {"args": ["/keyboard-select"], "level": "debug", "message": "navigating to location", "timestamp": "2022-09-23T22:36:33.677Z"},
    {"level": "info", "message": "Disconnecting from keyboard", "path": "/dev/ttyACM0", "timestamp": "2022-09-23T22:36:33.678Z"},
    {"args": ["./"], "level": "debug", "message": "navigating to location", "timestamp": "2022-09-23T22:36:33.678Z"},
    {"args": ["/keyboard-select"], "level": "debug", "message": "navigating to location", "timestamp": "2022-09-23T22:36:33.694Z"},
    {"function": "find", "label": "focus", "level": "debug", "message": "serial port list obtained", "portList": [{"manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}, {"path": "/dev/ttyS0"}, {"path": "/dev/ttyS1"}, {"path": "/dev/ttyS2"}, {"path": "/dev/ttyS3"}], "timestamp": "2022-09-23T22:36:33.949Z"},
    {"devices": [{"focusDeviceDescriptor": {"bootloader": false, "info": {"displayName": "Keyboardio Model 01", "product": "Model01", "urls": [{"name": "Homepage", "url": "https://shop.keyboard.io/"}, {"name": "Forum", "url": "https://community.keyboard.io/"}, {"name": "Chat", "url": "https://keyboard.io/discord-invite"}], "vendor": "Keyboardio"}, "keyboard": {"columns": 16, "rows": 4}, "usb": {"bootloader": {"productId": 8960, "protocol": "avr109", "vendorId": 4617}, "productId": 8961, "vendorId": 4617}}, "manufacturer": "Keyboardio", "path": "/dev/ttyACM0", "pnpId": "usb-Keyboardio_Model_01_Ckbio01E-if00", "productId": "2301", "serialNumber": "Ckbio01E", "vendorId": "1209"}], "function": "find", "label": "focus", "level": "debug", "message": "supported devices found", "timestamp": "2022-09-23T22:36:33.949Z"}
  ]
}

alarsyo avatar Sep 23 '22 22:09 alarsyo

I can also add that flashing the latest firmware from a Windows computer worked absolutely fine for the Model 100, so the keyboard itself doesn't seem to be the issue (thankfully :D)

alarsyo avatar Sep 23 '22 22:09 alarsyo

Im seeing a similar issue at my macs(fails on both intel and m1). But in my setups chrysalis does not even recognise the existing firmware: Screenshot 2022-09-25 at 09 37 42

tompi avatar Sep 25 '22 07:09 tompi

Yeah that's expected, I had the same thing when I first got the keyboard, firmware installed at the factory didn't provide version information. My screenshot above is after I successfully flashed (on windows) a recent firmware (upgraded to 0.90.1 without trouble since then)

alarsyo avatar Sep 25 '22 10:09 alarsyo

I can't flash,too. Because of same problem. image

UGKEN avatar Sep 26 '22 17:09 UGKEN

Same, and I''m using PopOS and Chrysalis Version: 0.11.4

I got a flash failed message the first time, then if I hold down PROG while plugging in (so it goes, and stays RED), I get the following debug output from the Console upon trying to flash:

2022-09-26T18:40:36.493Z dfu-util exited abnormally 
{
  exitCode: 74
  label: "flash"
  level: "error"
}
log @ transports.js:58

Error while uploading firmware 
{
  error: "dfu-util exited abnormally with an error code of 74"
  level: "error"
}
log @ transports.js:58

image

TechWilk avatar Sep 26 '22 18:09 TechWilk

Same, and I''m using PopOS and Chrysalis Version: 0.11.4

Did you install the udev rules when prompted? If so, do you have a non-empty file /etc/udev/rules.d/60-kaleidoscope.rules?

tlyu avatar Sep 26 '22 19:09 tlyu

Did you install the udev rules when prompted? If so, do you have a non-empty file /etc/udev/rules.d/60-kaleidoscope.rules?

No, I wasn't prompted to add any udev rules. Is that something I've missed in the preferences?

TechWilk avatar Sep 27 '22 18:09 TechWilk

The prompt only appears if you do not have write access to the serial port of the keyboard. If you did, then it's not shown. That's something we'll be fixing in an update soon.

algernon avatar Sep 27 '22 18:09 algernon

Just received another bug report about a failed flash. This time, it's on Windows, and the flashing succeeded to a point: it got to the last stage of clearing & restoring eeprom. It successfully did the clear, but appears to have failed reconnecting after, and thus, the restore did not happen.

There are a number of interesting things in the log. Sadly they're only available as a screenshot, because bundle creation is slightly buggy in 0.11.8 (and probably .6 and .7 too; corrected on master now):

chrysalis-win-com5-file-not-found

Here, we see an attempt at reconnecting after the clear. It's not evident from the screenshot which stage we're at, but confirmed with the customer that the eeprom was wiped, so it's the reconnect after that.

chrysalis-win-permission-denied

This looks like it's stuck trying to go from application mode to bootloader near the start of the process, but that permission denied thing is unexpected there, considering we were connected to the keyboard.

algernon avatar Oct 09 '22 09:10 algernon

I think that the original issue, flashing from Nix should be fixed by now with Chrysalis 0.11.8. But as there are similar issues on other platforms, lets cover them all here.

algernon avatar Oct 09 '22 10:10 algernon

Unfortunately I'm still seeing the same issue with 0.11.8 :/ keyboard goes to bootloader then Chrysalis hangs on this error message

chrysalis-flash-fail

alarsyo avatar Oct 10 '22 12:10 alarsyo

I'm able to flash just fine with the following command, for what it's worth :

dfu-util --device 3496:0005 -D ~/.config/chrysalis/latest-firmware/Keyboardio/Model100/default.bin -R

alarsyo avatar Oct 10 '22 12:10 alarsyo

I think we made some progress on this, I am no longer able to reproduce the problem on Linux with the latest snapshot. If you're still experiencing the problem, can you give v0.11.9-snapshot a try, and see if it improves the situation?

algernon avatar Oct 14 '22 22:10 algernon

couldn't get it to work ! still getting similar errors:

image

alarsyo avatar Oct 17 '22 15:10 alarsyo

(this is with the v0.11.9-snapshot released 3 hours ago)

alarsyo avatar Oct 17 '22 15:10 alarsyo

as per request chrysalis-debug.json.txt

Kilomil avatar Oct 22 '22 21:10 Kilomil

Having had this issue (above) on my first M100, I succeeded in flashing it with Windows. However, I've just received my second and tried to flash again on PopOS, receiving the same errors as above.

I get to step 6 of the forum update guide

  • Hold PROG before and while plugging in, to put in program mode. PROG key lights up RED
  • Open Chrysalis
  • "Connect" to M100
  • I am prompted to "Update firmware"
  • Choose "latest", with factory reset either disabled or enabled (I've tried both)
  • Click ":cloud: Update"
  • Click continue to confirm
  • ERROR, I am taken back to the homescreen with an "ERROR" toast notification

In the console I can see

dfu-util exited abnormally 
    {exitCode: 74, level: 'error', label: 'flash'}
    exitCode: 74
    label: "flash"
    level: "error"
Error while uploading firmware 
    {error: 'dfu-util exited abnormally with an error code of 74', level: 'error'}
    error: "dfu-util exited abnormally with an error code of 74"level: "error"
focus.js:344 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'bootloader')
    at focus_Focus.isInApplicationMode (webpack:/src/api/focus.js:344:39)
    at focus_Focus.request (webpack:/src/api/focus.js:503:15)
    at focus_Focus.supported_commands (webpack:/src/api/focus.js:483:45)
    at new FocusCommands (webpack:/src/api/flash/FocusCommands.js:27:17)
    at flash (webpack:/src/api/flash.js:48:25)
    at Object.flash (webpack:/src/api/hardware-keyboardio-model01/index.js:109:12)
    at _flash (webpack:/src/renderer/screens/FirmwareUpdate.js:104:34)
    at upload (webpack:/src/renderer/screens/FirmwareUpdate.js:151:13)

I've tried both Chrysalis 0.11.9 and 0.12.0-snapshot.189 chrysalis-debug-12snapshot.json.txt chrysalis-debug-11-9.json.txt

As mentioned above, I have not been prompted to add any udev rules, so haven't done so.

Let me know if there's anything further I can do to help debug this while I still have a keyboard on the factory firmware.

TechWilk avatar Oct 24 '22 19:10 TechWilk

As mentioned above, I have not been prompted to add any udev rules, so haven't done so.

This sounds like a case of #1068, Chrysalis not prompting to add udev rules when it should. Can you add the udev rules from here, and see if flashing still fails?

algernon avatar Oct 24 '22 19:10 algernon

This sounds like a case of #1068, Chrysalis not prompting to add udev rules when it should. Can you add the udev rules from here, and see if flashing still fails?

Thank you for your prompt reply. Yes I have now added those rules into /etc/udev/rules.d/60-kaleidoscope.rules, rebooted and flashing succeeded!

TechWilk avatar Oct 24 '22 20:10 TechWilk

Had posted issues on the community portal at keyboard.io. Firmware upgrade was not restoring eeprom contents and then not restoring saved color configuration. Layers were not maintained (and in one case totally different). Flashed latest firmware (0.91.0-snapshot-64) with Chrysalis 0.11.19 (release) and layers and color assignments went smoothly. Bundle attached. chrysalis-debug20221025.json.txt

pgallaway avatar Oct 25 '22 21:10 pgallaway

Chrysalis now runs in-browser using WebSerial and WebUSB and this functionality has been rewritten, so I'm closing out this issue as obsolete. Please don't hesitate to open a new issue if https://chrysalis.keyboard.io exhibits the same behavior

obra avatar Feb 26 '24 20:02 obra