This is the fourth changelog for Knurling-rs, our push to sustainably build better tooling for developing and debugging Rust software for embedded systems. Knurling-rs includes a suite of tools that make it easier to develop, log, debug, and test your embedded Rust libraries and applications!
Knurling-rs is supported by our sponsors on GitHub. If you're interested in seeing more projects like this, consider becoming a sponsor today!
Organizational
- We have surpassed the halfway point towards our sponsorship income goal of $5000 🎉 This means we can now allot about 9 days of Ferrous Engineer Time per month to build knurling tools and knurling-sessions.
- We've re-dedicated the knurling meta repository as the place for (non-immediately-actionable) discussions about future tools (gathering requirements, gauging interest, etc.). Originally, the meta repository contained an overview about what knurling is about and what's coming next. However, this was hard to find and browse, so we created the knurling website instead that was launched last week.
- The knurling website is now much more mobile-friendly.
New knurling-sessions content
Knurling Sessions are quarterly embedded projects that explore specific projects using generally available hardware, building full systems and components using microcontrollers, sensors, and actuators. Every week, we're releasing a new lesson to advance the project. Currently, we're building a CO2 measuring device step by step!
This week we're learning how to:
- switch temperature output between °C, °F and K in the chapter User Input - Advanced
- build your own LED temperature indicator in Bringing it all together
Sponsors can find the lesson contents at the CO2 project book.
Remember: you can find the access credentials to all knurling-sessions materials in our sponsors team announcements.
Improvements
- #78 adds a bug report template for
probe-run
to make reporting and resolving issues a smoother process ✨
New features
Fixes
- #212 the
defmt
docs have been updated to reflect the changes of the last weeks in slice formatting, format character limitations and standard integer types.
- #215, #216 fix errors when linking applications using
defmt
with GNU LD. #215 preventsdefmt
'self2table
from trying to parse a trailing.defmt
section as JSON included when linking with GNU LD. #216 explicitly sets the start address of the.defmt
section to 0, since GNU LD puts it at some arbitrary address otherwise.
Internal improvements
We're still working towards the crates.io release of defmt
. The scope of things to do before the release has grown by three issues since the last changelog, two of which have been fixed now. We've also tackled some older issues to reach this milestone:
- #191, #207, #81 clean up
defmt
for crates.io and fix two oversights made during this change. If you've hand trouble installingprobe-run
in the past week, this is probably why.
- #218 Hides all of
defmt
sFormatter
methods now.
-
#211, #215, #216 have already been mentioned in previous sections, but are also a contribution towards the crates.io release.
-
#12 fixes a hickup in
flip-link
's nightlies.
- #83 includes commit hashes in the output of
probe-run --version
. This helps identify git installs ofprobe-run
.
- #84 updates the
defmt-decoder
anddefmt-elf2table
version used byprobe-run
to one that includes the aforementioned changes and enables their newunstable
feature to access them.
Sponsor this work
Knurling is mainly funded through GitHub sponsors. Sponsors get early access to the tools we are building and help us to support and grow the knurling tools and courses. Thank you to all of the people already sponsoring our work through the Knurling project!