3

I recently bought a Daly Smart BMS from China for an EV project. It works well but we can’t communicate with its UART port. I got the pinouts and protocol from manufacturer and connected it to an Arduino mega serial port. It echoes back anything we send to it. I linked related photos and documents.

Exact BMS Model: Daly 14S smart BMS Com UART bt R25A-GJ21

enter image description here enter image description here enter image description here enter image description here

https://docs.google.com/file/d/1KDx_UYS34t3Lrnv3tf6sRw27AHGJLQ-A/edit?usp=docslist_api&filetype=msword

JRE
  • 67,678
  • 8
  • 104
  • 179

1 Answers1

-1
  1. First thing first, Watch this tutorial:

    Daly Smart BMS UART、RS485 Connection Tutorial 5,035 views Feb 25, 2021

  2. Install the BMS's USB serial CH430 driver (PnP or customer install)

    Let me know if you have any problems in installation.

  3. Use any terminal emulator, such as RealTerm, and use default 9600bd8N1 to start UART talking to BMS.

    Let me know if you get stuck here.

  4. Use Arduino or Rpi to talk to your BMS. Show me the code if you have any problems.

    Good Luck and Cheers.


References

(1) Daly Smart BMS UART、RS485 Connection Tutorial 5,035 views 2021Feb25

(2) Rpi to Arduino Serial UART Communication Tutorial - Asked 2 years, 4 months ago Active 1 year ago Viewed 4k times

(3) ASCII - Wikipedia

(4) Daly Smart BMS UART User Manual


tlfong01
  • 2,766
  • 1
  • 9
  • 17
  • 1
    Step 3 will only work if the BMS uses a human-readable protocol. But from the documentation it looks as if the protocol is binary. Do you have any indication that the protocol is human-readable? If so, do you have any description of it. And re step 4: The code is already shown in the question and the problem has been mentioned. – Codo Aug 25 '21 at 08:32
  • Ah, UART or serial communication entertains both human readable alphabets A, B, C, "AT", "OK", and numerals 0, 1, 2 etc. and Hexidecimals (ASCII) (Refs 2, 3). For code, I would prefer a user/eye friendly, fully documented, complete listing and sample output (Ref 2). – tlfong01 Aug 25 '21 at 09:31
  • More on hex code: So referring to Ref 4, you use hex code "0xA5" as Start Flag byte, "0x01" as address bytes etc. All in 9600bd8N1 8-bit bytes. – tlfong01 Aug 25 '21 at 09:44