Overview and Schematic
A Parallax Propeller and minimal external hardware can be used to communicate with any Android phone by using the Android Debug Bridge -- essentially, the Propeller microcontroller pretends to be a PC running the ADB client. This gives the microcontroller either a Unix shell into the phone, or the ability to read from and write to a TCP socket into the phone.
The applications for robot control and sensors are pretty obvious, given that the ADB interface uses up about half the Propeller micro and the other half can be used to drive sensors and motors. The schematic is identical to the Antbot's schematic, with a very minor change concerning a USB socket connector and four resistors.
PropBridge was based on MicroBridge
Note that the USB Host object requires that the USB connection be on pins 0 and 1 on the Propeller chip. This configuration is enough to allow an Android phone to talk using the Propeller's programming serial port; the other pins may be used as I/O lines as normal. If a standard RS232 serial port is not required, the circuit becomes even simpler.
The software may be obtained at http://obex.parallax.com/objects/724/ both microcontroller and phone side. The demo showcases the ability of the Propeller to open multiple shells into the phone by using one to receive data from the phone by a filtered instance of the logcat executable, and one to send data into the phone by using a temporary file -- while this is not necessarily the most efficient way, it allows Android apps to talk to the microcontroller in a low-overhead and fault-tolerant manner. A faster way to do it would be using a TCP socket: the ADB server phone-side actually takes care of the TCP stack entirely, and the Propeller merely uses Write and Read on the usb object to retrieve or send raw data without any need for encapsulation.
An useful side effect of using a debug shell is that even on unrooted phones the Propeller can cause a software reboot on the phone, thus allowing use as a watchdog in long-deployment data collection or robotics applications.
We now sell a kit for this application, but encourage users to build their own as the circuit is extremely simple.
Source code is provided in the link above; RobotsAnywhere firmware that uses this method instead of serial or audio input is in beta and available on request.
Development and Applications
What is a PropBridge?
In medicine, the thalamus is a centrally-located brain structure that controls the flow of information to the cortex. The function of a thalamus is to relay diffused sensory input from the body(skin, proprioception…) to the brain. The thalamoid performs thalamus-like functions for a mobile device: What your thalamus does for your brain, your propbridge does for your mobile device — while your smartphone had eyes and ears before, now it can have a nose, sensitive skin and so on. The propbridge is a software/hardware bridge between an Android phone and popular electronic scientific data collection instruments, sensors and probes ranging from analog sensors you can buy at Radio Shack to precise scientific probes. Rangefinders, nautical NMEA devices, motion detectors are examples of what is compatible with the device. The propbridge can also function as a RobotsAnywhere platform to allow a mobile device to control an autonomos vehicle, or as a NAVCOM AI platform for low cost, high precision autonomy by itself. The propbridge potentially replaces thousands of dollars of telemetry and data logging equipment with an old cell phone and some clever bridging electronics.
Where did it come from?
Robots Everywhere developed the Propbridge 2.0 based on earlier PropBridge 0.1 and 1.0 generations upon request by NASA planetary scientist Chris McKay, on request by PhiNominal (see FAQ). The propbridge came out just a little bit earlier than the IOIO and the Vinco, possibly making it the first standalone ADB/ADK device: the early versions of the system have been open sourced at http://obex.parallax.com/objects/731/ and is available under the MIT license.
What does it do?
Using a propbridge and a cheap Android mobile device one can quickly set up a reliable environmental or scientific data collection station. The propbridge’s energy consumption overhead is very low — the system was designed as a successor to a widely deployed nautical black box system designed to operate for months on auxiliary power. A solar powered propbridge weather station can loiter in the field for indefinite amounts of time months with the addition of a small solar panel, using the phone as a radio and if necessary as a camera. Interfacing a propbridge with a sensor that ranges beyond the human range allows the use of a cell phone or tablet as a real-time data acquisition device as well: a propbridge can be the nervous system for that tricorder or PKE meter you’ve been wanting to build since the 1980s… The propbridge is scriptable using bash shell scripts and can be programmed to respond to events, execute graceful degradation in case of a data link loss, and even be used independently of a phone if you have a packet radio with a serial port.
How do you use it?
Setup should take less than an hour and it will only need to be done once. Plug your electronic sensors into a propbridge, connect it to a mobile device via USB, and load the free app from Android Market at https://market.android.com/details?id=r.e . You will be presented with a simple configuration file — identify your sensors in there and your data logging station is ready to go. Data can be stored locally on a SD card (both the propbridge board and the phone carry a slot), sent out by email, logged to a FTP server, or dispatched to any other network-enabled system: you can even use SMS or Twitter.
Who is it for?
Anyone who wants one — and would rather buy a complete unit than build it themselves! The plans and software are open under the Creative Commons license, and we’re working on a version that can be RepRapped. This system was designed with scientists in mind, but its low cost and flexibility also makes it a powerful educational platform. The propbridge is the descendant of an industrial data logging system that has been used extensively in the San Francisco Bay to monitor and control barges and dredges, so industrial users can depend on the platform’s record of reliability. Robotics enthusiasts will find it an extensible and proven development platform as well.
Input/Output: High current output channels: 3 1 USB port power (5V regulated), max 1A, to phone or USB keychain drive 2 optoisolated outputs (5V regulated, or Vin), max 3A, to sensors that require excitation voltage Thermally compensated 16 bit input channels: 3 Unity gain: 0 – 5 V Max gain: 0 – 40 mil V Current sensing: Slots for termination resistors for compatibility with 4~20mA current loop industrial sensors USB ports: 1 The port conforms to 12Mbps USB 1.1 specifications and can be used with Android phones, Bluetooth adapters and flash drives. Serial ports: 4 1 RS232 port, arbitrary baud rate up to 115200bps, buffered 3 LTTL ports, arbitrary baud rate up to 115200bps, buffered (pins are selectable among the GPIO pin pool) GPIO: 14 11 GPIO pins on a servo-style rail connector (for servos and digital input/output), LTTL, TTL tolerant, SPI capable 3 GPIO pins on secondary connector 2 user-addressable LEDs Storage : SD card slot (up to 32GB), configuration data can be stored on SD or internal EEPROM. SD card on the phone also accessible. Power draw : 150mA at 7.2V while transmtting (worst case scenario), two redundant power inputs.
We have established compatibility for the following suite of common environmental and scientific instruments and appropriate sensor types:
1. (Humidity Probe) – Tested with Decagon Ech2o 10
2. (Photon Probe) – Campbell Scientific Li190 photon density sensor or Li200 pyronometer
3. (Thermistor) – Onset Computing TMC1-HA or Campbell Scientific 109-L
4. (Air thermistor and humidity) – Campbell Scientific HMP60 or HMP155
5. (Pressure) – Campbell Scientific CS100
6. (Wind Direction & Speed) Campbell Scientific 05103
7. (Leaf Wetness) – Campbell Scientific Wetness Sensors
8. (Rangefinder) SRF-04 and SRF-05, Parallax Ping
9. (Motion Detecctor) Parallax PIR
10. (NMEA) Any NMEA 0183 compatible instrument
In addition, the system is compatible with basic passive analog sensors (thermocouples, photodiodes etc.), the vast majority NMEA 0183 compatible instruments, and any SPI device rated at 400KHz or lower. Further, it is compatible compatible with any 3.3v or 5v i2c/spi sensor, such accelerometers, and supports a maximum of 6 i2c buses. If you do not see your instrument on this list and would allow us to add it, we will gladly work with you to make it happen!