[Noisebridge-discuss] G1 serial interface incantation

Jacob Appelbaum jacob at appelbaum.net
Mon Mar 16 14:17:11 PDT 2009


William Heath wrote:
> Hi All,
> I have started this fun project:
> 
> https://www.noisebridge.net/wiki/Autonomous_Flying_Platform#Team_Members
> 
> I need to find a way to control propellers etc... with the G1.  The easiest
> way I know how to do this is to use the serial interface from the G1 to like
> a parallax board which then connects to servos etc...  I am stuck in park so
> far as I am a mere mortal and the serial inteface/software on the G1 phone
> is "undocumented" but does exist.  I was told that ioerror might know about
> it.  I am performing the incantation to the G1 Gods/Gurus to rain down this
> undocumented knowledge that I might drink deeply from that cup of knowledge.
>  I also invite advice/recommendations on what hardware to use for the
> propellers etc... in this project.

I am by no means a G1 god or guru. There are better people to ask and I
do hope they'll chime in. I am however linked to that nickname that you
dropped and so I feel compelled to answer. ( And no, I'm not nor have I
ever been, a woman. )

The serial interface you're discussing does indeed exist on the HTC
Dream (G1). I hear it's possible to build a cable that is a mini-usb on
one end and a normal sized usb on the other. Between the two is a usb to
serial device. It's just a nice way to have a set of pin outs and power;
it's otherwise not a special cable.

If you have or build such a cable, you'll then be able to access a few
low level debuggers or boot prompts on the serial port. If you have the
right setup, you should be able to connect the cable, attach to the usb
serial device and set minicom to operate at 115200 8N1 (and with no
software/hardware flow control).

A photo of the mythical cable attached to my G1 is available here:
https://www.noisebridge.net/wiki/Image:G1-two-usb-to-serial-cable.jpg

This is the code for that interface (see the Android source):
/kernel/drivers/serial/msm_serial_debugger.c

>From the source you'll see the following commands available when the
phone is booted:
pc
regs
reboot
irqs
kmsg
version
sysrq

If you have the developer or engineering boot loader, you can do more...

You can boot the phone with the camera button held down to access a
serial boot prompt that looks like this:
UART0:Cmd>

So far I've only seen a single command 'set'. I didn't find very much
useful information beyond that for the serial interface to the (first?)
boot loader. Perhaps someone knows more about this? It may prove to be
useful...

Another interesting but unrelated (GSM) test function is available in
the dialer program when the phone is booted by calling this number:
*#*#INFO#*#*

Best,
Jake


More information about the Noisebridge-discuss mailing list