MC6847digitizer - c0pperdragon/LumaCode GitHub Wiki
The MC6847digitizer can be used to modify computers with a MC6847 or MC6847T1 video chip. This board passively listens to the input signals going into the chip and creates a lumacode signal suitable for pixel-perfect upscaling to HDMI. Upscaling can be done with either an RGBtoHDMI device or maybe other upscalers compatible with this specific signal.
Compatibility
There is a wide range of computers that use the MC6847 in very different ways. This board is designed to work with all of them, but some initial incompatibilities can not be ruled out for any given machine. Specifically the way in which PAL systems make the chip generate a 50 Hz signal could be problematic.
Machines already reported working:
- Coco I, II, IIb)
- MC-10
- Laser 310
Mod kit contents
The mod kit contains the FPGA board, a length of two-wire cable and a black RCA jack. For machines that have an existing RF modulator, I recommend to re-purpose its output jack for lumacode. Otherwise the black RCA jack can be installed somewhere in the case.
Installation
It is impossible to give instructions for all possible machines, so you need to use your own judgement on how to do it. Nevertheless, I can provide some pictures on how the installation looks in my Laser 310:
Solder to underside of the video chip
When placing the board make sure to properly align the notch mark with the notch on the video chip. If your main board has exposed contacts in this place, use some isolation tape to prevent short circuits. You only need to add solder to the pin holes that are inside the box markings.
Set to MC6847T1 compatibility
If your video chip happens to be a MC6847T1, you need to close the solder jumper JP1. This makes the MC6847digitizer to use the input signals in a slightly different way (mainly reversing data bits 0 - 5) and also to support some additional features of this chip, like having a different text font with support for lowercase letters.
Repurpose the RF output jack
Before reusing the jack, make sure that all contacts of the inner conductor to the original circuitry are propery disconnected. Sometimes this can be easily done by just cutting a wire. Connect the LUM pad of the MC6847 digitizer to the inner conductor and the GND pad to some convenient GND point nearby.
RGBtoHDMI profile
As long as the official (or beta) firmware of the RGBtoHDMI does not come with a profile for this machine, you can add these files to your installation on the microSD card:
Just copy these files on top of a regular install.
It is probably impossible to chose a color palette that suits every taste. I just used the colors from this wikipedia article (https://en.wikipedia.org/wiki/List_of_8-bit_computer_hardware_graphics) as a base and slighty changed the brightness until it looked fine to me.
Details on color encoding
For every pixel of the MC6847, the Lumacode signal contains 2 samples. With 4 luma levels per sample this gives 16 possible combinations of which 12 are used for colors of the MC6847, and one combination is used during the horizontal and vertical blanking.
| sample 1 | sample 2 | color | RGB values used by RGBtoHDMI |
|---|---|---|---|
| 0 | 0 | blanking | 000000 |
| 0 | 1 | black | 000000 |
| 0 | 2 | red | 9A3236 |
| 0 | 3 | light orange | FFB700 |
| 1 | 0 | dark orange | 6B2700 |
| 1 | 1 | dark green | 0D3A06 |
| 1 | 2 | blue | 4C3AB4 |
| 1 | 3 | buff | BFC8AD |
| 2 | 0 | orange | D47F00 |
| 2 | 1 | magenta | C84EF0 |
| 2 | 2 | cyan | 41AF71 |
| 2 | 3 | ||
| 3 | 0 | green | 30D200 |
| 3 | 1 | yellow | C1E500 |
| 3 | 2 | ||
| 3 | 3 |