Awesome
ΞΌPico
<img width="500" src="docs/upico.jpg" />What is it?
uPico is a RP2040 powered expansion card designed to enhance the capabilities of Clockwork's uConsole.
β οΈ Only R-01 and CM4 core are supported by control application. Work in progress for A04/A06 core modules.
Second project name is atto
, cause 10<sup>β6</sup> * 10<sup>-12</sup> = 10<sup>-18</sup> π€
Features
- Internal Speakers Support
- Type-C (USB 2.0) port with programmable power switch and overcurrent protection
- 3.3V and 5V external power out with programmable switch and overcurrent protection
- RP2040 with extenal double-double PMOD compatible connector
- RP2040 controllable LED
Resources
<a href="https://www.tindie.com/stores/quadbit"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-mediums.png" alt="I sell on Tindie" width="150" height="78"></a>
Control app installation
- Download latest build from Releases page
- Extract installer:
mkdir dist && tar -xzf upico_%version%.%core%.tar.gz -C dist
- Install:
cd dist && sudo ./install.sh
- Cleanup:
cd .. && rm -rf dist
- Print help:
upico help
Building control app from sources
- Install rustup by following the instructions at https://rustup.rs
- Clone this repo:
git clone git@github.com:dotcypress/upico.git && cd upico
- Build:
cargo build --release
- Install app:
sudo cp target/release/upico /usr/local/bin/
- Install service:
sudo cp upico.service /etc/systemd/system/
- Enable service:
sudo systemctl enable upico
- Start service:
sudo systemctl start upico
- Setup uPico extender USB device:
echo 'SUBSYSTEM=="usb",ATTRS{idVendor}=="1209",ATTRS{idProduct}=="bc07",MODE="0660",GROUP="plugdev"' > /etc/udev/rules.d/50-upico-permissions.rules
- Reload udev:
udevadm control --reload-rules
- Print help:
upico help
Flash firmware
wget https://rptl.io/pico-blink
upico install pico-blink
orupico install -m pico-blink
if automount is disabled for hot-plug devices.
See other examples: https://github.com/raspberrypi/pico-examples
High level design diagram
<img width="500" src="docs/upico_hld.png" />GPIO Header Pinout
ββββββββ¦βββββββ
β AUX β AUX β
β βββββββ¬βββββββ£
β VDD β VDD β
β GND β GND β
β IO3 β IO7 β
β IO2 β IO6 β
β IO1 β IO5 β
β IO0 β IO4 β
β βββββββ¬βββββββ£
β IO27 β IO29 β
β IO26 β IO28 β
β IO18 β IO19 β
β βββββββ¬βββββββ£
β VDD β VDD β
β GND β GND β
β IO11 β IO15 β
β IO10 β IO14 β
β IO9 β IO13 β
β IO8 β IO12 β
ββββββββ©βββββββ
Errata
CM4 core & uPico PCB rev:0x02
- Overcurrent reporting feature isn't supported.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.