I am considering using this code so was having a look around. I believe line 471 of BMSModuleManager::processCANMsg if (moduleId = 0xFF) //every module is a bug. It should be == not = The statement will always be true and will over write moduldId