About Depot
Depot is a USB-connected multi-bus adaptor and the client-side libraries that are used to interact with it.
The Adaptor Board
The adaptor is an RP2040-based board running the Depot adaptor firmware. It communicates with a host macOS or Linux computer via an integrated UART-USB bridge, and provides a command set which client-side code can use to manage the adaptor and peripheral devices connected to it.
At this time, the firmware supports I²C and 1-Wire peripherals, and can also be used to control th adaptor’s GPIO pins.
The firmware code is organised as follows:
/Depot
|
|___/firmware // The RP2040 host firmware, written in C
| |___/pico // The Raspberry Pi Pico version
| |___/nano // An Arduino Nano RP2040 Connect version
| |___/promicro // A SparkFun ProMicro RP2040 version
| |___/qtpy // An Adafruit QTPy RP2040 version
| |___/tiny // A Pimoroni Tiny 2040 version
| |___/trinkey // An Adafruit QT2040 Trinkey version
| |___/common // Code common to all versions
:
The firmware is documented on this page.
Client-Side Libraries
Depot clients are applications running on Mac and Linux computers with attached multi-bus adaptor boards.
Client code makes use of a number of key libraries:
SerialDriver — This manages the client’s interaction with the host computer’s serial port out to the connected adaptor. It supports macOS and Linux operation.
I2CDriver — This provides I²C middleware to allow a client to interact with I²C buses and peripherals connected to the adaptor via SerialDriver.
OWDriver — This provides 1-Wire middleware to allow clients to interact with 1-Wire buses and peripherals connected to the adaptor via SerialDriver.
GPIO — Provides GPIO control middleware to clients.
All clients require SerialDriver and the associated utils.c
file, and these are dependencies of I2CDriver, OWDriver and gpio.c
.
The libraries are located as follows:
/Depot
|
|___/client
| |___/common
| | |___gpio.c
| | |___gpio.h
| | |___serialdriver.c
| | |___serialdriver.h
| | |___utils.c
| | |___utils.h
| |
| |___/i2c
| | |___i2cdriver.c
| | |___i2cdriver.h
| |
| |___/onewire
| |___owdriver.c
| |___owdriver.h
:
Other directories under /client
contain the code for the sample apps.
The I²C code and clients are documented on this page.
The 1-Wire firmware is covered on this page.