We’re at the point where we will shortly be doing wider external testing of the new release of impOS, release 32. Unofficially this is called the ROUS release, for obvious reasons[1]
This release has two big changes, and lots of small fixes and improvements. The big ones are:
Increased code density. You get roughly 2x the space for code on the imp magically (no source changes) - we’ve seen people on 99% usage drop to 50%. There’s also usually even more RAM free too.
New upgrader. This is more reliable (much more tenacious with bad links), and also quicker.
Small new feature:
UART FIFO sizes are now configurable
Bugfixes include:
WiFi join time is usually quicker (back to release 27 times) (especially on networks with WMM)
Rare case where wifi would fail to join a valid network fixed
WiFi scan no longer leaks memory
Various TCP stack fixes
Various DHCP fixes
32 character long SSIDs now work
Improved UART TX streaming (easier to keep buffer full)
Improved imp.wakeup() resolution
fixed frequency DAC fixes
sampler fixes
and more various bits & pieces
Generally, the update is totally transparent; everything should continue to work exactly as before, just with more free memory, and our testing confirms this. However, the real world is always different from test environments and so we’d like to get it out to more people for wider testing before we send it to all developers.
If you’d like to be added to the beta group, then please email beta@electricimp.com with the MAC addresses of developer devices only that you’d like to try this on. Note that the upgrade is NOT reversible - we can’t downgrade you - and you’ll automatically receive any new 32.x releases when they pass internal testing.
We have a lot more fun stuff to come this year… this is just the beginning
Hugo
[1] Obvious to anyone who has watched the princess bride, anyway
Technically we’ve improved the accuracy of imp.wakeup(), not the resolution. You still only get to set it to the nearest 0.01s, but long wakeups (while the imp is otherwise idle) should now fire closer to the absolute requested time.
Care to share the API for configuring UART buffer sizes for the beta testers?
Also, it looks like the IDE is no longer logging the % of space used by the compiled squirrel… Have the rodents gotten so small that we don’t get to see this anymore? :-S
@deldrid1 - I believe docs for beta APIs should be in our dev center quite soon - @smittytone will have more details.
I am still seeing % space used by the compiled squirrel - though I only see it when I actually change my code - build and run without changing code doesn’t cause the imp to redownload the code anymore
Release 32 testing has gone well (ie, we found issues, and fixed them) - thanks to everyone who has been involved and reported issues or otherwise helped us debug things.
I’m expecting that we will be pushing this to all non-production (unblessed) devices late this week… then you’ll all suddenly find yourself with a lot more free memory
Changes/improvements since the original post:
DNS improvements/fixes
Faster detection of low voltage states (for flash timing adjustments)
Many corner case reconnect issues addressed
Further upgrader reliability improvements
TCP stack fixes
Lower memory use when sending deep tables
Improved memory arena handling & bug fixes
Better wifi join event handling (quicker joins in some cases)