https://github.com/dotcypress/upico
uConsole RP2040 Expansion Card
https://github.com/dotcypress/upico
rp2040 rust
Last synced: about 2 months ago
JSON representation
uConsole RP2040 Expansion Card
- Host: GitHub
- URL: https://github.com/dotcypress/upico
- Owner: dotcypress
- License: apache-2.0
- Created: 2023-10-08T00:41:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-25T04:35:38.000Z (over 1 year ago)
- Last Synced: 2023-11-26T04:43:13.199Z (over 1 year ago)
- Topics: rp2040, rust
- Language: Rust
- Homepage: https://www.tindie.com/products/quadbit/upico/
- Size: 5.34 MB
- Stars: 30
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## ΞΌPico
### What is it?
uPico is a [RP2040](https://www.raspberrypi.com/products/rp2040/) powered expansion card designed to enhance the capabilities of [Clockwork's uConsole](https://www.clockworkpi.com/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β6 * 10-12 = 10-18 π€
### 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
- [Schematics](docs/upico.pdf)
- [PCB Viewer](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fdotcypress%2Fupico%2Fblob%2Fmain%2Fpcb%2Fupico.kicad_pcb)
- [Interactive BOM](https://htmlpreview.github.io/?https://github.com/dotcypress/upico/blob/main/docs/ibom.html)### Control app installation
1. Download latest build from [Releases page](https://github.com/dotcypress/upico/releases)
2. Extract installer: `mkdir dist && tar -xzf upico_%version%.%core%.tar.gz -C dist`
3. Install: `cd dist && sudo ./install.sh`
4. Cleanup: `cd .. && rm -rf dist`
5. Print help: `upico help`### Building control app from sources
1. Install rustup by following the instructions at https://rustup.rs
2. Clone this repo: `git clone [email protected]:dotcypress/upico.git && cd upico`
3. Build: `cargo build --release`
4. Install app: `sudo cp target/release/upico /usr/local/bin/`
5. Install service: `sudo cp upico.service /etc/systemd/system/`
6. Enable service: `sudo systemctl enable upico`
7. Start service: `sudo systemctl start upico`
8. 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`
9. Reload udev: `udevadm control --reload-rules`
10. Print help: `upico help`### Flash firmware
1. `wget https://rptl.io/pico-blink`
2. `upico install pico-blink` or `upico 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
### 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](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](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.