@johntalton/mcp2221
v4.0.0
Published
Full featured library MCP2221 (A) via USB HID.
Downloads
11
Readme
MCP2221
Full featured library MCP2221 (A) via USB HID.
Standard Adafruit link.
Features
Support full range of command and functionality, including:
Password Protected
- Access Password setting
- new password Flash writes
- Alter Security settings
- no guard against humans
Status
- Reset
- Clear Interrupt
- I²C Diagnostics
- ADC output
General Purpose
- Digital In / Out (Gpio)
- ADC 3x
- DAC
- Clock
- Interrupt on Change (with variable edge detection)
- USB Host Suspend and Configuration state
I²C
- standard direct methods
- addition
I2CBus
abstraction support
USB
- USB Descriptor support
- vendor / product Id
- requested mA
- etc
Example
import { MCP2221A } from '@johntalton/mcp2221'
const hidDevice = /* likely navigator.hid.getDevices() ... etc */
const source = new HIDStreamSource(hidDevice)
const chip = MCP2221.from(source)
const { adc } = await chip.common.status()
const { ch0, ch1, ch2 } = adc
ReadableStream / WritableStream
WebHID (and other HID implementation) can be abstracted in several way, an attempt is made here to normalized over a Stream API that supports BYOB (bring you own buffer) and Byte specific stream.
As such, a HIDStreamSource
is used to normalize the WebHID (EventTarget
) API into a stream.
A simplified stream reader is used which ignore (assumes zero) the report Id, which is correct in this case.