Modded a Philips BDM4065UC screen to be flicker free. Bad idea? - Page 1
Forum section: electronics / projects

author: danny4h
author_rank: Newbie
timestamp: June 14, 2017, 11:11:22 am
content: Hi guysI've just modded my Philips BDM4065UC pc monitor to increase the PWM frequency for the backlight from 240 Hz to 1.6 kHz. The mod is easy, all you need is an Arduino, a PCA9685 PWM driver and some wires. If you do it the smart way (not like I did ;-)) you won't need to remove any internal tape so you don't void your warranty.Here's a quick explanation: The logic board sends a 240 Hz PWM signal with a duty cycle according to the OSD setting to the power supply which delivers power to the LEDs with the same frequency / duty cycle as it receives from the logic board.Now all I did was feed the PWM signal from the logic board to an Arduino, calculate the duty cycle, and set it in the PCA9685, which now controls the power supply for the backlight. Result is great so far, no visible flicker anymore!Now my question before I make it permanent: Without knowing anything about the backlight power supply, do you think that this is safe? Could it reduce the lifespan of some components? So far the magic smoke hasn't escapedIf you have questions don't hesitate to ask!DannyIf you want to do a similar mod please note that the PWM input in the power supply is only 3.3 V, not 5 V!Here's the prototype-level code, you'll need the Adafruit library for it to work:https://github.com/adafruit/Adafruit-PWM-Servo-Driver-LibraryI used Ben Ripley's code to detect the PWM:http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/Code:#include <Wire.h>#include <Adafruit_PWMServoDriver.h>// called this way, it uses the default address 0x40Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();// you can also call it with a different address you want//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);volatile int pwm_value = 0;volatile int prev_time = 0;int pwmnum = 0;void setup() {Serial.begin(115200);Serial.println("Starting");attachInterrupt(0, rising, RISING);pwm.begin();pwm.setPWMFreq(1600); // This is the maximum PWM frequency}void loop() {if (pwm_value >= 3940){pwm.setPWM(pwmnum, 0, 4095);}else{pwm.setPWM(pwmnum, 0, pwm_value);}}void rising() {attachInterrupt(0, falling, FALLING);prev_time = micros();}void falling() {attachInterrupt(0, rising, RISING);pwm_value = micros() - prev_time;Serial.println(pwm_value);}

author: jargon
author_rank: Newbie
timestamp: March 12, 2021, 09:19:18 am
content: I am on a hunt for 40" monitor so I noticed your post, as there are no 40" UHD monitors available nowadays.How did you flicker fix fare, and could share details about the connections you made to the monitor. As I am considering of getting the same model as used and using your mod to fix the flickering.Jarno

author: coppice
author_rank: Super Contributor
timestamp: March 12, 2021, 01:04:25 pm
content: Quote from: jargon on March 12, 2021, 09:19:18 amThere don't seem to be 40" screens of any type any more. 43" seems to be size for TVs now, but that is starting to get a little large for a desktop monitor. I just found someone on Amazon has stock of the BDM4065UC, at only 1999 pounds.

author: NiHaoMike
author_rank: Super Contributor
timestamp: March 12, 2021, 01:29:37 pm
content: I have been using a 50" 4K Seiki as my main monitor for the last 5 years, it's really just like 4x 25" 1080p in a 2x2 grid but without the borders in between.240Hz is more or less flicker free unless you're trying to film the screen, remember that at one time, a mere 60Hz was just acceptable. Most likely the PWM is carefully timed so that the pixel transitions happen when the backlight is off in order to reduce motion blur.