grblHAL / RP2040

grblHAL driver for RP2040 (Pi Pico)
Other
120 stars 49 forks source link

MPG mode very slow at processing commands #87

Closed yaapu closed 6 months ago

yaapu commented 6 months ago

Hi, I'm running latest master on a picocnc ver 1.53, I've installed an eth module and apart from the wiz 5500 the board is on my desk with no other connection. It's connected via USB to my PC, I'm using ioSender 2.0.44. I'm developing a simple DRO/MPG using another pi pico. I connected my MPG pi pico's serial1 to the picocnc serialport and enabled Keypad and MPG plugin. I get real time status reports as expected and when sending the 0x8B grblhal responds with the correct status string with the MPG:1 info. In MPG mode real status reports stop, again as expected. I then try to periodically request real time status reports at 5Hz (every 200ms) by sending ? (also tried 0x80) but grblhal takes almost a second to process my request and send the status back, if I disconnect the grblhal keypad/MPG RX pin I see my periodic requests being sent at the expected 5Hz whilst when the grblhal keypad/MPG RX pin is connected to the external MPG I only get a 1Hz status report flow.

Hope it makes sense to you :-)

Edit: it probably is on "my" side, since using a simple USB to serial seems to get a much faster response,, I guess I have something in my code that delays serial tx...

yaapu commented 6 months ago

I'm back, there's still something I don't understand: My board is configured to output 0x80 at 5Hz after sending 0x8B. With grbhal mpg uart's disconnected, my board can send at 5Hz (I connected an USB to serial adapter to debug the flow) With grbl mpg uart's RX connected but prior to sending 0x8B I can get the 5Hz (grblhal ignores me as expected) With grbl mpg uart's RX connected after sendog 0x8B I only get about 1Hz withthe very same code, btw I get the status back as expected

Do you have an idea what I should try next?

yaapu commented 6 months ago

closing for this is not at all related to grblHAL, turns out I had a blocking serial waiting for buffer to fill

edit: yeah :-), moved to ISR to process 0x87 responses and now it's smooth