Firmware upgrade using Linux tool, requires no hardware

Adjusting BENQ Blur Reduction and DyAc (Dynamic Acceleration) including Blur Busters Strobe Utility. Supports most BenQ/Zowie Z-Series monitors (XL2411, XL2420, XL2720, XL2735, XL2540, XL2546)
Post Reply
pipomolo42
Posts: 30
Joined: 24 Apr 2014, 06:08

Re: DIY Build ISP Questions [Build your own upgrader dongle!

Post by pipomolo42 » 27 Apr 2014, 18:17

Good news, everyone!

I just managed to flash the V2 firmware on my XL2411Z, using only a VGA cable and some code I wrote.

It only requires a PC or laptop running GNU/Linux, and a video chip that exposes its I2C bus (the Intel graphic chip icluded in most laptops and recent CPUs does).

It's all available here : http://boeglin.org/blog/index.php?entry ... -free(dom)

I'll clean it up a bit soon, but currently, you might have to modify one line to match your I2C device : line 73 of mstarddc_spi.c, the "/dev/i2c-1" device has to match the one corresponding to your VGA port (you get this info using "i2cdetect -l").

As always, use it at your own risk.

Gymnae
Posts: 6
Joined: 26 Apr 2014, 05:03

Re: DIY Build ISP Questions [Build your own upgrader dongle!

Post by Gymnae » 28 Apr 2014, 16:14

pipomolo42 wrote:Good news, everyone!

I just managed to flash the V2 firmware on my XL2411Z, using only a VGA cable and some code I wrote.

It only requires a PC or laptop running GNU/Linux, and a video chip that exposes its I2C bus (the Intel graphic chip icluded in most laptops and recent CPUs does).

It's all available here : http://boeglin.org/blog/index.php?entry ... -free(dom)

I'll clean it up a bit soon, but currently, you might have to modify one line to match your I2C device : line 73 of mstarddc_spi.c, the "/dev/i2c-1" device has to match the one corresponding to your VGA port (you get this info using "i2cdetect -l").

As always, use it at your own risk.
This man right here is a Genius!
I followed his blog entry and it worked.

First we tried it via a Raspberry Pi and its exposed GPIO ports, but it didn't work. Then we created a live linux USB stick, booted, installed the required packages and flashed. I had to disconnect my discrete GPU, but that is ok. flashing happened through a normale VGA cable!

This procedure is most likely for those who don't mind apt-get and bash, but it does work.

pipomolo42
Posts: 30
Joined: 24 Apr 2014, 06:08

Firmware upgrade using Linux tool, requires no hardware

Post by pipomolo42 » 04 May 2014, 10:31

Hi,

As I announced in http://forums.blurbusters.com/viewtopic ... 5508#p5508, I have managed to write a driver allowing me to reflash my XL2411Z without requiring me to buy or build an adapter.

More details are available in the thread I mentioned above, and the patch and procedure are available at http://boeglin.org/blog/index.php?entry ... -free(dom).

So far, at least one other forum member (Gymnae) has also managed to use the tool to reflash his screen.

Feel free to ask questions or post comments about this, and I'll try to provide support.
Last edited by pipomolo42 on 04 May 2014, 10:49, edited 1 time in total.

pipomolo42
Posts: 30
Joined: 24 Apr 2014, 06:08

Re: Firmware upgrade using Linux tool, requires no hardware

Post by pipomolo42 » 04 May 2014, 10:47

mrz121 wrote:Hi. I already sent you a mail because im having a problem with flashrom.
user@debian:~/Desktop/flashrom$ sudo ./flashrom -p mstarddc_spi
flashrom v0.9.7-r1782 on Linux 3.2.0-4-486 (i686)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
mstarddc_spi_init: open errno 2
Error: Programmer initialization failed.
user@debian:~/Desktop/flashrom$ 
Well errno 2 is the code for "No such file or directory". My first guess is that you didn't load the i2c-dev driver.

Can you do a "sudo modprobe i2c-dev", then a "lsmod | grep i2c" to make sure that the i2c drivers are loaded, and that your graphics driver is registered to i2c?

Also, you might end up with a different set of i2c buses that me, so you should use the updated patch, that allows to define which bus and address to use on the command line.

If all is loaded properly, you should get something like this:
To list I2C buses, use:

Code: Select all

alex@hadaly:~$ sudo i2cdetect -l
i2c-0	i2c       	i915 gmbus ssc                  	I2C adapter
i2c-1	i2c       	i915 gmbus vga                  	I2C adapter
i2c-2	i2c       	i915 gmbus panel                	I2C adapter
i2c-3	i2c       	i915 gmbus dpc                  	I2C adapter
i2c-4	i2c       	i915 gmbus dpb                  	I2C adapter
i2c-5	i2c       	i915 gmbus dpd                  	I2C adapter
i2c-6	i2c       	DPDDC-B                         	I2C adapter
To list devices on one i2c bus (the name of the bus might help you find the right one), use:

Code: Select all

alex@hadaly:~$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- 59 -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
With a BenQ screen attached via VGA, you should at least have numbers 27, 49, 50, 59. When using DVI, you'll also have 4a and 4b.

Then, to make sure it's the correct bus, you can dump the EDID info from the screen, which is at address 0x50:

Code: Select all

alex@hadaly:~$ sudo i2cdump -r 0-127 1 0x50
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1, address 0x50, mode byte
Probe range limited to 0x00-0x7f.
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 ff ff ff ff ff ff 00 09 d1 30 7f 45 54 00 00    ........??0?ET..
10: 03 18 01 03 0e 35 1e 78 2e 9d e1 a6 54 54 9f 26    ?????5?x.???TT?&
20: 0d 50 54 a5 6b 80 d1 c0 45 7c 61 7c 81 80 81 bc    ?PT?k???E|a|????
30: XX XX XX 7c 01 01 02 3a 80 18 71 38 2d 40 58 2c    XXX|???:??q8-@X,
40: 45 00 13 2a 21 00 00 1e 00 00 00 ff 00 54 31 45    E.?*!..?.....T1E
50: 30 30 38 30 31 53 4c 30 0a 20 00 00 00 fd 00 18    00801SL0? ...?.?
60: 78 0f 87 15 00 0a 20 20 20 20 20 20 00 00 00 fc    x???.?      ...?
70: 00 42 65 6e 51 20 58 4c 32 34 31 31 5a 0a 00 c1    .BenQ XL2411Z?.?

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Chief Blur Buster » 04 May 2014, 11:08

pipomolo42 wrote:Hi,
As I announced in http://forums.blurbusters.com/viewtopic ... 5508#p5508, I have managed to write a driver allowing me to reflash my XL2411Z without requiring me to buy or build an adapter.
Congratulations!
This is pretty neat, that you were able to upgrade your Z-Series monitor with absolutely no external hardware.

If it could be done under Linux, then maybe it could be done under Windows too! ToastyX seemed able to do direct control of the I2C line under Windows (since he needed it to unlock the LightBoost protocol), so theoretically a Windows-based upgrader could be written by a programmer! I'm going to add a blog entry about this as this is of great interest to Z-Series monitor owners.

The procedure you illustrate is great for a geek, but would be beyond the ability of many users. However, this proof shows that it can be done without using any external hardware (MSTAR ISP or parallel port adaptor), if someone wrote a custom firmware upgrader utility for BENQ Z-Series, perhaps as special Linux boot disk.

For readers reading this, here are the system pre-requisites:
- Linux system
- ATI/Intel open source Linux driver
- Direct VGA cable connection from graphics card to Z-series monitor in standby mode
- Second display for viewing the screen (while Z-Series is put in standby mode)

What we now need is an enterprising user to make this easy. We need a bootable ISO image (for CD or USB thumbdrive) that automatically boots to Linux and runs a shell script to upgrade a Z-Series monitor.
Automatically detect pre-requisites, and dispay some common error messages ("unsupported graphics card", "monitor must be in standby mode", etc).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

RustinSpencerCohle
Posts: 25
Joined: 03 May 2014, 12:54

Re: Firmware upgrade using Linux tool, requires no hardware

Post by RustinSpencerCohle » 04 May 2014, 11:14

first off: thank you very much for your efforts!

so I'm going to try it. I have got a laptop with internal intel based graphics.
I just installed Lubuntu (is lubuntu ok?), I know I could have used a LIVE CD but I wanted it to be installed ^^

then how is the order:

connecting the BenQ to the VGA port of the laptop but not activate the external display on the laptop- so the BenQ will remain in standby when connected? Or do I have to activate the external display on the laptop and set the benq to hdmi or dvi- so it will remain in standby mode? (I got that right that it has to be in standby?)

then open console and execute your script, after checking the internet connection. (and in my case I have to use the ip because else I dont find your page with my connection here :/ but that will not be the problem.)

is that it? are there any other precautions to be made??

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Chief Blur Buster » 04 May 2014, 11:38

This thread is now getting coverage on BlurBusters.com
Linux can upgrade BENQ Z-Series to V2 (no hardware needed!)
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

pipomolo42
Posts: 30
Joined: 24 Apr 2014, 06:08

Re: Firmware upgrade using Linux tool, requires no hardware

Post by pipomolo42 » 04 May 2014, 11:58

RustinSpencerCohle wrote:connecting the BenQ to the VGA port of the laptop but not activate the external display on the laptop- so the BenQ will remain in standby when connected? Or do I have to activate the external display on the laptop and set the benq to hdmi or dvi- so it will remain in standby mode? (I got that right that it has to be in standby?)
You don't need t activate the external display for it to be detected, and actually, it even seem to work when the screen is off. But I would still suggest to connect the screen using a VGA cable, and not activate the output, as it is the setup that was described for the MSTAR ISP tool, it is probably safer to stay as close as possible to a known working procedure.
then open console and execute your script
is that it? are there any other precautions to be made??
Well, I wouldn't call it a "script", it's just the set of commands you'll need. And you should definitely make sure you use the correct options (for device, address and firmware), and not run it blindly.

I would suggest you first detect and identify the device and address, then attempt to read the firmware, and you should only proceed with flashing once everything looks good. Think of this operation as flashing a BIOS : if it gets interrupted or something goes wrong, your screen might not turn on (or boot) afterwards.
Chief Blur Buster wrote:This thread is now getting coverage on BlurBusters.com
Linux can upgrade BENQ Z-Series to V2 (no hardware needed!)
Wow, tanks for the news :) !

Gymnae
Posts: 6
Joined: 26 Apr 2014, 05:03

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Gymnae » 04 May 2014, 11:59

To elaborate how it worked out for me:

First attempt was via the exposed I2C headers of a raspberry pi, a VGA cable and installing packages in Raspian. But I leave out the details, the connection to the screen was flaky. It recognized the flash-chip, but it didn't work out.

Then I create a live linux stick based on Ubuntu 14.04. Annoying about this is, that you have to manually install missing packages to follow the workflow.
What was really important to find out:
- The flash chip in the 2420z is: W25Q16.V
- Flashing though an ATI AMD R280x was not reliable, it picked up weird signals
- I had to disconnect my discrete GPU and flash via the built in GPU inside the Intel Core i5 CPU, so I had to connect the VGA cable to the mainboard VGA port and make sure in the BIOS that the system boots with the internal GPU as priority
- During the flashing some very very weird colors were shown. I was panicking, but moving the mouse refreshed the screen and it came back
- Be very careful that the right I2C device and port is used, so please follow the technical blog explanation closely

If I was a coder, I'd gladly help to write a script that checks for the the flashchip, warns if a the wrong GPU is used and ensures that the firmware is resized and the correct one.

A raspberri pi approach would be most nice, of course :)

pipomolo42
Posts: 30
Joined: 24 Apr 2014, 06:08

Re: Firmware upgrade using Linux tool, requires no hardware

Post by pipomolo42 » 04 May 2014, 12:17

Here's what you'll need to build the tool, using the Ubuntu 14.04 LTS iso (which also behaves as a live CD):
  • boot in "Try ubuntu" mode (the default), open a terminal (Ctrl + Alt + T);
  • type "sudo gedit /etc/apt/sources.list";
  • an editor opens, add "universe multiverse" at the end of the second line, to it reads "deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse" Save, then exit the editor;
  • type "sudo apt-get update", to update the package list;
  • type "sudo apt-get install i2c-tools subversion libpci-dev" to install required packages.
You can then follow the procedure, building flashrom with the patch, and detecting your I2C buses.
Last edited by pipomolo42 on 07 May 2014, 12:18, edited 1 time in total.

Post Reply