diff --git a/.gitignore b/.gitignore index 5b90e79..b182cf6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Config file that may have secrets +config.go + # ---> Go # If you prefer the allow list template instead of the deny list, see community template: # https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore @@ -24,4 +27,3 @@ go.work.sum # env file .env - diff --git a/README.md b/README.md index 40b61a7..ba0ae21 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,52 @@ -# pico-time +# Pico Time -Raspberry Pi Pico app to display time on a local display \ No newline at end of file +![Woodpecker CI badge](https://builds.metaunix.net/api/badges/93/status.svg) +![shields.io version badge](https://img.shields.io/gitea/v/release/BitGoblin/pico-time?gitea_url=https://git.metaunix.net) + +Raspberry Pi Pico app to display time on a local display. + +Made in Go with [TinyGo](https://tinygo.org/). + +## Hardware + +The following hardware is what I used for a deployment: + +* Raspberry Pi Pico 2 W: https://www.amazon.com/dp/B0DRJXPPWL + * The **W** is VERY important, as without networking it can't reach time servers! + * Also a Raspberry Pi Pico W *should* work too, but I haven't tested it yet +* Elegoo SSD1306 LCD: https://www.amazon.com/dp/B0FSRQG23K + +Most (or all?) of these components can be swapped for equivalent components. You just need to make sure the code is compatible with whatever board you choose (not likely), is a genuine BME280 sensor, and an SSD1306 display. + +Support for other hardware types may come in the future, but if there's a specific sensor or board you're in submit an issue or pull request! + +### Prototyping + +To help with debugging/testing deployments, I also used these components: + +* Elegoo 400-pin Breadboard: https://www.amazon.com/dp/B01EV640I6 +* Freenove Raspberry Pi Pico Breakout Board: https://www.amazon.com/dp/B0BFB53Y2N +* Elegoo 20cm Jumper Cables 120 count: https://www.amazon.com/dp/B01EV70C78 + +## Software Deployment + +### Requirements + +* [TinyGo](https://tinygo.org/getting-started/install/) - TinyGo installation guide + +### Steps + +1. Clone this git repository `git clone https://git.metaunix.net/BitGoblin/pico-weather`. +2. Copy `config.go.example` to `config.go` and modify the values to match your environment. +3. Hold down the **BOOTSEL** button on your Raspberry Pi Pico 2W. +4. Plug in your Pico to a USB port on your PC. +5. Wait 2-3 seconds then release the **BOOTSEL** button. +6. Flash the program to the Pico: `tinygo flash -target=pico2-w .`. + a. **Note**: On Pop!_OS I needed to open the file browser and mount the RP2350 partition manually while tinygo was attempting the flash, otherwise it would fail. +7. Monitor the app: `tinygo monitor`. + +If all goes well you should see some time on your SSD1306 display. At this point, you can unplug the pico and deploy it wherever you see fit. + +## License + +This project is made available under the BSD 3-Clause license.