Depot comprises firmware and client code that allows you to connect a multi-bus adaptor board to your Mac or Linux computer and communicate with I²C and 1-Wire peripheral devices wired up to the adaptor.
The adaptor is a Raspberry Pi RP2040-based board, such as the Pico, running the Depot firmware. The adaptor relays commands from client apps to peripheral devices, be they sensors, displays, actuators, storage chips, or whatever.
The Mac or Linux box connects to the adaptor over USB.
The Depot firmware is documented separately in the documentation section.
Depot builds on and extends the older cli2c
tool, and its version numbering is therefore consistent with the older code.
Because it’s a place in which you’ll find lots of buses.
Important WE STRONGLY RECOMMEND YOU BUILD THE FIRMWARE WITH PICO SDK 1.5.0 OR ABOVE.
cmake -S . -B firmwarebuild
cmake --build firmwarebuild
./deploy.sh /path/to/device firmwarebuild/firmware/pico/firmware_pico_rp2040.uf2
./deploy.sh /path/to/device firmwarebuild/firmware/qtpy/firmware_qtpy_rp2040.uf2
./deploy.sh /path/to/device firmwarebuild/firmware/promicro/firmware_promicro.uf2
./deploy.sh /path/to/device firmwarebuild/firmware/tiny/firmware_tiny2040.uf2
./deploy.sh /path/to/device firmwarebuild/firmware/trinkey/firmware_trinkey2040.uf2
The bundled deploy script, deploy.sh
, tricks the RP2040-based board into booting into disk mode, then copies across the newly build firmware. When the copy completes, the RP2040 automatically reboots. This saves of a lot of tedious power-cycling with the BOOTSEL button held down.
You can switch between build types when you make the cmake
call in step 2, above. A debug build is made by default, but you can make this explicit with:
cmake -S . -B firmwarebuild -D CMAKE_BUILD_TYPE=Debug
For a release build, which omits the UART debugging code, call:
cmake -S . -B firmwarebuild -D CMAKE_BUILD_TYPE=Release
Follow both of these commands with the usual:
cmake --build firmwarebuild
You can build the code from the accompanying Xcode project files:
cli2c.xcodeproj
— Contains cli2c
. segment
and matrix
.cliwire.xcodeproj
— Contains cliwire
, ds18b20
and Sensor
(GUI).In each case:
$PATH
.cd linux
cmake -S . -B build
cmake --build build
build
directory to your preferred location listed in $PATH
.The following client apps are provided:
App | Description | Platform(s) | Docs |
---|---|---|---|
cli2c | A CLI utility for generic I²C use | macOS, Linux | Link |
matrix | A CLI utility to operate Holtek HT16K33-based matrix displays via I²C | macOS, Linux | Link |
segment | A CLI utility to operate Holtek HT16K33-based segment displays via I²C | macOS, Linux | Link |
cliwire | A CLI utility for generic 1-Wire use | macOS, Linux | Link |
ds18b20 | A CLI utility to sample an Analog Devices 1-Wire DS18B20 temperature sensor | macOS | Link |
Sensor | A GUI app to sample an Analog Devices 1-Wire DS18B20 temperature sensor | macOS | Link |
All of these apps run on macOS and Linux with the exception of ds18b20
(written in Swift) and Sensor
(a Swift-based macOS GUI app):
Every app makes use of common serial driver and bus driver code so you can view the apps as examples as much as tools that are ready to use.
You can view Depot’s source code at GitHub.
PICO_BOARD
environment variable to select specific firmware targets.cliwire
, ds18b20
and Sensor
.