c0pperdragon / LumaCode

Definition of the "LumaCode" signal standard with reference implementation
59 stars 1 forks source link

Feedback VIC-II-dizer (C64 variant) #3

Closed c0pperdragon closed 2 weeks ago

c0pperdragon commented 11 months ago

Please let us know here about your experiences with the device. Pictures of installation and visual results are appreciated.

emanuelelaface commented 1 month ago

Thank you, I will do some test in that direction and report here.

emanuelelaface commented 1 month ago

Ok @c0pperdragon I did the test you suggested and the issue is in the VICIIdizer itself. The flickering happens also on the directly composite input. Also it shows a kind of corruption that is not exactly a lack of sync, it seems a digital issue. I attach here three videos: one is the VICIIdizer connected to the RGBtoHDMI, the second is the VICIIdizer connected to the composite input and the third is the C64 composite output directly to composite in of the screen where you can see that is stable (my first thought was an issue in the Commodore, of course).

VICIIdizer + RGBtoHDMI https://github.com/c0pperdragon/LumaCode/assets/15322317/1f318575-8a7c-4e52-8bd0-7c07be5c94d5

VICIIdizer + Composite https://github.com/c0pperdragon/LumaCode/assets/15322317/547830d8-a638-440a-8a8f-e24fd9550995

C64 Composite https://github.com/c0pperdragon/LumaCode/assets/15322317/0ea4b37a-80a8-4ffd-bcd0-33ba7bf0cd02

c0pperdragon commented 1 month ago

The issue could be similar to what another user experienced. There the clock generator (some replacement for the MOS 8701) was not powerful enough to drive the VIC-II, the VICIIdizer and an external Ultimate II+ cartridge at the same time. The signal was just a bit to low at times. What clock generator is in your machine? Do you have an external cartridge attached? Do you have an oscilloscope to check the pixel clock signal?

emanuelelaface commented 1 month ago

Interesting. The clock generator is the original 8701, but I have the Ultimate II+ connected, yes. At home I have only a cheap oscilloscope, so I am not sure that I am able to see the pixel clock. Is the 7.88 MHz (I have PAL version) on pin 21 in the VIC? Meanwhile I will try the same without the Ultimate II+ and see if it is stable.

c0pperdragon commented 1 month ago

No, on pin 21 is the PAL subcarrier frequency for color generation. The VICIIdizer uses this only at power-up to determine the VIC-II variant (NTSC or PAL). On pin 22 is the pixel clock which drives the digital part of the VIC-II and in consequence the whole machine.

emanuelelaface commented 1 month ago

After this discussion I opened again my C64 and had a closer look at the board. I noticed that the CT1 trimmer was replaced, maybe it is not set to the proper frequency. So I have to find a better oscilloscope and if I understand correctly I should set the capacitor to see 14.31818 MHz on the pin 8 of the 8701 and consequently 0.985206 MHz on the CPU. I will return to this discussion after I will be able to do these measurements.

It is very possible that if the frequency is not accurately set once the board is warms up it can drift even further and this generates the flickering. I will try to debug this further. It is not a big issue but it is interesting for me to understand better my Commodore. I am not an engineer (I am a physicist) so I am a bit slow on those topics. Thank a lot for your help.

mburgst commented 1 month ago

In the democompo at X'2024 the Demo 13:37 had problems in the flescos part. See the trivia on CSDB:

https://csdb.dk/release/?id=242855&show=trivia#trivia

As it seems there was a problem with a sprite column which was not shown on the bigscreen via the LumaCode->HDMI connection.

I asked Adam to share this also here, maybe he can shed some more light into the problem as far as he could narrow it down.

c0pperdragon commented 1 month ago

Members of Fairlight already notified me about this issue. It is really a very weird combination of circumstances that causes this missing sprite. It took me two days to track down what is happening and how to fix it. From now on all VICIIdizers will ship with a firmware version that is compatible with this effect. Thank you also for taking the time to notify me.

venice1200 commented 1 month ago

Many Thanks to @c0pperdragon for figuring out this weird issue.

How could you make the FW available to the VIC-II Users?

Is this generally possible?

c0pperdragon commented 1 month ago

Updates are only possible by sending me the part for a reflashing. I will do this for the shipping costs alone.

venice1200 commented 1 month ago

Shipping costs to and from you, correct?

All HW Versions can use this update?

c0pperdragon commented 1 month ago

Yes, to both questions. For shipping back from Austria you can choose tracked shipping or untracked. Price depends on your country. For most of Europe it is €8.20 / €11.15.

venice1200 commented 1 month ago

How can I contact you via email directly? Via Tindie?

c0pperdragon commented 1 month ago

Yes, Tindie would be best suited for private messaging. You also get a message history which is convenient.

shinaka commented 1 month ago

I just got my order today - I was curious if anyone has tried installing this on a C64 Reloaded Mk2 from iComp? Since the Reloaded board doesn't have the RF modulator, I was going to make my own cable that's essentially the existing cable, but with a female RCA connector, then let that dangle out of the case (or maybe eventually mount it). Any reason that wouldn't work?

c0pperdragon commented 1 month ago

This should work just fine. Nothing from the original RF modulator is actually used besides the jack for a nice installation. Please let us know how you decided to place the RCA jack.

shinaka commented 3 weeks ago

IMG_0529

This should work just fine. Nothing from the original RF modulator is actually used besides the jack for a nice installation. Please let us know how you decided to place the RCA jack.

Can now confirm it works with the C64 Reloaded Mk2. Had to use some pretty low profile heatsinks on the first half of the vic to get everything to fit, but it's absolutely perfect! The picture is beautiful - I can't believe its all off a single signal wire. I ran the cable out of the power cutout, since the mk2 uses a dc barrel jack, but the new C64C cases still have the boxed cut slot. Used a zip tie on the power switch as a strain relief and it worked great.

Thanks for all you do, @c0pperdragon !

emanuelelaface commented 2 weeks ago

@c0pperdragon I finally had some time to investigate the flickering signal. I went around the VIC with the oscilloscope and my findings are in the attached images.

This signal is from the pin 22, that double frequency is the only strange thing that I can see. vic-22

The input frequency from the 8710 is around 17.8 MHz and arrives on the pin 21 of the VIC vic-21

Then the VIC generates the CPU frequency of 990 kHz (is a PAL version) on pin 17. vic-17

This is the situation when the signal is stable. I will now leave the machine on for couple of hours and see when the signal becomes unstable and do the same check in order to see if some of these signals has issues. If you think I should measure something else, please let me know, I have the computer open now and every measurements is easy to do now.

c0pperdragon commented 2 weeks ago

The really important clock signal is the pixel clock here. With about 4 volt peak-to-peak this looks pretty healthy. This "double" signal you mentioned is an artefact of the uneven pulse durations that are produced by the 8701. But this is well inside the normal behaviour. Yes, please do a comparision of how this looks in case of of the problematic behaviour.

Tomtom-San commented 2 weeks ago

Gestern kam mein Paket an, aber irgendwie will mein VIC-II-Dizer nicht so wie er soll. Sowohl der "Brotkasten" mit der 407er Platine als auch der neuere "Flachmann" mit der 466er Assy zeigen nur ein wirres Muster aus Streifen und Farben. 20240621_200538

c0pperdragon commented 2 weeks ago

Schaut ein bisschen so aus, als ob der RGBtoHDMI nicht richtig eingestellt it. Eventuell ist ein falsches Profil eingestellt? Muss "C64 Lumacode" sein. Wenn das nichts ändert, kannst du vielleicht mal das Lumacode-signal direkt an einen Monitor/TV mit Composite Eingang anschließen? Dann kann man besser sehen, wo der Fehler genau liegt.

emanuelelaface commented 2 weeks ago

@c0pperdragon I did all the possible test, the signals with the clocks are all fine on the VIC, no change at all during the instability. I am now sure that the effect is thermal. I left the commodore open for few hours to see it with the oscilloscope and nothing happened, then I closed it and the effect appeared after one hour of usage. So I decided to re-open the machine and use an heat gun near the VIC and after a minute the instability was evident and if I blow some cold air on top, the flickering disappear the the screen return totally stable. I don't know which other test I can do, I wonder if some soldering on the FPGA board can be not perfect and lose a bit the connection when the temperature increases.

c0pperdragon commented 2 weeks ago

So I am also out of ideas. There must be some specific behaviour of your VIC-II that has a slightly different timing than normal, so the VICIIdizer can not capture the data at the expected time. The obvious thing to do is of course to cure the symptoms by cooling the VIC-II. If you have not done so, adding a heat-sink is always a good idea and if you already did, try a bigger one.

emanuelelaface commented 2 weeks ago

But if the issue is in the VIC, shouldn't I also see the effect on the composite out? Because I see it only on the FPGA borad, on the composite is ok.

c0pperdragon commented 2 weeks ago

The issue would be that the VIC behaves slightly different than what the VICIIdizer expects. The VICIIdizer itself is made of modern components that are very fast and can be tuned to a few nanoseconds. I did all this tuning experimentally to work with all VIC chips I could find and also have a reasonable margins of error. Still there seem to be some parts out there that are just too far away from the regular behaviour and cause issues. There is not really much I can do here. Even a replacement VICIIdizer would do the same thing.

c0pperdragon commented 2 weeks ago

This thread is much too long already. Please use https://github.com/c0pperdragon/LumaCode/issues/21 from now on.