Upgrading LeCroy WaveRunner 104MXi

I bought a used LeCroy WaveRunner 104MXi oscilloscope recently, and have been working on upgrading it to more recent components (the scope itself was made in 2008). The PC-based architecture of the scope, using mostly standard components, makes a lot of the upgrades possible, and many of these upgrades should be applicable to the entire range of WaveRunner Xi/MXi and WaveSurfer Xs/MXs scopes as well. Lots of credit go to the many great threads on the EEVblog forums and the LeCroy owners mailing list.


I ordered a Pentium M 765 (2.1GHz) Dothan CPU that worked perfectly. This CPU is the fastest you can get for the default 400MHz FSB. There are reports of the MX855LC motherboard not supporting 90nm Dothan CPUs, but my scope came with BIOS version 1.0.3A from October 2007, which does support Dothan.

There is a jumper on the motherboard that can enable 533MHz FSB, in which case a Pentium M 780 (2.26GHz) CPU may be possible, but I haven't tried this option.


I ordered one stick of 1GB PC3200 CAS3 DDR DIMM, and it worked fine. 1GB is the highest capacity for these DDR memories. Note that the motherboard only supports PC2700, so getting the fastest PC3200 RAM is not crucial. Also, for the SSD upgrades described below, I would use a RAM stick with integrated heat spreader, because the SSD parts will touch the RAM stick, and the heat spreader acts as a physical barrier.


I ordered a 150GB SATA SSD, and used a PATA-to-SATA bridge to connect to the motherboard. Because the long PATA cable that came with the scope is a 44-conductor cable, it's only rated to UDMA-2, or ATA/33. In order to achieve faster transfer rates, I decided to put the SATA-to-PATA bridge at the motherboard end, and use SATA cables for the connection to the SSD. This required the following parts:

  • PATA-to-SATA host-side bridge: there are two types of PATA-to-SATA bridges you can buy, host-side and device-side, with the device-side type being more common. The correct bridge should have a male 44-pin connector:
    PATA-to-SATA host-side bridge
  • Short PATA cable: you can buy a short 44-conductor cable, or make one yourself by carefully uncrimping the connector on one end of the scope's original PATA cable, then cutting the cable to about 1“, and then recrimping that end using the saved connector.
  • SATA data & power extension cable: the cable should consist of a flat SATA cable with 4 separate power wires. I found a 12” cable is not quite long enough, and a 19“ one works a lot better:
    SATA extension cable

In order for the cable and bridge combination to fit inside the space between the power supply and the RAM stick, the SATA connector on the bridge board may need to be gently bent downwards:
Bridge and cable

Once connected to the motherboard, the SATA cable should now lie across the top, with the ATX power cable and RAM underneath. With this setup, I also saw some possible interference from the ATX power cable, which made the SATA bridge stop functioning intermittently; adding a shield made from aluminum foil (and lots of Kapton tape) seemed to fix the issue:
SATA bridge with shield

At this point, I would suggest putting everything back together and installing Windows 7 on the SSD. You might notice that the SSD is still running at the slower ATA/33 speed. How come? Turns out there is a pin on the PATA connector that tells the motherboard if the PATA cable is 40/44-conductor or 80-conductor. For ATA/66 and ATA/100 support, we need to modify the PATA-to-SATA bridge to make the motherboard think we have a 80-conductor cable. The modification involves shorting pin 34 (DMA66_Detect) and pin 30 (GND) together on the PATA connector:
Bridge modification

But why not do this modification before installing Windows? I've noticed that for some reason, Windows has trouble booting up when running at ATA/100, which is the default speed once we make the modification. To make Windows boot reliably, we need to first limit the speed to ATA/66, which can be done via a registry setting after installing Windows but before making the modification. The limit can be set by importing this registry file:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE\IDEChannel\4&1a057fde&0&0\Device Parameters\Target0]

In summary, the most reliable procedure for using the SSD at ATA/66 speed is,

  1. Install unmodified SATA bridge
  2. Install Windows 7
  3. Limit speed to ATA/66 via registry inside Windows
  4. Take out SATA bridge, make modification, and replace it

After these steps, Windows should be running reliably at UDMA-4 or ATA/66. Although complicated, I think it's worth it for getting some extra speed out of the SSD. My finished setup looks like this:
SATA setup


I ordered an NEC NL10276BC20-18D LCD assembly in order to upgrade the LCD to 1024×768 resolution. I chose that particular model because it was the cheapest on eBay at the time, and its connector is compatible with the original LVDS connector in the scope. However, a better choice would be NL10276BC20-04, which has the same mounting bracket as the original LCD assembly in the scope, and would make upgrading a breeze.

In order to use NL10276BC20-18D, I had to basically disassemble the LCD down to the bare panel itself, and combine it with almost everything else (mounting bracket, CCFL backlight, etc.) from the original assembly. It wasn't pretty but it worked at the end.

The original LCD assembly used a converter board to convert LVDS to parallel signals at the panel. The new LCD panel has an LVDS connector already, so the converter board is no longer needed. However, the pins on the LVDS cable have to be rearranged somewhat to match the pinout of the new LCD panel:

Pin number Original pinout (pin 1 on right)
Original LVDS pinout
New pinout (pin 1 on right)
New LVDS pinout
9 D2+ D2+
10 D2− D2−
11 D1+ GND
12 D1− D1+
13 GND D1−
14 D0+ GND
15 D0− D0+
16 GND D0−
17 GND
18 GND

As seen from the photos above, to make the new pinout, I moved:

  • Pin 1 wire to pin 18
  • Pin 2 wire to pin 11
  • Pin 11-16 wires to pins 12-17 (i.e. move down by one)

The new LCD panel should work at this point. To fix the LCD image during boot-up, make sure to change the LCD type to 1024×768 in the BIOS settings.


I didnt touch the PSU at all because it's working fine on my scope. However, if (when?) it does fail, I think I have a pretty good idea of how to design a replacement. I will document the pinouts of the various power connectors that come out of the PSU at a later time.

Windows 7

Windows 7 is the latest version of Windows that the motherboard supports, due to its Intel i82855GME chipset. When installing Windows, make sure you create two partitions: the “SYSTEM” partition (C:) where Windows is installed, and the “USERDATA” partition (D:). Windows 7 almost works out-of-the-box, and I only had to install a few extra drivers:

  • For graphics, I've found version of the Intel XDDM driver to work best. The driver can be found online under the file name “Display_Intel_8265G”. The driver does cause a BSoD under default settings during boot-up; the solution is to check the “OS boot information” option inside the “msconfig” program, as documented elsewhere.
  • For audio, the latest Realtek AC'97 driver seems to work fine.

For Windows Update to work, the Windows Update Agent must first be updated to the latest version (see Microsoft KB Article 949104).

To install the LeCroy software, first download and run “xstreamdsodrivers.exe” from the LeCroy support site to install the driver for the acquisition board. Then download and run “xstreamdsoinstaller_8.6.2.10.exe”, which seems to be the latest available XStream software for x86. Before running the XStream software, make sure to restore the “Calibration” folder under the D: drive, and make sure the drive is renamed to “USERDATA”, in order for the software to find it.

The LeCroy software comes with a Windows service called “lectouchscreenctrl.exe” that lets you use the scope's touchscreen inside Windows. Unfortunately, this service is an “interactive service” and is not supported by Windows 7. To make the touchscreen work, I disabled the service, and wrote a custom driver that exposes the front panel USB HID device as a native Windows touch device. Currently I'm still working out some bugs in the driver, but hopefully I will be able to share it soon.


It's a good idea to backup some of the data on the scope before performing upgrades:

For the scope's original HDD, I used the free version of Macrium Reflect to backup all of the HDD. The important folder to backup is the “Calibration” folder under the USERDATA (D:) drive. For a used scope, you can also read the SMART data from the HDD to see roughly how much the scope was used in its prior life.

To backup the DS2433 EEPROM on the PCI board, I made a UART-based reader following Maxim tutorial 214 (Using a UART to Implement a 1-Wire Bus Master). My version uses an Adafruit USB to TTL serial cable with a 1kΩ resistor:
UART-based 1-wire reader

In my case, the yellow wire is DATA and the orange wire is GND. On the PCI board, there are existing vias near the EEPROM that I used to hold down the pins, without the need to solder or desolder anything. On the PC side, I used the Maxim OneWireViewer to read the data.

Final thoughts

It's been pretty time-consuming but also very rewarding to upgrade this scope over the last month or so. And over time, I got pretty good at taking it apart. If it's your first time disassembling the scope, make sure to take lots of pictures along the way, and also take pictures of screws so you know which screw goes where when you re-assemble it later. Obviously take ESD precautions, and wear gloves if possible to avoid leaving skin residues on the sensitive analog PCBs, which could affect their performance. Avoid taking apart the BNC front-end board and the acquisition board! You don't need to take those two apart for any of the upgrades, and it can be a pain to put them back together (I ended up shearing off one of the screws when putting them back 8-O Lesson learned!).