BeagleBone Blog

This page contains my blog postings on the BeagleBone platform. Please pay careful attention to the date of the posting, as older posts are less relevant to recent developments on the BeagleBone platform.

Automatically Setting the Beaglebone Black Time Using NTP

Setting the Time on a Once-off Basis
On my current distribution the Beaglebone Black does not come with a working NTP installation in order to set the time. Because the board doesn’t have a battery backup, this means that we need a way to set the time when the board is running. If you wish to set the time you could do it on a once-off basis…

When you boot the Beaglebone black, the time comes up as:

Which is quite some time ago! I noticed this because I did a git commit and in the github status it said that I did the update 13 years ago!

To set the date once off you could use something like:

However, if you reboot your Beaglebone the time will be back to the good old year 2000. So, we need a way to update this each time the Beaglebone boots.
Install the NTP Software
Next, we need to […]

Custom Kernel and Ångström Distribution Recipe (SPI/CAN bus Support)

I have already posted on how we can build a vanilla Angstrom distribution from source at this post: Building Angstrom for Beaglebone from Source. This post looks at how we can add SPI to the kernel and rebuild the Linux kernel and Angstrom distribution. The post isn’t specific to SPI, so it may be that you are looking to make a different change to the distribution.
Initial Setup
If you have not done these steps already as explained in the previous post you should:

This should have you at the same point as the previous post and ready to go. If you receive any errors at this point then please go back to that post.

Really useful guide on using bitbake for open embedded and how everything works:

http://docs.openembedded.org/usermanual/usermanual.html#chapter_using_bitbake_and_oe

This is a substantial document; however, if you ever want to understand what is going on and how to create your own recipes you need to read […]

Driving LED Arrays

I have started to investigate how I can drive a large bank of LEDs directly from my Beaglebone or Raspberry PI. I have developed a video before:

where I drove a 2 colour 8×8 LED common anode dot matrix display using three 74HC595s and a transistor array UDN2981A to source the current. This used the Arduino as the platform to drive the array and it worked very well, with a very fast refresh rate.

So, now I want to do this for the Beaglebone/PI and as while the processor rate should allow me to have a much more advanced output, the pin current limitations are going to be a problem. In addition, I would like to have some level of fading to give me a true multi-colour display, rather than the 2 colour display I had before.

So, my solution seems to be the TLC5940 from Texas Instruments (Link to the Datasheet), which […]

Building Ångström for Beaglebone from Source

The Ångström distribution is a Linux distribution for many embedded devices, the Beaglebone included. Here I am going to document the steps that I took in order to build a full distribution of Angstrom (easier to write without the unusual letters). I am working from the steps described at this site: http://www.angstrom-distribution.org/ but here I will document any difficulties and the times involved.
Step 1 – Download the setup scripts (<1 minute):
I am working from a directory called beaglebone that I created on a desktop Ubuntu installation. The directory is /home/molloyd/beaglebone/

Ensure that you have git installed – If not then type “sudo apt-get install git” A very short step ( <1 minute). This created a directory on my system called setup-scripts
Step 2 – Configure for the beaglebone ( <10 minutes):

This builds the profile for the beaglebone.

The first time I ran this it came up with an error on using bash rather than sh. […]

Beaglebone: Embedded Linux and Stepper Motors

This video examines how we can drive stepper motors using C++ within Embedded Linux using the open source hardware EasyDriver board. The video begins by describing stepper motors and the effects of micro-stepping. It then discusses the EasyDriver Board (V4.4) and all of the available inputs and outputs. The board uses the Allegro A3967 which allows for full, half-, quarter and one eight micro-stepping. The video then explains C++ code that uses the GPIOs on the Beagleboard to wrap the EasyDriver with a C++ class that is easy to use by creating an object of the class for each stepper motor that is connected.

The source code in this video is available through githhub:

Finally I show an example of my code running on the Mercury Motor (SM-42BYG011-25), which is a low cost stepper motor.