If you don't want to be troubled by hardware complications start with an Arduino breakout board. This not only gives you Arduino pin outs, but it level shifts the 1.8V logic of the Edison to the 5V logic of the Arduino. You can also use the full Arduino IDE to develop software.This means you can use all of the interfacing techniques you have learned in using the Arduino and Arduino projects are easy to move to the Edison. Judging by comments on forums, this seems to be, the route that most users are taking and hence there is more information available. However you think the Arduino board is for you you need to ask if a simpler solution might not be an Arduino proper. In most cases the Arduino board is best regarded as a stepping stone to the mini board.
if you can handle the minor complications involved in level shifting and generally working with 1.8V logic and want to create something small and low power then the mini breakout board is for you. However, you are going to have to implement any additional I/O facilities you need as the mini breakout board only provides you with the raw GPIO lines. This is not the big problem that it might appear to be and in fact in no time at all you should find it easy to not only use new 1.8V sensors when they are available but to interface to your favourite 5V and 3.3V devices including bidirectional devices.
Rather than concentrate on the Arduino breakout board which is what most accounts of getting started with the Edison do we are going to work with both breakout boards.
This is possible because initially at least they are very similar and use the same low level software.
When we move on to consider simple interfacing - flashing an LED or interfacing to a 1-wire bus - then we will have to deal with the problems of the mini breakout and its 1.8V logic levels. The good news is that the software is more or less still the same in both cases.
If you want to learn the software aspects of the Edison without worrying too much about electronics then get an Arduino breakout board. If you want to really utilise the Edison's special qualities then get the mini breakout.
If you want to follow along, get an Edison plus either breakout board and meet me back here soon.
The starting point for finding out about all Intel's Internet of Things resources, including Edison, is the Intel IoT Developer Zone.
Now On Sale!
You can now buy a print edition of Exploring Intel Edison.
Meet Edison In this chapter we consider the Edison's pros and cons and get an overview of its structure and the ways in which you can make use of it. If you have ever wondered if you need an Edison or an Arduino or even a Raspberry Pi then this is the place to start.
First Contact When you are prototyping with the Edison you are going to need to use one of the two main breakout boards - the Arduino or the mini. This chapter explains how to set up the Edison for both configurations.
Mraa GPIO Using the mraa library is the direct way to work with the GPIO lines and you have to master it. Output is easy but you do need to be aware of how long everything takes. Input is also easy but using it can be more difficult. You can use polling or the Edison interrupt system which might not work exactly as you would expect.
Fast Memory Mapped I/O There is a faster way to work with GPIO lines - memory mapped I/O. Using this it is possible to generate pulses as short at 0.25 microsecond and read pulse widths of 5 microseconds. However getting things right can be tricky. We look at how to generate fast accurate pulses of a given width and how to measure pulse widths.
Near Realtime Linux You need to be aware how running your programs under a non-realtime operating system like Yocto Linux effects timings and how accurately you can create pulse trains and react to the outside world. In this chapter we look the realtime facilities in every version of Linux.
I2C - Measuring Temperature After looking at the theory of using I2C here is a complete case study using the SparkFun HTU21D hardware and software.
Life At 1.8V How to convert a 1.8V input or output to work with 5V or 3.3V including how to deal with bidirectional pull-up buses.
Using the DHT11/22 Temperature Humidity Sensor at 1.8V In this chapter we make use of all of the ideas introduced in earlier chapters to create a raw interface with the low cost DHT11/22 temperature and humidity sensor. It is an exercise in interfacing two logic families and implementing a protocol directly in C.
The DS18B20 1-Wire Temperature The Edison doesn't have built in support for the Maxim 1-Wire bus and this means you can't use the very popular DS18B20 temperature sensor. However with a little careful planning you can and you can do it from user rather than kernel space.
Using the SPI Bus The SPI bus can be something of a problem because it doesn't have a well defined standard that every device conforms to. Even so, if you only want to work with one specific device it is usually easy to find a configuration that works - as long as you understand what the possibilities are.
SPI in Practice The MCP3008 AtoD The SPI bus can be difficult to make work at first, but once you know what to look for about how the slave claims to work it gets easier. To demonstrate how its done let's add eight channels of 12-bit AtoD using the MCP3008.
Beyond mraa - Controlling the features mraa doesn't. There is a Linux-based approach to working with GPIO lines and serial buses that is worth knowing about because it provides an alternative to using the mraa library. Sometimes you need this because you are working in a language for which mraa isn't available. It also lets you access features that mraa doesn't make available.