Beagle Board -

shiftOut(dataPin, clockPin, bitOrder, val, [callback])

Note: This doesn't work until BoneScript version 0.2.3

Shift a byte out to a digital I/O pin clocking it with another digital I/O pin.


  • dataPin: the pin for the serial data
  • clockPin: the pin for the clock
  • bitOrder: b.MSBFIRST or b.LSBFIRST
  • val: the byte to be written
  • callback: called upon completion

Return value


  • x.err: error status message


// Demonstrate shiftOut with a 7 segment display

// read in the BoneScript library
var b = require('bonescript');

// define used pins
var sData  = "P9_18";
var sClock = "P9_22";
var sLatch = "P9_17";
var sClear = "P9_15";

// define other global variables
var digit = 0;
var segments = [ 0xC0, 0xF9, 0xA4, 0xB0, 0x99,
                 0x92, 0x82, 0xF8, 0x80, 0x90 ];

// configure pins as outputs
b.pinMode(sData,  b.OUTPUT);
b.pinMode(sClock, b.OUTPUT);
b.pinMode(sLatch, b.OUTPUT);
b.pinMode(sClear, b.OUTPUT);

// initial states
b.digitalWrite(sData,  b.LOW);
b.digitalWrite(sClock, b.LOW);
b.digitalWrite(sLatch, b.LOW);
b.digitalWrite(sClear, b.HIGH);

// call function to start updating the LED shift register

// function to update the LED shift register
function doUpdate() {
    // shift out the character LED pattern
    b.shiftOut(sData, sClock, b.MSBFIRST, 
        segments[digit], doLatch);

    // update the digit for next time
    digit = (digit + 1) % 10;

function doLatch() {
    // latch in the value
    b.digitalWrite(sLatch, b.HIGH, doLatchLow);

function doLatchLow() {
    b.digitalWrite(sLatch, b.LOW, scheduleUpdate);

function scheduleUpdate() {
    // update again in another 25ms
    setTimeout(doUpdate, 25);

Build and execute instructions

  • TBD

See also


Related functions

Last updated by jkridner on Mon Aug 19 2013 04:22:44 GMT-0000 (UTC).