I recently acquired a Tattu 4.0 battery that has just been released for a large-scale drone project. Since the drone’s total current exceeds 500A, I absolutely need to retrieve the CAN data from the battery to display the cell voltages and the remaining battery percentage.
As shown in the image above, the battery indeed has CAN H and CAN L pins. I followed the Tattu Plus DroneCAN Battery, documentation, but I am unable to retrieve the information.
To ensure that a CAN frame was indeed coming from the battery, we connected it to an ESP32 with a CAN driver and observed the frames.
Now, I would like to know what parameters need to be adjusted in Mission Planner to read the values.
Specifically, the battery uses the CAN 2.0 protocol instead of the traditional UAVCAN. What parameters need to be adjusted or read on the CUBE Orange for CAN 2.0?
I think the question for Tattu is whether this is DroneCAN (aka UAVCAN) or something else. On the images you’ve posted it seems to mention E-UAVCAN which is not something I’ve heard of but maybe this just means UAVCAN.
Tattu has recently become an AP Partner so we’ve got a communication channel where I’ll ask them
Yes, this is exactly the battery we are using for our project. To be honest, we have two of them on the same drone. I have contacted our supplier several times, but they have never been able to answer my questions properly. That’s why I turned to the AP community. If you have a contact who could help me resolve my issue, I would greatly appreciate it.
To respond to Amilcar Lucas:
I connected the CAN H, CAN L, and GND to the CAN 1 port of the Cube Orange Plus, which is running on version V4.5.6. The parameters I modified are as follows:
Then, I tried to find the batteries in DroneCAN/UAVCAN by clicking on MAVlink-CAN 1, but the battery does not appear. We attempted, using a code and a driver, to find the battery ID in order to modify BATT_SERIAL_NUM, but without success. We also adjusted CAN_P1_BITRATE to see if the battery would communicate at a different speed, but again, no success. We tested with CAN 2, other Cubes, and different firmware versions, but nothing works.
We were advised to update the battery using their Bluetooth app, but for now, it is not available.
Moreover, it is stated in their brochure that it is compatible with ArduPilot.
It’s probably best to only connect a single battery at a time for now. It sounds like the battery is not communicating using DroneCAN. Maybe there’s some setting in the battery itself that needs changing.
It might also be a good idea to post a parameter file and/or a log file. A log file can be created even while the vehicle is disarmed by setting LOG_DISARMED=1. There are also instructions on the wiki for how to download log files. You’ll probably need to put the logs on a service like dropbox and then provide a link.
I suspect the issue is on the battery side and there’s nothing we can do in AP but if Tattu responds then I’ll hopefully see it and post again here.
Hello,
Following an email exchange with our supplier, they told us the same thing.
It should be possible to change the protocol by updating the battery through their Android app connected to the battery via Bluetooth.
For now, this feature is not available, but as soon as I have more details, I will share them.
Thanks again.
After several exchanges with TATTU, we were sent a communication system between the battery and the PC (BD300).
We were instructed to uninstall a firmware update using their proprietary software.
This modification resolved the issue of the battery not being detected by the flight controller.
However, the battery charge percentage tended to fluctuate between 0% and 100% without any apparent reason, causing an error in QGC.
To fix this issue, you need to change the SCHED_LOOP_RATE parameter from the default value of 400 Hz to 50 Hz.
I hope this information will help other users.
Have a great day.