I have been using a G120 (Panda III) for a while in some projects, running 2 CAN networks with no issues. However, with recent software changes I have a lot more user-defined events firing to handle various things. Whenever a few events are firing closely together, I get CAN overrun errors. The documentation simply says that this means “A CAN message was lost because the hardware was not able to receive the message in time.”
I know that my CAN handler is receiving only 1 or 2 messages at a time (I try and grab 20 at a time usually and simply add them to a queue for processing outside the event handler), so I am not hitting the HW buffer limit while processing other things (I am not sure how big you can set the HW limit as it seems happy to accept any number!).
Has anyone had something similar, or does anyone know any other causes of the overrun error? It is not generating any errors on the CAN bus, so I assume that something is being starved of processing. From what I can see, it only happens when other events are firing, so I am suspicious that it happens when the CAN controller cannot access some resource or bus.
Any thoughts much appreciated! I have run out of things to try!
Thanks in advance