Mono SDK 1.6 Release Notes
We are happy to announce release 1.6 of the Mono SDK. This release focuses on improvement in the software library, introducing new font and timer systems.
Here is a short intro to the the new features of Release 1.6. Later we will discuss some of them in detail, also we strive to write tutorials on the all the new features.
New proportionally spaced fonts
We have taken the font format from Adafruits Gfx library, and made support for it in the text rendering system. This means the
TextRenderclass now support the Adafruit GFXfont format. The class
TextLabelViewcan use the new fonts as well. In fact, the default font face is changed to a beautiful proportionally spaced sans serif type.
We have included all the available font faces from Adafruits library. These include Italic and bold faces of Serif and Sans Serif fonts.
The old mono spaced fonts are still available, but you have to explicitly set them in your code.
Wake Mono on timers
For a long time we wanted this feature: To sleep mono and then wake up at a specific point in the future. With our new
ScheduledTaskclass, this is possible! A
ScheduledTaskis a object that calls a function at a given point in time. You provide it with a function pointer and a
DateTime. This function will then be called at that time, also if Mono are in sleep at that point. (This is opt-in.)
ScheduledTaskwe can create a temperature logger, that sleeps and automatically wakes up periodically to measure the temperature.
Analog API (mbed)
In this release we finally had the time to implement
mbed::AnalogInfunctionality. This means you can easily use the ADC to measure the voltage on the input pins. Almost all pins on our Cypress PSoC5 MCU can be routed to the ADC, exceptions are the USB pins and the SIO (Special I/O) pins. One of these SIO pins are the
An example of how you read the voltage level on the 3.5mm jack connector's
mbed::AnalogIn ring1(J_RING1); float normalizedValue = ring1; uint16_t rawValue = ring1.read_u16();
Thats it! The system take care of setting the right pins mode, and setup the routing of the analog interconnect.
We found ourself keep writing code to auto-sleep mono. Just like smartphone will automatically dim the display and eventually go into standby, to spare the battery. For Mono we wanted it to be opt-in, so you always start a new application project, with a clean slate.
Therefore we have introduced the class
PowerSaverin 1.6. This class dims the display after a period of inactivity. After even further inactivity, it automatically trigger sleep mode.
Inactivity is no incoming touch events. You can manually ping or momemtarily deactivate the class to keep mono awake. But by default it will trigger sleep mode, if nothing happens to 20 secs.
More new features
TextLabelViewdoes better text alignment (horizontal and vertical)
- Multiline text in
- Callback for Wifi join error handler
DateTimenow support negative numbers in
HttpPostClienttries to fix Redpine bug, by appending whitespace to body data.
Release package hashes
Upon request we have added sha256 (sha1 for Windows SDK) hash files for each installer package. In this way you can validate you copy of the installer package against our copy, by comparing hash values.
I just tested this on Debian Jessie, and the exact same problems I mentioned 8 months ago are still present (reset every 10 seconds, running out of /dev/ttyACM## devices, reset more infrequently).
ps. Since I only have one x86 computer to use with Linux at the moment, I only rarely do full clean install - specifically when Debian releases new version. But that should happen in few months and then I can retry if this works after clean install of Debian Stretch.
btw, I tested quickly Monomake-UI also. It seems to install correctly, and adds a Menu-entry where it can be easily started, but should it look like this? (I havn't seen any screenshots about it.)
should it look like this?
Thanks for the heads up! It should not definitely not look like this :-/
It seems the CSS file is for some reason missing on debian. I will look in to it.
mbed::AnalogInsupport reading current battery voltage?