Skip to main content

Error Codes

The FKMTime device firmware logs error codes when something goes wrong. Errors vary in severity — some cause a reboot or stop a single task, others are silently recorded and the device continues normally.

Viewing the error log

Error codes are stored in the device's built-in error log. To access it:

  1. Hold the Submit button for 10 seconds.
  2. Select Error Log from the menu.

Each entry shows the error code and the timestamp when it occurred.

  • v3: only the date and error code are displayed.
  • v4: press Submit on any error entry to see more details and a QR code that links directly to the documentation page for that error.

You can look up any code below to find a description and steps to resolve it.

Each error code also has a dedicated documentation page at:

https://docs.fkmtime.com/debugging/e<code>

RFID (E1–E9)

CodeNameDescription
E1RFID_INIT_FAILEDRFID reader failed to initialize
E2RFID_SPI_CREATE_FAILED (v3)SPI device registration for RFID failed
E3RFID_SPI_BUS_INIT_FAILED (v3)SPI bus initialization failed
E4RFID_DMA_TX_INIT_FAILED (v3)DMA TX channel for RFID SPI failed
E5RFID_DMA_RX_INIT_FAILED (v3)DMA RX channel for RFID SPI failed
E6RFID_SOLVE_GROUP_MISSINGDevice has no solve group assigned

Battery (E10–E19)

CodeNameDescription
E10BATTERY_INIT_FAILED (v4)Battery monitoring subsystem failed to initialize

LCD / Display (E20–E29)

CodeNameDescription
E20LCD_INIT_FAILED (v4)LCD display driver failed to initialize
E21LCD_FRAMEBUFFER_ALLOC_FAILED (v4)Could not allocate LCD framebuffer in RAM

Stackmat (E30–E39)

CodeNameDescription
E30STACKMAT_UART_INIT_FAILEDUART for Stackmat timer failed to initialize

Firmware / OTA (E40–E49)

CodeNameDescription
E40WRONG_PARTITION_TABLEFlash partition table does not match firmware expectations
E41OTA_MARK_VALID_FAILEDFailed to mark new firmware as valid after OTA update
E42OTA_VERIFY_FAILEDDownloaded OTA image failed integrity verification
E43WS_CONNECTION_LOST_DURING_OTAWebSocket dropped mid-OTA update

BLE (E50–E59)

CodeNameDescription
E50BLE_INIT_FAILEDBLE stack failed to initialize
E51BLE_MAC_READ_FAILEDCould not read the device BLE MAC address
E52BLE_BOND_ADD_FAILEDFailed to store BLE bond keys in NVS
E53BLE_SCAN_START_FAILEDBLE scan for FKMTime Displays could not start
E54BLE_BONDABLE_FAILEDCould not set BLE stack into bondable mode
E55BLE_REQUEST_SECURITY_FAILEDBLE security request failed
E56BLE_PAIRING_FAILEDBLE pairing with FKMTime Display unsuccessful
E57BLE_GATT_CLIENT_FAILEDGATT client creation failed
E58BLE_SERVICE_NOT_FOUNDExpected BLE service not found on FKMTime Display
E59BLE_CHARACTERISTIC_NOT_FOUNDExpected BLE characteristic not found

Wi-Fi / mDNS / WebSocket (E60–E69)

CodeNameDescription
E60WIFI_MANAGER_FAILEDWi-Fi manager failed to start
E61MDNS_WS_URL_PARSE_FAILEDWebSocket URL from mDNS discovery could not be parsed
E62WS_DNS_RESOLVE_EMPTYDNS resolution for the server hostname returned no results
E63WS_HTTP_UPGRADE_READ_FAILEDReading the WebSocket HTTP upgrade response failed
E64WS_PACKET_PARSE_FAILEDReceived WebSocket packet could not be decoded
E65WS_PACKET_SERIALIZE_FAILEDOutgoing WebSocket packet could not be encoded
E66WS_TAGGED_SUBSCRIBER_FAILEDFailed to register a WebSocket message subscriber

NVS Persistence (E70–E79)

CodeNameDescription
E70NVS_SAVED_STATE_WRITE_FAILEDWriting device state to NVS failed
E71NVS_BONDING_KEY_WRITE_FAILEDWriting BLE bond keys to NVS failed
E72NVS_BUZZER_VOLUME_WRITE_FAILED (v4)Writing buzzer volume setting to NVS failed
E73ERROR_LOG_PARSE_FAILEDCould not parse the crash log stored in NVS
E74NVS_SAVED_STATE_DELETE_FAILEDDeleting saved state from NVS failed

Tasks / Runtime (E80–E89)

CodeNameDescription
E80TASK_SPAWN_FAILEDA required FreeRTOS task could not be created

Crash Recovery (E90–E99)

CodeNameDescription
E90DOUBLE_PANIC_RECOVERY (release)Device panicked twice and entered safe recovery mode
E91BACKTRACE_READ_FAILEDCrash backtrace could not be read from NVS