Fluke 8840A Multimeter LCD Display Project

Having done it before for my Fluke 8050A multimeter, I thought I might “do it again” on a Fluke 8840A multimeter that I recently purchased from eBay. It seems in good working condition, but as with many of these instruments, the VFD display is showing signs of wear and has some uneven brightness.

So the thought is to replace the display, using a similar approach as previously done and based on the lessons learned from that experience. The “new” meter (or at least new addition to my test equipment) is a 5.5 digit meter, probably more than I possibly could need.. but that's not stopped me before!

Wishlist / Requirements

As before, I have a desire to do as little “damage” or permanent changes to the instrument as possible. Now, there's not much I can do about removing the VFD display as a mechanical change, but even that could be reversible in theory, and if a new display could be found.

  • On this meter, the mode the meter is in, as well as the scale can be determined from the annunciators on the display, rather than needing to monitor switches
  • Can monitor the output of the keyboard/display controller chip to grab digit segments, annunciators and digit strobe signals.
  • The output of the controller is a 3 bit digit counter. Configure a GPIO pin to interrupt on the falling and rising edge of the low-order digit counter. Capture all of the digit bits and decode the current digit being selected.
  • Warning - there is some blanking done of the digit segments as the display digit being selected changes. Need to either delay a fixed period of time or maybe abort delay early if non-blank digit data is observed
  • One thing I really would like to have is some ability to do data logging or remote access to the meter. My instrument does have the GPIB interface installed… but that's the only thing on my bench that does and my MacBook Pro hardly sports a big clunky GPIB/IEEE-488 parallel interface. So how about Wi-Fi or other network connectivity to at least push measurements out?
  • Bright, colorful display!
  • Minimum / maximum measurements, maybe relative display measurement as well. This has turned out to be handy to have on my Fluke 8050A conversion, and extending that capability here would also be nice to have.
  • Audio annunciator/beeper/speaker of some sort
  • See if there's a way to determine if the front or rear inputs are selected - does not appear to be possible based on a cursory examination of the schematic.

Hardware Implementation

Likely reuse ILI9341-based display as from previous project since the driver interface has been built.

Use a more capable microcontroller with more I/O pins to ease design and enable additional expansion and features. Also have a faster clock speed for more headroom because the incremental cost is minimal. See information about the STM32F407VET6 board that's been selected for this purpose.

Logical Elements and Interconnects

Controller and Display

  • SPI MOSI
  • SPI D/C
  • SPI SEL
  • Backlight PWM signal - +5/3.3 for backlight LED
  • Ground
  • +3.3v for display logic

Controller and Optional ESP32

For possible Ethernet/Bluetooth capability. Could possibly also use to terminate telnet connection as FORTH console. Might want to have jumpers to connect UART1 on STM32F407 to ESP32. Perhaps arrange to have header pins in layout so that external TTL serial console could be connected to either FORTH/UART1 or to ESP32 default UART. Have extra ground pins so that serial connection could be flipped around in same pin order..

  • STM32F407 TXD to ESP32
  • STM32F407 RXD from ESP32
  • reset signal
  • Bootloader Mode (ESP32 GPIO0)
  • possible SPI interface (MOSI, MISO, CLK, SEL)
  • at least 2 additional GPIO pins for interrupt/attention in each direction

See https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection for discussion of ESP32 bootloader pin configuration considerations.

I/O / GPIO pins needed

To access the pins on the 8279, some sort of socket for the 8279 and plug to contact the existing socket will be needed. This might be a daughter card or a 40 pin socket with long pins that wires can be soldered directly to. These are relatively slow TTL level signals, not the Z8 high-frequency bus signals.

See Mouser for a socket with long pins that might be suitable. Carefully soldering small ribbon cable or 30 gauge wire-wrap conductors to these pins might be possible. Alternatively, perhaps mounting it to a very thin PCB to access the signals while allowing enough of the pin to seat into the original socket might work? Datasheet for this socket: 091-259766.pdf

GPIO Pin Signal NameSignal Pin5v? In/Out Notes
+5v 8297-40 Power
GND 8279-20 Ground
SL0 8279-32 Y In Needs to be able to generate interrupt on rising and falling edge
SL1 8279-33 Y In SL0 - SL2 decoded to 8 digit display select lines
SL2 8279-34 Y In
A0 8279-27 Y In DP
A1 8279-26 Y In PS1
A2 8279-25 Y In PS2
A3 8279-24 Y In PS3
B0 8279-31 Y In B0 through B4 are decoded as BCD → 7 segment digit driver
B1 8279-30 Y In
B2 8279-29 Y In
B3 8279-28 Y In
\BD 8279-23 Y In Digit Blanking Signal (connected to 74LS247 Blanking Input
RL0? 8279-38 Y In RL0 - RL6 are the keyboard scan..
RL1? 8279-39 Y In ..input signals
RL2? 8279-1 Y In
RL3? 8279-2 Y In
RL4? 8279-5 Y In
RL5? 8279-6 Y In
RL6? 8279-7 Y In
P37 / GPIB TX U202-4 Y In Serial to GPIO option board - need UART RX
P30 / GPIB RX U202-4 Y In Serial rom GPIO option board - need UART TX

Notes