Let's Make Robots!

Electric IMP : Easy Wifi

The Card

I was looking for a simple way to add Wifi to a robot project, when someone pointed me to Electric IMP. After reading a little about it, i decided to just order one and try it out. A few evenings of toying and I have to conclude that the IMP is a whole new type of component.

The IMP is a microcontroler that is programmed over a Wifi connection. You can use it to add a wireless connection to your robot project or you can use it as a standalone controler with 6 IO-pins. The whole thing is sitting in a nice SD-card package. Just add an SD-slot, ID-chip and power and you're set to go. 

The hardware specs are impressive. It has a powerfull processor and provides lots of advantages and features that I was missing on Arduino and Picaxe:

  • Easy Wifi
  • Full 32bit object oriented programming
  • Double I2C ports
  • 6 IO-ports with independent PWM
  • no more serial-cable trouble

Plugging it in

The guys from electric IMP claim you can add IMP to your project with only $1 worth of components, but that excludes the cost of adding those components to a board. I started with the IMP breakout board by Sparkfun which costs more ($19.95).

The board has a mini-USB connector that can be used to provide power. If you want to power the board from batteries, you can use the battery pins that are protected from reverse polarity. In order to use USB power, you need to solder the pins for a jumper.

Sparkfun also sells a board in a shield format and there is a third board with some switches, pots and sensors.

Network settings

In order to get the device working, you need to load your network settings by creating an IMP acount and installing an app on an android or IOS device. Enter your networking settings and hold your IMP with the LED facing the screen of your smartphone. The network settings (SSID, Password and your IMP account) is transfered to the IMP by flashing the smartphone screen. The blinks from the screen are read by the LED. "BlinkUp" they call it.

After blinking up, the LED starts flashing different colors and when it is s steady green blink, it has successfully connected to the network.

The IMP will now connect to the IMP servers. Not to your laptop or computer, but only to the IMP servers. It took me some time to decide that this is not a bad idea. It saves you a lot of trouble debugging all sorts of problems you might encounter setting up your own connection. Your IMP automatically shows up in a planner on the website, where you can add connections to other computers if needed.

Programming

The IMP is programmed directly on the website using a C-like language called Squirel. As I mostly use picaxe controlers, with integer math and anoying language limitations like the inablilty to use a formula in a simple IF condition, this is a real improvement. Programming your robot without a cable or software to install is very nice too. You alter your program a bit, press the "run" button and your device is updated. 

On the website you find a couple of examples that help to connect your IMP to other computers like a webserver or your laptop and to other IMPs if you want. I find the documentation rather limited, but all this is still very much under development and people appear to be working hard to fill in the gaps. Some additions, like a way to construct your own user interface in the programming environment have been promised in the near future.

Conclusion

The electric IMP was a real surprise for me. The many features and processing power make it an interesting alternative to many other controlers. Although $30,- may be a lot for someone with a smaller budget, the use of the SD card format makes it extremely easy to re-use the IMP in other projects, because you can just pull out the card from one robot and shove it in another.

I haven't begun to explore all the posibilities, but I can think of lots of them. You can add the processing power of external computers to the smallest robot and have it look up info on google maps. We can make lots of LMR robots around the world communicate to each other. We can even send a project to a robot faire on the other side of the world and tweak the program from home.

I really hope more people give this little gadget a try, because it is allready changing the way I plan to build my projects.

Links:

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Yes it is a bit harsh, but you are right. It is a closed system and the makers are bad, bad people who cannot be trusted!

Still; I think it is a pretty cool gadget.

... but seriously, making me dependent on an internet connection to a server half way around the world just so I don't have to open a port in my wireless router!!! What kind of fool do you think I am, the kind that buys an ipad to switch bicycle gears

Also, the communication to the "central" server may be encrypted but is it encrypted with a key that only I have or do I have to trust  Electric IMP with my data, just as people trusted Sony

Convenience must not come at the price of freedom, and judging by their website, Electric IMP cares about freedom just as much as Apple does, which is "not at all", which makes sense cosidering that their main target seems to be appliance manufacturers, who don't want you to hack their precious internet connected electric can openers either.

If you want a small wifi enabled embedded system there are other options out there that won't require to sacrifice your first born and they don't cost that much either.

 

 Ok, so this may be a bit harsh, they have obviously put in a lot of work into the ecosystem around their product but it is still a closed ecosystem that ties in your product/prototype to the succes of their company, and it is done on purpose, just like the iPhone's app store compared to the android's Google's Play Store, GetJar, Aproov, Amazon Appstore for Android and many others.

 

Good info, thanks for the post. When I first saw the IMP devices I was really interested. Thoughts of expanding my home automation server, linking remote items in my house, robots talking to the HA etc and vice versus. But the cloud only solution is doubled edged to me. Cool that you can get to it from the world, set the device features, etc but also problematic in that no connection to the world means no function... Or at least no communication functions. I guess local code would still be running doing its thing.

I had hoped it would have had an option for direct access - maybe it does and I haven't seen it - but that would allowed having the device hook to my own server APIs, local access only, etc.

I know the cloud rules the world anymore but I still want to be able to function when the cloud may not be there and/or without big brother IMP knowing what my devices are doing. Not that I'm a rebel convict, just privacy is sometimes the best policy especially when you don't know who's watching.

Just my opinion... Still cool stuff no matter in the Internet of things world.

I WOULD like for more of my bots to be able to Tweet activity or talk to the world easily like my netbook based bot can.

Stephen

I haven't found a way to direct access the IMP either.

I can only hope that the concept of IMP either succeeds or that they publish a way to use your own servers in case they go bankrupt. It would be a true waste if all the cards they ever sold were made half useless because someone decides the servers must be shut down.

On the other hand: how long will it take before an IMP-like device hits the market with all the server stuff build in for half the price?

 

 

If it is public, then the system is less useful to people on high latency connections. If it is private, then connecting from a different network will be difficult at best.

I believe private addresses are 172.x.x.x, 10.10.x.x, and, 192.168.x.x. 

Well that depends on your wireless netwerk. The IMP simply receives an Ip adress, which is usually a non-routable address. The point is that you don't connect to the IMP, but the IMP connects to a public server, where you can also connect to.

 

On the IMP servers you control what other devices your IMP can talk to. All communication is done through the IMP servers.

Because the IMPs only require an outbound connection to the server, there is no need to configure your router or firewall to open up ports. Once the connection is made, data flows both ways.

All communication with the server is encrypted and bound to your account.