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 | |___/qtpy // An Adafruit QTPy RP2040 version | |___/promicro // A SparkFun ProMicro 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.
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
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.