Intel Galileo Dismal Speed

Hi, I just received my Intel Galileo, have done some experimenting (mainly trying to stop it saying compiler files don't exist) and decided to test it out with a code I have for and SPI OLED screen.

Now this screen has 128x128 pixels, and on a Uno or similar it can set every pixel in much less than a second. However, on the Galileo, it takes minutes to do that same job! I understand the Galileo is going to be slower on GPIO, but that slow? Is there anything I can do to increase the SPI speed (since apparently it has SPI at 25MHz but not by default?)?

Thanks

As I understand it, the Galileo uses a Cypress chip to do the I/O via the i2c bus. The default I2c is 100Khz. There are faster i2c buses (fast mode at 400Khz, high speed mode at 3.4Mhz, fast mode plus at 1Mhz, and ultra fast mode at 5Mhz) A glance at the datasheet (http://www.cypress.com/?docID=31413) shows that it might be able to run in Fast mode (400Khz). Since I don't own a Galileo, I have no way of knowing if there is a way to switch to Fast mode. Typically most Arduinos only run i2c at 100Khz.

When I learned that Galileo used i2c for all gpio, I instantly lost any interest in the chip, as it could not power ws2812 (neopixel) leds which need to run at 800Khz. From the outside, it looks like somebody in Intel said, do an Arduino compatible that runs on an Intel chip, and the poor design team had to cobble up something that could run simple Arduino programs. I would imagine the design team had to use an off-the shelf chip and they weren't able to fab a separate chip with better GPIO support. So they used i2c to run the I/O.

Ha it seems you know more about it and I have one sitting 1 metre away! :) Well yes after I discovered the terrible IO performance, I started to think like you are. One of the reasons I bought it was I thought I could increase performance in some of my slower sketches. However it's also half Quark development board, regardless of Arduino, and has much more processing power. But then again at the same time I don't like to see projects that are more an experiment than a tried-and-tested solution. I'm sure there's a use for it half way between Arduino and a full PC.

MichaelMeissner: As I understand it, the Galileo uses a Cypress chip to do the I/O via the i2c bus

Yes this is correct for the Galileo Gen 1. Galileo Gen 2 uses PCAL9535.

MichaelMeissner: A glance at the datasheet (http://www.cypress.com/?docID=31413) shows that it might be able to run in Fast mode (400Khz).

No, the Cypress chip is limited to 100kHz (see comment page 20 of datasheet : fast mode is not supported)

By the way, note that Galileo Gen 2 uses 400kHz I2C (Gen 1 was using 100kHz because of the Cypress). I am trying to find right now how the speed can be changed on a Gen 2, since this may lead to problems with some I2C shields (those not supporting fast I2C). Standard Arduino library is configured to run at 100kHz and a change is needed in the librayr source code to go to 400kHz. No idea how it is done on Galileo Gen 2 for now