SBrick protocol implementation in node.js
Clone or download
Latest commit 300fe83 Nov 20, 2018


SBrick Protocol

Greenkeeper badge

Control your Lego SBrick creations from node.js!

I've written an article about this thing, read it here!


An SBrick with Protocol 17, a device with node.js and a Bluetooth 4.x adapter, which is supported by noble.


npm install sbrick-protocol


const SBrick = require('sbrick-protocol');
var sbrick = null;

//scan for SBricks
    .then((sbricks) => {
        if (sbricks.length > 0) {
            //connect to first SBrick
            sbrick = new SBrick(sbricks[0].uuid);
            return sbrick.connect();
        } else {
            throw new Error('no SBricks found');
    .then(() => {
        //start sbrick main loop
        return sbrick.start();
    .then(() => {
        //subscribe to events
        sbrick.on('SBrick.voltage', (voltage) => {
            console.log('voltage', voltage);
        sbrick.on('SBrick.temperature', (temperature) => {
            console.log('temperature', temperature);

        //set channel 0 to full speed
        sbrick.channels[0].pwm = 255;

See the complete interface in SBrick.js.

A fully functional, browser-based interface also available at node-sbrick-controller.

Commands not implemented yet

  • connection parameters
  • PWM counter
  • quick drive
  • SBrick Plus measurements