4.0.0 • Published 1 year ago
@johntalton/mcp2221 v4.0.0
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.