Android ThingsPiLib (Raspberry Pi 3)

Updated 22.03.2018: Optimized Android Things SDCard Image V4.04  (Based on AndroidThings Preview 0.7 / Android 8.1, with TensorFlow machine learning and better Camera Support)

Hint for the GrovePi+ Board: If the GrovePi Board is not found, then you have to place a resistor (470-1000 Ohm) between the Pins:  I2C SCL (Clock) and +3.3v. The same with the I2C SDA Pin if needed.


Since June 2016 I already have a nearly perfect Android GPIO Board (only WiFi Hotspot and Kinect is not working): ODroid C2 with my created ThingsLib for Android 5.1. I’ve done all what I wanted. But now Google goes the same way. 

Therefore I’ve ported my whole ThingsLib and my GrovePi Lib to the Android Things Raspberry Pi 3 Board and put them together in my new ThingsPiLib. This wasn’t easy, because the Android Things Release from Google has some limitations. But I can say, I’ve solved all the limitations with an optimized Android Things SDCard Image (downloadable further down):

New: Changeable GPIO Input Pullup Resistors
New: Usable Serial Port
New: Fast Interrupt reaction (old was not usable for Rotary Encoder)
New: Screen Output if HDMI was connected after boot
New: WiFi activation/deactivation with ThingsPiLib WiFi commands (no script)
Fixed: Fixed Bootscreen
Fixed: Fixed IOT Launcher
Fixed: Slow Boot Time after removing Serial console
Fixed: Slow GPIO Speed
Fixed: Slow I2C 
Fixed: Limited I2C Data Buffer
Fixed: False I2C LSB/MSB orientation
Fixed: Slow I2C Device Access (Open/Close)

With all these changes, now it’s working perfect. With the ThingsPiLib you have access to ~70 Devices (Sensors, Displays, Controllers…) and with the Lib you can add new devices easily.

HINT: The ThingsPiLib is only usable with my optimized Android Things SDCard Image. If you are using it with the normal Android Things Preview Version, then most things won’t work.





Supported stackable HAT Boards (I2C):

  • Sense HAT / Astro Pi  
  • GrovePi+ HAT  with GroveLib – a lot of ready to use Grove Modules
  • Adafruit Servo HAT (992 Servos)
  • Adafruit Motor HAT (128 Motors, 64 Steppers)
  • Adafruit RGB LCD Display 1602 (16×2) HAT
  • Digital I/O HAT with MCP23017 Chip
  • PiUSV+ HAT (
  • TouchHDMI 800×480 XPT2046 SPI Board

Supported other Boards:

  • ADS 1015 I2C Board 6 Analog Pins,
  • OLED Display 1306 I2C Board
  • OLED Display 1306 SPI Board
  • OLED RGB Display 1351 SPI Board
  • LCD Display Nokia 5110/3310 PCD8544 SPI 84×48
  • Realtime Clock DS3231
  • NFC PN532 (UID Read)  I2C Board  
  • Colorduino (I2C) incl. Firmware-Uploader (ISP/SPI)  
  • RasPiO Analog Zero MCP 3008 Analog Inputs Board (SPI) *New*

Other functions:

  • KeyMatrix support (with or without Digital I/O HAT | MCP 23017 chip)
  • Native USB Keyboard and Mouse Listener with “Device Grab” option
  • Changeable Boot-Logo and Boot-Animation
  • Rotary Encoder Support
  • NetWS2812 Support with Arduino UNO or Mega with Ethernet Shield  *New*
  • WS2812 Support with SPI MOSI Pin 19 *New*

I2C Sensors:

  • Barometer BMP180 (+ Temperature)
  • Humidity HTU21D (+ Temperature)
  • Humidity HDC1000 (+ Temperature)
  • Luxmeter TSL2561
  • UVmeter SI1145




Aside the ThingsPiLib I’ve also integrated the GrovePiLib in the ThingsPiLib. This means, you have access to a lot of ready to use Sensors, Motors, Controllers, … . When you have activated a GrovePi Example, then it will check the GrovePi+ Firmware. If the Firmware is < 2.00 then the app will start a Firmware-Update automatically (you will see some Firmware update text lines, the Firmware update need ~1 min). The Firmware 2.00 is compatible to the old Firmware 1.22

Hint for the GrovePi+ Board: If the GrovePi Board is not found, then you have to place a resistor (470-1000 Ohm) between the Pins:  I2C SCL (Clock) and +3.3v. The same with the I2C SDA Pin if needed.

Supported Grove Modules (only with my new GrovePi Firmware v2.0):

  • Analog Air Quality
  • Analog Joystick
  • Analog Rotary Angle Knob
  • Analog Slider
  • Analog Sound Sensor
  • Digital 4 Digit Display
  • Digital Button
  • Digital Buzzer
  • Digital Dust Sensor
  • Digital Ear Clip Heart Rate Sensor
  • Digital IR Receiver/Transmitter R/C (Learn/Send)
  • Digital LED
  • Digital LED Bar
  • Digital LED Strip Driver *New*
  • Digital Relais
  • Digital RGB Chainable LEDs
  • Digital Rotary Encoder
  • Digital Speaker
  • Digital Switch
  • Digital Temperatur Humidity Sensor
  • Digital PIR Sensor
  • Digital Ultrasonic Sensor
  • Digital Vibration Motor
  • Digital WS2812 LED Strip *New*
  • I2C ADC
  • I2C Barometer BMP 180
  • I2C Baromoter  BMP 280
  • I2C Colorduino incl. Firmware-Uploader (ISP/SPI)   
  • I2C LCD RGB Background Display
  • I2C Light Sensor TLS 2561
  • I2C Motor Driver / Stepper
  • I2C MPU 9250 Accelerometer/Gyro
  • I2C OLED 128×64 Display
  • I2C OLED 96×96 Display
  • I2C RTC 1307
  • I2C RTC 3231
  • I2C Servo-Board Mini (Adafruit)
  • I2C Temperature Humidity HDC1000
  • Serial Fingerprint Sensor