How To Migrate An imp002-based Design
Electric Imp has formally end-of-lifed the imp002 module. Customers who are currently developing and/or manufacturing connected products based on this module should implement a strategy to migrate their product from the imp002 to the imp003, which is now being produced in volume by our manufacturing partner Murata (part number LBWA1ZV1CD). For more information on the imp003, please review the datasheet.
This document will help you choose the best approach to migrating your imp002-based design to the imp003.
Since this document was published, Electric Imp has unveiled the imp004m module as a highly-integrated, low-cost successor to the imp002. The imp004m offers a very similar feature set compared to the imp002 with two key differences: while the imp004m has ADC support it does not offer DAC, and it requires use of external SPI flash (as does the imp003). In most cases, the board design for imp004m will be similar to the imp002 (although not a drop-in replacement) and, like the imp002, does not require an external antenna. For more information, please see the imp002-to-imp004m transition guide.
The imp003 offers many advantages over the imp002. The benefits it brings to customers include:
However, there are some additional design and BoM considerations that come with the imp003:
Unlike the imp002, the imp003 is manufactured by world-leading manufacturer Murata rather than by Electric Imp itself. This allows the imp003 to be a superior product which is smaller, faster and cheaper as well as being available in much larger volumes. At the same time, the module’s power requirements are identical to those of the imp002, so the host PCB’s power supply design can be maintained without change.
The impOS on imp002 and imp003 requires a SPI flash as part of the secure upgrade process. On the imp002, this was placed inside the module and used entirely — no storage was exposed to the application layer. With the imp003, this SPI flash must be added externally to the module using a dedicated SPI flash interface. impOS requires 3.5Mbit (448KB) of storage and exposes any remainder to the application layer. So if you fit a 4Mb SPI flash, your application will have 0.5Mb (64KB) of storage available. If you place a 64Mb SPI flash then your application will have 60.5Mb (7.6MB) available. impOS protects the reserved space so that your application can’t overwrite the upgrade files. For more information see the impOS spiflash API.
The imp002 includes all of the components required for low-power operation, but the imp003 makes these optional: it allows you to place those components outside of the module only if they are needed. This allows applications which do not require low-power operation to save cost by omitting them. The components required for low-power operation are a 32KHz crystal and a power load switch. The 32KHz crystal allows the imp003 to enter the ultra-low power ‘deep sleep’ state while still waking at a predetermined time. The power load switch interrupts power to the WiFi chip within the imp003 which reduces leakage currents down to 4µA.
There are a few other external components which are required for imp003. For more information please see the guide ‘Design Hardware With The imp003’.
Unlike the imp002, the imp003 does not include an on-board antenna. This reduces the cost of the module and allows a more flexible layout to optimize WiFi performance but can raise concerns about RF design and approvals. These concerns are generally easy to address, and the imp003 certification process is quite similar to the imp002 process if you follow a few design guidelines. Electric Imp provides a choice of two different reference antennas: a PIFA (Printed Inverted-F Antenna) which is printed directly on your PCB at no cost, or an Antenova A5839 chip antenna which is soldered to your PCB and acts as an antenna, but has a BoM cost. Regardless of which reference antenna you select, if you follow Electric Imp’s design requirements, the imp003 has the same FCC/IC modular certification as the imp002 so there are no changes to your testing requirement in the US or Canada. It is worth noting that the imp003 typically requires a 50Ω impedance controlled trace between the module and the antenna which often requires a four-layer PCB. This can increase costs but is generally offset by the total system cost reduction.
The imp003 runs the same Squirrel code as the imp002 but you may have to make changes to your Squirrel code to match the updated hardware design. For example, if your design currently uses i2c89 but you select i2cAB on the imp003 you would have to change you device code anywhere you reference i2c89. It is also possible to maintain Squirrel application firmware which supports both types of hardware by detecting which type of imp module the Squirrel is running on and mapping the peripherals accordingly. For example:
local i2cDevice = "i2cAB" in hardware ? hardware.i2cAB : hardware.i2c89; i2cDevice.configure(CLOCK_SPEED_400_KHZ); local i2cReadValue = i2cDevice.read(_i2cAddress, SENSOR_REGISTER, 1);
While the imp003 offers more IOs and peripheral options, there isn’t an exact one-to-one mapping of pins. For example, pin 1 on imp002 can be configured for CTS, TX, SCL, SCLK, DAC, ADC, PWM or Wake. However, the imp003’s Wake pin is pin W, which only has CTS, TX, ADC and Wake. This generally does not pose a problem as each application typically uses only one or two of a pin’s special functions. We will discuss the best way to map your existing imp002 functionality to imp003 pins below.
With the imp002, the impOS license fee was included in the module price since it was being sold directly by Electric Imp. In order to avoid distributor markups and to reduce inventory costs, this fee has been separated out from the imp003 unit/volume price and is instead charged as part of the manufacturing process. Please contact Electric Imp sales for an updated service agreement with more information.
There are two basic approaches to migrating your product which you should consider:
A redesign your main PCB to be based on the imp003. This allows you to leverage all of the features of the imp003 described above, including opportunities to reduce the cost and complexity of your design. This is the best choice for customers still in the development process who have the time and resources to improve their design. This approach is discussed in greater detail in Method A, below.
Build an interposer PCB which allows you to mount an imp003 within the imp002 footprint on your existing main PCB. This is the best choice for customers who have an existing low-volume design, are risk averse, or have an existing product in the market with which they would like to maintain complete compatibility. It may also be a good choice for customers with large two-layer or low-cost PCBs. Electric Imp has developed an example interposer which can be adapted for any design requirement. This approach is discussed in greater detail in Method B, below.
The recommended approach for imp002 customers is to redesign their product based on the imp003. This allows you to take full advantage of improvements offered by the imp003. You will find it particularly helpful to read our guide ‘Design Hardware With The imp003’ before embarking on such a transition.
Here are the more common considerations you will encounter when updating your design:
You will need to determine a new pin mapping. We recommend you start by assigning the most scarce peripherals first.
If your design currently uses a SPI flash, you will likely want to use a single SPI flash connected to the dedicated SPI flash interface. impOS requires 3.5Mb of storage, so size your SPI flash accordingly.
If your design requires low-power operation, be sure to include all of the low-power components listed in the imp003 design guide.
The imp002’s real-time clock will not be set after a power cycle until the module has been able to connect to the Electric Imp impCloud™. The imp003 allows you to provide backup power, typically a coin-cell battery or supercapacitor, for its real-time clock. This feature may be useful for devices which must resume a schedule after a power outage even if WiFi is not present.
For further assistance with transitioning your product to a native imp003 design, including board reviews, please contact Electric Imp support.
For customers who prefer not to make changes to their existing imp002-based design, it is possible to design and build a small interposer board which has an imp003 and all required components, and can be mounted directly on the imp002 footprint of your existing design. This typically is an easier transition from a schematic capture and PCB layout perspective but raises a few issues. Furthermore, since you are making no changes to your existing design, you have fewer opportunities to reduce the cost or complexity of your design.
Rendering of example interposer solution
The biggest challenge an interposer solution presents emerges during the manufacturing process. Most customers use an automated Pick and Place machine to remove an imp002 from the Tape and Reel packaging and place it in the correct location on the main board. Since you will be responsible for manufacturing the interposer board, it may not be cost-effective to package them into Tape and Reel. Furthermore, using a Pick and Place machine may not be practical because the interposer lacks a good surface for the machine to grasp. Most likely, then, the interposer will need to be hand-soldered to your main PCB. This can increase assembly time, complexity and cost.
The second challenge when designing an interposer is that there is no one-to-one mapping of imp002 pins to imp003 pins. Typically, a mapping can be found which will work for any given application. However, there are a few applications which present problems. For example, you use imp002 pin 1 to wake the device from sleep. You then reconfigure this pin as a DAC. However, there is no imp003 pin which provides both of these functions. To solve this, your interposer would need to connect both pins W and A to pin 1 on your design. This will require changes to be made to your software since now when your device wakes, software must unconfigure pin W and configure pin A rather than simply reconfiguring pin 1.
The last main drawback of an interposer is the added cost of the interposer PCB and multi-step assembly process.
You will find it very helpful to read the ‘Design Hardware With The imp003’ guide before designing your interposer. If you use Altium for your CAD, you can start with the example interposer designed by Electric Imp. If you use a different CAD program, you can refer to the example schematics plus the imp002 datasheet (for interposer dimensions), imp003 datasheet and antenna guide.
Here are some considerations for updating the interposer design:
You will need to determine a new pin mapping. We recommend you start by assigning the most scarce peripherals first.
If you decide to use the dedicated SPI flash for application storage, impOS requires 3.5Mb of storage, so size your SPI flash accordingly.
If your design requires low-power operation, be sure to include the low-power components on your interposer. If you do not require low-power operation, cost savings can be achieved by removing them from the interposer design. However, this may create a change in behavior between your imp002 design and imp003-interposer design.
Using an interposer does not change your RF certification burden. If you plan to certify outside of the US, you may need to plan for RF Testing which requires that pin Q and pin R are accessible. You may need to add testpoints to the interposer for these pins if you are not using them as part of your pin map.