Skip to main content

impOS Release 42

impOS Version Naming

Electric Imp versions impOS™ releases as follows: odd-numbered major versions are pre-releases and even-numbered major versions are production-quality releases. As such, impOS 42 builds heavily on impOS 41, which was not released publicly. For information on changes and bug-fixes implemented in the various minor releases of impOS 41, please see the relevant release notes. This document will focus on changes made following the release of impOS 42, and upon new features introduced in impOS 41 but made public for the first time with impOS 42.

Developer Beta Release

Please contact us via the Electric Imp Forum with Device IDs or Device Group IDs if you would like to try out impOS 42 before its wider developer release.

Versions

The current release is 42.00 (see Release Notes and Known Issues).

New Features And Improvements

The primary role of impOS 42 is to fully support the imp006 module. impOS 42 additionally provides the following enhancements:

  • Multiple network interface usage and management (aka ‘MNIF’)
    • Developed for imps with more than one network interface: for example, the imp005 has both WiFi and Ethernet, and the imp006 which has customizable interface options (initially WiFi and cellular).
    • Manage which interfaces are used and when: eg. WiFi for primary impCloud™ access and cellular for emergency connections, or cellular for impCloud access and WiFi for local networking
    • Please see imp Network Interface Management for a more detailed view of MNIF.
  • User Datagram Protocol (UDP) support over local networks.
  • More Squirrel application code storage
    • On imp006 and impC001, VM bytecode space has increased from 256KB to 512KB on these imps, double the size available on previous releases.
    • On imp005, VM bytecode space has increased from 256KB to 768KB — three times the size available on previous releases. Note The more space you use for code on the imp005, the less RAM workspace you have available — please check your app size and RAM usage accordingly.
  • The imp is not now considered connected until the server responds.

Developer Guides

New impOS Methods

Updated impOS Methods

Release Notes

42.00

  • Features
    • All imps:
      • Enable support for TCP selective ACK, which should speed up upgrades over networks experiencing packet loss.
    • imp006:
      • Increase TCP input window, again should speed up upgrades

Please see the impOS 41 release notes for details of earlier changes.

Known Issues

  • Currently, imp.net.setserverinterfaces() accepts an unlimited number of interface identifiers, including multiple instances of the same identifier. However, if you include any identifier more than once, impOS may spend an excessive amount of time iterating through the available interfaces after a cold boot. This can impact applications making use of a rescue pin. We recommend listing each interface once only. If you are including a given interface multiple times — for example, to favour Ethernet connections over WiFi ones — you should instead control interface selection manually using server.connectwith(). Future impOS releases may limit the number of identifiers that imp.net.setserverinterfaces() will accept.
  • Currently, imp.net.open() will reject any Network Interface Configuration (NIC) containing proxy, static network and/or WiFi configurations when it addresses an interface which is already in use — even if the new NIC exactly matches the one that is already in use. Until this issue is addressed, please include NICs with only an interface key when re-calling imp.net.open().
  • Reconfiguring the pulse counter with a different duration causes pulses to be mis-counted.
  • Although the imp003 has ten ADC-capable pins, only eight can be used simultaneously.
  • Squirrel strings containing NULs (bytes equal to zero) do not compare correctly in relative comparisons (<= etc.) even though they do in equality comparisons (== and !=). This has been the case in all impOS releases made thus far.