Intel Galileo - "What were they thinking?"
The Intel Galileo is one of the more frustrating embedded / small system boards I've worked with. I'm really not sure what Intel was thinking. It feels like one of those "we need to get into this market" types of projects that is an off target response to ARMs penetration in the home hobbyist / small systems market. Intel has some work to do if they are serious about this board. I suspect they will abandon it and try again with some other product.
We've seen other projects from companies that have attempted to do the same thing. The Microsoft .Net Micro Framework with the associated 2-3 board makers come to mind. It was too small a market for Microsoft to commit any resources too. They open-sourced .NET MF and let it go fallow for at least two years.
We've seen other projects from companies that have attempted to do the same thing. The Microsoft .Net Micro Framework with the associated 2-3 board makers come to mind. It was too small a market for Microsoft to commit any resources too. They open-sourced .NET MF and let it go fallow for at least two years.
Pros
- Intel did a great job hacking the Arduino IDE to make it easy to build and run Arduino style sketches without any real knowledge of how the board works.
- There is 8MB of flash memory.
- It uses a powerful X86 CPU.
- The board comes bundled with an all-country adapter.
- The board has an Arduino shield compatible header that works with some of the shields already on the market.
- There is a hardware console port that can be monitored in addition to the normal Arduino monitoring via the psuedo-tty USB connection.
- The board includes a hardwired Ethernet port.
Cons
Board and O/S
- You can fry the board if you plug in the USB connector before plugging in the power supply. I would expect this from a home brew board but not from a professionally created board targeted at the embedded marketplace.
- Sketches are lost across reboots when using the board as shipped. This makes the board totally useless in any embedded application. Imagine having to reprogram your Microwave every time you lost power.
- O/S configuration changes are lost across reboots when using the board as shipped. This means you can't configure the network or start other processes without adding system calls to your sketches.
- The on-board Linux is trimmed down to fit in the ROM. It is hard modify the package so you are stuck with whatever Intel installed. Systems like the Raspberry Pi and Chumby mandate that you use an SD card for the O/S and file space.
- Intel provides an SD card image that lets you add more features and save sketches across restarts.
- The data sheet says that sketches can be saved in Flash memory. This does not appear to be true. The operating system erases them on restart if it is true that they are put in flash.
- The documentation on the two versions of Linux feels different because they come from two different source tracks. The in-ROM version is called a Board Support Package while the other is often referred to by the way it is built , "Yocto".
- The Galileo consumes a lot of electricity for its power. It uses about 2X the power of a Raspberry Pi and several times the power of the ARM and TI based boards.
- The Quark CPU is X86 compatible but does not support certain features like some of the vector instructions. Intel uses they Atom processor for phones and tablets which means low power and a wide understanding of software portability issues. They should have used the Intel Atom for this board also.
Communication
- Intel included a mini-card slot for a wireless network card. The onboard Linux supports that card. I'm not sure why they did that instead of just adding more USB ports. Other systems come pre-loaded with BroadCom or other wireless drivers that gives you access to a lot of inexpensive network cards. The Raspberry Pi works this way.
- Intel included a hard ware serial console port. They used an audio jack similar to that used on a lot of router or homebrew hacking projects.
- Intel made theirs an actual RS-232 port that requires an RCA-to-DB9 cable. Most laptops don't come with RS-232 ports any more so a lot of people need a second USB to DB9 cable. I can only guess the folks building the board were using desktop machines to work with the Galileo
- Most other boards and hack products rely on FTDI style USB-to-5V or USB-to-3.3V adapter cables. They can be purchased on line with RCA plugs already attached.
- Intel isn't capitalizing on the power of the quark processor to provide upgraded communications capabilities. USB supports multiple virtual endpoints. Some products use this to provide separate programming, console and other functionality across a single USB connector. The Quark processor has plenty of CPU power to support this.
- The Arduino has a very simple model for the single serial port used for communications and programming. It simulates a serial port on the host system. This makes it possible to use RF protocols in addition to hard-wire serial communication without any modification to the host programs. They did this out of necessity because the early boards communicated to hosts using a simple UART through a serial-to-USB bridge chip.
Embedded Functionality
Most of the I/O pins are implemented in I/O expanders instead of being directly connected to the the CPU or system on chip.
- The Galileo is at least an order of magnitude slower for I/O operations because of the hardware and software architecture. You just can't do some things with the Galileo that you can with cheaper, lower power boards.
- Two of the pins can be configured for high speed operation. This helps but requires custom register programming and is still not actually the same as an Arduino board.
Conclusion
The Intel Galileo feels like a "first try". I personally would stay away from it and wait for their next attempt.