Repository navigation
0.15.0
New features
-
Listing the attached decks — the new
deck listcommand prints one line per
attached expansion deck with its board name, board revision and serial number.
See docs/deck.md.Name | Rev | Serial ---------------+-----+-------------------------- bcFlow2 | A | 0DD07B8E0000002D WiFi camera de | G | 7E0048001250465753393020Both kinds of deck identity memory are covered:
OneWiredecks, where the
serial is the 1-wire ROM id, andDeckCtrldecks, where the name and revision
come from the info page and the serial is the deck controller's CPU id. The
serial is reported together with the memory listing, so a deck whose memory
can't be read — a 1-wire memory failing its CRC check, for instance — is still
listed with its serial and?in the fields that could not be read, with the
reason on stderr.--csvgives machine-readable output. A deck with no
identity memory at all is not listed, since the Crazyflie has no way of knowing
it is there. -
Verifying memory contents —
mem verifytakes the same arguments as
mem write, but reads the memory back and compares it against the data you
give it, so a write can be confirmed:cfcli mem verify DeckMemory -s 0x10000000 -i color-led.bin
The number of bytes read back is the length of the expected data, so the same
--data/--inputthat wrote a region verifies exactly that region. A match
prints a confirmation and exits 0; otherwise the differing bytes are listed
with their absolute offsets and the command exits 1, so a script can act on
it:Offset | Expected | Actual -----------+----------+-------- 0x00000004 | 0xFF | 0x00 0x00000005 | 0xBD | 0xBC Error: Verify FAILED: 2 of 32 bytes differAt most 16 differing bytes are listed, the rest are summarised as
... and N more. See docs/memory.md.
Bug fixes
- Flashing no longer fails on a deck that is already up to date — the
Lighthouse deck cannot be commanded into its bootloader, and the firmware only
leaves it there while its bitstream is out of date. A running deck is therefore
already up to date, and is now skipped instead of failing the whole flash run.
The Crazyflie is only restarted if something was actually written.
(#6)
Improvements
-
Consistent table output —
param list/get,log list,mem list,
loco displayand the newdeck listnow build their tables with
tabled, so columns are sized to fit their
contents instead of being padded to a fixed width. A name longer than the old
fixed width no longer pushes the rest of the row out of alignment, a set of
short names no longer leaves a wide gap before the next column, and numeric
columns are right-aligned. Note thatmem listchanges shape as
part of this — it prints anID | Type | Size | Serialtable rather than one
formatted line per memory, so anything parsing that output should use--csv,
which is unchanged. -
Warning when a deck product name is too long — the product name in the
DeckCtrl info page is stored in a 15 byte field, soutil deck-ctrl bingen
andbinflashnow warn on stderr when the name in the YAML configuration does
not fit and say how it will be stored. The configuration is still written, so a
name that was already flashed keeps working. -
Arming moved to the supervisor subsystem —
hlc arm/hlc disarmnow use
the supervisor API in crazyflie-lib, replacing a method deprecated in 0.8.2.
No change in behaviour. -
crazyflie-link and crazyradio are used through crazyflie-lib — both are
re-exported by crazyflie-lib, so the exact versions it was built against are
reachable ascrazyflie_lib::crazyflie_linkand no longer have to be direct
dependencies kept manually in sync.packet_captureis enabled through the
crazyflie-lib passthrough feature, still on Unix targets only. Internal change,
no difference in behaviour.