SparkFun Electric Imp imp002 Breakout

If you aren't familiar with the Electric Imp, it essentially provides an easy, integrated way to connect almost any hardware device both to other devices and to Internet services. The SparkFun Electric Imp imp002 Breakout allows you to explore the capabilities of the Imp product line in an easy to use package! The imp002 is actually a solder-down module version of the original Imp card and we have done the hard work of creating a breakout board for you. Now, you just need one board instead two (the Imp card and the original Imp breakout) to get started with the Electric Imp!

The imp002 breakout board contains a 3.3V TPS62172 step-down regulator (and the inductor/capacitors supporting it). This regulator allows for input voltages anywhere between 3.3V and 17V (voltages in the upper end of that range may produce some heat). This breakout can even support up to 500mA of continuous current. Like the Imp card, the imp002 module contains an embedded ARM Cortex-M3 microprocessor, an onboard WiFi module, and an antenna. Additionally, we have broken out 12 I/O pins from the imp002 module to standard 0.1" headers. Much like the Imp card, these pins can be used for a variety of functions.

Note: Check out the Hookup Guide in the Documents section below to learn how to, not only, how to set up imp002 Breakout but also a few fun circuit experiments as well!

SparkFun Electric Imp imp002 Breakout Product Help and Resources

Electric Imp Breakout Hookup Guide

June 25, 2015

An electric imp HUG! Provides an overview of the imp card and breakout. Both hardware and firmware subjects are covered.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • The advantage of Electric Imp is that it provides an easy to use end-to-end Internet of Things toolchain that is easy to use and get up and running quickly.

    The hardware, firmware, development environment, networking, provisioning and configuration, software, programming, and Internet services are all provided for you in a neat and easy to use way, all talking to each other out of the box so you can get started quickly with a physical device anywhere in the world that interacts with a Web service from anywhere else in the world.

    It's a very "Apple-like" solution for embedded Internet-of-Things applications, it Just Works, but that's arguably its disadvantage also - it's a very closed platform. It's not open and hackable and tinkerable at the low level, and you can't choose to try and, say, get the well-engineered Electric Imp hardware module running with your own server or your own development environment, and you can't try and get the Electric Imp hosted cloud services and IDE communicating with something like a cheap ESP8266 chip.

    You're provided with the complete working chain integrated neatly together - but you have to accept that complete chain, not just choose a piece of it separately.

  • The best feature of an electricImp is how the Wifi is configured. On an ESP8266, like the CC3000 modules, the SSID and passcode needs to be hardcoded into your MCU sketch. The electricImp uses an app on your smartphone called 'BlinkUp' to connect to a Wifi router. Any router you can see with your smartphone can be connected to in about 10 seconds. You hold the imp up to the phone and it gets configured optically with a burst of flashing lights, like a flashlight gone mad. This feature really becomes relevant for commercial products; I can show up at a customer's house and connect the imp to their home router without plugging in the device to a laptop and programming anything. Then since the imp's IDE is cloud-based, I can monitor the device, its status and its data outputs later from my home PC 24x7 and also tweak the code if necessary, without climbing back up on the customer's roof. So, if you're just using the MCU at home, get an ESP-8266 for Wifi, they're way cheaper. If you're building robust products for the real world, the electricImp is totally worth the extra money.

    • Personally I would not view Imp's blinkup as the best feature of Imp. Having used TI's cc3200, I found their Simplelink app easier and quicker.

      For me, the best feature of the Imp is that you can remotely develop firmware for the Imp device and upload it seamlessly. Then what is really helpful from a developer's point of view is the "server.log( "message" + params );" function which you can sprinkle throughout your code for remote debugging purposes (you view messages through cloud-based IDE), on top of the other imp functions which will tell you why the imp device rebooted or when it connected or disconnected from the WiFi network etc. This helps speed up development of a robust solution. Then there is the hidden feature that SSL is taken care of. With cc3000, cc3200 etc. and ESP8266, adding SSL has to be done manually, it is not easy to figure out how and it creates constraints elsewhere once implemented.

      A key point to note with the Imp Device is that it only talks to the Imp Agent and you cannot get it to talk to other devices locally on the LAN. If local network cross-talk IP functionality is required then you need to use other WiFi modules or connect another WiFI module to the IMP device via UART or SPI (such as ESP8266) to get best of both worlds (i.e. secure cloud server communication with IMP device without having to mess about with router port forwarding, and local LAN IP communication with ESP8266). Another thing to note is that Imp Agent only communicates with other web services using http/https and cannot use UDP or TCP functionality directly.

      Last but not least, forgot to mention that all imps come with their own unique URL so you can very quickly and simply create a web-browser interface to turn things on or off (i.e. remote secure user control) and/or get auto updates of sensor readings displayed on the webpage.

    • Took the words out of my mouth! My Imp projects I can and have handed off to friends, but my ESP8266 projects stay at home (or I have to configure before passing them out.)

      The ESP8266 is supposed to support, like the CC3000, some sort of UDP-based setup but I haven't heard of anyone getting that to work.

  • The later versions of the ESP8266 have up to 12 GPIO pins. (ESP-8266-12)

    If you already have a TTL UART adapter for your computer (FTDI, CP2102, or whatever) then all that's needed to program this device with the Arduino IDE is soldering a "programming mode" button/switch between GND and GPIO0.

    The specificaion sheet says the imp has a Cortex M3, but doesn't say what the frequency is, so I can't tell if it's faster or slower than the 80 MHz of the ESP.

    The server-side solution for the imp is something the ESP doesn't have at all.

    In the end, is the difference worth $40? That's up to you to decide. I like the ESP, but I already run my own servers anyway!

    • The ESP8266 can run as a server-side solution, albeit a very limit one.

    • server-side solution for the imp is something the ESP doesn't have at all

      https://nodelua.org/

      Granted, knowing what I know about the ESP8266, it's probably not at all secure and unlike the Imp I'd never consider it for production...but the price is right.

      The Imp has made huge strides - and I'm a little out of touch - but it really wasn't great at offline for a long time. There's also no way that I'm aware of to push native code to the Imp, so certain low-level operations need to be creative (like using SPI commands to drive IR LEDs / 433mhz radios) or can't be done. Of course, setting up a working ESP8266 SDK (not NodeMCU, but the actual C SDK) is all kinds of fun.

      To be completely fair, I tend to use both chips in combination with some kind of Arduino anyways to get around the various limits involved (and the fact that it's just easier to rapidly iterate on the Arduino, and if I screw up, it's cheaper to replace.)

  • I have a way to answer that, PhillyNJ. Actually they are not very similar, I've been using electric imp for a long time now, almost since it came out. I've also been reading about what it takes to set up the ESP8266 and have one but have not connected it yet. I venture that electric imp is like a Toyota Prius and the ESP8266 is like an old Geo Metro. Both are good commuter cars and both will save money in a way. The Prius has a lot of upfront cost and then it just works. The Geo is cheap all around and can also work with some effort.

    With electric imp you get a cloud computer with each piece of hardware in a 1:1 relationship and they are programmed in a split-screen IDE using the same language. The system works really well and I enjoy having the same language on the hardware as in the cloud computer.

    I would think each device has it's own customer type.

    • Eh, it's more that the Imp is an iPhone and the ESP8266 is one of those non-branded grey-market Android phones.

      The Imp is a little more expensive - and a little less flexible - but just works, is secure, and has great support. The firmware's a binary blob you can't control at all. Key for me is that it's a secure solution - SSL to their cloud, and SSL to other points. I've used Imp-based production hardware and it's completely reasonable.

      The ESP8266 can be modified - flash whatever ROM you like, build your own, raw hardware access without a SWD programmer! - but there's a lot of grey area (like the licensing for the various components) and binary blobs around key features. SSL stopped working at 0.9.4 and is now back in 1.1.0...but it's limited to TLS v1.1/1.0 and I still don't see a way to either pin certificates or do certificate validation. The community's pretty good, and Espressif is helpful (and making smart hires like Sprite_TM) but nothing compared to the help I was able to get from the Imp founders. I'd feel really nervous shipping a solution based on the ESP8266 to customers - bootstrapping an ESP8266 on to WiFi (read as: without reflashing/UART) is really poorly documented, at least in English.

      The NodeMCU and NodeLUA projects are pretty interesting but, having used both them and the Imp, the Imp is vastly superior (and Squirrel vs Lua is largely a wash.) Really, one day I'd like to be able to buy Imp licenses for the ESP8266.

  • Wow that's pricey - How does this compare to the ESP8266 Wifi Serial Module (w/SOC) you can get for around $4 USD? You can create an ATmega328 + the ESP8266 Wifi Serial Module with Voltage regulator for about $15 and get all the happiness of the AtMega Pins. Also the ESP8266 has 2 or 3 GPIO pins (cant remember if its 2 or 3)

    • They are in many ways 2 different markets. See mjkuwp's comment, but one is designed to be a cloud programmable device. One of the main uses for this was manufactures to put these in devices so they could remotely update firmware. So definitely pricey if you want an ESP8266, but not so bad if you want an Electric Imp.

      I like the ESP8266. I'd vote for leaving off the ATMega328, having access to UART, 6GPIOS, and an ADC with a built in Lipo charger and port. All that for $15-$16 would be a pretty cool thing.

      • The problem with this breakout is that bootstrapping it to a network is moderately annoying; the SD card form factor + https://www.sparkfun.com/products/12886 is much easier to work with. The Imp isn't just 3.3V GPIOs, it's relatively fragile 3.3V GPIOs IIRC, so I try to avoid using them directly. :)

        I really wanted to see the SparkFun take on https://www.tindie.com/products/AprilBrother/cactus-micro-arduino-compatible-plus-wifi-esp8266/ - I'm still looking for a good ESP8266 development board with FTDI built in and reliable flashing characteristics - all of my boards require a separate 3.3V supply to flash, or a separate programmer specifically built for the esp8266. :(

        • A bit late, but we actually did come out with a board with the ESP8266 with FTDI on board. Check out the Thing Dev board

        • There have been a log of comments on the ESP8266 Thing about lack of FTDI. The problem with FTDI is the price. We sell the FTDI basic for $15, so in theory adding it on would basically double the price. You can always connect it permanently, but we figure most people won't want to. I'd still check out the board. It's not an Arduino/ATMega328 based board, but it is programmable in the Arduino IDE using the FTDI basic board (or similar USB to UART adapter).

          • You could design an ESP8288 with FDTI on board. If the ESP8266 sells for $4 on average and the FTDI basic is $15, thats $19. A good value.

          • Oh, I know, and the thing is that I find the FTDI basic board doesn't supply enough 3.3V amperage to reliably reflash my ESP8266 - and I've yet to find an automatic solution (that doesn't require pressing buttons to reset and put it in programming mode.) I'd happily pay $50 for the ability to reflash without breaking my circuit and rebuilding it - right now I develop the network bits in isolation and then pair it with an Arduino (where I can rapidly iterate on the firmware while it's in circuit) out of necessity.

            I should say reliably reflash some of my ESP8266s - QC is...variable, so far.

            Also, I linked the wrong device, sorry! https://www.tindie.com/products/AprilBrother/usb-to-uart-converter-that-support-esp8266/ is the only thing that's reliably reflashed all of my random ESP8266-based hardware without a separate 3.3V supply.

Customer Reviews

5 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Lots of features and easy to use

I had a specific idea in mind when purchasing this. I wanted to connect my garage doors to the internet so I could monitor the status (open/closed) and also use browser to open/close the doors from anywhere via internet. I was able to accomplish this using the IMP and a few additional components with relative ease. The imp IDE is really easy to use and the example walkthru on the Sparkfun is really good. I also was able to go 1 step farther using the IFTTT library for the imp that was recently added to send myself a SMS each time the doors open/close. I see the there is a lot of new libraries being added for the imp so more cool stuff could be in the future. So although I could buy smart door openers now that do what I wanted, it was more fun making my own.

Great IoT Board

Electric Imp is a really fantastic platform to work with and the SparkFun Electric Imp imp002 Breakout board gives the needed physical access to connect to that platform. Lots of versatility with its power source options and pins available.