Skip to content

johntalton/webapp-device-playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Device Playground

A Web Application providing comprehensive access to I²C Bus devices. Running fully in the browser via Web Technologies (WebHID / SerialPort / ArrayBuffers etc)

Note: Chrome is recommended.

Bridging Browser to I²C Bus

In order to bridge I²C into the browsers environment, several devices can be used:

Each of these devices support the I2CBus abstraction interface provided by AOD and makes extensive use of modern ArrayBuffer.

Both drivers and bridges are fully isomorphic code supporting this native webapp and nodejs environments.

Action Shots

ExCamera Driver Basic Information screen

ExCamera

Using the ExCamera I2CDriver to Capture Bus traffic:

ExCamera Capture Mode

Scanning the MCP2221 Bus for attached devices

MCP2221 Scan

MCP2221 Information Page

MCP2221 Info

Viewing Light Levels with attached TSL2591

TSL2591 Light Level Graph

Virtual Buses

The I2CBus-TCA9548 is a similar I2CBus implementation. It can provide auto-magic channel management of he TCA9548 device.

The above mentioned I2CBus-Service provides a REST API client that exposes a I2CBus into the browser. The service itself can be setup to use all of the listed bridges above.

NodeJS

NodeJS (on devices like a Raspberry PI) can access the native Linux I²C Bus. A common implantation for this is i2c-bus library.

In order to make it compatible with AOD I2CBus API the adapter has been provided I2CBusFivdi.

This can be used withing the I2CBuService or standalone in order to use AOD compatible devices.

Custom Address

While the bridges support a scan mode screen, they also provide adding devices manually from a custom address. This can be useful when using devices such as the LTC4316 which can shift the address of a device, or when underlying bridge scans are not desired or able to find the device specified.

Devices

Many devices are supported natively:

Temperature:

GPIO Expander

Segment Display

Real-Time Clock

RFID / NFC

Accelerometer / Magnetometer

Current / Voltage

I²C Multiplexer

Potentiometer

Analog to Digital

Light

LED

Haptic Feedback

About

Web based Device Playground for I²C via USB/HID/Serial

Topics

Resources

License

Stars

Watchers

Forks