W000t, b4.0 is here! This is a major release that includes a TON of new features, stabilizations, upgrades, and more across the entire Meadow platform. Major highlights include:
- WiFi Networking
- Garbage Collector Tuning
- Application Crash fix
Yaaaasss! WiFi networking is up! After nearly two years of engineering, Networking communications via WiFi are now available to Meadow apps.
File System Up
[you can now use the
System.IO file system calls to work with the local file system]
The dreaded application crash that got introduced a few beta releases back that prevents Meadow applications from standing up for more than a few minutes has been fixed! [add details when avaialble]
Garbage Collector Tuning
The Mono garbage collector that we use in Meadow.OS got a major tune-up, making it much more suited for our architecture and use case. You should find that garbage collection works far better now than it did before.
- #37 - Threading and event callback lockup - Fixed!
- #62 - Constant 10ms delay when calling Thread.Sleep() - Fixed, timer resolution is now 1ms.
- #67 - RgbPwmLed.StartBlink() does not have accurate timings - Fixed, related to timer resolution.
- #68 - Static class in its own namespace hangs in constructor - Fixed. Constructor race condition.
- #69 - Timer creep - Fixed, also related to timer resolution
- #70 - Assertion at sgen-stw.c:69 - Fixed as part of the Garbage Collector work.
- #77 - PWM duration with TimeScale.MicroSecond off by 10µs - Fixed, math error. :)
- #89 - All file system objects appear as files - Fixed.
- #94 - Too many threads cause a crash - Fixed! This was a real doozie. We did a major overhaul of the Garbage Collector for this release.
We did a major overhaul of the UART/Serial Port in Meadow for b4.0. Big changes include:
- Serial Port Events Fixed - Serial port events now work, which enables more efficient communications, without the need for a polling thread.
ISerialMessagePortclass - We fundamentally reworked the way legacy serial communications work, and created an
ISerialMessagePortclass that modernizes them. It’s thread-safe and asynchronous by default, and massively simplifies communications with serial devices by taking a message approach. We recommend using this class instead of
ISerialPortfor serial communications from now on.
For more info, check out the awesome Serial Communications Guide.
To see the new
ISerialMessagePort class at work, check out the [GPS thingamajiggy when complete].
We made some changes to the filterable observer:
FilterableChangeObserver. - We made this naming change because the
FilterableObserver, as designed, was based on change notification and as such had
Newvalues, along with built in comparison. However, it became clear that we should also have a non histrionic version for cases where
Newhad no meaning, so we also:
- Created a new
FilterableObserverclass that doesn’t have histrionics. - Currently, the various Meadow.Core port classes used a standard
IObservable<out T>, which was fine, but we wanted to extend the built-in filtering mechanism [TBD.]
We completely re-did the old
Meadow_Samples repo and renamed it to
Meadow.Core.Samples. The samples are now much better
organized and all updated to the latest
[12 new drivers!]
GPS/GNSS NMEA Processing
As part of our work to add GPS drivers, we completely re-worked, upgraded, and modernized the NMEA sentence parsing and decoding library. It now handles a wider array of sentence structures, is more fault tolerant, has a better API and is easier to add new decoders to.
Deployment & Tooling
New Meadow Library Templates
[adrian to add]
F# Meadow Templates
[adrian to add]
Are you building a project and need an enclosure? We’ve created an easily modifiable enclosure template in Fusion 360 that allows you to change variables like length/depth/height, as well as the position of Meadow inside, and it’ll automatically resize for you:
You can use it as is, or use it as the starting point for more complicated enclosures by adding features.
Check it out at our 3D Print Designs repo.
Meadow EDA (Schematic and PCB Footprint) Parts
We’ve posted schematic symbols, PCB footprints, and 3D files of the Meadow F7 board for use in your own custom circuit designs. You can find them in our Meadow_EDA_Parts repo.