ULAdigitizer (for ZX Spectrum) - c0pperdragon/LumaCode GitHub Wiki

The ULAdigitizer is a small add-on board that can be installed into a ZX Spectrum microcomputer to produce a Lumacode signal. This signal contains all the information of the video screen in a semi-digital form that can be losslessly processed. In conjunction with an RGBtoHDMI upscaler or some other compatible device, this will create a pixel-perfect display.

screenshot

Mod kit contents

The mod kit comes with a short length of 2-lead wire and an RCA jack for lumacode output that can be mounted to the case. Due to the space constraints inside the ZX Spectrum, this mod requires soldering and you may need to drill a hole in the case if you want to use the provided RCA jack.

kit

Installation

The mod board needs to be installed on the underside of the ZX Spectrum main board with indivdual wires from some of the solder poins of the ULA socket to the corresponding solder pads on the mod board. This can be done easiest by using a longer wire that is cut after soldering each of the connections. The two pads denoted GND and LUM provide the lumacode signal that needs to be wired up to the output jack (GND goes to te outer shielding, LUM to the inner wire).

installation

The provided output jack can be installed into the case by making only a half-hole in the top and in the bottom case parts. In this way you can still remove the main board from the case even with the RCA jack soldered to it. Instead of using the extra RCA jack, you can also repurpose the original RF output jack to leave the computer unchanged at the outside (not shown here).

RCA

Details on color encoding

When connecting the new "lumacode" signal to a normal composite or mono video monitor or TV, you will get a grayscale picture where instead of each original pixel, you get two sub-pixels in one of 4 gray levels. I designed the encoding in a way that the average luminance of both sub-pixels roughly resembles the luminance of the original picture.

first half-pixel second half-pixel ZX Spectrum color color name average luminance
0 0 0 black 0
0 1 8 black 2 0,166666667
0 2 9 light blue 0,333333333
0 3 3 dark purple 0,5
1 0 1 dark blue 0,166666667
1 1 2 dark red 0,333333333
1 2 11 light purple 0,5
1 3 5 dark cyan 0,666666667
2 0 10 light red 0,333333333
2 1 4 dark green 0,5
2 2 13 light cyan 0,666666667
2 3 14 light yellow 0,833333333
3 0 12 light green 0,5
3 1 6 dark yellow 0,666666667
3 2 7 gray 0,833333333
3 3 15 white 1