
Product
Introducing Tier 1 Reachability: Precision CVE Triage for Enterprise Teams
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
@thingssdk/ht16k33
Advanced tools
ES6 compatible display driver for Adafruit HT16K33 matrices, 7 segment and 14 segment displays.
A modern JavaScript driver for the LED matrix backpacks with the HT16K33 controller chip. The driver works with any Adafruit 8x8 monochrome, 8x8 bicolor and 16x8 monochrome LED backpacks.
This module works with the 7-Segment backpacks and 14-segment alphanumeric backpacks.
This is also compatible with the Adafruit Feather wings too.
Works with the thingsSDK-based projects running on the Espruino runtime. More to come.
import { connect8x8Matrix } from '@thingssdk/ht16k33/espruino';
//Squint a little and you can see the faces!
// :)
const smileBmp = [
0b00111100,
0b01000010,
0b10100101,
0b10000001,
0b10100101,
0b10011001,
0b01000010,
0b00111100
];
//:|
const neutralBmp = [
0b00111100,
0b01000010,
0b10100101,
0b10000001,
0b10111101,
0b10000001,
0b01000010,
0b00111100
];
//:(
const frownBmp = [
0b00111100,
0b01000010,
0b10100101,
0b10000001,
0b10011001,
0b10100101,
0b01000010,
0b00111100
];
//Run Example Code
function main() {
const matrix = connect8x8Matrix();
//Draws Smiley Face
matrix.render(smileBmp);
//Draws Neutral Face after 1 second
setTimeout(() => {
matrix.render(neutralBmp);
}, 1000);
//Draws Frowny Face after 2 seconds
setTimeout(() => {
matrix.render(frownBmp);
}, 2000);
}
import { connect16x8Matrix } from '@thingssdk/ht16k33/espruino';
// Draw smile and frown side by side
const smileFrownBmp = [
0b00111100, 0b00111100,
0b01000010, 0b01000010,
0b10100101, 0b10100101,
0b10000001, 0b10000001,
0b10100101, 0b10011001,
0b10011001, 0b10100101,
0b01000010, 0b01000010,
0b00111100, 0b00111100
];
// Draw smile and mehside by side
const smileMehBmp = [
0b00111100, 0b00111100,
0b01000010, 0b01000010,
0b10100101, 0b10100101,
0b10000001, 0b10000001,
0b10100101, 0b10000001,
0b10011001, 0b10111101,
0b01000010, 0b01000010,
0b00111100, 0b00111100
];
//Run Example Code
function main() {
const matrix = connect16x8Matrix()
//Render bitmap of smily face and frown
matrix.render(smileFrownBmp);
//Render bitmap of smily face and meh face
setTimeout(() => matrix.render(smileMehBmp), 1000);
}
import { connect8x8BicolorMatrix } from '@thingssdk/ht16k33/espruino';
//Squint a little and you can see the faces!
// :) - Green
const smileBmp = [
0b00111100, 0b00000000,
0b01000010, 0b00000000,
0b10100101, 0b00000000,
0b10000001, 0b00000000,
0b10100101, 0b00000000,
0b10011001, 0b00000000,
0b01000010, 0b00000000,
0b00111100, 0b00000000
];
//:| - Orange
const neutralBmp = [
0b00111100, 0b00111100,
0b01000010, 0b01000010,
0b10100101, 0b10100101,
0b10000001, 0b10000001,
0b10111101, 0b10111101,
0b10000001, 0b10000001,
0b01000010, 0b01000010,
0b00111100, 0b00111100
];
//:( - Red
const frownBmp = [
0b00000000, 0b00111100,
0b00000000, 0b01000010,
0b00000000, 0b10100101,
0b00000000, 0b10000001,
0b00000000, 0b10011001,
0b00000000, 0b10100101,
0b00000000, 0b01000010,
0b00000000, 0b00111100
];
// :) - Multicolor Face
const multiSmileBmp = [
0b00111100, 0b00000000,
0b01000010, 0b00000000,
0b10100101, 0b00100100,
0b10000001, 0b00000000,
0b10000001, 0b00100100,
0b10000001, 0b00011000,
0b01000010, 0b00000000,
0b00111100, 0b00000000
];
//Run Example Code
function main() {
const matrix = connect8x8BicolorMatrix();
//Draws Smiley Face
matrix.render(smileBmp);
//Draws Neutral Face after 1 second
setTimeout(() => {
matrix.render(neutralBmp);
}, 1000);
//Draws Frowny Face after 2 seconds
setTimeout(() => {
matrix.render(frownBmp);
}, 2000);
//Draws Multicolor Face after 3 seconds
setTimeout(() => {
matrix.render(multiSmileBmp);
}, 3000);
}
import { connect7SegmentDisplay } from '@thingssdk/ht16k33/espruino';
//Run Example Code
function main() {
const matrix = connect7SegmentDisplay();
//You can render numbers
matrix.render(42);
//Negative numbers
setTimeout(() => {
matrix.render(-999);
}, 1000);
//Times and strings
setTimeout(() => {
matrix.render("04:20");
}, 2000);
//Numbers with decimal places
setTimeout(() => {
matrix.render(3.141);
}, 3000);
//Or strings with multiple dots
setTimeout(() => {
matrix.render("1.2.3.4.");
}, 4000);
//Even, just dashes
setTimeout(() => {
matrix.render("----");
}, 5000);
//Spaces are valid too
setTimeout(() => {
matrix.render("0 -");
}, 6000);
}
import { connect14SegmentDisplay } from '@thingssdk/ht16k33/espruino';
//Run Example Code
function main() {
const matrix = connect14SegmentDisplay();
//You can render numbers
matrix.render(42);
//Negative numbers
setTimeout(() => {
matrix.render(-999);
}, 1000);
//Letters and symbols
setTimeout(() => {
matrix.render("HI@U");
}, 2000);
//Numbers with decimal places
setTimeout(() => {
matrix.render(3.141);
}, 3000);
//Or strings with multiple dots
setTimeout(() => {
matrix.render("1.2.3.4.");
}, 4000);
//Uppercase letters
setTimeout(() => {
matrix.render("UPPR");
}, 5000);
//And lowercase
setTimeout(() => {
matrix.render("lowr");
}, 6000);
}
Any one of the display connect functions, connect8x8Matrix
, connect16x8Matrix
, connect8x8BicolorMatrix
, connect7SegmentDisplay
and connect14SegmentDisplay
takes an options
object.
import { connect8x8Matrix } from '@thingssdk/ht16k33/espruino';
//All options are optional, all default values listed below
const options = {
i2cInterface: I2C1, //From Espruino - some boards have more than one I2C interface
clock: 5, // Clock pin on ESP8266 boards
data: 4, // Data pin on ESP8266 boards
address: 0x70, // Default address for HT16K33 backpacks
brightness: 0 // Value from 0 to 15
}
const matrix = connect8x8Matrix(options)
The LED displays are quite bright on their lowest setting (0
) but it can be adjusted to go all the way up to 15
.
import { connect8x8Matrix } from '@thingssdk/ht16k33/espruino';
import { setBrightness } from '@thingssdk/ht16k33';
const matrix = connect8x8Matrix();
setBrightness(matrix, 15);
If you pass in the value of 16
it'll reset to 0
, 17
will be 1
and so forth.
The HT16K33 chip has 4 blink rates 0
through 3
.
import { connect8x8Matrix } from '@thingssdk/ht16k33/espruino';
import { setBlinkRate } from '@thingssdk/ht16k33';
const matrix = connect8x8Matrix();
setBlinkRate(matrix, 3);
FAQs
ES6 compatible display driver for Adafruit HT16K33 matrices, 7 segment and 14 segment displays.
We found that @thingssdk/ht16k33 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.