"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

