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

Bug Fixes and Changes

41.20

  • Features
    • imp005:
      • Support Squirrel bytecode up to 512KB in size, up from 256KB.
    • imp006:
      • Add hardware.dfsdm digital microphone input support (on pins P and Q).
  • Bug Fixes
    • imp005:
      • Fix ignored or corrupted BlinkUp when it takes place while new Squirrel is being downloaded.
    • imp006:
      • Ensure factory-fresh cell-modems work out of the box.
      • Fix crashes related to second SRAM bank (regression in 41.18).

41.19

  • Features
  • Bug Fixes
    • impC001:
      • Support modems which have ‘lost their MIDlets

41.18

  • Features
    • imp006:
      • Add hardware.spiEFGH, hardware.spiXABCD and hardware.spiXPQRS (hardware.spiXTUVW coming in a later release).
      • Reduce current consumption in sleep.
      • Add support for CYW43455 WiFi chip (with 5GHz support), as an alternative to 43438.
      • Add support for second SRAM bank: total now 320KB, up from 256KB.
  • Bug Fixes
    • All imps:
      • Fix rare scheduler issue that could lead to watchdogs (regression in 39.3).

41.17

  • Features
    • imp006:
      • Add hardware.i2cLM and hardware.i2cTU (hardware.i2cJK support coming in a later release).

41.16

  • Features
    • Speed up factory cloudification by eliminating unnecessary reconnection.
    • imp001-006:
      • New Cypress WiFi SDK imported from upstream.
    • imp006:
      • Support updated hardware design for power control circuitry.
    • impC001:
      • New upgrade scheme to work around chip errata which made existing scheme unworkable.
    • imp006/impC001:
  • Bug Fixes
    • imp006:
      • Improve handing of modem power-up sequence.

41.15

  • No external-facing changes in this release.

41.14

  • Bug Fixes
    • imp006:
      • Fix production-signing process upgrade files.

41.13

  • Features
    • All imps:
      • Remove the prohibition on disabling BlinkUp for 60 seconds after boot.
      • Enable escrow customers to use their own OUI (MAC address prefix) in addition to Electric Imp’s.
  • Bug Fixes
    • All imps:
      • Fix potential crashes when calling Squirrel metamethods directly.
      • Fix regexp capture bug reported on forums.
      • Ensure that falling back to MNIF automatic mode do not clear the user's manual-mode configuration.
      • Ensure that multiple callers of imp.net.open() can each set their own callback.
    • impC001:
      • Fix BlinkUp re-enable after disable.
      • Fix potential crashes when using external SPI flash.

41.12

  • Features
    • All imps:
      • 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
    • All imps:
      • 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
    • All imps:
      • Fix memory errors when using more than 255 local variables in a Squirrel function.

41.8

  • Features
    • All imps:
      • Enable escrow customers to use their own OUI (MAC address prefix).
  • Bug Fixes
    • All imps:
      • 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
    • All imps:
      • 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
    • All imps:
      • 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
    • All imps:
      • 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
    • All imps:
    • 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
    • All imps:
      • UDP callbacks also receive the target IP address and port — a breaking change but to a pre-release API.
  • Bug Fixes
    • All imps:
      • 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
    • All imps:
    • 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
    • All imps:
      • 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
    • All imps:
      • 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
    • All imps:
      • 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.