Electric IMP : Easy Wifi

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.

IMP-inside.jpg

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:

 

**What IP address does the IMP get? **

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. 

private

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. 

I’m all for convenience…

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

 

Harsh

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.