The KuroBox finally gave up the ghost and wouldn't boot after a recent Debian update. I didn't have the will to go through rebuilding it from scratch again, so invested in something a bit more modern. Something that has a GUI output even when you screw up a kernel upgrade! I'd had my eye on a Atom/ION system for a while and ended up getting a Zotac HD-ID11.
NB - you could fry both your television and your PC doing any of this. Be careful, check, check and triple check everything before plugging it in. That said I haven't had any problems for several months now, but check all your connections and soldering for shorts before plugging it all together.
Update 17/10/2012: some more details in a follow up post.
HDMI into SCART doesn't go ∞
Only having an old CRT TV means that connection options are pretty limited, with the only useful once being SCART. The TV does accept RGB, which makes life easier. You may think that the easy option would be to get a new TV, but that's not nearly as much fun 😉
All the Atom/ION boxes have generally HDMI and DVI/VGA outputs. In the case of the HD-ID11, it has HDMI and DVI connections.
DVI, VGA and SCART ∞
DVI helpfully features VGA backwards compatibility and there are several posts and pages out there talking about creating a VGA to SCART cable:
Armed with that information and some pinout information for DVI and SCART:
It's pretty easy to come up with a DVI to SCART wiring diagram on the basis of using the VGA signals from the DVI connector.
Building the converter ∞
DVI cables have a lot of very small pins, so my recommendation would be to use an existing DVI to VGA lead, slice the VGA end off and make use of the existing wires.
For the circuit and wiring I followed the circuit on the nexusuk site.
RGB and 16:9 signals ∞
SCART sets aside two pins for signalling whether the incoming signal is composite vs. RGB and whether the signal is 4:3 vs. 16:9. We are going to be sending an RGB signal so we need to ensure that the set is expecting this and whether or not you need to signal 4:3 or 16:9 is up to you.
Voltages on pin 16 are interpreted as follows:
0 - 0.4v → composite 1 - 3v → RGB
Voltages on pin 8 are interpreted as follows:
Status & Aspect Ratio up[c] 0–0.4 V → off 5–8 V → 16:9 9.5–12 V → on/4:3
In order to drive these pins we could use a separate external power supply or battery, but it would be vastly preferable to have everything self contained. Luckily pin 14 on the DVI connector has a +5V supply with it's return on pin 15.
This means pin 8 can be directly connected to to the 5v on pin 14 to signal that we want 16:9, but the voltage is too high for pin 16. Enter the LM317 voltage stepper.
LM317 voltage stepper ∞
A very simple voltage stepper circuit using a LM317 is all that is needed to drop our 5V signal to an appropriate level. I decided to aim for 2V as it's right in the middle of the 1V → 3V range expected on pin 16 to signal RGB.
Using the datasheet the formula for computing the output voltage is:
When consulting the table on reuk there are obviously may different combinations that you can choose for getting a voltage in the correct range. There's a pretty useful discussion on whether to use large or small values of resistors on electronics.stackexchange.com.
I decided to aim for a voltage of 2V and used the nearest voltage from the table, which is 2.02V given by R1 = 390, R2 = 240.
I found my original notes from making the cable and it appears I used R1 = 270, R2 = 220, giving a voltage of 2.27V.
The only other headache is getting modelines that work. Searching around the web I managed to find quite a few different modelines:
ModeLine "1024x576" 16.25 1024 1030 1035 1040 576 600 612 625 -hsync -vsync interlace Modeline "650x576pali" 12.50 650 669 728 800 576 580 583 625 -hsync -vsync interlace ModeLine "702x576@25i" 13.5 702 722 785 864 576 581 586 625 interlace -hsync -vsync ModeLine "702x576@25i" 13.5 702 722 785 864 576 581 586 625 interlace -hsync -vsync ModeLine "704x576@25i" 13.5 704 723 786 864 576 581 586 625 interlace -hsync -vsync ModeLine "720x576@25i" 13.5 720 732 795 864 576 581 586 625 interlace -hsync -vsync ModeLine "768x576@25i" 14.75 768 789 858 944 576 581 586 625 interlace -hsync -vsync ModeLine "720x576@50" 27 720 732 795 864 576 581 586 625 -hsync -vsync ModeLine "768x576@50" 29.5 768 789 858 944 576 581 586 625 -hsync -vsync Modeline "720x576pali" 13.88 720 742 808 888 576 580 583 625 -hsync -vsync interlace Modeline "736x575i" 14.16 736 760 824 904 575 580 585 625 interlace -hsync -vsync Modeline "640x480i" 14.16 640 712 776 904 480 532 537 625 interlace -hsync -vsync
The first one seems to work the best, but I do have occasional problems with 4:3 content not displaying very well with XBMC. I've not determined if it's the modeline or an XBMC configuration problem that's causing it - a problem for another rainy day.