Skip to content

Glossary

Analog

In an electrical signal, existing in a continuous range, as opposed to the discrete ranges of digital.

Big-endian

Endianness system that stores the most significant byte of a word at the smallest memory address and the least significant byte at the largest memory address.

Bitmask

Data used in bitwise operations made up of a series of 0s and 1s (a.k.a bit field), often used in configuration to indicate setting various options on or off.

Byte Buffer

An instance of the following JavaScript types:

Digital

In an electrical signal, existing at binary values: on or off, zero or one. This can be used simply, e.g. on/off states of a switch or light, or digital signals can be toggled very quickly to encode complex messaging with communication protocols.

GPIO

General purpose input and output: electrical pins which can be configured for various purposes.

Host

Provides the runtime environment for the execution of scripts, as defined by the ECMAScript language specification.

I2C

Inter-Integrated Circuit: a controller/peripheral communication protocol that allows one device to control one or more connected devices through two wires, a clock signal (SCL) to keep the components in sync and a data line (SDA).

IO Bus

Object of two or more pins used to implement a communication protocol such as Serial, SPI, or I2C.

If there is more than one IO bus for a protocol, one may be designated as the default bus of that type.

// example host implementation
const A = {
in: 12,
out: 13,
clock: 14,
select: 15,
hz: 10_000_000,
};
const B = {
in: 0,
out: 1,
clock: 2,
select: 3,
hz: 20_000_000,
};
device.spi = {
A,
B,
default: B,
};

IP

Internet Protocol: the network layer communications protocol for sending data across networks to establish the Internet.

LED

Light-emitting diode

Little-endian

Endianness system that stores the most significant byte of a word at the largest memory address and the least significant byte at the smallest memory address.

Open drain

An output pin is a digital signal that is connected to the ground. Low signals stay connected to ground. High signals will short the pin to the power source and leave it floating.

Pins

Points of electrical connection with an integrated circuit (IC).

Pin specifier

A pin specifier is a JavaScript value used by IO classes to refer to hardware connections represented by pins. Typically these pins correspond to a particular connection point on the hardware package, although this is not required.

The value of a pin specifier is host-dependent. It is often a number corresponding to the logical GPIO pin number as per the hardware data sheet (e.g. GPIO 5), but it may be a string (“D1”) or even an object including a port specifier and pin number ({port: 1, pin: 5}).

Port specifier

A port specifier is a JavaScript value used by IO classes to refer to a hardware interface. Port specifier values are defined by the host; usually either a number or string.

For example, consider a microcontroller may support two serial connections, each with different capabilities that may be configured to be available on a set of pins; the port specifier indicates which serial connection to use.

Pull-up

Ensures that given no input, the circuit assumes a default value, which is pulled high.

Pull-down

Ensures that given no input, the circuit assumes a default value, which is pulled low.

PWM

Pulse-width modulation: a hardware communication protocol where there is a digital signal fluctuating between values at a set period, and the message is encoded by changing the percentage of that period in which the signal stays at one of the values. This can be used to approximate an analog signal on a pin which only supports digital signaling. A common application is in motor controllers, mapping a servo motor position to the percentage of the time a signal is held high.

RX

Receive: the wire in a UART interface which receives data from the controlled device.

Serial

Also known as UART: a communication protocol that uses receive (RX) and transmit (TX) lines to interface with hardware.

SMBus

System management bus: an extension of the I2C protocol defined to communicate with low-bandwidth devices with stricter requirements in clock frequency range (10kHz to 100 kHz), voltage, and timing.

SPI

Serial Peripheral Interface; a controller/peripheral communication protocol that provides synchronous serial data transfer. Requires a minimum of 3 lines in addition to the power connections.

TCP

Transmission Control Protocol: a network protocol that allows two hosts to connect and exchange data with guaranteed ordering upon delivery.

TX

Transmit: the wire in a UART interface which sends data to the controlled device.

UART

Universal asynchronous receiver/transmitter also known as serial: a communication protocol that uses receive (RX) and transmit (TX) lines to interface with hardware.