"Can OpenMoko Make Coffee?" - SoC Project Proposal

Anil Franklin anilnf at gmail.com
Mon Mar 19 12:56:43 CET 2007


"Can OpenMoko Make Coffee?" - SoC Project Proposal
--------------------------------------------------

The "Coffee HOWTO" ( http://tldp.org/HOWTO/Coffee.html ) begins by
asserting that  "Linux DOES make Coffee, and it tastes good!"; it then
goes on to describe how you can control devices like say a coffee machine
using the PC parallel port and some simple electronics.

One of the  things I would like to do with a `made-for-hackers'
phone like the Neo is to explore its use for controlling real-world
devices. The availability of a USB host controller and the presence
of GNU/Linux and associated free software tools opens up an interesting
possibility.

USB capable microcontrollers are commonplace these days - one example
is the Microchip PIC18F2455. The device comes with built-in ADC,
PWM/timer units, analog comparators, digital I/O ports etc. It's easy
to write a program which runs on the microcontroller and does something
like this:

a) Listen to the USB port for a command from the phone
b) switch(command) {
      case read_inputs: read and return the value on
                        the input pins
      case read_adc: read from the ADC and return the
                     value
      case read_period: measure time period of a signal
                        on an input pin and return the value
      case generate_waveform: using the PWM unit, generate
                        a signal of a specified frequency
      ......
      .....
    }

Now, if we design a Python library which sends out commands to the
microcontroller and receives the replies, we have a simple and
powerful means to interact with all kinds of sensors and real world
electronics. Say we wish to measure temperature. Hook up the output
of a standard temperature sensor (say LM35) to an ADC input of the
microcontroller and execute a script on the phone:

>>> v = read_adc()
>>> print v

What about a low frequency oscilloscope running on the phone? Simple,
just write a program which will keep on reading data in bulk from the
ADC and plot it!

For a glimpse of how much this idea can be developed, please check out
the `Phoenix Project' (home page: http://nsc.res.in/~elab/phoenix/ ).

My intention is to:

a) Build the microcontroller circuit
b) Write firmware, which can include a bootloader for easy updates
c) Write the Python/C library and a few GUI apps.

I am sure a tool like this would be of great help to hardware hackers
who wish to do cool things with their Moko phones. Please let me know
your thoughts about this project.

About myself: I am a 2nd year engineering student (Computer Science)
at the Govt. Engineering
College, Trichur (India).


-Anil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/openmoko-devel/attachments/20070319/10c2785b/attachment.html


More information about the openmoko-devel mailing list