Skip to content

Known Gaps And Non-Goals

This page exists to keep client docs honest. It lists places where older docs, comments, or specs may suggest behavior that the current firmware does not appear to implement.

Active Quizzer Query

api_spec/api_spec.yaml previously described a query_active_quizzers request/response operation using quizbox.event.type = QUIZZER_ACTIVE.

Current firmware routing does not have a special query handler for active quizzers. Incoming quizbox events that are not DeviceInfo, config, or firmware messages are converted to internal events and published as external events.

What is implemented today:

  • QUIZZER_ACTIVE notifications from internal quizzer handling
  • QUIZZER_DISPLAYED notifications when the quizzer is written to the display
  • QUIZZERS_LIT_UP notifications when reset handling restores lit quizzers

What does not appear implemented today:

  • a client request that asks "which quizzers are active right now?" and receives a direct state response

Standard Device Information UUID

Current firmware creates Device Information characteristic 0x2A23 and stores 0x0EB7 there. Some older docs identify 0x0EB7 as Manufacturer ID on UUID 0x2A50; that does not match main/Source/BleTransport.cpp.

Event Enum Value Drift

The current Quizbox.proto event enum has:

PAIRING_ACTIVE = 10
PAIRING_INACTIVE = 11
END = 12

Older prose may still describe END as value 10. The generated C++ enum and protobuf schema use 12.

Firmware Reboot Timing

Some older prose says firmware update reboots after 2 or 3 seconds. Current code schedules reboot handling after 2000 ms in FirmwareUpdateHandler, then EspOtaManager::RebootToNewFirmware() delays another 2000 ms before calling esp_restart().

Client code should not rely on an exact reboot delay. Treat successful FINALIZE as "device will reboot soon" and handle disconnect/reconnect.

Query Type Scope

The root Reaction.QUERY_TYPE enum only defines Unset and DeviceInfo.

Config and firmware status requests are represented by their own payload commands, not by root queryType values.

External Event Echoes

BLE clients can send quizbox events as commands, but the protocol handler marks them as source=External. The event notification builder skips external events. Clients should expect derived internal notifications, not a direct echo of the command they wrote.