Power in Flux
Likes Likes:  18
Page 5 of 6 FirstFirst ... 3456 LastLast
Results 41 to 50 of 54

Thread: BMS based on ltc 6804 and arduino

              
   
   
  1. #41
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like
    Gentlemen (and the occasional lady of-course), my last post stated I had taken a position in Sweden. This has unfortunately not worked out, miscommunication between the parties involved. However during this period I got some great news that I could go for a job interview in England. I am glad to say that now I am working in England as a Automotive (mechanical and electrical) Engineering Contractor, having moved all my things over and started to settle down it looks like more time and room for projects.

    Enough about life, decided to kick it into a little higher gear. Did testing on the charger (from a Opel/Vauxhall Ampera or Chevy Volt) to gather some data and figure out the control strategy I would require. Respun some balancing boards, its all good not having leds to show you what is going on, however more importantly I upgraded the balancing resistor to a 1206 package. So I ordered my missing components and soldered up a board, quickly discovered that I should invest in a good soldering iron for myself (was using my dads one plus im running out of tin). Then did some testing, this did not go too well all the balancing channels would blink on and off depending on the setting of the reference. Two beers some hardware troubleshooting later I came to the discovery that when testing the last time (in Holland) I did not use my new laptop (as I did not have it then). I had changed the formatting of the can message that dictates the balance voltage in order to correct a mistake, should probably keep a detailed project-log for myself.

    In the end all worked out well, I have included a video of my findings/results so far. I am hoping to cobble together a setup with around three boards and 2 packs of 17s cells to test with the Chevy volt charger. This can be easily done in my current code structure as the control and the status messages to and from the charger are well outside my chosen message id's for the bms (go figure). This should allow me to charge the cells to a set voltage and ramp the current back as the balancing kicks in, and all controlled and monitored via canbus.

    Last edited by tomdb; 30 September 2016 at 1643.

  2. Likes Spoonman liked this post
  3. #42
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like

    Three times the fun

    Been busy soldering the other two balance boards, because the multi meter I had currently was a cheap one I decided to reward myself with a fluke 115 and a unitek clamp meter. This way I got some measurement I can trust.
    Created the bms leads, did some testing and found out that the adapter boards I have made for the a123 17s packs are quite sensitive to loose connections. I hope this is solved when my pcb's arrive from china. These will also be made to directly connect to a slave in stead of the cable.
    Once these connection issues were sorted I tested all the boards one by one, found out some of my slave boards were running the 1.0v firmware so these were upgraded. This allowed them all to talk together. The master arduino did not show all the data fast enough, so I had the loop for the can bus decoding running at a higher rate. This solved it, my determination of the lowest voltage gave me some headaches, in the end I solved this by implementing a lower cut-off of 10mv (so it ignores the unconnected cells). I also had not foreseen the fact that in code in an array 0,0 is the first cell of slave 1 so my loop looked at cell 0,12 which is cell 13 (always a random number due to not being assigned. Once that was fixed all the data showed proper on my serial debugging output.

    Made a small tweak of two lines of code to the slave firmware 1.1v;
    lower voltage ignore (lv), this ignores any measurements below the set value I chose to set it at 10mv to compensate for some possible bad connections.
    the only time this value is used, is in checking for an undervoltage condition, which allows not used inputs to be pulled up to the highest cell voltage and thus be ignored. Without ignoring these my firmware dictated that an undervoltage condition was present and stopped the balancing and flagged an error.

    Below a video of all of this in action, looks like I can do some charging soon just need to make some proper leads for the charger to battery.


  4. Likes Spoonman liked this post
  5. #43
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like
    Running an endurance test right now unfortunately the weakest link is still the tiny headers which interface with the 71s packs. these are three 2x5 headers with a pitch of 1.27mm. If this remains a problem I am wiring up a simple eyelet per cell.

    Balancing down to 3.3008 volts as we speak (the 8 is there because I have not set it in code and reused my old code which has a potiometer to dial in the balance target.

    One small issue, not all slaves have a constant discharge pattern, some blink and some stay on. Need to do more investigation, however the balancing is taking place and stops when the target is reached.

    V1.1 of firmware does not contain any fancy overshoot, this will be programmed in later. This will be done to compensate for the voltage loss in the connections and wires to keep the on/off switching with the voltage sag to a minimum.

    Update:
    Measured my total voltage using my Fluke, it came to 111.71v and my serial data output gives a total of 111.41v which equates to a difference of 0.27% which is quite acceptable at this stage. Since Im balancing currently and not averaging over some samples.
    Attached Images Attached Images
    Last edited by tomdb; 10 October 2016 at 1241. Reason: Update

  6. Likes Spoonman liked this post
  7. #44
    Junior Member
    Join Date
    Nov 2016
    Posts
    1
    Post Thanks / Like
    Hi..i am a new user here. In my case Bootloader burned after a few attempts, due to inexperience. However once the bootloader was on the chip seemed dead. Turns out that the ATmega328 require VccA to be hooked to 5v olts for it to work with the bootloader.

    printed circuit board assembly
    Last edited by IzaakKuze; 09 February 2017 at 1440.

  8. #45
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like
    Of course it does, I would say look at the way the arduino boards (or breadboard arduino's) are designed and copy that.
    Are you attempting to make a BMS based on the LTC6804 too?

  9. #46
    Junior Member
    Join Date
    Nov 2016
    Posts
    1
    Post Thanks / Like
    Please give us an update. I am also wanting to purchase one of your boards for a 54S1P string I am making of LTO cells.

  10. #47
    Member 4dollarjoe's Avatar
    Join Date
    Aug 2014
    Posts
    72
    Post Thanks / Like
    Let me know if I can be of any help. I am considering building my own bms.

    Minibms is basically off the market right now. The world needs a cheap and open BMS system.

  11. #48
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like
    Currently working on a simple master bms board. Will build a test setup once that is complete.

  12. #49
    Junior Member
    Join Date
    May 2017
    Posts
    2
    Post Thanks / Like
    Hello

    I'm going to start working on a similar project. I'm not focused on balancing and the ultimate goal is SOC estimation. However, I'm asked to use LTC6804-1 to measure voltage of the Li-ion cells and send them via SPI to a local microcontroller. Because, now I am in R&D phase, therefore, cost is not a very important issue and I'm using demo board for LTC 6804-1. Therefore, I will connect SPI port A of LTC6804-1 to the ARDUINO UNO.
    Then, voltage & current must be sent by CAN bus for longer distances to the main microcontroller on which, SOC estimation algorithm is running.
    For local microcontroller, I'm going to use ARDUINO UNO because it seems easier and I don't have much experience in programming. However, it doesn't have a built-in CAN support and I'm going to use CAN bus shield
    The main microcontroller is chosen Raspberry Pi 3 which is more powerful in terms of computational power. A CAN shield for RPi3 is in charge of converting back data into SPI format.
    So, do you think this is a feasible idea?

  13. #50
    Senior Member tomdb's Avatar
    Join Date
    Apr 2013
    Posts
    199
    Post Thanks / Like
    You need to isolate the ltc6804 and uno from the other ltc6804's otherwise you can have shorts.
    Anything is possible, Take it one step at a time.

Page 5 of 6 FirstFirst ... 3456 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •