Make write-up on updating to new BeagleBone Black Debian images

Make write-up on updating to new BeagleBone Black Debian images


Mini Ms. Pacman

What an awesome hack for bring-a-hack night!


MsThe bragging rights of owning a vintage arcade machine are awesome, but the practicality of it – restoring what is likely a very abused machine, and the sheer physical space one requires – doesn’t appeal to a lot of people. [Jason] has a much better solution to anyone who wants a vintage arcade machine, but doesn’t want the buyer’s remorse that comes with the phrase, “now where do we put it?” It’s a miniaturized Ms. Pacman, mostly scale in every detail.

The cabinet is constructed out of 1/8″ plywood, decorated with printed out graphics properly scaled down from the full-size machine. Inside is a BeagleBone Black with a 4.3″ touchscreen, USB speakers, and a battery-backed power supply.

The control system is rather interesting. Although [Jason] is using an analog joystick, the resistive touch screen monopolizes the ADC on the BeagleBone. The solution to this problem would be to write…

View original post 52 more words

A U-Boot Independent Standalone Application


U-Boot allows you to load your own applications at the console. The application already has the hardware interfaces available for use (u-boot does it), and everything does not need to be brought up from scratch.

It comes with a sample hello_world program at u-boot/examples/standalone/hello_world.c, which is supposed to print stuff to console. It depends on U-Boot interfaces, but by tracing back the source code, it can be easily re-written to have nothing to do with the U-Boot API.

In the end, hello_world.c:printf()’s job is to write the characters to UART’s address. Implementing this on a BeagleBone Black is pretty easy:

The ARM AM335x TRM mentions the address-offsets of all registers available with the processor. The UART0_BASE is defined at 0x44E09000. Memory mapped registers need to be kept volatile to prevent compiler optimizing them away.

Here’s the code:

Compile it similarly to U-Boot’s examples to get a .bin.

To execute it

View original post 143 more words

An Introduction To The BeagleBone PRU

Hack-a-day write-up on BeagleBone PRU


BBB While the BeagleBone is usually compared to the Raspberry Pi, there are a few features that make the ‘Bone a vastly more capable single board computer. There is a small difference in the capabilities of the processor, but the real power of the BeagleBone comes from the PRUs available: two small cores that give the BeagleBone the hardware equivalent of bitbanging pins. [Texane] has put up two great tutorials for using the PRU in the BeagleBone that should be required reading for every BeagleBone owner.

The first tutorial goes over the capabilities of the PRUs in the BeagleBone and setting up the software environment to develop your own hardware interfaces with the PRU. While writing code for the PRU has usually involved the Beagleboard packages, TI has recently released a version of Code Composer Studio that gives the option to compile C code for the PRU.

[Texane] used this C…

View original post 105 more words

Yet another set of notes on building BeagleBone kernel

This is for building the current “production” 3.8 kernel. I’ll follow-up with building a mainline kernel in a few days. I’m only documenting this here temporarily to see if there really are any gaps in the kernel build documentation that are causing people to stumble. I got a query on #beagle yesterday that I haven’t been able to reproduce and I want to share all my steps here just in case someone can find out where some issue is at.

This was run on an Ubuntu 12.04 machine:

$ cat /etc/lsb-release
$ uname -a
Linux ip-10-228-35-177 3.2.0-54-virtual #82-Ubuntu SMP Tue Sep 10 20:31:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Here are the steps I took.

sudo apt-get install gcc-arm-linux-gnueabihf lzop pastebinit ncurses-dev
git clone git://
cd u-boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_config
cp tools/mkimage ~/bin
git clone git://
cd kernel
git checkout 3.8
cd kernel
cp ../configs/beaglebone .config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

I added the ALSA SoC drivers as modules to match the users’ supposedly desired configuration.

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs modules
pastebinit .config

The resulting config file is at