All Projects → CapableRobot → CapableRobot_USBHub_Driver

CapableRobot / CapableRobot_USBHub_Driver

Licence: MIT license
www.crowdsupply.com/capable-robot-components/programmable-usb-hub

Programming Languages

python
139335 projects - #7 most used programming language
Kaitai Struct
9 projects

Projects that are alternatives of or similar to CapableRobot USBHub Driver

circuitpython
CircuitPython - a Python implementation for teaching coding with microcontrollers
Stars: ✭ 3,097 (+18117.65%)
Mutual labels:  embedded, circuitpython
Ehal
Embedded Hardware Abstraction Library
Stars: ✭ 84 (+394.12%)
Mutual labels:  embedded, usb
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (+1588.24%)
Mutual labels:  embedded, usb
Tinyusb
An open source cross-platform USB stack for embedded system
Stars: ✭ 2,257 (+13176.47%)
Mutual labels:  embedded, usb
Keyberon
A rust crate to create a pure rust keyboard firmware.
Stars: ✭ 355 (+1988.24%)
Mutual labels:  embedded, usb
qtpy-knob
QT Py Media Knob using rotary encoder & neopixel ring
Stars: ✭ 49 (+188.24%)
Mutual labels:  usb, circuitpython
Emma
Emma Memory and Mapfile Analyser
Stars: ✭ 21 (+23.53%)
Mutual labels:  embedded
rebuild
Zero-dependency, reproducible build environments
Stars: ✭ 48 (+182.35%)
Mutual labels:  embedded
FreeRTOS-rust
Rust crate for FreeRTOS
Stars: ✭ 159 (+835.29%)
Mutual labels:  embedded
arm synth
Wavetable Synth Running on an STM32F 32-bit ARM Cortex M3 microprocessor
Stars: ✭ 23 (+35.29%)
Mutual labels:  embedded
tensorflow-on-orangepi-zero
Tensorflow for Orange PI Zero
Stars: ✭ 16 (-5.88%)
Mutual labels:  embedded
buddy-linux
Do you remember "Wubi Ubuntu Installer"? This project is both a replacement and an improvement of Wubi. You will be able to install your Debian (or derived) distribution on a PC without repartitioning it, simply by using a secondary/external boot device (like a USB drive).
Stars: ✭ 17 (+0%)
Mutual labels:  usb
bacnet-stack
BACnet Protocol Stack library provides a BACnet application layer, network layer and media access (MAC) layer communications services.
Stars: ✭ 199 (+1070.59%)
Mutual labels:  embedded
libe4
C library of Teserakt's E4 end-to-end security protocol
Stars: ✭ 15 (-11.76%)
Mutual labels:  embedded
rauc-hawkbit-updater
The RAUC hawkBit updater is a simple commandline tool/daemon that runs on your target and interfaces between RAUC and hawkBit's DDI API.
Stars: ✭ 40 (+135.29%)
Mutual labels:  embedded
uevloop
A fast and lightweight event loop for embedded platforms.
Stars: ✭ 61 (+258.82%)
Mutual labels:  embedded
dockage
embedded document/json store
Stars: ✭ 20 (+17.65%)
Mutual labels:  embedded
Embedded UKF Library
A compact Unscented Kalman Filter (UKF) library for Teensy4/Arduino system (or any real time embedded system in general)
Stars: ✭ 31 (+82.35%)
Mutual labels:  embedded
openncc
OpenNCC Kit
Stars: ✭ 23 (+35.29%)
Mutual labels:  embedded
w1-gpio-cl
Command line configured kernel mode 1-wire bus master driver. w1-gpio standard Linux module enhancement/substitution.
Stars: ✭ 17 (+0%)
Mutual labels:  embedded

Capable Robot Programmable USB Hub Driver

This package has two functions:

  • It provides access to internal state of the Capable Robot USB Hub, allowing you to monitor and control the Hub from an upstream computer.
  • It creates a transparent CircuitPython Bridge, allowing unmodified CircuitPython code to run on the host computer and interact with I2C & SPI devices attached to the USB Hub.

Capable Robot logo & image of Programmable USB Hub

Installing

Install and update using pip:

pip install capablerobot_usbhub --upgrade

This driver requires Python 3.6 or newer.

Additional Linux Instructions

On Linux, the the udev permission system will likely prevent normal users from accessing the USB Hub's endpoint which allows for Hub Monitoring, Control, and I2C Bridging. To resolve this, install the provided udev rule:

sudo cp 50-capablerobot-usbhub.rules /etc/udev/rules.d/
sudo udevadm control --reload
sudo udevadm trigger

Then unplug and replug your USB Hub. Note, the provided udev rule allows all system users to access the Hub, but can be changed to a specific user or user group.

Additional Windows Instructions

On Windows, the low-level USB driver for the Hub's VID/PID must be re-assigned from the default one to the libusbk driver. This can be done with the Zadig GUI, or by executing the following commands:

pip install capablerobot_usbregister
usbregister device usbhub

For additional details on how the usbregister command-line utility work, please vist the CapableRobot_USBRegister repository.

Usage & Examples

The examples folder has some code samples of how to use this Python API to control the Programmable USB Hub. There is also another example repository which includes additional host-side code as well as examples of customizing behavior via changing the Hub's firmware.

Working Functionality

  • Reading USB Hub registers over USB and decoding of register data.
  • Writing USB Hub registers over USB.
  • Reading & writing I2C data thru the Hub.
  • Python API to control and read the two GPIO pins.
  • CircuitPython I2C Bridge to the rear I2C1 port.
  • CircuitPython SPI Bridge to the internal mikroBUS header.

Not Working / Not Implemented Yet

No known errata at this time

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].