I had some time lately to further enhance my LCD solution. It was more a fun to build than it will be a frequently used feature.
The idea was to solve the brightness setting of the LCD (without opening the scope and changing DIP switch setting) which is possible by varying the duty cycle of the LCD PWM signal.
What I did:
- placed a resistive touch panel in front of LCD
- moved the PWM signal generation from FPGA to an atmega4809 chip/board (installed behind LCD) and program written with Arduino IDE
- Brightness can be set by (controlled by Atmega):
- touching the upper right corner of screen for around 3 seconds
- then you can set the value on the left of screen with the y value
- you can save the value permanently by pressing save button (lower right)
- if not saved the setting is only stored temporarily till the next restart
- setting will disappear after not touching the screen for about 5 seconds
- FPGA code modified:
- removed PWM signal generation
- accept commands and brightness values from Atmega
- necessary logic for brightness setting UI elements to overlay the pixel info received from scope during setting
The code could be further enhanced, but probably I will stop here.
(The resistive touch coordinate reading is not perfect, it has some false readings, but most of the time it works fine. And the UI is a bit ugly...)
https://1drv.ms/v/s!Am44vwFO-Vr3gsB13GQrtzPChORk2w?e=a98BJh