Compact Field Oriented Controller, ASI + Grin, limited run

Gab said:
Justin
Are you sure the INFINEON and your motor were set to neutral timeing as a baseline ?

That's a good question and the answer is yes, since I ran the Infineon tests sensorless so that the hall location on the motor was irrelevant. I have previously noticed a very slight difference between the forwards and reverse characteristics on the normal motors as a result of timing advance on the halls, but the effect is quite minuscule compared to the very tangible differences seen with the FOC.

jk1 said:
How much of the 3-6% efficiency gain is actualy from the better 2.5Mohm vs 10Mohm mosfets ? Could they also give some efficiency gain? and if so how much is actaul the FOC control gains ?

Should be very close to nothing, the infineon I used had 3.5 mOhm fets (4110's), and heavier gauge phase wire, so I think overall the net per phase resistance (lead + fet) should be quite similar between the two. To confirm I could repeat the experiment using a 12 fet infineon so it clearly has lower net mosfet resistance than the 6 mosfet FOC unit, and then there would be no doubt where the difference was coming from.
 
Justin,

I'm looking to buy a BAC500 for running a hydraulic drive system powered by a turnigy C80100, but want to control it via a micro-controller, rather then an analog throttle input. Have you looked into digitally controlling the BAC500 over the serial or CAN interface from a computer or micro-controller(rather then an analog throttle)? I've been in touch with ASI but they don't have any detailed manuals for this, though they do imply that this is possible.

By any chance do you know anywhere to buy the original BAC500 version(in the green aluminum case) rather then the newer potted board version? They are quoting me $85ea for the newer potted version as engineering samples(no warranty) with 4 weeks lead time, but I hear the older version had better cooling properties due to the case.
 
seltzman said:
Justin,

I'm looking to buy a BAC500 for running a hydraulic drive system powered by a turnigy C80100, but want to control it via a micro-controller, rather then an analog throttle input. Have you looked into digitally controlling the BAC500 over the serial or CAN interface from a computer or micro-controller(rather then an analog throttle)? I've been in touch with ASI but they don't have any detailed manuals for this, though they do imply that this is possible.

By any chance do you know anywhere to buy the original BAC500 version(in the green aluminum case) rather then the newer potted board version? They are quoting me $85ea for the newer potted version as engineering samples(no warranty) with 4 weeks lead time, but I hear the older version had better cooling properties due to the case.

I have been doing a bunch of work with this.

Here are my recommendations:
-get comms working via modbus
-poll necessary registers to do whatever feedback control you're interested in
-Connect a digital output to the pedal assist sensor input and or throttle input. Adjust the frequency of the pulses into the pedal assist controller or modulate the controller with PWM. All the gains are adjustable. The controller is so sophisticated :)

I've been having good luck with this stuff in general.
 
seltzman said:
I have been doing a bunch of work with this.

Here are my recommendations:
-get comms working via modbus
-poll necessary registers to do whatever feedback control you're interested in
-Connect a digital output to the pedal assist sensor input and or throttle input. Adjust the frequency of the pulses into the pedal assist controller or modulate the controller with PWM. All the gains are adjustable. The controller is so sophisticated :)

I've been having good luck with this stuff in general.

Thanks,
I'm mainly looking to start/stop the motor, and monitor battery voltage and current, I know you can do all the monitoring via digital commands in the soft ware, but I'm not sure about actually controlling the motor it self, can you confirm this?
By any chance do have a complete listing of the commands/registers?
As far as digital control goes, I'm looking for a command like set throttle 50% or set rpm to 4000?
I know some controllers with master/slave capability have this, such as the Emsiso Edrive controllers, but they are at least $500ea for the smallest.
 
This is all very do-able, but you have to understand Modbus a little bit. There is an xml file that lists all of the registers in the bacdoor software installation directory.
 
I have the modbus communication protocol from ASI and the XML file, Though the XML file is hardly an a clearly readable format, like a command reference table in an instruction manual. You said you have been doing a bunch of work on this, what I'm curious of, is:
(1): Have you successfully achieved this (motor throttle control via modbus) using your own hardware/software?
(2): Can you control the motor from the PC in the BACdoor software (eg, write to the register and make the motor spin at a constant speed)?
I ask because I do not have a controller yet, and don't want to buy one unless it will work.

--------------------------------------------------------------------------------------------------------------------------------------------------
In the BACdoor software there are the two following write windows with throttle settings, if you enter a value and click write will the motor start spinning?
Under "peripheral configuration" and "throttle"
1.jpg
Under "controller debug"
2.jpg

--------------------------------------------------------------------------------------------------------------------------------------------------
As far as the XML file goes, here are some of the relevant parameters that I have found, Have you played with any of them?

on line 2375:
</ParameterDescription>
<ParameterDescription FaultIndicator="false">
<BitField />
<AccessLevel>0</AccessLevel>
<Address>208</Address>
<Read>true</Read>
<Write>true</Write>
<Name>Control command source</Name>
<Scale>enum</Scale>
<Description>0 is serial stream / 1 is throttle / 2 is pedal sensor / 3 is throttle AND pedal sensor / 4 is throttle OR pedal sensor /5 is torque sensor</Description>

On line 2828:
</ParameterDescription>
<ParameterDescription FaultIndicator="false">
<BitField />
<AccessLevel>0</AccessLevel>
<Address>247</Address>
<Read>true</Read>
<Write>true</Write>
<Name>Throttle sensor source</Name>
<Scale>enum</Scale>
<Description>0= Throttle Voltage, 1=brake1, 2=brake2, 3=CAN torque, 4=LIN, 5=Network Voltage, 6=10V bms in</Description>
</ParameterDescription>

On line 3176:
</ParameterDescription>
<ParameterDescription FaultIndicator="false">
<BitField />
<AccessLevel>0</AccessLevel>
<Address>270</Address>
<Read>true</Read>
<Write>false</Write>
<Name>throttle voltage</Name>
<Scale>4096</Scale>
<Units>Volts</Units>
<Description>Filtered throttle voltage</Description>
</ParameterDescription>

On line 3916:
</ParameterDescription>
<ParameterDescription FaultIndicator="false">
<BitField />
<AccessLevel>0</AccessLevel>
<Address>325</Address>
<Read>true</Read>
<Write>false</Write>
<Name>throttle setpoint</Name>
<Scale>4096</Scale>
<Units>pu</Units>
<Description>Filtered throttle signal</Description>
</ParameterDescription>

On line 5802:
</ParameterDescription>
<ParameterDescription FaultIndicator="false">
<BitField />
<AccessLevel>0</AccessLevel>
<Address>495</Address>
<Read>true</Read>
<Write>true</Write>
<Name>Remote Throttle Voltage</Name>
<Scale>4096</Scale>
<Units>Volts</Units>
<Description>Networked throttle voltage</Description>
 
The answers are Yes and Yes ;)

There are a bunch of ways I can think of to do this, and it depends on the specific implementation of your application.
 
When you do this with your hardware/software which registers do you write to?
How does this work for you / what did you observe?
Do you have a thread/website/blog where you have posted this?

I'm looking to command the motor to go to a preset speed (electrical RPM) via writing to a register. I notice there is a speed command register (as a percent of rated), have you tried writing to this?
 
Thanks Grindz145 for chiming in with your experience here. While we have some future project ideas that will involve digital commanding of the motor controller, we haven't experimented with that at all yet and have designed and are supporting it only under the assumption of an analog control input. So Sletzman, I think the proper answer here is yes, this can all be done, but don't expect any hand holding or step by step guides to getting it working for you. You need to be the kind of person who has a knack for "figuring things out".

On with some more updates for those following, we now have samples of the bare boards for what ASI is calling their "BAC 800" product, which has the same board layout changes to the potted BAC Ne350 units but with the 100V components, 2.5 mOhm fets, and higher phase current capability. One of the main differences though is that it has much larger high-ripple bus capacitors, which is great, but it completely changes the dimensional layout and made it impossible to fit in the same flat compact geometry we had before.

However, after bending the mofset legs back at 90 degrees we can work a profile that has similar total volume as before, only it is narrower and taller in profile, actually pretty close in aspect ratio to the much earlier home-made controller builds I was doing here.

Old 2008 Controller.jpg

So we machined a heatsink and clamping system for the mofsets that will sit on the bottom half, and then would likely do a thermal epoxy potting for the top half.
BAC800 End View Layout Concept.jpg
BAC800 Layout Concept.jpg
 
That is awesomely compact for 1.5kW! I'm glad you're liking those new Ti FETs, they are an excellent part.

4 of them should fit nicely under a skateboard, and make for a very quick ride! :twisted:
 
I saw those new pics and thought "awesome--he's finally gonna make available that controller he used in the cross-canada trip!" :lol: :oops:

Guess not, but still, that's a niftily small package. I *think* that might fit inside the "downtube" of the new trike Dogman and I just built:
file.php
 
Just when I was bemoaning the lack of BAC500s in the future, Justin comes through with an even tinier controller!

Justin, Is It gonna be a long wait for these to go into production?
 
liveforphysics said:
That is awesomely compact for 1.5kW! I'm glad you're liking those new Ti FETs, they are an excellent part.

I do like those, but these controllers here from ASI are using regular TO220 fets, the ones here are AOT290L's which are both cheaper and better performing than 4110's, and we've often put them to use when there is a global inventory supply shortage of the 4110's.

amberwolf said:
Guess not, but still, that's a niftily small package. I *think* that might fit inside the "downtube" of the new trike Dogman and I just built:

Dimensions are 1.25" wide by 1.6" tall, final length is still TBD depending on how we deal with the cable exits and bike tube attachment strategy but likely around 4". Is your downtube 1.5" or 2" square stock? If it's the latter it should fit OK inside, but if it's 1.5" then the controller will be too tall. Not that I'd necessarily want a controller inside a downtube, but if you're welding the bike up from scratch that is certainly possible to design in. So long as the controller heatsink is screwed and well coupled to the metal tubing then it would do a great job at spreading and dissipating the controller heat.

ambroseliao said:
Just when I was bemoaning the lack of BAC500s in the future, Justin comes through with an even tinier controller!
Justin, Is It gonna be a long wait for these to go into production?

I'm always hoping not, but the track record so far hasn't been great at being timely with these projects. The goal is to have our next 50pcs pilot batch of these BAC800 units available by this summer time.
 
I've started experimenting with my Crystalyte 3548 with BAC500 and I keep running into the same issue. The motor will not rotate from a standing start scenario...I have to get it rotating and it slowly come up to top speed but only on a flat slope. Soon as I hit any incline opening the throttle has no impact. Could this be motor rpm setting?
 
121jiggawatts said:
I've started experimenting with my Crystalyte 3548 with BAC500 and I keep running into the same issue. The motor will not rotate from a standing start scenario...I have to get it rotating and it slowly come up to top speed but only on a flat slope. Soon as I hit any incline opening the throttle has no impact. Could this be motor rpm setting?

Did you follow EVERY SINGLE step that robbie outlined here?

http://endless-sphere.com/forums/viewtopic.php?p=978256#p978256
http://endless-sphere.com/forums/viewtopic.php?p=978281#p978281

If not, then go through that sentence by sentence and do every step that is listed, and if you have any specific questions about one of those steps then ask it here.
 
justin_le said:
Dimensions are 1.25" wide by 1.6" tall, final length is still TBD depending on how we deal with the cable exits and bike tube attachment strategy but likely around 4". Is your downtube 1.5" or 2" square stock? If it's the latter it should fit OK inside, but if it's 1.5" then the controller will be too tall. Not that I'd necessarily want a controller inside a downtube, but if you're welding the bike up from scratch that is certainly possible to design in. So long as the controller heatsink is screwed and well coupled to the metal tubing then it would do a great job at spreading and dissipating the controller heat.

Unfortunately it looks like it's 1.5" ID (1.65" OD), so I guess no built-in controller for this one. ;)

It was only a passing thought of amazement at it's size, really, anyway. :oops:

(OT, but presently it's "planned" to have an old "heavily modified" 18FET Methods controller (1st prototype from the 18fet thread, I think) just above/behind that downtube, above the cranks, but it's stopped working for unknown reasons I've gotta figure out).
 
I took the BAC500, CADP V3 and Crystalyte HS3540 sensorless using my old Bosch Fat Pack 37V packs for a spin and found the bike extremely smooth and quiet which is wonderful. However, I find the throttle response too "slow" for my taste. It takes the bike a good 10 seconds @WOT before it starts going near 25-30mph using about 1000W. I'm not sure if it's the throttle settings in BACDoor or the CA V3 or my saggy batteries. I have NOT calibrated my throttle to the BAC500 yet and I haven't looked at the CADP after I reset it to factory settings yet to determine the cause. It's hard to test this combination without riding it because the motor seems fine without a load.

I'll try calibrating the throttle and looking at the CADP V3 soon.
 
ambroseliao said:
I took the BAC500, CADP V3 and Crystalyte HS3540 sensorless using my old Bosch Fat Pack 37V packs for a spin and found the bike extremely smooth and quiet which is wonderful. However, I find the throttle response too "slow" for my taste. It takes the bike a good 10 seconds @WOT before it starts going near 25-30mph using about 1000W. I'm not sure if it's the throttle settings in BACDoor or the CA V3 or my saggy batteries. I have NOT calibrated my throttle to the BAC500 yet and I haven't looked at the CADP after I reset it to factory settings yet to determine the cause. It's hard to test this combination without riding it because the motor seems fine without a load.

This is actually one thing that everyone should be aware of. The controller uses a torque throttle, not a voltage PWM throttle, so to go from zero to full torque on the motor you need to go all the way to full voltage on the throttle signal, regardless of your speed, ie a full 3V span. With a voltage throttle, the entire range from no power to full power is usually only over ~0.5V of throttle movement. So at low speeds, 1V is no power, and 1.5V might be already at the controller current limit. At mid speeds, you won't have any power until the throttle hits say 2.5V, and then once you get to 3.0V it's maxed out again. And then when you are travelling fast you'll have no power when the throttle is below 3V and need the full 3.6V to get full torque.

With the torque throttle, no matter how fast you are going, the useful throttle range is still from 1V up to 4V, so all the CA's ramp and gain settings would need to be about 6X larger than you'd use with a standard infineon device in order to have the same effect.

We had the default throttle ramping in the BAC500 parameters set reasonably fast, so almost for sure the lag in your case is from the CA settings being appropriate for a voltage PWM throttle, and not for a torque throttle. The reason that it 'seems' to ramp up fast when you test it unloaded is that with a torque throttle, even the smallest amount of torque will spin the wheel up to full speed when there is no drag on the hub. Half throttle does not mean half speed, it means half torque. A lot of people get confused by since they are used to voltage throttle behavior.
 
Thanks Justin!

I'll check it out and see if I can improve things.

Just to be clear (pleading ignorance of the CA V3), there is a setting in the CA that you can change to torque throttle?
 
ambroseliao said:
Thanks Justin!

I'll check it out and see if I can improve things.

Just to be clear (pleading ignorance of the CA V3), there is a setting in the CA that you can change to torque throttle?
http://www.endless-sphere.com/forums/download/file.php?id=145397
Scroll down to section 4.6 :wink: Teklectic's guide is a good one. Even has an easy to understand "back to default" steps for those overzealous types :twisted: .

I may be wrong, but I think the CA only acts as a means to on-the-fly ability to change the throttle's limits & ramp up & more without the need to bring a laptop and controller program cable along for the ride. What determines if the throttle is torque/current vs. speed/voltage based is in the controller. I'd imagine the nicer controllers have both options to play with.
 
Thanks Melodious,

I'll check it out.
 
I'll go back and re-do those steps again anyway. In the meantime, I see ambroseliao's post and that pretty much describes the throttle response. The motor spins up to 80Km/h almost wheels-up but in a test ride scenario you have to be very cautious with the throttle and let it slowly, come up to speed, etc. Insanely, quiet though. I'm comparing to my Grinfineon 3635NC. But now that you have highlighted the torque throttle it does explain why we are seeing slow ramp-up.
 
In the meantime, I did get much improved results by connecting directly to the BAC500 controller. Then, I may play around the the CA Throttle ramping to see if I can fine-tune it.
 
Can I just say that Teklektik's Cycle Analyst V3 manual is a magnificent piece of technical writing. I don't know if anyone else has looked at it, but it is truly a technical masterpiece and can be studied intensely for a great deal of knowledge on ebikes/motors/controllers/electronic theory, oh and also ALL about the Cycle Analyst V3! BRAVO! :!:

http://www.endless-sphere.com/forums/download/file.php?id=145397
 
I found the instructions for setting the throttle mode in section 5.2 of Teklektik's CA V3 manual. I need to switch my throttle to connect to the CA instead of the BAC500. Much new learning here for me! :oops:
 
Back
Top