1Galileo Gen 2 - Rev H {#galileorevh} 2===================== 3 4Galileo is a microcontroller board based on the Intel(R) Quark(TM) SoC X1000 5Application Processor, a 32-bit Intel Pentium-class system on a chip. 6 7The Gen 2 board has the following limitations in libmraa: 8 9- i2c is set at 400Khz speed cannot be changed without reloading kernel module, 10 the driver is intel_qrk_gip_i2c and the parameter is i2c_std_mode which must 11 be set to 1 in order to set the i2c bus speed to 100Khz 12- i2c bus is shared with multiple devices in kernel space, scanning it usually 13 fails 14- pwm period is set globally for all pwm channels, when changed this will halt 15 all pwm channels 16- adc kernel module will return 12bit number but the ADC itself only has an 17 accuracy of 10bits. 18- AIO pins are treated as 0-5 in mraa_aio_init() but as 14-19 for everything 19 else. Therefore use mraa_gpio_init(14) to use A0 as a Gpio 20 21Uart 1 on gen2 22-------------- 23 24Uart 1 is connected to the FTDI header and the linux console. It's also 25possible to use it from A2(Rx)/A3(Tx). However mraa does not support this 26directly so you need to enable the muxing manually. Here is an example of how 27this is done, this was tested using an FTDI 3.3V TTL cable: 28 29$ systemctl stop serial-getty@ttyS1.service 30 31$ python 32>>> # Configure the Muxes for Uart1 on Aio2/3 33>>> import mraa as m 34>>> p77 = m.Gpio(77, False, True) 35>>> p76 = m.Gpio(76, False, True) 36>>> p16 = m.Gpio(16, False, True) 37>>> p17 = m.Gpio(17, False, True) 38>>> p77.write(1) 39>>> p76.write(1) 40>>> p16.dir(m.DIR_OUT) 41>>> p16.write(0) 42>>> p17.dir(m.DIR_OUT) 43>>> p17.write(1) 44 45>>> # For Rx to work correctly switch the level shifter 46>>> p34 = m.Gpio(34, False, True) 47>>> p34.dir(m.DIR_OUT) 48>>> p34.write(1) 49 50>>> # Use the uart 51>>> x = m.Uart(1) 52>>> x.setBaudRate(115200) 53>>> x.writeStr('hello') 54>>> x.read(5) 55bytearray(b'dsds\n') 56 57