Wanted: testers for new impOS release

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 :slight_smile:


[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.


As is so often the case, Peter is correct. gitk affects my mind.

ROUS, clever. I confess I had to look it up, and kicked myself for not remembering it beforehand.

The leap to version 32 also reminds me of another identically named leap forward from about 25 years ago.

Care to share the API for configuring UART buffer sizes for the beta testers? :slight_smile:

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 :slight_smile:

@coverdriven oh wow Telebit… though, those were really cool when their Trailblazer modem did what, 14kbits/s, back when everyone else was doing 2400.

That and the on-board 68000 that faked out UUCP so transfers went faster. So much magic.

The UART FIFO documentation is now live:

How can I update my IMP OS to release 32? I have to configure the UART rxFIFO to 10KBytes. Thanks!

Will the imp be able to drive me to work in the morning?

seriously, I’m amazed at how far the imp has gone since 2-3 years ago.

@jokerman please email beta@electricimp.com with your mac addresses & we’ll get you updated

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 :slight_smile:

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)