Today we pushed a new version of the Spark Core firmware, Spark firmware v0.3.4. Here are the releases for the three firmware libraries:
From now on, firmware applications built with the web IDE will be built with Spark firmware v0.3.4, which is shown in the ‘Settings’ panel of the IDE:
Here is a list of the changes that have been implemented in the firmware for this release:
- Local Build: Specify custom toolchain with
GCC_PREFIXenvironment variable (firmware, core-common-lib, core-communication-lib)
- Wiring: More efficient and reliable
print(String)(fix issue #281) #305
- DFU: Add DFU suffix to .bin file #323
- I2C: Use I2C polling mode by default #322
- Listening Mode: Fix hard fault when Wi-Fi is off #320
- LED Interaction: Fix breathing blue that should be blinking green #315
Just a note about the I2C bug fixes: Writing and Reading as an I2C Master on a Core to/from an I2C Slave device such as a DS1307 RTC Clock is working great in Master Polling and Master DMA modes. Currently using the Spark Core as an I2C Slave is still under development there are some issues with it that we are pushing to release in the next update. Writing to a Slave Core is working, but Reading from it does not. If you get to it before we do, as always we appreciate and encourage pull requests!
When using Master DMA mode, currently it must be enabled before
Wire.begin(); like so:
Wire.enableDMAMode(true); Wire.begin(); // join i2c bus as Master
Master Polling is the default and you would just omit the
Wire.enableDMAMode(true); line for that mode.
Many thanks to the contributors of these improvements, including @zachary, @satishgn, @davidwalker, @rastapasta, @mdma, @jgoggins, @kennethlimcp and @plaes! If there’s anyone I missed, please chime in below and give yourself a pat on the back! Thanks, you guys rock!
Enjoy the new firmware, and good luck with your projects and products!
Brett @ Spark