Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Intel Galileo

  1. #1

    Intel Galileo

    Back in October there were two new Arduino boards that were announced. The one that I am most interested in is the Arduino Tre as it is based on the BeagleBone Black plus an Atmega32u(2 or 4). As I already have a BBBk and like it, especially as they are changing their default to Debian, I will grab one as they come out.

    But the Other one introduced (Intel Galileo) also looked somewhat intriguing and they are actually starting to show up. So on a whim I ordered one from amazon.com, which arrived yesterday. I would hate to lose the label of changing directions every week
    Click image for larger version. 

Name:	Galileo.jpg 
Views:	530 
Size:	52.2 KB 
ID:	5341

    So far I have not done much yet, other than to get it to work. Yesterday I could not talk to it on my main Dev machine (Windows 7 64bit), but later was able to get it to work on my Notebook. Finally figured out this morning that it does not like using a high com port number like COM65. I manually changed the device to COM6 and I can now talk to it and I have been able to program it with blink.

    Things I noticed so far: little documentation, have to install a separate IDE based on 1.5.3.

    I hope they are just being paranoid with how many places they write: You must connect it first to +5v, before you connect to USB, or you can damage the board...

    It is like other Linux boards and takes a long time to boot up. I have not timed it yet but probably 30-45 seconds, maybe a bit shorter without linux installed on microsd. They have a really really small version of linux that is stored on the board itself. If I remember correctly the onboard linux is 8mb. This version does not support things like wifi. If you wish to use those features, you need to download an image to microsd card.

    This card has a setup for debug terminal, that is already converted to RS232, which comes out at a speaker jack. They sell a cable that connects to this and comes out as a DB9. So then I have to use a USB adapter to it... Agree with Sparkfun review on this. I do have this and with it you can watch the system boot, where it goes into a grub menu and times out after 10 seconds...

    Other reviews or posts that I have looked at:
    https://www.sparkfun.com/news/1360
    http://www.drdobbs.com/embedded-syst...ound/240165716
    http://makezine.com/2013/10/03/10-gr...ileo-features/

    That's all for now

  2. #2

    Re: Intel Galileo

    Interesting!

    I wonder if you could get the boot time down to something reasonable like 2 or 3 seconds?

  3. #3

    Re: Intel Galileo

    Good question:

    What I am not sure about yet, is how I would/will use this board. Things like maybe change the timeout for grub...

    Example: It has the Arduino 1.0 shield connectors, which is nice and it does support some of the shields, but for me not sure about how well the IO would work.

    For simple things like: looping setting an IO pin on and off, it is something like 500 times slower than an Arduino Leonardo (max of about 230hz). So I don't think any of these IO pins would work with PS2 inputs or SoftwareSerial...

    As far as I can tell they only have one USART available. There is the 2nd one setup for debug through the other cable. Not sure in their Arduino setup how things plugged into the usb host port are enumerated and accessed... I doubt they come in as Serial1, Serial2...

    I know that they have added a System command: Example in the Sparkfun link:
    Code:
    system("python /media/realroot/pyMail.py > /media/realroot/emails");
    Where he has stored a Python program on the SD card and this allows the Arduino side to call it... Also in his example there is code showing how the Arduino side can read stuff off of the SD card which again is nice.

    Up on their forum, it looks like several people are replacing the software on the board with Debian.

    I will need to do lots of reading up there to learn more. I will probably take my time with it as I do have a few other projects I want to get back to.

  4. #4

    Re: Intel Galileo

    230 Hz for a single digital I/O is super bad!

    Do we know how they communicate to the Atmega on the board? If it's something reasonable like SPI or I2C, it ought to be possible to run faster than that...

    That chip should have ISA/LPC or PCI or PCI Express, though -- I wonder why they didn't design a "native" GPIO circuit instead, to get full speed.

  5. #5

    Re: Intel Galileo

    As far as I know the io pins are native. http://www.mouser.com/pdfdocs/GalileoSchematic.PDF
    My guess is that all of the IO is going through from user level to kernel level, through File system. For example if you go to the debug terminal and type:
    Code:
    echo 3 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio3/direction
    echo 1 > /sys/class/gpio/gpio3/value
    It will turn the LED on.
    Last edited by KurtEck; 02-02-2014 at 10:56 PM.

  6. #6
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,283
    Images
    27
    Rep Power
    275

    Re: Intel Galileo

    Quote Originally Posted by KurtEck View Post
    As far as I know the io pins are native. http://www.mouser.com/pdfdocs/GalileoSchematic.PDF
    My guess is that all of the IO is going through from user level to kernel level, through File system. For example if you go to the debug terminal and type:
    Code:
    echo 3 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio3/direction
    echo 1 > /sys/class/gpio/gpio3/value
    It will turn the LED on.
    The schematic shows the GPIO LED connected directly to the Intel SoC and the two Interrupt pins are connected to the header through a level-translator/multiplexer. Everything else non-I2C/SPI/UART interface at the headers is the multiplexed I/O of the I2C I/O expander or the SPI ADC.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    bleh

  7. #7

    Re: Intel Galileo

    Thanks, Looks like I need to look more closely through the schematic.

    I have taken a look through some of the Arduino code base, like wiring_digital.c and some of the other files like sysfs.c, back to variant.cpp. It looks like from the tables, that it is possible for some real fast IO pins that go direct to the SOC, but the others go through file handles. Looks like they have an open file handle for the Value files of each of the IO pins.

    Kurt

  8. #8

    Re: Intel Galileo

    My guess is that all of the IO is going through from user level to kernel level
    Yes, but that shouldn't take 4 milliseconds each time :-) Not even if you open-configure-write-close the file each time.
    Although any real program would just open the file descriptor and keep it open.
    Their SoC is probably non-speculative, in-order, slow-as-Atom, but it STILL should be about as fast as an ARM of the same clock speed...

  9. #9

    Re: Intel Galileo

    I agree. I should probably try my own test on it and verify what the others wrote.

    Looking through the code for digitalWrite
    It looks more or less like I would expect. It converts the Arduino Pin number to the linux pin number, does a couple of checks (already output, not active pwm), then it checks can I do this real fast (don't see anywhere they enable this yet), and then it calls off to a helper function that does a
    Code:
    lseek(handle, 0, SEEK_SET);
    write(handle, &set_value, 1);
    On an open file handle that was opened at init time.

    The only complication is if you write to pin 13, it detects that there is an alias pin for this and writes to this pin as well. The alias is the id of the LED.

    Should just get out the LA and see.

    Kurt

  10. #10

    Re: Intel Galileo

    Did a quick Test:
    Code:
    void setup() {
      // put your setup code here, to run once:
      pinMode(2, OUTPUT);
      pinMode(3, OUTPUT);
      pinMode(13, OUTPUT);
      pinMode(A0, OUTPUT);
    
    }
    
    void OutputPin(int pin) {
      for(int i=0; i< 3; i++) {
        digitalWrite(pin, LOW);
        digitalWrite(pin, HIGH);  
      }
    }
    
    void loop() {
      // put your main code here, to run repeatedly: 
      OutputPin(2);
      OutputPin(3);
      OutputPin(13);
      OutputPin(A0);
    }
    Each digital write is taking about 2.2MS

    Kurt

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Project Charlotte 2.0 (Intel NUC) using a Trossen Edge Kit prototype
    By KevinO in forum Humanoids, Walkers & Crawlers
    Replies: 50
    Last Post: 02-17-2014, 09:03 PM
  2. Intel NUC
    By CogswellCogs in forum Robot Computers
    Replies: 25
    Last Post: 11-09-2013, 06:04 PM
  3. mini-itx w/ intel duo quad
    By asbrandsson in forum Robot Computers
    Replies: 34
    Last Post: 07-19-2008, 01:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •