# Waveshare 12.48" driver The 12.48" driver lives in a **separate repo** from the main Waveshare e-Paper one — it's at [`waveshareteam/12.48inch-e-paper`](https://github.com/waveshareteam/12.48inch-e-paper). The big `waveshareteam/e-Paper` repo does **not** contain it. ## Install Run this from the project root (`~/Repos/eink/`): ```sh git clone --depth 1 https://github.com/waveshareteam/12.48inch-e-paper.git /tmp/waveshare-12in48 cp /tmp/waveshare-12in48/RaspberryPi/python/lib/epd12in48.py renderer/waveshare/ cp /tmp/waveshare-12in48/RaspberryPi/python/lib/epd12in48b.py renderer/waveshare/ cp /tmp/waveshare-12in48/RaspberryPi/python/lib/epd12in48b_V2.py renderer/waveshare/ cp /tmp/waveshare-12in48/RaspberryPi/python/lib/epdconfig.py renderer/waveshare/ rm -rf /tmp/waveshare-12in48 ``` After copying, `renderer/waveshare/` should look like: ``` renderer/waveshare/ ├── __init__.py # (already present) ├── README.md # (already present, this file) ├── epd12in48.py # B/W variant driver ├── epd12in48b.py # B/W/Red (Module B) original driver ├── epd12in48b_V2.py # B/W/Red (Module B) v2 driver — newer revision └── epdconfig.py # SPI + GPIO abstraction (uses spidev + RPi.GPIO) ``` The renderer (`renderer/render.py`) imports `from waveshare import epd12in48` (B/W) or `from waveshare import epd12in48b` (B/W/Red). For the v2 panel revision, edit `render.py` to import `epd12in48b_V2` instead. ## Why not vendor it from the start? It's vendor code with its own license headers — kept out of git until the user opts in to keep the repo tidy and the license boundary clear. Add it to `.gitignore` if you'd rather pull it fresh on each deploy.