I had a thread about this and it seems to be gone. Weird!
So a simplified way to add the CBT support to your Arduino installation is by adding this custom URL to your settings and installing the lib via the Boards Manager.
Load up Arduino and head to Preferences. Then in the field marked "Additional Boards Manager URLs" add this URL:
Press ok to close the window.
Then go to Tools > Board > Boards Manager
In the filter just type CANBus and you should see the CANBus Triple library. Click install and you're good to go!
I'd love to continue making these but I have to order a thousand minimum to make them are a reasonable price. And it's a ton of labor on my part to assemble them. I did over a thousand by hand, it sucked and I would rather spend that time on support and future hardware.
Indeed, it works I keep my CBT plugged into my Mazda even tho I wont drive it for weeks at a time. You just need to enable the 'Naptime' middleware.
In a lot of cars you will find a kind of heartbeat message. It's dispatched maybe once a second while the car is on. You can pass this message id into the middleware and it will automatically go to sleep when it does not see it for a while. It also sets a filter on the CAN controller that will trigger an interrupt to wake the system back up when it does receive the heartbeat message.
Here you will see it's enabled by setting a C def:
You can just uncomment the def on line 16 to enable the Naptime middleware. And be sure to set a heartbeat message id on line 56 or set it to 0x0000.
The best way to do it would be in the tick() method of your middleware class. You can add a class property with the type of boolean to do a check in subsequent tick() calls to decide if you want to perform the action (sending a message) again.
Here is an example of how to do this in the Mazda code. It does a gauge sweep then the CBT starts up.
Also, in that example you will see an easy way to create a new Msg instance and push it to the dispatch stack for sending!
It depends on if the nodes on the network are listening and in fact do respond to the messages you're sending. For example on my Mazda it will send a packet out when I lock the doors, but sending the same message will not lock the doors because the BCM doesn't listen and react to it. It sends the messages out as an event for other nodes to be informed of the event.