PLEASE NOTE: This site is no longer being actively maintained. For frequently updated BeagleBone resources please visit

Read a Push Button, Control a Buzzer


In this tutorial you will learn how to create a simple buzzer alarm circuit, access Cloud9 (the BeagleBone's coding interface), load and run a script. In this project, we add frequency control to make sound. The code introduces analog  Pulse-width Modulation (PWM) function to control the sound and volume of a simple buzzer.

Note: This tutorial uses a BeagleBone set up specifically for our BeagleBone Black Tinkerer Workshop. The BeagleBone Black you will use in the Tinkerer Workshop will be set up with a Display and a Keyboard with a trackball mouse, and the JavaScript Files will be saved to the board. The BeagleBone will be running Angstrom, which come pre-loaded when you get the board. If you are not in a Tinkerer Workshop and want to do these projects, you can find a guide on how to attach a keyboard with a trackball mouse and a display here. You will also need to add the JavaScript files, which can be found here, to the following directory on the BeagleBone Black: /var/lib/cloud9/workshop

Parts List

Wiring Diagram

Project 4 - Fritzing wiring diagram

Step 1

Wire the components as shown. Note the orientation of the Transistor (3-leads) E-B-C
Note: The face of the transistor is flat.

Step 2

Plug the DC power jack into the BeagleBone Black to power the device.

Step 3

Once the system is ready, click on BEAGLEBONE-workshop icon to open the Chromium browser and then start the Cloud9 IDE BeagleBone.local:3000 (

Step 4

In the Cloud9 workshop folder click on the file Project4.js to open the BoneScript program that will control the LED and make it blink.
The code should look like this:

var b = require('bonescript');

var buzzerPin = "P8_13";
var switchPin = "P8_26";
var state = 0;
var switchState = 0;
var volume = 0.2;

// configure pins 
b.pinMode(buzzerPin, b.OUTPUT);
b.pinMode(switchPin, b.INPUT);

setInterval (inputHandler, 100);
setInterval (toggle, 500);

function inputHandler() {     // detect switch push
   b.digitalRead(switchPin, activate);
   function activate(x){
       if (x.value == '0') switchState = !switchState;

function toggle() {     // switch buzzer on/off
   state =!state;
   if(state == 1) b.analogWrite(buzzerPin, b.LOW);
   else if (switchState == 1) b.analogWrite(buzzerPin, volume);

Step 5

Now press Run at the top of the Cloud9 interface. If this says "Debug", select "Run" from the drop down under this button.
Cloud 9 BeagleBone Black Run Button
The script should now run, and when you push the button on the circuit, the buzzer should sound.