2 Replies Latest reply on Mar 9, 2015 9:40 AM by dferyance

    Galileo Sheild Devices




      I'm a relative newbie to the Galileo board, but a reasonably experienced Linux user.

      I have a Galileo working with a kernel I compiled, grub, and multistrap Debian userspace, booting from an SD card, and working with a mPCIe WiFi adapter - and that seems all fine.


      What I'd like to do now is use some shield devices. Please excuse me if it a bit of a newbie question, I have never used anything like shields before - I'm more used to working with USB or PCI devices.... Is there a way of shield devices working in a similar fashion?


      I've plugged in a shield, I think I have the jumpers in the correct place, but now what?

      What steps must I take to get to the point where a a WiFi shield appears in the system as wlan1?

      Or a GPS shield appear as /dev/gps0 ?

      I'm wondering whether for devices like GPS shields they are simply serial like /dev/ttyS0 or something - but then I don't quite understand how something more complex like a WiFi shield or Ethernet shield would work - wouldn't the system expect to see them as wlanx or ethx in order to use them, and not as a serial device?


      I find many examples of "sketches", but I'm not particularly interested in these - there's surely a way more like you would on a PC?

      Do I require more kernel modules, or some other kind of shield firmware, or is it something that the right udev rule could handle?


      Apologies if this has been asked before, but I have exhausted my search efforts...


      Any point in the right direction or similar experiences that would help better my understanding would be very much appreciated!





        • 1. Re: Galileo Sheild Devices

          Hi rden3


          As you may know the supported OS is the Yocto one and the Shield Test Report was done using the Arduino IDE. Unfortunately there are none official tests with Debian nor using Linux.

          In order to use a Shield and interact with Linux it will depend on the shield and the interfaces to be used (I2C, SPI, UART, PWM, analog or digital signals..). There are a lot of threads using these interfaces with Linux so I think it will depend on which kind of shield you are going to use.




          • 2. Re: Galileo Sheild Devices

            Shields don't show up as devices on the Galileo. Only pins and IO ports do. Devices attached to USB and PCIe still behave the same they would on a PC though. Galileo is kind of an odd mix between worlds. There is the whole Arduino compatibility world and the Linux environment. Shield support is only exposed through the Arduino compatibility libraries. This doesn't mean you couldn't write your own drivers for them, but you don't get any help from the Intel software for that. It is likely that you would get better performance by writing a kernel module vs user-mode code anyway. Shields also don't have any kind of PnP feature and have the whole 5V vs 3V logic compatibility mess due to their origin being with Arduino.


            My recommendation for things like WiFi and GPS is to use the USB and PCIe connectors as much as possible. Arduino doesn't have those so the shields often have to do things the hard way because of it.