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.

Versions

The current release is 41.12.

Bug Fixes and Changes

41.12

  • Features
    • Return error codes (rather than throw an exception) when udpsocket.send() has connectivity problems.

41.11

  • Bug Fixes
    • imp006:
      • Fix cloudification SPI images.
    • imp006/impC001:
      • Increase drive-strength of SPI flash interface pins (helps imp006 boot at low voltages).

41.10

  • Bug Fixes
    • Fix crashes caused by poor networking conditions (regression in 41.2).

41.9

  • Features
    • imp006:
      • Build cloudification SPI image for imp006 with cell-modem.
  • Bug Fixes
    • Fix memory errors when using more than 255 local variables in a Squirrel function.

41.8

  • Features
    • Enable escrow customers to use their own OUI (MAC address prefix).
  • Bug Fixes
    • Treat all-ones UDP broadcast address as network-local, ie. allow send/receive to/from it.

41.7

  • Bug Fixes
    • impC001/imp006:
      • Fix for cellular networks that actively deny registration on 2G while allowing it on 3G or 4G.

41.6

  • Bug Fixes
    • Fix memory errors when using acall() in Squirrel: cap array length at 10, as per agents.
    • imp-to-server messages no longer cause long waits even when the connection is known to be down.
    • imp006:
      • Cellular builds don't have BlinkUp on the right pins.
    • impC001/imp006:
      • Fix occasional crashes when using USB (eg. for cell modem).
      • Retry PPP on NO CARRIER even if it happens right after CONNECT.

41.5

  • Features
    • Enforce local subnet only constraints on UDP transmit/receive.
    • Allow escrow customers to run the unit-tests out of the box.
    • imp006:
      • Add basic support, including BlinkUp and cloudification.
  • Bug Fixes
    • Apply upstream Squirrel fix for generator functions losing local variables.
    • Close UDP sockets when the underlying network connection is lost.
    • Fix MNIF reporting stale network interface states.

41.4

  • 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 imp.net.open() 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 imp.net.getcellinfo() call is pending.
      • Fix NVRAM corruptions if VBAT levels mean data is not correctly preserved.

41.3

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

41.2

  • Features
  • Bug Fixes
    • New LwIP imported from upstream, many bug fixes claimed.
    • Improve imp.net.setserverinterfaces() behaviour when given invalid interface identifier.
    • Make imp.net.info() 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.

41.1

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

41.0

  • 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.
    • imp006: preliminary support.
  • 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.