Blog Moved

Please visit as the site is now hosted there with all the original content. More to come…


DSP Bridge

This will be an attempt to explain how to build a DSP Bridge for the BeagleBoard.

First we will need to download, extract and install some binaries from TI at from here. After installation you will find the files needed in lib/dsp.

Now we will need to build the kernel drivers:

git clone git://
git checkout -b felipec v2.6.32-felipec1
cd linux-omap
make omap3_beagle_defconfig

The uImage will be built with the following commands:

make INSTALL_MOD_PATH=/media/rootfs modules_install

Next copy the binaries from the first step from lib/dsp to the root filesystem /lib/dsp on the SD.

modprobe bridgedriver base_img=/lib/dsp/baseimage.dof

If you get an error here then you may need to load the baseimage.dof dynamically. Now lets look at how to make the DSP do something.


git clone git://
cd libdspbridge
make DESTDIR=rootfs install
git clone git://
cd libomxil-ti
make BRIDGE_CFLAGS=-I../libdspbridge/inc BRIDGE_LIBS=-L../libdspbridge/lib DESTDIR=rootfs install

Inside ScratchBox…

git clone git://
cd gst-openmax
git checkout -b omap origin/omap
./ --noconfigure
./configure --prefix=/usr
make DESTDIR=rootfs install

Kernel Boot Argument for the video settings will be changed to:


Copy an .AVI file to the sd card (or download one over your network) then at the console enter these commands being sure to change the file name to your file:

gst-launch-0.10 filesrc location="your_file_here.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink

BeagleBoard Android

This is not going to be a step by step guide or a resource so use this at your own risk…

Hardware needed: BeagleBoard, SD card (4gb, see partition info below), USB mini A cable, USB 2.o hub self-powered, USB keyboard, USB mouse, Serial cable/null modem (IDC10>DB9) see hacked cable description below, HDMI cable, Host PC, HDMI monitor.

See the BeagleBoard boot up tutorials at

I hacked a serial cable together by just connecting the tx to the rx and vise versa on the host pc mobo and the BB. Make sure to connect the ground also.

SD card format:

First download an android distro pre-compiled for the Beagleboard target. An easy one

(Rowboat is a little more refined)

To Format SD do this

Copy MLO ,Uboot.bin, uImage to the FAT partition, then copy the root file system to the Ext3 partition.

Plug the SD into the Beagle and the rest of the supported cables such as Hub, HDMI etc… On the host computer you will need to start a terminal and run minicom, putty, Tera Term or Hyperterminal.  At the terminal prompt after the Beagle powers on and you get to a Uboot prompt. Type the following commands:

setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2 ( I will explain these environment variables in a later post and also how to save them to make the Beagle boot like you want it to.)

mmc init

fatload mmc 0 0x80300000 uImage

bootm 0x80300000

After this you should see the Uboot terminal with out put. Please be patient as the first boot tends to be slightly longer and could take several minutes. After boot you can drop into the Android root and play with the adb#. You will need to issue a few commands to load market place apps. Next time let us examine the Uboot environment and I will provide pictures.

Android on 720p

Just a quick post to show that I have made an Android compile based on EMBinux work. Thanks to MRU and others on beagle IRC for pointing me in the right direction for keyboard/USB hub support.  Also, be sure to chmod the system directory or there will be errors. Logcat has much data for debugging. Changing to ttyS2 from the uboot terminal killed my minicom session. I hear putty is more stable or maybe I have a hardware/software problem on my development PC.

720p android

Does this look cool or what?

Sorry for the delay on the BeagleTraveler

To everyone that has been following the development of the BeagleTraveler, I apologize for the delay of additional information. I have received a BeagleBoard from the kind people at Texas Instruments ( thanks Cathy and Jason).

First impressions:    The board is a true development platform with many operating systems to support the hardware. Un-boxing the Beagle left me wondering about the design trade offs the engineers had to make. Many peripherals to connect to and make the Beagle usable… I wish that there were more USB ports as well as more support for wireless HIDs (human interface devices).

A powered USB hub is a good investment and requirement for multiple USB peripherals , although I have had problems getting one to work with the Beagle for HID equipment. Any ideas from the community on this would be a great help.

Booting the Angstrom distro was pretty straight forward. If you are new to the BeagleBoard and have downloaded the Angstrom image, be sure to rename the files to MLO, Uboot.bin etc.., removing the rev-c3 gibberish on each of the filenames. Of course many developers in the embedded community realize that bootloaders need specific requirements to load kernels, etc. I really enjoyed playing with the board and the distro. Getting the console to output on a Windows PC through hyperterm is a little cumbersome. What I figured out was to connect the power then the USB cable within a couple of seconds (read- quickly) and then quickly start the saved BeagleBoard config file in Hyperterm. The console sometimes would not connect so I would simply “hang up” the terminal, press the reset button wait a second or two and “call” the Beagle from Hyperterm again.

Until I get my Ubuntu system set up for dev, I will be stuck with Windows for development. This limits what I can do with the Beagle at this time.

If anyone can send some * files of Android or other BB builds, I can use a utility such as Self Image to flash my SD with on Windows. Another device I have uses a flash device for Ubuntu and I can flash the entire drive very quickly instead of doing a typical install of 9.0.4… Formating the SD under windows is the biggest problem. Tools such as Paragon Partition Manager and the HP USB formatting tool work well but one is not free and the other is only for FAT32.

Added new about page

Added new about page with information on the project and will update information there. Also added a paypal donation button for support.  Please send suggestions and comments.

I am actually a web developer and will be moving the blog soon to a hosted site. Ironic, but needed a quick solultion for a place holder. Stay tuned for a new post on how the BB is going to be used in a vehicle on a more technical level.

OBD II BeagleBoard Interface?

This is where the meat of the system will be. The BB can interface with OBD II with several methods (theoretically). Many consumer level products are already available to interface OBD II with a computer.

Let’s start by examining how this can be accomplished. Most automobiles (light passenger vehicles) manufactured between 1996 and 2008 have a J1962 OBD2 style connector which has a pin out as follows.

Example PLDL

Example PLDL

The protocols are well known and there is open source software hardware available to communicate with OBD II. The newer protocols are even easier to handle.  A good website for information on interface hardware can be found here.  The reason why OBD II is not very straight forward is because there are so many different types of vehicles.  Even though many vehicles sold in the United States and elsewhere contain the above pictured connector there is differences. These differences are the result of technological progress and vendor implementation. The BB can communicate with OBD II with a serial/usb to OBD tool. The expansion header on the BB also lends itself to OBD II communication. There is even a Bluetooth and WiFi OBD II interface here. We have multiple options to interface, now we need to get them to talk and display relevant data and respond to our commands.

On a related idea from…   A vehicle with a Power-train Control Module (PCM) can also be directly manipulated using a BB. Some vehicles have a PCM module that contains all the logic to operate the engine under various conditions. A single EEPROM or other “chip” type on the PCM can be easily re-flashed with a new “map” altering key operating parameters. Companies like SuperChips have devices that can reprogram the vehicles power-train computer.