GSoC Project: Adding Sense to Beagle Board

I want to show my plan to develop the project name "Adding sense to
beagle board".

I majored in Electronics engineering and computer science, now I study
Master in Computer Science.
My thesis is related with wireless sensor networks.

More info about me can be found on my site, also a document with
profile can be viewed from here:

Please, any comment or suggest don't hesitate to post it, it is very helpful.



Description of my project:

I will make an API for hardware interfacing with sensors. Today,
sensors are a very important piece of hardware that can provide a lot
of useful information to user applications, from global positioning to

My project will provide a set of functions to programmers for access
to hardware functionality. It is important to remember that some of
low level interfaces (I2C, SPI, bit-banged, analogic, synchronous,
asynchronous) are very difficult to use for non-experimented engineers
on electronics, and sometimes requires debugging tools that are not
easily available.

These API will be very helpful because programmers won’t be worried
about low level details and can incorporate real world information to
their projects, resulting in better applications for everyone in the
world! Additionally, I will create some simple examples, to show how
to my API can be used.

One of the best languages for work with low level components is C, of
course ASM language can be used, but ASM requires more time to develop
the same. Examples can be created in high level languages, like C,
C++, Python, etc.

Or course, a very good documentation will be generated, I will use
doxygen tool to generate it and also SVN tools will be used to provide
subversion capability.

My project requires the use of some hardware tools, like Logic
Analyzer and Oscilloscope that are very great tools to debug.
A good set of functions to access buses (low-level) will be provided,
in case that the programmer needs to add sensors that are not in the

I will split the 11 weeks in 2 parts:

First part (3 weeks):

• General configuration.
• Create basic functions for access ports.
• Create basic functions for interfaces.
• Use of serial communication to debug with PC.
• Plans the general architecture of the API.
• Create connectors, cables or boars (if necessary).

Second part (8 weeks):

• Start and complete the addition of 1 sensor to the API every week
(including examples and documentation). The total number of sensors
that I will add to the API is 8. If it is enough time, from 2 to 4
more sensors can be added.

It is necessary to define sensors to be added.

My first proposal is:

o Temperature Sensor
o Humidity Sensor
o Accelerometer
o Pressure Sensors
o Real Time Clock
o Touch screen controller
o Alcohol Gas Sensor
o RFID interface.
o Color light sensor.
o Analogic channels.
o Light sensors.

Your proposal seems very good.

Actually, I am also looking to work on the same project. I searched some actual ICs and finalized them as

SHT15 - Temperature and humidity sensor
MMA1250D - Accelerometer
Light Sensor - Traditional LDR would do.
RTC - DS1302
GPS - MN5010HS

and also DS18S20 temperature sensor apart from SHT15 because multiple samples of it can be networked on a single line. Also, DS18S20 works on dallas one wire interface and once we are able to implement that interface, we can add further very good sensors from the same company.

I also plan to add LED as a color sensor as i have found out that using a single RGB LED, we can detect proportions of R , G and B colors in a light incident on the LED.

I have acquired some samples of the above ICs and tested them on AVR microcontrollers (except the GPS IC).


2010/4/2 Iván Cabrera <>