A list of error codes can be found here.
Retreives a configured value. See below for available configuration keys.
$config-get <key>
Returns
<value>
OK
error or key does not exist
<err code> NAK
The total number of NeoPixels connected to the PixelKey.
Default: 4
The maximum frame size is approximately (1/refreshrate - 50us)/31.2us. This is about 1065 NeoPixels for 30 fps.
The number of refresh cycles per second. Controls the update rate of keyframes.
Default: 30
This is limited by the total number of attached NeoPixels.
Maximum refresh rate is approximately 1/(framesize * 31.2us + 50us).
Saves a configuration value. See below for available configuration keys and values.
$config-set <key> <value>
Returns on error or key does not exist
<err code> NAK
Resumes keyframe processing.
$resume
Prints the current device status.
$status
Returns
PixelKey vMM.mm.pp
Current state: active|idle|stopped
OK
Stops keyframe processing, clears the keyframe buffer, and turns off (sends #000000) all attached NeoPixles.
$stop
Returns the current RTC time.
$time-get
Returns
YYYY-MM-DD HH:mm:ss.sss
OK
Returns "RTC not set" error if the RTC has not been programmed.
Sets the current time for the RTC. Accepts an ISO-8601 timestamp, but the time specifier T may be replaced with a space or underscore. The time zone is optional but highly suggested.
$time-set YYYY-MM-DD HH:mm:ssZZZZZZ
Returns OK on success or <error> NAK if RTC failed to set.
Allows synchronization within several 10s of ms to an external clock source like the host computer. This command should not be used manually.
$time-sync
Once started the host and PixelKey exchange timestamps until the standard deviation is acceptable or a timeout occurs. The state machine flow is as follows:
- Host sends
$time-sync. - PixelKey pauses keyframe processing and responds
OK. - PixelKey sends a 128-bit timestamp.
- Host records timestamp at reception. Transmits RX timestamp and new TX timestamp.
- PixelKey records timestamp at reception then calculates offset and round-trip delay.
- If sample count < required or std. dev. > acceptable: repeat at 3 until timeout.
- If timeout: send
<error> NAKto host to end time-sync - If std.dev. is acceptable save offset to RTC/system-clock and send
OKto host to end time-sync. - PixelKey resumes keyframe processing.
Prints version information.
$version
Returns
MM.mm.pp
OK
where
MMis the major version,mmis the minor version, andppis the patch.
Semantic versioning is used so other values may be present.
⚠️ Warning: There be dragons ahead. Only use these commands if you know what you're doing. Incorrect usage can break the device.
Clears the upgrade region and initializes anything necessary for the FW upgrade.
$fwupg-init <num blocks> <image crc>
Arguments
- num blocks: Total number of expected blocks for this image.
- image crc: Expected CRC for the image.
Transfers a block to the device. Blocks are always 64 bytes long.
$fwupg-block <crc> <offset> <bin data>
Arguments
- crc: The CRC-16 (polynomial TBD) of the offset and bin data fields.
- offset: Block offset of this data.
- bin data: Binary data for this block. Must transfer entire block.
Verifies a received firmware image.
$fwupg-verify
Returns
<image crc> OKon full image receipt and CRC check pass. includes calculated CRC.<block list> 1 NAKon incomplete image, includes list of missing blocks.<image crc> 2 NAKon CRC mismatch, includes calculated CRC.
Reboots into the bootloader and copies the new image.
$fwupg-commit
* These commands may exist on a separate USB pipe and may not be exposed for the serial command set.