

Prusa lcd reader
Connects to Prusa MK3S or similar and sends LCD contents to Home Assistant.
- Size
- 45.1 × 41.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 23
- Nets
- 51
- Pads
- 112
- Tracks, vias
- 164, 13
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 23 Mar 2023
- Updated
- 24 Mar 2023
Overview
Prusa lcd reader is an open-source printed circuit board by the-ress, from the the-ress/prusa-lcd-reader repository on GitHub, published under the MIT licence. It is a 2-layer board of 45.1 × 41.3 mm with 23 parts on 51 nets, routed with 164 tracks and 13 vias.
It is built around the ESP32-WROOM-32 and BCR108. Its parts include 7 resistors, 6 transistors, 4 capacitors, 3 connectors and 2 ICs. It belongs with the lEDs and displays and home automation and IoT boards and the ESP32 boards of this library.
Main components
2ESP32-WROOM-32
SMD,18x25.5mm-40℃~+85℃ -98dBm 2.4GHz 2.7V~3.6V 20dBm Bluetooth4.2 ESP32-DOWDQ6 UART、SDIO、SPI、I2C、GPIO、PWM、ADC、DAC SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesBCR108
SOT-231.1V@5mA,0.3V 100mA 2.86kΩ 200mW 250MHz 26 300mV@5mA,0.25mA 500mV@100uA,5V 80 SOT-23 Digital Transistors ROHSTECH PUBLICDigital Transistors
README
README.mdPrusa LCD Reader
Connects to flat ribbon cable no. 1 of Prusa MK3S or similar, listens to LCD communication, and sends the text to Home Assistant.
How it looks
Preparing the printer
Get a 10-pin IDC connector and carefully attach it to flat ribbon cable no. 1, approximately where you want the device to go. Make sure the orientation matches the other connectors.
Manufacturing notes
The board design doesn't rely on plated through-holes for the headers. (It still needs some vias though.)
If you have the board manufactured profesionally, add some vias under pad 39 of the ESP for better thermal performance.
Components
- ESP32-WROOM-32
- voltage regulator 5V to 3.3V - SOT-233-3 footprint
- 6 NPN transistors (to protect GPIO from 5V signal) - SOT-23-3 footprint
- various resistors and capacitors - 0805 footprint
- 10-pin IDC connector header
- a reset button (optional)
- additional pin headers for the initial flashing (optional if you can bodge the connection without them)
Sample ESPHome configuration
external_components:
- source: github://the-ress/prusa-lcd-reader@main
components:
- prusa_lcd
prusa_lcd:
data_pins:
- GPIO21
- GPIO17
- GPIO22
- GPIO16
enable_pin: GPIO19
rs_pin: GPIO18
text_sensors:
- name: "Line 1"
- name: "Line 2"
- name: "Line 3"
- name: "Line 4"Sample Lovelace card
type: markdown
content: |-
```
{{ states('sensor.printer_lcd_line_1') }}
{{ states('sensor.printer_lcd_line_2') }}
{{ states('sensor.printer_lcd_line_3') }}
{{ states('sensor.printer_lcd_line_4') }}
```Resources
- Decoder code adapted from https://github.com/fsalomon/HD44780-decoder/
- Special characters mapping: https://github.com/prusa3d/Prusa-Firmware/blob/MK3/Firmware/lcd.h#L199
- LCD board docs: https://reprap.org/wiki/RepRapDiscount_Smart_Controller
- Printer main board schematic: https://github.com/ultimachine/Einsy-Rambo/blob/1.1a/board/Project%20Outputs/Schematic%20Prints_Einsy%20Rambo_1.1a.PDF
Parts
23| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 4K7 | Resistor_SMD:R_0805_2012Metric | R2, R3, R4, R5, R6, R7 |
| 6 | BCR108 | Package_TO_SOT_SMD_AKL:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 2 | 100 nF | Capacitor_SMD:C_0805_2012Metric | C1, C3 |
| 1 | 1 uF | Capacitor_SMD:C_0805_2012Metric | C4 |
| 1 | 10 uF | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | 10K | Resistor_SMD:R_0805_2012Metric | R1 |
| 1 | Conn_02x05_Odd_Even | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | J1 |
| 1 | ESP32-WROOM-32 | RF_Module:ESP32-WROOM-32 | U1 |
| 1 | FLASH | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3 |
| 1 | FLASH | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2 |
| 1 | NCP1117-3.3_SOT223 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U2 |
| 1 | SW RESET | Tereza_custom:SW_Push_TD-03XA-T | SW1 |
Similar boards
- 2 layers138.4 × 51.4 mm

- 2 layers24.1 × 36.2 mm

Esp32miniBT
asterics/esp32_mouse_keyboard
ESP32 implementation for HID over GATT Keyboard and Mouse (Bluetooth Low Energy). Including serial API for external modules (similar to Adafruit EZKey HID)
28 parts911GPL-3.0 - 4 layers99.6 × 76.2 mm

- 4 layers46.8 × 34.8 mm

SmartWatch V4
Bellafaire/ESP32-Smart-Watch
An open source smartwatch based on the ESP32 compatible with the Arduino IDE.
74 parts258MIT - 2 layers90 × 76.5 mm

- 2 layers57.2 × 35.1 mm

- 2 layers85 × 56 mm

- 2 layers

Smp7c
likeablob/slow-movie-player-7c
Yet another "Slow Movie Player" implementation with 7-color E-Paper module and ESP32.
18 parts51MIT
Questions
How big is the Prusa lcd reader PCB?
It measures 45.1 × 41.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Prusa lcd reader use?
23 parts, built around the ESP32-WROOM-32 and BCR108. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Prusa lcd reader KiCad files?
From the the-ress/prusa-lcd-reader repository on GitHub, at the commit this page was made from: the board is kicad/prusa-lcd-reader.kicad_pcb and its schematic kicad/prusa-lcd-reader.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Prusa lcd reader design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).





