fbergama / pigfx

PiGFX is a bare metal kernel for the Raspberry Pi that implements a basic ANSI terminal emulator with the additional support of some primitive graphics functions.
MIT License
275 stars 60 forks source link

Pi/KBD freezes after several hours. #67

Open willtco opened 3 years ago

willtco commented 3 years ago

I have noticed that if I leave my system running it freezes or locks up after several hours, no more keyboard characters are passed to the screen and even trying the caps lock fails to light the LED. I checked by connecting TX to RX by direct link at the PI, using the latest download and had the same results. Leaving it running overnight always results in this.

chregu82 commented 3 years ago

I don't seem to be able to reproduce this issue. My system is now running for 10 hours and still no freezing. Is your LED still blinking?

chregu82 commented 3 years ago

Nice, after 13 hours runtime my keyboard also freezes. The Pi is obviously still running as the LED still blinks. How on earth should I find out what causes this?

willtco commented 3 years ago

OK I found that my Z80 could still send data to the pi and have it put on screen, I found that caps lock would not work. I understand the USB 5V can be switched on off by the Pi, this might be the first thing to check, after that is there a watchdog time out? - a buffer full? and after that who knows? - but glad I'm not hallucinating on this one! :) - also another piece of info is that this also occurs on the 2019 load. From what I can see It may be a pure USPI problem, if there is other software that uses USPI maybe a similar soak test would help?

willtco commented 3 years ago

Over the time I have seen this happen the time taken to 'freeze' has been as little as 2 hours or as long as 15 hours, and all on the same set-up. I am wondering whether there could be an outside influence causing this such as some sort of power disturbance? - since the power supplies for PI are not of the highest quality I may try a bench PSU and a 12 volt monitor. I would expect the system to freeze after an exact time if repeat tests are identical.

willtco commented 3 years ago

Running on a PS/2 keyboard for 21 hours (with no USB KBD connected) has also frozen. And again pressing caps lock did not illuminate the local LED. But again my Z80 was still able to send characters to the screen via it's hex keyboard.

chregu82 commented 3 years ago

That's quite interesting. Then it's not related to USB or the uspi submodule. I'll probably should add some debug code and see where keyboard input gets lost. LED handling of the keyboard happens in software as reaction to the pressed key.

willtco commented 3 years ago

I will do another couple of runs just to confirm PS/2 is also affected, after that I'll tighten up the power supply and maybe add a sprinkle of capacitors. CIMG5330

willtco commented 3 years ago

I've not yet been able to get the PS/2 to fail a second time (after 26hours) - I will be changing those wire links for a more permanent ribbon cable in case any of them caused a glitch. So I'd hold fire on changing anything just yet for a few days till I can confirm whether PS/2 is actually affected.