This is a point release with a big focus on tooling features and stability along with a number of Meadow.Foundation stability fixes, performance improvements, and API consistency updates.
- VS2022 support Meadow officially supports Visual Studio 2022! Open the Manage Extensions dialog in Visual Studio to install.
- Debugging stability This version sees a big improvement in debugging stability and consistency, make sure you have the latest VS extensions installed.
- MicroGraphics refactoring We’ve spent a lot of time optimizing and refactoring our Meadow.Foundation APIs, this release sees some big changes (some breaking) that both simplifies and brings consistency to Meadow’s graphics APIs.
There is no OS change for this release so you do not need to flash your Meadow board, but make sure you’re running b6.0 if you haven’t already updated.
There are new nuget packages, a new Meadow CLI and new Visual Studio extensions.
Start by installing the latest version of the CLI (v0.15.1) by running:
dotnet tool update Wildernesslabs.Meadow.CLI --global --version 0.15.1
Visual Studio Extensions
The Visual Studio for Windows extension has been reworked and refactored. This was necessary to support Visual Studio 2022 on Windows but also gave us the opportunity to carefully review the code for stability and usability. Deploying and debugging on Windows 10 & 11 should be a lot more stable and consistent. And there’s more goodness coming in future releases :)
Note - Visual Studio 2022 for Mac isn’t supported - at the time of this release, the VS4Mac 2022 preview doesn’t (yet) support extensions.
Known Issues - In rare occasions you may experience deployment failures. If the failures are consistent, you may need to disable/enable or re-install the Meadow extension.
We’re working on the issue. If you experience the problem and can provide a consistently reproducible set of steps, please file an issue. Thank you!
The CLI receives more stability improvements and two new commands:
meadow use portcan be used to set a preferred serial port
meadow file delete allwill remove all files from your Meadow device
Note: Breaking Change - SPI Bus speed is now defined as a
Meadow.Units.Frequency instead of an integer. To update, in most cases you’ll replace your old int value with
This also enabled Meadow.Foundation drivers to expose a
DefaultSpiBusSpeed property (details below).
This release brings a big list of stability fixes, API updates and performance improvements - see the Bug fixes below for the complete list.
- New BB Q10 Keyboard driver Ever wanted a BlackBerry-style keyboard for your Meadow projects? You can now use Solder Party’s keyboard with Meadow
- ePaper display performance Full screen redrawing speed is 10-15% faster on most ePaper displays
- Breaking Change: Renamed GraphicsLibrary to MicroGraphics - We renamed the
MicroGraphicsto bring the class inline with branding and documentation, all instances in your code will need to be renamed
- Breaking Change:
IGraphicsDisplay- We deprecated
DisplayBaseand replaced it with
IGraphicsDisplay- all graphics displays now implement this interface
- Breaking Change:
IFont- We deprecated
FontBaseand replaced it with
IFont- all font classes now implement this interface
- Moved graphics enums out of GraphicsLibrary - This is API cleanup, several enums were nested in the
GraphicsLibraryclass, and have been moved directly into the
- Samples updated to support Meadow V2 - All Meadow.Foundation samples updated to run on the Meadow V2 boards by default, if you’re using V1 boards change the
MeadowAppclass signature from
App<F7Micro, MeadowApp>(remove the
- SPI peripherals now have a default value - No more guessing on the appropriate SPI bus speed for peripherals, all SPI drivers now have a public
Look at this enormous list of bug fixes! We’re getting close to v1.0 Release Candidate, folks!
- #82 Error flashing F7 OS from a non-english OS
- #92 Conflicting use of the -v flag
- #116 Better user-feedback when OS files aren’t downloaded
- #117 Feature request: Add a delete all command
- #141 Add I2C defaults to all related drivers
- #191 Switching Antennas throws an exception
- #191 Can’t use font scaling with TextDisplayMenu
- #195 Sensor.Atmospheric.BME280 - never turns changes mode from Sleep to either Forced or Normal
- #209 Out of Bounds exception if graphicslibrary is used to draw off screen
- #211 Color WithBrightness always returns black
- #213 Not all display drivers respect IgnoreOutOfBoundsPixels
- #214 Not all display drivers implement DrawBuffer
- #215 Replace DisplayBase with IGraphicsDisplay
- #218 Replace FontBase with IFont
- #219 ePaper drivers set the dataCommandPort state set repeatedly when updating the display
- #220 Add consistent SPI defaults params to SPI drivers
- #221 Ili9341 can’t pass null for reset pin
- #222 Bme280 missing ctor for SPI that takes an IPin
- #225 BME680 missing filterable observable support
- #226 Driver request: BBQ10Keyboard
- #228 Update Meadow.Foundation samples to V2 signature
- #229 Calling DisplayTest in the ST7789 sample crashes
- #233 Fix Max7219 default SPI speed
- #235 VL53L0X Sample appears to be out of date
This is a big new release with huge new features and lots of optimizations and improvements, including:
- Debugging - What what?! Yup; in-IDE debugging in Visual Studio for Windows, Mac, AND VS Code.
- Device/OS Configuration - Device and OS settings can now be configured at build time via yaml config files.
- .NET Standard 2.1 Fixes - The last of the .NET Standard 2.1 deployment stuff is in, fixing
- Faster, More Reliable Networking - There have been a number of big optimizations in the networking stack promising much more reliable networking.
- Improved Deployment - App and OS deployment has undergone a massive update, offering a more reliable experience.
- Up to 20x Graphics Performance Improvements - New graphics optimizations to improve drawing performance, especially for fills and rectangles.
- Meadow.Foundation Improvements - Fixes, optimizations and stability improvements plus new buffer classes to manage in-memory graphics/sprites.
This is a full stack release requiring an OS update, new nuget packages, a new Meadow CLI and new Visual Studio extensions. Start by making sure you have the latest version CLI (v0.15.0) by running:
dotnet tool update Wildernesslabs.Meadow.CLI --global
Long awaited, in-IDE, on-device debugging is here! Now you can debug Meadow apps just like any other .NET app, with full support in Visual Studio for Windows, Mac, and even VS Code! You can even debug from the command line using the Mono Soft-Debugger (SDB) via Meadow.CLI.
It’s now possible to have Meadow.OS automatically connect to a preferred WiFi network, get the time from NTP servers, and more, all via configuration settings defined at build time.
You can also configure the name of the device, and more.
For more information, check out the Configuration guide.
Network Time Protocol (NTP)
The OS now uses NTP to maintain correct world time! It can be configured to poll multiple NTP servers.
.NET Standard 2.1 Nuget fixes (System.Text.Json)
A new deployment method for the .NET core libraries removes the build issues brought on by using a Nuget to distribute framework assemblies such as mscorlib.dll and netstandard.dll. In order to benefit from these improvements you must ensure that you have:
- Update Meadow CLI to version 0.15.0 or later
- Remove all references to the
WildernessLabs.Meadow.Assembliesnuget (primarily by updating to the latest
F7 Device Coprocessor Lifecycle Cleanup
Coprocessor on F7 devices are automatically initialized during device startup, so when using the
BluetoothAdpater, you no longer need to initialize the coprocessor first.
- Breaking Change - The
InitBluetoothAdapter()methods are no longer necessary, and are either inaccessible or have been removed entirely.
Added Full-Duplex Support to
IByteCommunications.Exchange() method now has an optional parameter of
void Exchange(Span<byte> writeBuffer, Span<byte> readBuffer, DuplexType duplex = DuplexType.Half);
This enables protocols that support full-duplex communications (data received at the same time as it’s sent) to be supported at the peripheral level, rather than having to use the bus class directly.
Previously, if you wanted to do full-duplex communications, you needed to use the
SpiBus.Exchange() method, which meant passing the chip select pin. This streamlines that workflow.
Pixel displays and microGraphics
The microGraphics Library in Meadow.Foundation received some new capabilities and a performance boost.
We’ve added a several display buffer classes designed to manage data for specific color bit depths and they’re now being used as the off-screen buffer for every pixel display driver.
Why do we care? :) This has several benefits:
All of the buffer logic was refactored into common classes so any display-specific optimizations are now common across similar display drivers (more performance!).
We spent time optimizing buffer writing logic for each class improving performance even more. Filled rectangles are at least 5x faster and full screen fills on color displays are 20x faster.
We can now create buffers outside of display drivers - are you using jpegs? You can now quickly add all of that data to a 24bit buffer making it much easier to manage. Want to create and store sprites for game logic - that’s now much easier.
Maple web server
General API cleanup and modernization
Added support for parameter routing!
- #200 Some Tea5765 APIs set to private
- #199 MS5611 checks for wrong i2c address
- #196 Update St7565 to use
- #194 FeatherWings.DotstarWing does not implement InvertPixel
- #190 ADXL345 driver not working
- #189 VEML7700 light sensor driver not working