An open API service indexing awesome lists of open source software.

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

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)

I sell on Tindie

### 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.