Using legacy libuavcan and the stm32 baremetal driver, I am making a driver for a rangefinder. I have got everything to work as I like, except for if I start the program before connecting it to another CAN device (in my case a Pixhawk Cube). If I power up my rangefinder and stm32 disconnected it runs for about 1 second (aka my TxTimeout) and then throws the bellow assertion. Decreasing my TxTimeout makes the assertion pop up faster, and starting it plugged into the Pixhawk results in it working whether or not I disconnect it after a second or two, publishing my rangefinder data at ~30Hz.
assertion "used_blocks_ > 0" failed: file "../libuavcan/libuavcan/libuavcan/src/uc_dynamic_memory.cpp", line 29, function: virtual void uavcan::LimitedPoolAllocator::deallocate(const void*)
Any ideas on whats happening or how I could prevent this?