I'm not a computer or electrical engineer, I'm a paper engineer. I make pop-up cards and toys out of paper. But I've always wanted to try making things with electronic components, and I never dared. There's just too much I don't know, it's too intimidating. Tutorials don't generally help much either because even the ones for beginners assume far too much knowledge. I use a breadboard every morning to slice my bagel -- is that what I'm supposed to use for my circuits? Of course not! So what is a breadboard? Turns out you don't need to know to get started (AND it turns out the name really does originate from a slab of wood!).
I was fortunate enough to get just the right kind of encouragement to get started: A Grove Starter Kit Plus with an Arduino compatible Intel Edison board. It's like an adult version of the snap circuits toy, with the addition of the board/controller (basically a mini computer). There's no need for a breadboard, no need for a soldering iron. Instead, it comes with a bunch of electronic elements (sensors, switches, etc) which can be easily plugged into your controller. Then you can program it to do anything you can dream up, from an automated garden to a tweeting coffee pot. Some projects can be just plain silly, but others, like this bathtub controller, just seem silly at first till your elderly upstairs neighbor repeatedly forgets the bath is running and you've got water pouring down from the ceiling. An electronic trip wire seems like a child's toy till you realize it can wake you up if you're taking care of a sleepwalker.
But before you can start your project, you just got a box in the mail, filled with electronic parts as beautiful as fancy chocolates -- and you've no idea where to start.
Step 1: Assemble the Controller
First you need to assemble the card, which comes with the small Intel Edison board separate from the Arduino board. Intel has a detailed step by step tutorial, which is helpful -- when things go exactly as they describe. It doesn't always happen that way, hence this instructable for insecure beginners like myself.
Here is the assembly in a nutshell:
- Put the small Intel Edison chip on the larger board, in the blank area on the lower left side.
- Press it down with your finger over the QR code (the printed black and white dotted square on the lower right corner of the Edison board). You should feel it click into place.
- Secure the card in place with the 2 tiny hex nuts provided. No need to tighten very hard.
- Attach the 4 plastic legs
You need 2 micro USB cables to attach the board to your computer. Unfortunately the kit only comes with one cable -- so you'll need to go out and buy a second. Maybe it's possible to attach a battery instead (the kit comes with an attachment) but I didn't have the confidence to stray from the instructions...
Next to the 2 micro ports on the board there's a tiny little switch, which needs to be switched towards the micro ports. Once the power port is hooked up to your computer a green LED should turn on.
One thing to note, if you're following the Intel tutorial, is that their layout is a bit confusing. At the bottom of the page, in big print, is the title "Where to go next" with links below. Don't click on those. You need to click on the small, discrete "next step" link you will find on the right.
Step 2: Download the Software to Control Your Controller
The Intel Edison board is not an Arduino, but it is Arduino compatible -- so to control it you need to download the Arduino IDE (IDE = integrated development environment). You don't need to learn programming (yet), but you need this software to talk to your controller. Choose the file for your operating system from the table on the top. I have a Mac, so all the following instructions are for the MacOS. PC or Linux users can follow the Intel guide.
For Mac users, once you've downloaded the file by clicking on the correct link, go to your downloads folder, double click it to unzip the file (unless you're using Safari, which does this automatically for you), name the document "ArduinoEdison" and move it to your applications folder.
Step 3: Test Your Connection
To make sure everything works, you will install a little program which makes a tiny LED on your board flash.
Open your "ArduinoEdison" program by double clicking on it. A small window should open. Then again, it might not. I just tried it again for the purpose of taking screen shots, and it wouldn't open for me. No error message, just... nothing. If this happens, don't panic. Shut your computer down, make yourself a cup of coffee, chat with someone, then come back and start all over again. It should work now.
- Then click through the menus File > Examples > Basics > Blink
Now you get a second window opened, with code on it, instructing your board to blink at 1 second intervals.
- Then click Tools>Board>Intel Edison
- Now choose Tools>Serial port... and then choose the dev/cu.USBmodem option (choose dev/cu not the dev/tty modem.
Click on the round button with an arrow on it (top left corner of the blink window, just to the right of the check mark button) to upload the script to your board. In a few seconds, you should get a message at the bottom of your screen saying "Transfer complete" and an LED on your board should be blinking. All the tutorials say it's pin #13 and it's an orange LED. I don't see a number, and my blinking LED is green, but this should be good enough.
This worked for me, but if you get a "No such file or directory" error message, try a different port selection from the Tools menu.
If the blinking annoys you, go back to your first window (the one which appears when you open the program, and which says: "void setup") and click on the arrow/upload button.
Step 4: The Missing Step: "Flashing Your Image"
If you're following Intel's start up guide, they forget to mention this step. I only found out about it in the troubleshooting forums. You want to "flash" your board with the most up to date "image." In plain English this means you must instal the newest software on your board. Or it might be more accurately be called firmware (this is software for your hardware -- combine soft with hard and you get firm...). The jargon boils down to this: you have to delete the files on the board and replace them with the newest updates. You can see Intel's description of this step here.
For this step, you need to open a Terminal window on your computer. I've always been terrified of Terminal. The name itself is morbid enough, but what really scares me is that it's an access point into the computer's operating system, and all commands are typed. What if I make a typo which will mess everything up? Once you type and hit "enter" you can't undo...
First, you'll need to find the program. On the Mac you'll find Terminal in the utilities folder which is in your applications folder. Open the program and you will get a small window with some gibberish on top: your computer's name, your name, and a few dollar signs thrown in for good measure. Traditionally this window is black with white text, but mine was the regular black on white. Whatever. Now type the following:
Please note there is a space between "cd" and "Volumes" Press "enter" (aka "return"). Type:
rm –rf *
Press "enter." This will delete all the visible files and folders. Now type:
rm –rf \.*
Press "enter." You have now deleted all the invisible files and folders.
Go to your desktop and select the Edison drive, then choose from the top menu File>Get Info (or press "command" & "i" at the same time). If the format is MS-DOS (FAT16) you'll need to change it -- so follow indented instructions below:
Open your "Disk Utility" application (in Applications>Utilities). On the left, select 805.3 MB Linux File-CD, then the tab "Partition." The default partition layout is "current" and it can't be modified. Select "1 Partition" from the Partitions Layout drop down menu, and you will be able to rename it (be original, call it Edison) and Format it as MS-DOS (FAT). This will format it with FAT32... Confused yet? When you've made all the right selections, hit "Apply"
I followed all the instructions but I still got an error. My disk wouldn't unmount. So on my desktop, I grabbed the Edison icon and put it in the trash. Back in Disk utility I clicked "apply" again -- and it worked! I clicked "get info" for the drive, and confirmed the format is now FAT32.
You now need to get the new firmware here. Choose "Edison Yocto complete image" download it and unzip the file (unless you're using Safari, which will unzip it for you). Copy these files into your Edison drive (drag and drop onto your desktop icon).
Back in terminal, type:
and press tab (not enter). A number should show up. If for some reason that doesn't work, in the Arduino program, go to the menu Tools>serial port, and looks for the number next to the port called cu.usbserial. Type that number in Terminal. Then type:
Now click enter (or "return"). The screen should turn blank. Press enter twice again, and terminal will ask you to log in. Type:
Press enter. Wait. Sometimes nothing happens. If so, press enter again or reboot and try again till you get a message saying "root@edison:~#" Now type:
Press enter. This will erase everything on the Edison and replace it with the new files. You'll see lines scrolling by as it works, then when it's installed it will take you back to "root@edison:~#"
Step 5: Setting Up Wifi
Apparently, you're supposed to be asked to give a name to your Edison, and get the option to enter a password. I wasn't so lucky. I got the re-routed to "help" instead. Or sometimes I got the less helpful "-sh: configure_edison: not found. Great.
Step 6: Relax
Step 7: 9th Time's the Charm!
After many attempts, punctuated by breathing exercises, I finally succeeded. It felt like the computer wasn't sensing all my keystrokes, it would miss the first letter (I typed "onfigure" more than once) and I had to hit "Return" repeatedly (waiting 10 beats between each time) till I would finally get the next prompt.
Just typing: "configure_edison" then hitting "return" finally worked. Then I painfully made my way through the guided tour to change the name, password, and set up wifi.
At the end, Terminal will give you an IP address for your Edison board (a series of numbers interspersed with dots). If your computer is on the same wifi network, you're supposed to be able to go to your browser and enter that as a URL (i.e. type http://[the number you got]), then see your device information.
Didn't work for me. Could be how my wifi network is set up, maybe I have a firewall blocking it... I don't know, and by now I don't really care, I'm ready to assume the Edison is set up all right and the problem is with my wifi network.
Step 8: Instal the Base Shield
The base shield is a board which fits right onto your Edison board and allows you to plug in all the various electronic components, rather than having to solder circuits together. It adds an extra 3/4" in depth, but it enables novices to tackle projects with one layer of intimidation removed, and experts to make quick prototypes before finalizing their projects with more compact and cheaper components.
The base shield is almost hidden in the Grove kit packaging behind a piece of red plastic foam. Pull it out and gently push it down onto the Intel board. Press down evenly with your fingers on the blue plastic. It won't go all the way down. Don't worry about that, it's not supposed to go all the way down.
Step 9: Test a Simple Circuit
Before embarking on the Big-Project-You've-Been-Dreaming-Of, it's best to try out a simple circuit. You can find some demos for the Grove kit here.
I chose to test the sound sensor.
First I put a one of the LEDs not the LED socket. Two wires come out of the LED, the anode and the cathode. If you look closely at the bottom rim of the plastic of the LED, one side is flattened. The wire on that side is slightly shorter... that's the cathode. The longer wire on the round side is the anode, which needs to be plugged into the socket on the + side (and don't worry if you put it in wrong -- it won't break anything, the light just won't turn on). I then connected the LED socket a digital port on the base shield.
I plugged the sound sensor into one of the analogue ports.
I selected all this code, copied it, and opened the Arduino software. I replaced the code in the default window with the code I'd copied, uploaded it to the Arduino by clicking on the round arrow button.
When I snap my fingers by the sound sensor, the LED lights up!! We're in business....