Firmware version 2.9.1 has just landed at the Podium software site and is ready for prime time! Contained within this release are several bug fixes reported by users in the field. Overall this release improves upon SD card logging, system stability and Lua garbage collection behavior. We recommend that all users upgrade to this release as soon as they reasonably can.
SD Card Logging Improvements
We have improved the stability of our SD card logging code in this release. The result: users can expect a more reliable experience when it comes to recording data and to help deal with unrecognized, unsupported or improperly formatted cards. Also, several changes were made including increasing the logging stack size to help prevent stack overflows. We also optimized code to help prevent unnecessary delays during SD card initialization, and finally – we addressed an issue where the SD card could be initialized twice, potentially causing undefined behavior. In all, a lot of improvements were made and we hope to continue making further improvements in later releases.
Lua Garbage Collection Improvements
Improvements to our Lua subsystem were a priority in this release as well. Memory reclamation was targeted for optimization; and we made some great progress. The result is faster execution of Lua script with fewer reclamation pauses. The trade-off: a small increase in RAM usage (less than 1K on average). Technical details about the process and results (including the before and after performance testing) are available in pull request 623. As a result of this work, users no longer need to invoke the `collectgarbage` method from within the Lua subsystem.
Full Change Log And Thanks
Below is a list of all the changes that are included as part of this release. As always, thank you to all the users who submitted reports and give us feedback from the field. It’s because of folks like you that we are able to continue improving this product as quickly as we can. If you see a problem, please never hesitate to file an issue on our issue tracker. You can also find us on Facebook or send us an email. All of those are great ways to get in contact with us.
- Added CHAP support for APN authentication on 3G modem. This is activated when user provides an APN password. Issue 619
- Improved SD Card operations by removing duplicate initialization issue and removing unnecessary critical task guards which lead to long system pauses. Other pauses remain, but the SD card logging no longer blocks preemption. Issue 571
- Back ported fix for the dual malloc issue. We were unintentionally running both the FreeRTOS allocator and the glibc allocator. Fortunately this did not cause issues because we made very limited use of the glibc allocator. This patch adds the code so that we always use the FreeRTOS allocator, even if we use glibc malloc/realloc/calloc/free calls. Issue 565
- Fixed issue in USART on MK2 where an improper clearing of the ORE flag could cause the system to lock up and watchdog. Issue 562
- Removed unused CAN TX queues in MK2 HAL to improve memory Issue 553
- Fixed invalid status return value when timeout = 0 on CAN TX invocation. Now we return a useful status, informing the caller of whether or not the message was added to the mailbox to send. Issue 549
- Drastically improved Lua GC behavior; built Lua Test script to prove it. Issue 476