Tattu 4.0 Battery support over CAN

Hello everyone,

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?

Perhaps info from this version will help.
Tattu DroneCan

I based my tests on this page. However, when I click on MAVLink CAN1 in Mission Planner, the battery does not appear.

Has anyone managed to solve the problem with an equivalent battery (Tattu Plus)?
thanks in advance.

Explain exactly what you did. Is the battery connected? To which CAN port? Which FC do you have? Wich FW version? What parameters have you changed?

Hi @Santimt44,

I guess this is the battery that you’re using?

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

Hi rmackay9,

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.

1 Like

Hi @Santimt44,

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.

1 Like

@Santimt44,

I’ve heard that “There are different BMS options available and those batteries have to be ordered from the factory with DroneCAN enabled on them”

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.

1 Like

Hello,

I would like to share how I resolved my issue.

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.

Caution: a quadcopter will probably become unstable when SCHED_LOOP_RATE is set as low as 50Hz.

They should fix their firmware instead of telling you to do that dangerous change.