# uv-belichter-software A collection of programs run on a Raspberry Pi Pico to control a uv exposure unit (mainly used for exposing PCBs) ## Hardware This program is strongly customized to my needs, and my DIY exposure unit has **two buttons** and **one switch** to interact with the software (and a power switch FWIW). Also, a **16*2 display** (maybe 20*4 or others do also work, but these are not tested) can show information to the user. A **relais** is used for switching all the LEDs. | Device Pin | Pi Pico Pin | | ------------------ | ----------- | | BTN_1 Pin 1 | 3.3V | | BTN_1 Pin 2 | GPIO15 | | BTN_2 Pin 1 | 3.3V | | BTN_2 Pin 2 | GPIO14 | | SWITCH Pin 1 | 3.3V | | SWITCH Pin 2 | GPIO13 | | LCD SDA | GPIO8 | | LCD SCL | GPIO9 | | LCD GND | GND | | LCD VCC | 5V | | Relais control pin | GPIO21 | ## Installation To install this, use [Thonny](https://thonny.org/), open all the files present in this repository and then save them onto a [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico/) (or [Pico 2](https://www.raspberrypi.com/products/raspberry-pi-pico-2/), but it's not tested on this platform yet) running [MicroPython](https://micropython.org/). Then, given you followed above wiring, it should just be running! Then you can jump over the configuration section. ## Configuration All the configuration can be done in the [config.py](config.py) file, just have a look around there. Some hints for editing this file: - When editing the startup section strings, make sure the "STARTUP_PROJECT_NAME" and the "STARTUP_MESSAGE_FINISHED" values have the same length as your display can show (likely 16 characters). Otherwise it could be that some things won't be displayed correctly. - When changing Pins in the Pinout section, make sure to follow the pinout assignment of your Pi Pico board (e.g. the i2c sda and scl pins) - If your display doesn't work properly - the first issue might be a wrong i2c address. To find the address of your display, just follow some of the tutorials on the internet on scanning for i2c devices (e.g. [here](https://randomnerdtutorials.com/raspberry-pi-pico-i2c-scanner-micropython/)). ## Used libraries - PCF8574T - a driver for the i2c multiplexer used to address the 2x16 lcd display - [ProgramChooserAdapted](https://git.privacynerd.de/BlueFox/ProgramChooser) - an adapted version of ProgramChooser (but I'm planning to merge my changes to the upstream Programchooser) ## License This project is licensed under GPL-3.0-or-later. See [LICENSE](LICENSE).