Project:USB Disco Dance Floor/v1/firmware

From London Hackspace Wiki
< Project:USB Disco Dance Floor‎ | v1
Revision as of 17:33, 4 April 2011 by Dmi (talk | contribs) (Added basic status/diagnostic commands)
USB Disco Dance Floor v1 Firmware
Created 2011-03-31
Members DMI
Project Status Prototyping


Introduction

The firmware will be responsible for listening for serial commands, and then acting upon them. This will primarily involve changing the display.

Commands

Commands start with a one-byte identifier, followed by zero or more data bytes. The number of data bytes is command-specific. The device should not output any data unless specified below.

Command Action Min version
Status/Diagnostic Commands
00 Reset 1.0
Resets the board to an initial state, with all pixels off. The board sends four bytes representing its hardware and firmware versions (2 bytes each), followed by 2 bytes for hardware details. This command also resets the board ID to 0xFFFF (i.e. unset).

The high nybble of the first hardware info byte is the number of different colours supported (0x1, 0x3, or 0x4) and the low nybble is whether sensors are supported (0x1 for yes). The high nybble of the second byete specifies the number of bits needed to specify LED brightness. If this is different for different colours, the firmware will handle scaling. The low nybble does the same for sensor resolution. Note that, for the time being, resolutions should be a power of 2 (0x1, 0x2, 0x4, 0x8).

01 Identify 1.0
Informs the board of its two-byte board ID for this session. Note that board IDs 0x0000 and 0xFFFF are reserved. The board will respond with 0x00 (success).
02 Ping 1.0
Checks connectivity with the board. The board will respond with 0x00 (success)