05-09-2009, 08:36 AM
|
#1171 (permalink)
|
EcoModding Lurker
Join Date: Apr 2009
Location: San Antonio
Posts: 5
Thanks: 0
Thanked 1 Time in 1 Post
|
Quote:
Originally Posted by MPaulHolmes
...So, maybe we can also do an open source cheap simplish BMS for lithium batteries down the road? Maybe one already exists? I don't know...
|
There's a very effective analog BMS on the streets. 2.1V cell-level low voltage sensing (for A123, PSI, and other cells)(can be changed to 2.5/2.6/2.7V for Thunder Sky users). Balancing on charge provided by either 1/4A, 1/2A, or 1A shunts. Charger current throttling and charge current shutoff when all cells are shunting.
Boards are break-away style that can handle from 4 to 24 cells on one board, and boards can be combined for larger packs.
Boards are available from: Products
Developed here: Endless-sphere.com • View topic - Even Newer 4 to 24-cell Battery Management System (BMS)
Here's a 16-channel version at end of charge:
|
|
|
Today
|
|
|
Other popular topics in this forum...
|
|
|
05-09-2009, 10:55 AM
|
#1172 (permalink)
|
PaulH
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832
Thanks: 1,362
Thanked 1,202 Times in 765 Posts
|
Thank you, Adrian! Ecomodder is sort of the home for the project, so is there a way you could do a wiki at http://www.ecomodder.com/wiki? Maybe have known bugs, version control etc. sort of like they have here:
MPGuino - EcoModder
I've been meaning to do that for a while, but haven't gotten to it.
As for bug tracking and version control, that would be awesome. It might be a little while before there are multiple versions since the control boards aren't sent to Futurlec yet, unless someone else just makes another version right now. Also, the code is changing like 20 times a day right now, but isn't affecting anyone except me and my car outside. Does version control and bugs come after prototypes, or how does that work?
|
|
|
05-09-2009, 12:47 PM
|
#1173 (permalink)
|
EcoModding Lurker
Join Date: May 2009
Location: Bucharest,RO and Copenhagen,DK
Posts: 42
Thanks: 0
Thanked 1 Time in 1 Post
|
Quote:
Originally Posted by MPaulHolmes
....
As for bug tracking and version control, that would be awesome. ... Also, the code is changing like 20 times a day right now, ... Does version control and bugs come after prototypes, or how does that work?
|
Hi Paul,
Your code has already versions like any code that is changing: you just don't keep track of these. With a repository that keeps track of versions, even if it's only you working on the code for now, you can have better control of the code, you can decide to have branches, tags, releases and never miss out on a change during a refactoring of the code, fall back after erroneous changes etc ... I can tell that you are not familiar with these concepts but it's really very simple and once you use a system like svn (subversion) you will ask yourself how you managed to keep control of your code before using it. When more than a couple of people get involved with the development it is almost impossible without it!
There is a freeware shell extension for windows that works as an svn client ( tortoisesvn.tigris.org) so your curent folder with sources will get painlessly under svn control. For a quick intro on the basic operations when using svn check out this short article LF: Short introduction to Subversion or browse through the (free) book: Version Control with Subversion.
I'll set-up a svn repo for the project and give you access to play with it if you want.
Adrian
|
|
|
05-09-2009, 02:02 PM
|
#1174 (permalink)
|
PaulH
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832
Thanks: 1,362
Thanked 1,202 Times in 765 Posts
|
I think I understand. I thought you wanted to keep track of different code versions for other people for some reason. I sort of do that right now, in the sense that I have multiple versions saved as different projects and multiple program names under the same project, and multiple functions of the same name in the same program, but some are commented out. The program isn't really a "project". It is really really short. Maybe 300 lines, 1 file. Is it worth doing this on such a puny program? The chip only had 8k of memory, so the code can't get too big.
Speaking of editing software, I'm trying out a poor-man's 1970's, 8 kilobyte no pointers linked list for smoothing out that stupid low rpm driving. Right now, everything is really really smooth, unless you are going about 1/20 miles per hour, in which case you can feel the oscillation of the current, because it's changing really fast at that low rpm. If low RPM were a person, I would punch it right in the head.
Last edited by MPaulHolmes; 05-09-2009 at 02:37 PM..
|
|
|
05-09-2009, 03:26 PM
|
#1175 (permalink)
|
EcoModding Lurker
Join Date: May 2009
Location: Bucharest,RO and Copenhagen,DK
Posts: 42
Thanks: 0
Thanked 1 Time in 1 Post
|
Quote:
Originally Posted by MPaulHolmes
I think I understand. I thought you wanted to keep track of different code versions for other people for some reason. I sort of do that right now, in the sense that I have multiple versions saved as different projects and multiple program names under the same project, and multiple functions of the same name in the same program, but some are commented out. The program isn't really a "project". It is really really short. Maybe 300 lines, 1 file. Is it worth doing this on such a puny program? The chip only had 8k of memory, so the code can't get too big.
|
Well, it's not just one file and it's not all software: there are component lists, IDE specific files with compilation options, readme file(s), PCB files and in general all that is a file can be placed under the svn control. If it's a text file there is the added benefit of being able to see the "change-set" at a glance, educate contributors to comment on the submitted changes etc. Also, different branches for different people (someone might have hw variations requiring specific alteration to the code) can be neatly stored as branches of the project. In the future some might go ahead with 8 bit micro, other will go with 16/32 bit or entirely different controllers... Those will became independent branches of the same project. Points in time when you feel the code has achieved a certain milestone may be frozen as tags, stable versions copied aside as releases etc ...
I'm not trying to complicate things: after reading more than a thousand posts I became a believer. I have seen to many promising start-ups choking because the project leader became so busy keeping track of the variations and requests for improvement that simply did not have enough time and energy to go on or to focus the people willing to help in a productive direction. If you think is not helpful yet to use a central and managed storage for all project files there's no problem: It was just a proposal.
I've set-up a playground (trac system) for you here: Open ReVolt - Trac
If you want to add sources/files the svn repository URL is http://svn.fastdigitech.ro/svn/openrevolt/ . Of course anonymous user is not allowed to use it, just to browse through it via trac "Browse source" option (see first URL). So, if you decide to try to actualy use the svn PM me for a user/password.
Regards,
Adrian
|
|
|
05-09-2009, 04:03 PM
|
#1176 (permalink)
|
PaulH
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832
Thanks: 1,362
Thanked 1,202 Times in 765 Posts
|
Oh! I thought it was only for software. OK, that makes a lot of sense. I think that's a really good idea. esoneson had made a suggestion like yours, but I didn't really understand what he was talking about. He's starting to help with the code, so I think it's a good idea to get something like that set up. Also, there are now 2 power board sections, and simple and more complicated control baords that are all functional. I see your point. I'll write to you later after I get back from Sylvan (yuck). It would be really nice if the wiki could be based at ecomodder, since they have graciously let me have all this space and stuff. I would like the project to benefit them.
|
|
|
05-10-2009, 10:44 AM
|
#1177 (permalink)
|
PaulH
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832
Thanks: 1,362
Thanked 1,202 Times in 765 Posts
|
I've had a number of false "hurray, the perfect throttle" sort of comments. It has never been like this. I think I found the sweet spot! haha! Anyway, I can glide across the pavement at like 1/20th of a mile an hour up a steep hill, or whatever. I feel very sure that the throttle will feel much smoother for Ben. There's a couple tricks that take care of the super low duty and high current conditions.
For computing the PWM duty, I'm now using a PWM range of 0 to 8192. It's sort of like doing fixed point math.
Also, AVERAGE current is computed cycle by cycle, by subtracting the current that was measured 'n' periods ago from currentSum, adding the new current to currentSum, and then dividing by 'n'. It's basically a linked list (a stupid, 1970's version of a linked list), where the front of the list get's deleted, and a new current gets added to the end. This makes it much smoother at low rpm. It maintains memory at all times of the last 'n' currents. Before, I was just measuring current 'n' times, taking the average, measuring current 'n' times, taking the average. There was no memory of the past, which made the average current samples more jumpy, which made driving based on current sort of jerky (but only a bit, and only at VERY low rpm).
It worked really really well only using current proportional to throttle, but if you were going up a hill, accelerating pretty hard, and then came to the top and down the other side rather suddenly, you would accelerate away a bit more than a normal gas car would, since it was trying to keep the same current with less load on the motor, so I added limiting pwm based on if pwm > throttle AND current > throttle. Now, it is good! oh ya!
What I really like is, you have perfect control to go any speed you want. And I mean ANY speed. I was cruising up hills really slow. You can give it just a hair of throttle, and hold perfectly still on a hill, give it a bit more and start moving again. There's no overshoot. You don't accidentally go too fast or too slow, at least with my motor.
|
|
|
The Following User Says Thank You to MPaulHolmes For This Useful Post:
|
|
05-10-2009, 11:26 AM
|
#1178 (permalink)
|
EV test pilot
Join Date: Jan 2008
Location: Oconomowoc, WI, USA
Posts: 4,435
Thanks: 17
Thanked 663 Times in 388 Posts
|
Quote:
Originally Posted by MPaulHolmes
This makes it much smoother at low rpm.......which made the average current samples more jumpy, which made driving based on current sort of jerky.
|
Wow - that should make a big difference.
For anyone who hasn't driven an electric car before, one of the coolest things about it is HOW SUPER SMOOTH it is to drive!
Even if the controller can handle 144V and a zillion amps, if it doesn't drive well, it won't be fun!
|
|
|
05-10-2009, 11:26 AM
|
#1179 (permalink)
|
EcoModding Lurker
Join Date: Nov 2008
Location: Georgia
Posts: 19
Thanks: 1
Thanked 4 Times in 3 Posts
|
Paul,
What you described above (averaging N samples) is known as a low pass filter. BTW there's no need for an actual linked list. A circular buffer will work just as effectively.
P.S. Wish Sabrina a Happy Mother's Day from all of us.
ga2500ev
|
|
|
05-10-2009, 11:30 AM
|
#1180 (permalink)
|
PaulH
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832
Thanks: 1,362
Thanked 1,202 Times in 765 Posts
|
Hey, I think I used a circular buffer! That's what I meant by a ghetto, 1970's version of a linked list, but I didn't know it had a name.
|
|
|
|