Intel Galileo

Status
Not open for further replies.
Sounds to me like...

You have to connect the 5 VDC power supply first before the client USB connector
or you will damage the board.

Sounds to me like they should have avoided using any USB bus power at all. The best use of USB host power in this scenario may be to implement a isolated USB bus design and nothing more.
 
On the positive side of the Galileo ...

You have for $60 USD for the Galileo ... Ethernet is already built-in and for an extra $15 USD you can obtain a mini PCIe Wifi card.


You can even run Arduino* sketches and Linux applications concurrently

Since Galileo is running linux along with the Arduino you have the best of both worlds ... and @ stevech Linux has the snake ... python. :cool:
 
Last edited:
You have for $60 USD for the Galileo ... Ethernet is already built-in and for an extra $15 USD you can obtain a mini PCIe Wifi card.

A Teensy 3 + an Adafruit CC3000 WiFi board is $55 and is a solution available today....no Linux, but unless you're doing video or real-time audio processing does it matter for tasks suited to this form factor? Just saying...
 
That's a good point - where is the best tradeoff between a dedicated MCU (with all the associated issues of programming in a small memory footprint, potential programming clashes, reinventing the wheel and all that) vs. the added overhead of running two cores and passing data between them, like on the Tre?

What makes the Tre interesting, IMO, is that one can rely on the Linux front end to interface pretty smoothly with the MCU, taking over complex tasks like communicating via ethernet, etc. which have been traditionally very troublesome for MCUs (hence the heavy use of watchdog timers, among other things). On the other hand, MCU's are very good at repetitive tasks like sampling data at a set interval and making it available for the master CPU.

Along similar lines, the system I'm working on uses a dedicated board with a Atmel 328P MCU just for GPRS communication. The data is sent to it, the MCU squirts the data out, and the master MCU can focus on other things. Should the GPRS MCU hang, the only loss is in the data that was not transmitted - the rest of the system carries on uninterrupted and then the watchdog timer hopefully reboots the thing and so on.

The Galileo system also appears hampered in other ways, such as a much slower PWM cycle on most pins. Not sure why, but the devil is in the details and if Intel wanted to create a viable alternative to the Tre (which is where I see the Galileo board heading) then they have to sort this out pronto. Otherwise, all sorts of neat libraries and sketches will fall flat on their faces.
 
Otherwise, all sorts of neat libraries and sketches will fall flat on their faces.

Intel has very deep pockets and they are giving away 50,000 boards to the university community - don't sell them short but they do have a habit
of "cutting and running" when they deem a project (Galileo) is no further use to them.

Ethernet (buit-in) with SD card, optional mini PCIe WiFi with Bluetooth ($15 USD) for a total of $75 USD.
I might use the Galileo as a communication hub attached to the Teensy 3.:cool:

BTW... their $15 mini PCIe WiFi board even has bluetooth on it! :D

http://www.newegg.com/Product/Produ...E16833106161&gclid=CK-E4cDAiLoCFfFj7Aod-B8AJg
 
Last edited:
I just read this morning that 1.75 million Raspberry Pi's have been sold over the last few years. I don't know how many Arduino's have been sold but it too is probably in the millions. Teensy's probably quite a fair number too. I alone have about half a dozen Teensy 2's lying around and one Teensy 3. ;)

Given these numbers it's no surprise that Intel wants to get in on the action. The Galileo board is a good attempt, it's not too expensive and quite powerful. However, there are few projects that warrant such processing power. For most projects a Teensy or Raspberry Pi model A wil be sufficient.
 
Last edited:
Bigpilot probably a lot more so than the raspi! And I myself have 3 teensy 3's and a few teensy 2++!! Ever since I've found pjrc's kickstarter, I've become a huge fan. I've never liked the arduino shield/package size and think it's a wasted board space! If they changed their package size to something like this Microduino then I'd be more aptly to buy more arduino branded controllers. However with their new focus on their current boards... I'm not feeling to happy about where they are taking arduinos too or what their goal is.

I'm sorry but moving from fast I/O to a slow I/O is not progress even if it is a faster processor! Arduino's are about their I/O!!!!
 
Overview of the board omits that it has SPI, I2C.
Under product info under FAQs you will find it.

It seems by having 100KHz I2C, 4 Mhz SPI and GPIO at 500Hz - someone at Intel did not do their homework.

I hope they have some sort of standardized RTOS and TCP/IP stack

TCP/IP will work just like the WiFi library for the Arduino - again see FAQs.:cool:
 
Last edited:
I hope they have some sort of standardized RTOS and TCP/IP stack.

The FAQ says:

Can I run Linux on Intel® Galileo?

Yes. Intel® Galileo runs Linux* out of the box. It comes in two flavors; the default is a small Linux. If you add an SD card to your kit, you can add a more fully-featured Linux. Refer to the Intel® Galileo Getting Started Guide and Intel® Quark SoC X1000 IoT Development Kit Software GSG.

So it won't be a true real-time OS since Linux may switch from your task to do OS-y things like memory management at any time. On the Arduino forum Grumpy Mike has frequently voiced this concern about using a Raspberry Pi for time-sensitive GPIO.

On the other hand, since it's running Linux it will have the regular Linux TCP/IP stack which should mean native IPv6 support (a first in the Arduino world?) as well as a huge library of web, FTP, SSH, SSL, etc. servers and clients. To me that part is more promising.
 
If Intel really, truly cared about capturing the Arduino market, they would design a FPGA or ASIC that interfaces to the PCIe bus to replace that Cypress I/O expander. It could faithfully replicate the AVR timers and other peripherals, giving them excellent compatibility with nearly all Arduino sketches, as well as insanely fast I/O performance. The difficult trick would be 5 volt compatibility, but since normal Arduino doesn't have a lot of I/O, they could pretty easily use 2 or 3 pins per actual I/O, which could connect to something like a 74LCX125 buffer.

Who knows, maybe they're working on something like that right now? But I doubt it. I also think it's pretty unlikely any Intel decision makers would ever be reading a forum like this....
 
Who knows, maybe they're working on something like that right now? But I doubt it.

They are, as we speak, working on the next generation of the Galileo.
Just one quote below pointing to that fact.

Building on the Galileo development board, Intel and the Arduino community will work
closely together on future products that bring the performance, scalability and
possibilities of Intel technology to this growing community of makers.

:cool:
 
Mouser just informed me that they are now taking orders for the Galileo.
They ordered 10,000 and they should be in stock 11/23/13.

On another note ... Since both the PI and Galileo GPIO is extremely slow - a very enterprising individual(s)
could turn the Teensy 3 into a "serial slave GPIO" by using a serial port from the Galileo and constructing
a command line interface that takes serial commands from the host and process them on the T3 and return their values to the host.
Serial I/O commands like analog read, PWM, digital in/out and I2C could be easily programmed on the resource heavy T3.
 
Other than as a software UART/SPI/I2C, and perhaps an D/A using R2R resistors, what kinds of hobby apps need really fast GPIO?
 
OneWire, Servo and IRremote would be 3 examples of widely used libraries that use fast I/O to send or receive special signals. I'm sure there are many more, but these are 3 very widely used libraries off the top of my head, where I've personally contributed code.

It looks like they may have put special code on the I/O chip just for Servo. I spent less than an hour looking through the code, so that's just a quick impression I got based on a few things I saw. I'm not planning to actually look at Galileo code until I actually get one. (if Intel were a little smarter about their givaway boards, you'd think they would have tried to contact everyone mentioned in Arduino's release notes and everyone who's code has been merged via github)

Edit: more examples would be libraries LiquidCrystal, Stepper, AccelStepper, NeoPixel, LedDisplay, Encoder (polling mode), SoftwareSerial, PS2Keyboard, and Keypad. Those are just some of the very widely used libraries. Some of those, like LiquidCrystal, will work with high latency I/O, but they'll probably become unusably slow. There are countless more examples and code fragments scattered across Arduino's playground wiki and hundreds of other websites.

I believe several of Adafruit's libraries that talk to SPI-based chips support bit-bashing mode, for flexibility to use any pins, and many of their examples leverage that flexibility to use those devices together with a SD card or other SPI peripheral. I've seen several where bit-bashing is the default mode, probably motivated for ease-of-use for people to connect to any pins. Some of those parts don't disable their MISO pin, so they can't be used on the same SPI bus as any other chip, so this isn't just an arbitrary need only for convenience to wire to certain pins.
 
Last edited:
The hobby/student world is in the noise level, but with some fuzzy benefit of imprinting students that become design decision makers in their jobs.
I just wanted to provide an example of my experience with this. When I was a starving EE student, working to help design a device for an inventor friend of my Dad's, I wrote to Fairchild and Motorola asking for opamp samples. I explained I was a student, etc. Fairchild did write me a nasty refusal letter and Motorola sent me some parts. I'm sure you understand why, after I graduated, I never specified a Fairchild part in my designs.

Jim.
 
Other than as a software UART/SPI/I2C, and perhaps an D/A using R2R resistors, what kinds of hobby apps need really fast GPIO?

Well as I said previously, neopixels (ws2812) light strips need a very tight timing window, and using gpio pins via i2c just doesn't cut it.
 
Ha, I forgot to put my own OctoWS2811 library on that list of stuff that needs fast I/O. DMA from RAM to I/O registers is probably the most extreme example.....
 
Well as I said previously, neopixels (ws2812) light strips need a very tight timing window, and using gpio pins via i2c just doesn't cut it.
For my edification... about what timing does the WS2812 need, and is that an example of where time diverted for an ISR can't be tolerated so interrupts have to be disabled briefly?
 
For my edification... about what timing does the WS2812 need, and is that an example of where time diverted for an ISR can't be tolerated so interrupts have to be disabled briefly?
According to the Adafruit suite, the neopixels need 800 Khz (the earlier version based ont he WS2811 need 400 Khz), and looking at the code, it disables interrupts before starting to update all of the leds (which are done in a serial fashion), and interrupts are enabled after all of the pixels have been updated.

The code uses assembly language for the AVR to minimize any timing issues. They use different asm code for 8Mhz and 16Mhz AVRs and for the older 400 Khz WS2811 vs. the 800 Khz WS2812s.

For the Arm case, Paul has contributed special code for the Teensy 3.0, and if it isn't Teensy, it assumes it is a Due. Unlike the AVR, it looks like it is mostly C code for the arm.

Now presumably the native cpu on the Galileo is fast enough, but the problem is ALL of the GPIO's are done via a Cypress i2c expander, and the Cypress i2c port expander that does all of the I/O can only run at 100 kHz (the Galileo processor itself can also run i2c at 400 kHz). But even at 400 kHz, it is not fast enough, since each i2c transaction presumably takes a few bytes over the wire. The neopixel documentation says that other Linux systems on a chip like Rasberry Pi, Beaglebone Black, pcDunio, etc. have similar limitations, and that you really need a dedicated 8Mhz or faster microprocessor.

In addition, since the LED state is kept in memory (at least 3 bytes per pixel), you have problems if you want to have more than a 100 or so lights on small memory systems like ATtiny85 systems (digispark, trinket, gemma, etc.).

The software versions of serial, pwm, servo, and spi drivers would also have problems, in that the drivers have to match an external timing spec. In a few cases, you could use the hardware version, but a lot of times in Arduino land, people fall back to the common denominator and do software bit banging.
 
Last edited:
It'd be a challenge to update a lot of WS2812's with CPU interrupts disabled, and not cause delays in clock and other interrupts, eh?
 
It'd be a challenge to update a lot of WS2812's with CPU interrupts disabled, and not cause delays in clock and other interrupts, eh?

Yes, that's a big problem with bit-banging for these LEDs. Each LED takes 30 us (800 kHz times 24 bits). It only takes 34 LEDs to add up to interrupts disabled for more than 1 ms.

I wrote OctoWS2811 to get around those timing problems, and update 8 strips in parallel.
 
the Galileo processor itself can also run i2c at 400 kHz
The Galileo I2C is only good for 100 Khz. per FAQ.

Intel® Galileo only supports I2C standard mode at 100 kHz. The Intel® Quark SoC X1000 supports both standard mode (100 kHz) and fast mode (400 kHz). However, the Cypress I/O Port Expander only supports standard mode, which limits the I2C speed supported on Galileo to 100 kHz.

whoops ... you already said that.

BTW... Mouser wants $64 USD for the Galileo.
 
Last edited:
I just wanted to provide an example of my experience with this. When I was a starving EE student, working to help design a device for an inventor friend of my Dad's, I wrote to Fairchild and Motorola asking for opamp samples. I explained I was a student, etc. Fairchild did write me a nasty refusal letter and Motorola sent me some parts. I'm sure you understand why, after I graduated, I never specified a Fairchild part in my designs.

Jim.
That is the theory, but I suspect the reality in today's world, that unless you found a hugely successful company shortly after finishing college (or even before finishing college) that goes instantly from no sales to buying chips by the pallet load, that it will take years before you are in the position to steer the choice of microprocessors for major designs. By that time, it may be a vastly different market place. Yeah, it occasionally happens, but it probably doesn't happen often enough that most companies will invest the time/energy/free samples to something that won't pay off until 10 or so years down the road.

I think I said before, that I view this as a Hail Mary type pass by Intel, where they see the current collegians are flocking to Arm on the high end, and not x86 boards). I don't know the numbers, but I suspect there are more Arm shipments than x86, and in fact you see people moving to using tablets (almost always arm based) over traditional laptops.
 
Last edited:
It'd be a challenge to update a lot of WS2812's with CPU interrupts disabled, and not cause delays in clock and other interrupts, eh?
Yes of course, and I do suspect that in general you get interrupts delayed from time to time, that eventually mills () will start having clock skew. However, I suspect that once you get past 40 or so leds, that the primary thing your microprocessor is doing is controlling lights. It probably doesn't matter that time is not completely accurate. Generally, it probably needs to run for a few days before humans notice the difference, and I imagine most light projects are powered off when the human is sleeping. If accurate time is required, outsource it to a dedicated chip (temperture adjusted real time clock, using the clock from a GPS, or using something like ntpdate if the device is connected to the internet).
 
Status
Not open for further replies.
Back
Top