Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

espruino-adafruit-led-backpack

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

espruino-adafruit-led-backpack

Espruino Driver for Adafruit's LED Matrix + Backpack

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

espruino-adafruit-led-backpack

This is a driver that closely mirrors the Adafruit's LED Backpack Library.

This package currently works with Adafruit 8x8 and 16x8 Single Color LED Backpacks.

This library was tested on on the Small 1.2" 8x8 Ultra Bright Square White LED Matrix + Backpack, PRODUCT ID: 1857 and on the 16x8 1.2" Ultra Bright Square Green LED Matrix + Backpack.

This doesn't work with the 7-Segment backpacks.

Example Code for 8 x 8 Matrix

To use this library in the Espruino Web IDE you need to go to Settings > Communications > Check 'Load modules from NPM (BETA)'.

Here's some example code that mirrors the Adafruit's example code for the 8x8 Matrix example code for Arduino.

var Matrix8x8 = require("espruino-adafruit-led-backpack").Matrix8x8;

//Clock: B6 Data: B7 Device Address: 0x70, Brightness: 0-15
var matrix = new Matrix8x8({scl:B6, sda:B7, address:0x70, brightness: 0});

//Squint a little and you can see the faces!

// :)
var smileBmp = [
    0b00111100,
    0b01000010,
    0b10100101,
    0b10000001,
    0b10100101,
    0b10011001,
    0b01000010,
    0b00111100
],
//:|
    neutralBmp = [
    0b00111100,
    0b01000010,
    0b10100101,
    0b10000001,
    0b10111101,
    0b10000001,
    0b01000010,
    0b00111100
],
//:(
  frownBmp = [
    0b00111100,
    0b01000010,
    0b10100101,
    0b10000001,
    0b10011001,
    0b10100101,
    0b01000010,
    0b00111100
];

//Hacky scynchronous timeout :)
function delay(time) {
  var i = 0;
  while(i < time * 10) {  i++; }
}

//Run Example Code
function testDisplay() {
  //Draws Smiley Face
  matrix.clear();
  matrix.drawBitmap(smileBmp);
  matrix.writeDisplay();
  delay(500);

  //Draws Neutral Face
  matrix.clear();
  matrix.drawBitmap(neutralBmp);
  matrix.writeDisplay();
  delay(500);

  //Draws Frowny Face
  matrix.clear();
  matrix.drawBitmap(frownBmp);
  matrix.writeDisplay();
  delay(500);

  //Draws a pixel at the top left x = 0, y = 0
  matrix.clear();
  matrix.drawPixel(0, 0);
  matrix.writeDisplay();
  delay(500);

  //Draws a diagonal line between x1 = 0, y1 = 0 and x2 = 7, y2 = 7
  matrix.clear();
  matrix.drawLine(0,0, 7,7);
  matrix.writeDisplay();
  delay(500);

  //Draws a rectangle at x = 0, y = 0 and a witdth = 8 and height = 8
  matrix.clear();
  matrix.drawRect(0,0, 8,8);
  matrix.writeDisplay();
  delay(500);

  //Draws the same rectangle as abover with a filled in rectangle 4 by 4 starting at x = 2, y = 2
  matrix.clear();
  matrix.drawRect(0,0, 8,8);
  matrix.fillRect(2,2, 4,4);
  matrix.writeDisplay();
  delay(500);
}

testDisplay();

Here's a gif of the above code in action:

Example Code for 16x8 Matrix

var Matrix16x8 = require("espruino-adafruit-led-backpack").Matrix16x8;

var matrix = new Matrix16x8({scl:B6, sda:B7, address:0x70, brightness: 0});

// draw smile and frown side by side
var smileFrownBmp = [
    0b00111100, 0b00111100,
    0b01000010, 0b01000010,
    0b10100101, 0b10100101,
    0b10000001, 0b10000001,
    0b10100101, 0b10011001,
    0b10011001, 0b10100101,
    0b01000010, 0b01000010,
    0b00111100, 0b00111100
];

matrix.clear();
matrix.drawBitmap(smileFrownBmp);
matrix.writeDisplay();

The functions drawLine, drawPixel, drawRect and fillRect work the same as for the 8x8 Matrix except you can address up to 16 pixels on the x axis:

// Draws a diagonal line between x1 = 3, y1 = 3 and x2 = 15, y2 = 7
matrix.drawLine(3, 3, 15, 7);

Todos - A.K.A. Please Help

  • Finish Parity for 8 x 8 Display
    • drawCircle()
    • setTextWrap()
    • setTextColor()
    • setCursor()
    • print()
    • setRotation()
  • Implement 7 Segment Display

Keywords

FAQs

Package last updated on 17 Oct 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc