Search code examples
androidgpsdriverandroid-thingslte

Android things SIM700E LTE + GPS Driver


I am trying to make a Prototype using RPI3 and SIM700E module even after lot googling it Was difficult to figure out how the drivers will work .As per linux & Android setup guide by simcom the USB interface has 6 virtual hosts

  1. /dev/ttyUSB0-diag port for output developing messages
  2. /dev/ttyUSB1- NMEA port for GPS NMEA data output
  3. /dev/ttyUSB2-AT port for AT commands
  4. /dev/ttyUSB3-Modem port for ppp-dial
  5. /dev/ttyUSB4-audio port
  6. /dev/ttyUSB5-Virtual Net card

but for this to work the Linux kernel must have the qualcomm gobi drivers, so i am not sure weather android things OS need these drivers or it Can work without it also according to the mobile android guide we have to modify some system files which do not exist in android things OS


Solution

  • Seems, there is no SIM700E drivers in Android Things kernel and there is no way to add it now (from here):

    Note: You cannot customize the behavior of device drivers in the Linux kernel or Hardware Abstraction Layer (HAL) to add new functionality to a device.

    So, the easiest way to connect SIM700E LTE to RPI3 with Android Things is to connect SIM700E to Raspberry Pi via UART (BCM14, BCM15 pins on RPi and Tx Rx pins on SIM module) and write custom User-space driver for SIM700E based on its AT-commads. For driver prototype you can use contrib-driver/gps from official repo (it also uses UART and requires response parcing).

    Update And also, you can use USB<->UART converters on RPi side to connect to SIM700 module if you lack of UARTs (USB<->UART converters are supported by Android Things) like in that example.