Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: UDOO and pcDuino are platforms that can be used instead Intel Edison.
What were the biggest problems encountered?: Library compatibility between Arduino and Intel Edison.
I was very exited when Intel Edison kit for Arduino arrived in the mail.
I have a lot of experience with developer boards such as Arduino, Raspberry Pi, BeagleBone Black, even though I had my eye on Arduino Yun or Galileo I never got around getting one.
So as any self confident tinkerer I jumped right on it, not reading manual with complete attention, using what I already heard about this particular platform and what I generally knew.
Assembly of the board went smooth, but surprise, surprise - nothing else went as I predicted. So I doubled back and started reading startup guide which I have to say is very good written.
Few links to get you started:
There is not much room for error if you follow it step by step. I started with setup utility downloaded from Intel's web site. Using that tool is self explanatory. It installs all necessary drivers, checks your system version on board if there is newer version it downloads it for you and updates your system. It also setts up password and name of your device and connects it to the network.
Board runs Yocto Linux and uses okpg as package manager.
After all initial setup it was time to take it for a test drive. Edison supports number of ways to develop programs that are gonna run on it. But since I already have tone of stuff written under Arduino IDE I decided to give it a spin. I decided not to make the same mistake twice and run basic blink sketch.
As assumed it run like it supposed to. Then I tried to run simple web server and that is where things got interesting. I use xfinity pay as you go internet and I run hosted windows network on my PC to provide internet to other devices (Roku, esp8266, Raspberry Pi, tablet). For some reason Intel Edison refuses to connect to that network both trough setup tool and by using
configure_edison --wifi command.
I didn't want to quit so I went to the local makerspace and tried to use their WiFi network. At first it worked perfect, but later on Edison dropped off the network and did not want to connect again. I suspect that problem might be WiFi noise, too many devices and WiFi networks at one place.
Moving on, I decided to use this kit to upgrade my little robot I built on top of Arduino Mega some time ago.
I made it to be able to roam freely using ultrasonic sensor to avoid obstacles, to be controlled via Bluetooth by PC or Android phone and to be controlled by IR remote. So Edison had some shoes to fill. I knew that just dumping old sketch wont work for Edison so I tried to test out every components operation on it's own. First one up was servo that moves ultrasonic sensor, easy enough Servo library works without hitch. Next one was IR receiver, sadly library IRremote does not work with Edison and there are no easy work arounds. If I want to keep using IR remote I need to get my hands on either USB receiver or some kind of i2c receiver. That functionality moved to to do list.
Next I had Adafruit Motor Shield V2 powering two motors on the robot. I figured since it controlled by i2c communication it should run without problem, I figured wrong. Inside cpp files for Adafruit_MotorShield library there is declaration that makes Arduino IDE compile for AVR platform, since Edison is x86 based it does not work. Luckily, the solution was very easy: just bypass that statement and everything works like charm.
Next up was the ultrasonic sensor which used NewPing library, again that library does not work on Edison. Luckily, before I used that particular library I used to write simple function that does same job. The ultrasonic sensor was up and running. I put everything together and it worked, well kind of. From time to time board would reboot. I tracked down the problem: the servos are attached to motor shield and schematic shows that power to them is not supplied by external power pack but trough 5v power rail of Arduino, Edison in this case. So I gave servos power input from the external pack and problem was solved.
One more thing, when sketch is compiled on the Arduino IDE stores sketch on Edison under /sketch/sketch.elf . It runs only once. So to make my code run permanently every time board boots I wrote simple script using this instructions.
So far I managed just to scratch the surface and I have lot more planned ahead. I already have few parts ordered to improve my device, PS3 controller and USB camera, I'm going to use these blog post: video stream and Edison based video game as reference guides to enable the little robot to send stream of video to me and to control it with PS3 controller.
All in all, I have to say that Intel Edison is an extraordinary peace of hardware, build quality is as you might expect excellent, support is appropriate and potential is vast.
On board WiFi and Bluetooth enable connectivity for IoT applications, small form factor and low power consumption. Breakout board Arduino kit enables fast prototyping , easy transition from Arduino platform and re-usability of Arduino shields. You still have to jump trough some hoops because some libraries do not have Edison counter part but it is fair trade off for getting more powerful and versatile board.
Couple thing I did not mention, some of the hardware features that will come in handy:
Onboard battery controller;
Supports 3.3v and 5v on GPIOs on the kit for Arduino;
PWM outputs can be reorganized trough jumpers;
Has ICSP header like regular Arduino;
Builtin SD card slot;
Can be powered via USB cable;
Are just some of the things worth mentioning about this product.
Dual-core, dual-threaded Intel® Atom™ CPU and a 32-bit Intel® Quark™ microcontroller
1.8V (Breakouk Board)
3.3V / 5V (Kit for Arduino
7-15V (Both Breakout Board and Kit for Arduino
Digital I/O Pins
20 (of which 6 provide analog input and 4 provide PWM output) (Kit for Arduino)
4 GB eMMC
1 GB LPDDR3 POP
500 MHz (Intel® Atom™ CPU)
100 MHz (Quark™ microcontroller)
61mm (Breakout Board)
127mm (Kit for Arduino)
29mm (Breakout Board)
72mm (Kit for Arduino)
12mm (Breakout Board)
12mm (Kit for Arduino)
It's a shame that such a small board needs such a large support/motherboard.
It has some great features, but with a 1 more cm2 they could have included level translation and overcome it.