Skip to main content

Release 41 (Internal Development Release)

Note impOS™ 41 has been solely made available internally and to select early testers. As such, most developers and customers will not receive it except in its public release form, impOS 42. As such, all other Electric Imp documentation will refer only to impOS 42 when discussing this release.

Changes apply to all imps unless stated otherwise.


The current release is 41.4.

Bug Fixes and Changes


  • Features
    • impC001: pause for longer on Squirrel errors, in order to use less cellular data.
    • imp005: ensure escrow customers can build factory SPI images.
  • Bug Fixes
    • Fix fixedfrequencydac underruns when just two buffers are provided during initialization (regression in 37.32).
    • Discarding (nulling) an interface object in its own state callback could cause crashes; now it does not.
    • Fix confusing MNIF behaviour when mixing and server.onunexpecteddisconnect()
    • imp005: the state-change callback wasn't being triggered on WiFi loss while connected to the server via Ethernet; now it is.
    • impC001:
      • Power-cycle the modem if registering on the cell network keeps failing.
      • Fix for disconnecting while a call is pending.
      • Fix NVRAM corruptions if VBAT levels mean data is not correctly preserved.


  • Features
    • UDP callbacks also receive the target IP address and port — a breaking change but to a pre-release API.
  • Bug Fixes
    • Fix a crash which occurred when creating more UDP sockets than is allowed.
    • imp001-005:
      • Increase resilience to network-thread deadlocks (not seen in practice).
      • New Cypress WiFi SDK imported from upstream; some further bug fixes claimed.
    • imp005: fix several MNIF issues when using both Ethernet and WiFi.


  • Features
  • Bug Fixes
    • New LwIP imported from upstream, many bug fixes claimed.
    • Improve behaviour when given invalid interface identifier.
    • Make return the server.connectwith() credentials, if different from configured credentials.
    • imp001-005: New Cypress WiFi SDK imported from upstream; many bug fixes claimed.
    • impC001:
      • Add timeout if cell-modem keeps switching from registered to unregistered and back.
      • Fix (theoretical, never observed) infinite loop on certain modem setup errors.


  • Features
    • Major change to server-connection state-machine: imp not now considered connected until the server responds.
    • impC001:
      • Add extra logging of modem-side failures.


  • Features
    • Improved, non-preliminary UDP API.
    • Introduce ability to utilize multiple network interfaces (aka ‘MNIF’).
    • impC001:
      • Prefer 4G networks to 3G if both are available.
      • Avoid constantly polling the modem for status updates.
      • Added resilience for modem UART handling.
  • Bug Fixes
    • Fix long pauses if HTTP proxy is in use and it disconnects our socket.
    • Fix connections for networks that need an HTTP proxy and a non-standard port to connect.
    • imp001:
      • Fix misreading of ID chip (regression in 39.23).
    • imp002:
      • Fix bogus driving of pin 6 (regression in 39.23).
    • imp004m:
    • imp005:
      • Increase resilience against potential Ethernet/WiFi teardown race conditions.
    • impC001:
      • Increase over-optimistic timeout for connection establishment.
      • Reduce excessive timeout if connection comes up but packets don't flow.
      • Do not overclock RNG peripheral (potential cause of watchdog resets).

Note This release branches from impOS 39.24, so please see the 39 release notes for earlier changes.