RDDRONE-BMS772

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RDDRONE-BMS772

32,276 Views
iaingalloway
NXP Employee
NXP Employee

Please ask questions about the RDDRONE-BMS772 board and software here

0 Kudos
102 Replies

4,848 Views
Prince1
Contributor II

Hi @CisvanMierlo,

I have attached images of two BMSes,

1st one: LED blinks in red for 1 min before going to Deep_Sleep.

2nd one: has over heat issue and LED doesn't turn ON.

Though I have used 5 pin cell terminal connector, I have not connected 4S pin (5th pin open) / wire. So, 5 pin connector is used for 3S battery. Voltages are correct at JP1 connector.

Today I charged battery to 11.7V and tested still same result.

Thanks..

0 Kudos

4,601 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Prince1,

I think I found the issue with the communication on BMS1. 

The black wire is connected to J19 pin 1, which is 3.3V and not connected to ground.
For ground, you need to connect the black wire to J19 pin 7 (other side of the connector). 

Light blue is now connected to J19 pin 5 (SWD_CLK) and yellow is now connected to J19 pin 6 (RST_N).
I think you need to swap the connections on the connector J19.

I will come back on the other PCB later.

Kind regards,

Cis van Mierlo

 

0 Kudos

4,150 Views
Prince1
Contributor II

Hi @cisvmierlo ,

Thanks a lot.

You solved my problem.

After rectifying J19 connections, CLI and Display worked.

Yes, CLI shows "Cell undervoltage detected!" and display shows 11.26V although fluke instrument measures 11.7V.

1. It looks if cell voltages < 3.8V, it goes to Deep_Sleep. Will it happen even if load is connected on J5? I mean, if load is connected disconnecting the battery at 3.8V is too early when cell cutoff voltage is 3V.

2. Is it possible to reduce the voltage measurement error in BMS?

Kindly answer the above questions.

Thanks..

 

0 Kudos

4,276 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Prince1,

Great that the communication issue has been resolved!

For the other questions:

"Yes, CLI shows "Cell under voltage detected!" and display shows 11.26V although fluke instrument measures 11.7V." 

The display shows v-out. Which is measured via a resistor divider on the output with 1% tolerance. Meaning that you could have a 0.946V difference on 26V, just because of the resistor tolerances.

So it could be that this is a little off with the actual value. In the current SW example there is no option to fine tune this measurement.

What you could do is: look at v-batt or add all the cell voltages together (which is the most precise). Vtot = v-cell1 + v-cell2 + .. 

"1. It looks if cell voltages < 3.8V, it goes to Deep_Sleep. Will it happen even if load is connected on J5? I mean, if load is connected disconnecting the battery at 3.8V is too early when cell cutoff voltage is 3V."

So the default cell under voltage (for a LiPo battery) is set at 3V. You could check this setting via the UART interface via: 
bms get v-cell-uv
You could set the cell under voltage you think is suitable with: "bms set v-cell-uv x.xV"
After setting parameters, do not forget to save it to flash with "bms save".

For more information on which parameters there are, please have a look at chapter 8.2 of BMS772_releaseNotes_5.0.pdf.

But I would check the cell voltages via the UART connection, so you can see which cell has a problem. 
You can use: "bms get all" (gets all parameters),  "bms show all 1" (updates the battery values), "bms show top 1" (updates the battery values without scrolling).

"2. Is it possible to reduce the voltage measurement error in BMS?"
As stated in the beginning, there is no parameter for correcting the v-out voltage. 

But feel free to adjust the SW yourself so for example v-batt is displayed on the display instead of v-out.

Kind regards, 

Cis van Mierlo

0 Kudos

4,234 Views
Prince1
Contributor II

Hi @cisvmierlo,

Thanks for your help. I could solve Under voltage fault problem. Now I want to see DroneCAN / UAVCAN messages / parameters sent by BMS in some software tool.

Do you have some software GUI tool to see CAN messages from BMS?

I tried to see messages with DroneCAN GUI tool with BMS772 connected to Orange Cube Autopilot. But I am not successful. Mission planner software didn't recognize BMS in SLCAN mode.

Where as Cube orange detects other UAVCAN devices such as Zubax ESC, Packet digital MPPT.

Also, Should I change DroneCAN static node ID to other than 255 for it to work?

NXP's UCAN based nodes are not available for purchase in India.

Also, please clarify whether Over current, output short circuit protection is available on BMS?

Please clarify the above. Thanks again for your great support.

...

 

0 Kudos

4,616 Views
Prince1
Contributor II

Hi GeraldP,

Thanks for your help. I will try the way you suggested.

0 Kudos

5,198 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Prince1,

Indeed you would need to configure the software accordingly.

This can be done as followed:

1. Hook up the DCD-LZ adapter to the BMS772 board using the 7-pins JST-GH cable. 
2. Hook up the DCD-LZ adapter to a laptop or PC with a FTDI USBUART-3V3 cable. 
3. Connect to the BMS772 over a serial interface, like PuTTY or TeraTerm (115200 Baud).
4. Type "bms help" to get the help for the Command Line Interface (CLI).
5. Type "bms get all" to get all the parameters and the values associated with those parameters.
6. Change the variable you would like to change, in this case n-cells to 4, type: "bms set n-cells 4" 
7. To make sure the parameters are saved to flash, type: "bms save" 
8. After the new parameter settings, you could either press the button or type: "bms reset" to reset the fault.

The CLI is very useful as it will indicate what caused the error. 

Here are some useful links to get started:
A link about setting up the CLI: https://nxp.gitbook.io/rddrone-bms772/user-guide/getting-started-with-the-rddrone-bms772/using-the-c... 
A link about using the CLI: https://nxp.gitbook.io/rddrone-bms772/software-guide-nuttx/command-line-interface-cli 
A link with a list of parameters: https://nxp.gitbook.io/rddrone-bms772/software-guide-nuttx/untitled-1 

Chapter 7 of the release notes (rev. 5) is useful as well as this contains a picture of the DCD-LZ adapter with the 7-pins JST GH cable and the USB-TTL-3V3 cable connected to it.
Chapter 8 includes the parameters of the BMS772.

I would recommend the update the software to the latest binary. 
The latest binary can be found at: https://github.com/NXPHoverGames/RDDRONE-BMS772/tree/main/Binary 
Instructions can be found in chapter 7 of the release notes, on the code repository or on the gitbook: https://nxp.gitbook.io/rddrone-bms772/user-guide/getting-started-with-the-rddrone-bms772/flashing-fi... 

Keep in mind that after programming, you need to re-configure the parameters again as these get overwritten.

I hope this helps, kind regards,

Cis van Mierlo

0 Kudos

5,202 Views
Prince1
Contributor II

Hi,

Thanks for your quick reply. Unfortunately, I couldn't find distributor to purchase DCD-LZ adapter in India. I don't have a hover games kit as well.

Can you suggest any alternative adapter which is widely available?

Thanks.

0 Kudos

5,167 Views
iaingalloway
NXP Employee
NXP Employee

iaingalloway_0-1673558852262.png

J2 is a socket for a standard 10/9 pin debug header that will work with any Segger JLINK device.


You can also make a cable to plug into the DCDLZ port and connect to a FTDI 3v3 USB2UART cable.
https://www.amazon.com/Pre-Crimped-Connectors-Pixhawk2-Pixracer-Silicone/dp/B07PBHN7TM/ref=sr_1_3?cr...



As noted, these items are included with some of the other development kits and can be re-used here. 

5,127 Views
iaingalloway
NXP Employee
NXP Employee
Note you will need a 0.50" header to solder into J2 if you want to use it.
0 Kudos

5,221 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Prince1

Let me check internally about the availability of this adapter board.
Here is some more information about the DCD-LZ adapter board, including the schematic:  https://nxp.gitbook.io/hovergames/rddrone-fmuk66/connectors/debug-interface-dcd-lz/dcd-lz-breakout-b... 

I do know that they are usually part of a kit, I did find this UCAN board where you have the option to buy the KIT-UCANS32K1SIC.
This kit includes 2x DCD-LZ adapters, 2x FTDI-USB cable and 1x Segger Jlink mini EDU debugger (program and debug) as well.

Link to the KIT-UCANS32K1SIC: https://www.nxp.com/products/interfaces/can-transceivers/can-signal-improvement/can-sic-evaluation-b... 

Kind regards,

Cis van Mierlo

0 Kudos

5,580 Views
Ch_Han
Contributor I

Hello @iaingalloway @cisvmierlo ,

I plan to use the BMS772 with 6s LiPo batteries, and have questions concerning the charge and discharge.

1- Is there a way to store the batteries without discharging? I see that before going into DEEPSLEEP state where the gates are open, the BMS must go through a SELF-DISCHARGE state; or if the BMS is in SLEEP state the gates are closed which also leads to discharging.

2- What is the physical process of the self-discharge?

3- Has measuring the impedance through CAN been thought of to detect if an output is connected? For example to know if gates should be open or closed in SLEEP state.

4- Is there a recommended charger to charge the batteries with a limited current? Or at least which one do you use usually?

Thank you.

0 Kudos

5,561 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Ch_Han,

Please see https://github.com/NXPHoverGames/RDDRONE-BMS772/ for the release notes. This describes the state machine of the BMS example software.

The SLEEP state is not for storage, as in this example the output power is still enabled in this SLEEP state. For storage, the BMS should indeed go to the DEEPSLEEP state, where the output power is disabled (power switch is open) and the current is as little as possible.

In chapter 8 of the release notes, the parameters are described to control the BMS. If you set parameter self-discharge-enable to 0. You could go to the DEEPSLEEP state without discharging the battery cells to storage voltage. Keep in mind that this might not be good for the battery cells if they are at a high voltage for a long time.

In the self-discharge state, the BMS will use the balancing current to discharge all the cells to be less than the set storage voltage (with margin).

In SLEEP state, the switch is always closed in this example, enabling the output power. Thus, it could detect a load by measuring current.

I usually work with a lab power supply to charge the batteries.

PS: You could develop your own software or adapt the SW for your needs based on the open source example on https://github.com/NXPHoverGames/RDDRONE-BMS772/.

Hopefully this answers your questions, kind regards,

cisvmierlo

0 Kudos

5,548 Views
Ch_Han
Contributor I

Thank you for your answer.

Then if the battery is in storage with the BMS in DEEPSLEEP state, can the BMS detect when the output is connected to go back to NORMAL or is the only way out of DEEPSLEEP by pushing the button?

Regards,

0 Kudos

5,533 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @Ch_Han,

When the BMS is in the DEEP_SLEEP state it needs to limit the power the BMS is using itself, in order to preserve the battery the most.

This is done by setting the components powered by the battery in a deepsleep / sleep state as well and by disabling the voltage domains (3.3V and 5V are turned off), amongst others, powering off the microcontroller, which is supplied by this 3.3V.

To initiate a wake for the SBC (to turn on the 3.3V again which will power the microcontroller), I believe the SW has only configured that the wake pin of the SBC, issues an SBC wake. To do that, the button needs to be pressed or J22 needs to be shorted.

But I do believe a wake-up via CAN could be enabled in the SW, as the SBC is in a sleep state and still powered by the battery. This is however not enabled by the current SW example and I do not know the HW requirements for this.

If you would like to add this functionality, you could check the datasheet of the SBC and the sbc.c and sbc.h files of the public BMS SW example for this board.
The datasheet of the SBC can be found here: https://www.nxp.com/products/power-management/pmics-and-sbcs/mini-sbcs/mini-high-speed-can-system-ba... 

Kind regards,

cisvmierlo

0 Kudos

4,654 Views
iaingalloway
NXP Employee
NXP Employee

I wanted to note that there are also additional GPIO on the board that were allocated for this type of function to be added in the future as per a proposed DroneCode standard. There were some other potential for added features here, including identifying the battery to the vehicle etc.

In addition to code needing to be written,
These are located on a separate header and would need to be asserted on plugging in the battery to a drone or vehicle. 
You will need to refer to the schematics on NXP.com for the details.

I am referring to the header J21 here:

 

iaingalloway_2-1674236410319.pngiaingalloway_3-1674236426257.png

 

 

 

 

0 Kudos

12,750 Views
vikrantj
Contributor I

Hello, 

I am using the RDDRONE-BMS772 to build a 3s li-ion cell cycler. I wanted to be able to flash the program to the S32K on the board using a CAN bus. I was wondering if there is any way to do this. Or is using a debugger the only way to flash the program? If there are any other alternatives you could suggest I would appreciate it. This is for a school project and hence I need to keep the costs (and the complexity) low. 

@OGUZ1 , @iaingalloway, @mariuslucianand  I would love to know your thoughts about this.

0 Kudos

12,487 Views
cisvmierlo
NXP Employee
NXP Employee

Hi @vikrantj,

Since you are doing this for a school project, I think you are able to buy a J-Link EDU (mini).
This is a cheaper version of the normal J-Link meant for educational purposes.

Here is a guide on how to use the J-Link EDU (mini) to flash the RDDRONE-BMS772: https://nxp.gitbook.io/nxpmobilerobotics/flashing-guide/flashing-hovergames-boards. 

Would this help you?

Kind regards,

Cis van Mierlo 

0 Kudos

12,498 Views
mariuslucianand
NXP Employee
NXP Employee

Hello @vikrantj,

I did not have the chance to use this board yet. But having a look at the schematic, the easiest way to flash this board directly from Simulink without using a JTAG all the time is to use the RAppID bootloader, over the UART. Of course, you have to flash the bootloader once using a JTAG but once you have the bootloader written in the flash memory, you can use the Serial, directly from Simulink.

You can find a suitable bootloader in the toolbox, under tools\BootLoader\RBF_Files the  S32K144_S32DS_UART1_CAN0.rbf which uses the pins PTC6 and PTC7 over the DCD-LZ. And here, you can use an external USB2Serial converter.

Also, the CAN0 can be used to deploy the code on the board, but you need to use the RAppID bootloader app, and a compatible CAN tool.

Let me know if Serial is a good option for you.

Regards,

Marius

0 Kudos

4,215 Views
iaingalloway
NXP Employee
NXP Employee

Note also there has been some work done in NuttX/PX4 on CAN bootloaders. But these are incomplete at this time.

0 Kudos

13,490 Views
OGUZ1
Contributor III

Hi , @iaingalloway @cisvmierlo 

I programmed the RDDRONE - BMS772 board with Matlab/Simulink. I see all values in FreeMaster.
I have a few questions...


1) I want to run the SSD1306 screen on the card. I changed the D34 and D35 diodes. 3.3Volt appears on the screen, but it does not work. Could you help ?


2) We give 1 to the Gate leg of the power mosfets of the card from the software and we get the output voltage. Why do we still get output voltage when we give logic 0 from the software? (We tested it with the load connected.)

3)Although we operate the SBC in normal mode, we cannot get 5V output. We only get 3V3. We are using sbc_uja1169_s32k_config. Although we activate the V2/VEXT config section in the regulator section, we cannot get output from V2. What is the reason of this? Can you help us?

0 Kudos