Programming ASI Bac 8000

Doust72

10 mW
Joined
Aug 29, 2019
Messages
25
Hello I have a controller 8000 and I can not manage it. I have everything connected cable phase engine sensors hall and accelerator the controller turns on well I connect with the application android but I can not start the detection engine (when I click on rum nothing that passes)
I have a controller over voltage error !

Motor qs 205 v3
Batterie 20s20p vtc6
Bike vector vortex
 

Attachments

  • Screenshot_20191013-102805_Gallery.jpg
    Screenshot_20191013-102805_Gallery.jpg
    64.1 KB · Views: 11,574
  • Screenshot_20191013-102833_Gallery.jpg
    Screenshot_20191013-102833_Gallery.jpg
    64.3 KB · Views: 11,564
I also would like to find a freelance professional willing to tune these controllers to a given motor.

Obviously getting paid for that is fair enough.

Otherwise I would continue to avoid buying them.
 
I know how to program them. There's a fairly steep learning curve since it's all the "ASI way".
There's lots of manual settings to do up front and things to try in various ways.
ASI controllers can be rather quirky how they deal with some motors. Pack voltage and other details can also get in the way.
There's an inrunner I have, 4 poles, but for this specific motor I have to use the number of magnets instead.
Other motors, the controller does the pole count correctly, but the halls have to be manually configured.
Each time I set up my ASI with a different motor, there's invariably a different set of hoops to jump through before the motor runs correctly.

They really could have done a better job of making them user friendly and also provided a wizard for auto-detection that actually works.
 
If you have indications to give me for programming

I do not know if I'm wrong but I think I saw that there was the possibility of using this software to control the asi bac 8000. I am wrong ?

grin software for phaserunner
 

Attachments

  • 20191014_202916.jpg
    20191014_202916.jpg
    80.4 KB · Views: 11,543
I have advanced on the programming of the controller the bike works there is just a problem again when I leave from 0kmh to 5kmh I have vibrations with the engine when I accelerate very gently no tremor and once arrived at 10kmh more worries the bike works well and I can accelerate thoroughly without problem if you have ideas to help me thank you

here is a video of the problem :
https://youtu.be/5BJhSFInrNM
 

Attachments

  • ebike 7.xml
    38.5 KB · Views: 202
For the benefit of the community, I'll summarize our email discussion, firstly, here were the suggestions on battery protection parameters.
ASIerrors.png
Then you had instantaneous undervoltage errors due to incorrect SOC algorithm parameters, since you are using the ASI battery protection scheme.
Next, you had communication timeout issues, and I suggested setting your Command timeout threshold to 0, same with average Command timeout threshold. This is in the communications tab of bacdoor. This perhaps should be a temporary fix, since it might be indicative of some other issue.
Anyways, hope this helps someone.
 
hello i have a question. So with my bac 4000 controller I connected an analog brake on brake 2 as indicated on your if it works very well on my bac 8000 I made the same connection and same setting but brake 2 always remains at 4.6v when it is connected and when it is plugged in nothing suddenly it does not work nothing happens when I use the brake I do not understand why on a controller it works and on the 2nd no with that I plugged in the same way thank you
 

Attachments

  • thumbnail_Screenshot_20200307-090059_Chrome.jpg
    thumbnail_Screenshot_20200307-090059_Chrome.jpg
    27.8 KB · Views: 10,783
Doust72 said:
hello i have a question. So with my bac 4000 controller I connected an analog brake on brake 2 as indicated on your if it works very well on my bac 8000 I made the same connection and same setting but brake 2 always remains at 4.6v when it is connected and when it is plugged in nothing suddenly it does not work nothing happens when I use the brake I do not understand why on a controller it works and on the 2nd no with that I plugged in the same way thank you

Hey, I'm trying to solve the exact same issue with my BAC8000. I bought direct from ASI and my first unit arrived with a dead logic board-- would not power on, could not connect to it. 3 months later, I got my replacement and it had some kind of internal short and I couldn't precharge it. 3 months later, here I am and I've wired everything up, still need to do some tuning but while my throttle works, the hall throttle on my brake2 input also floats at ~4.6v.

Reading in the knowledge base, there's a post from 5 years ago that seems to address this:
Code:
Posted on November 10, 2015 by  Support
I found both brake 1 and brake 2 voltage reading are 4.8V when I connected a throttle to them. I set regen brake source and active the analog brake feature. I can feel the motor has some resistant when I spin it. But seems my throttle doesn’t work.

———–

I have not tried  a throttle on a brake input. The difference between a brake input and a throttle input is the 4.7k pull-up resistor which may cause a hall type throttle output not to work.So far most customers have just been working with a standard on/off brake.

 

I have not looked too seriously, but I think  there are analog brakes that work differently than a throttle? Is there such a thing as two wire potentiometer type brakes?

If I'm understanding correctly, this input may not actually work with a hall throttle and may require a potentiometer-type control. But this has been the standard approach with Adaptto, Sabvoton, etc... Can anyone with some experience programming these describe how they setup regen braking? Variable regen is a very essential feature for me.

EDIT: Also having issues with the motor autotune. First off, the motor resistance/inductance test pulse determined values for my QS205 4T that are both about half of what I expected from other reports (22mOhm, 88uHenries vs. 48.5mOhm, ~200uHenries reported). Second, the hall wiring/offset and RPM autotune doesn't work-- the motor just buzzes, rocking back and forth regardless of my phase order or resistance/inductance values. Seems in like with ElectricGod's experience that the autotune doesn't work and hall order must be set manually. Looks like my greatly-anticipated testride will be another day...
 
actually it does not work with the halls for the electric brake I used a potentiometer me and it works. I also have the qs 205 engine
 
Doust72 said:
actually it does not work with the halls for the electric brake I used a potentiometer me and it works. I also have the qs 205 engine

Good info, does a pot provide graded regen on brake1? Or are you using brake2? And where did you find a potentiometer throttle? The only ones I know of are full twist e.g. Domino.

Although not stated in their "Hardware Inputs" summary which would lead you to believe both Brake1 and Brake 2 are appropriate for a standard hall regen throttle, according to the fine print on the 'Brake Configuration' page, analogue regen only works on Brake2. I tried connecting a 10k pulldown resistor between the Brake1 signal line and ground, essentially this makes it function like a potentiometer and I got the right signal range (1v regen hall throttle off, 4.1 volts full engaged) however the controller seemed to only interpret this as a binary on/off signal when it passed ~2.6V, regardless of analogue regen range settings. Based on the digital input readouts, anyway-- hours later and I haven't gotten past autotune.

For my setup with a hall-based chain tension "torque" sensor, hall throttle, hall regen brake, and motor temperature sensor I have no choice but to put the throttle on brake1, regen throttle on brake 2, torque sensor on throttle, and motor temperature sensor on the analog BMS. There are subtle distinctions between each of the overlapping inputs on their summary page. In total all the inputs allow practically any hardware configuration, but if it's anything other than a very simple one, you probably won't be using the inputs you'd expect.

I did discover that you can use the walk-mode input as an additional torque-sensor/PAS only power profile, no throttle. Essentially can be used as a "Class 3" ebike switch, in addition to a separate 'alternate' power profile switch.
 
So, in the 6 months I spent RMAing DOA units, the BAC8000's got newer firmware that the copy of BacDoor I got months prior did not support. Once I got updated dictionaries for BacDoor, it took me all of a half hour to setup. Very impressed with the performance. :mrgreen:

The new library has bits in Features2 that allow you to toggle the pullups on brake1/2, so you can use either a hall, potentiometer, or switch on these inputs for regen braking or cutoffs without having to use your own pulldown resistors.
 
xenodius said:
So, in the 6 months I spent RMAing DOA units, the BAC8000's got newer firmware that the copy of BacDoor I got months prior did not support. Once I got updated dictionaries for BacDoor, it took me all of a half hour to setup. Very impressed with the performance. :mrgreen:

The new library has bits in Features2 that allow you to toggle the pullups on brake1/2, so you can use either a hall, potentiometer, or switch on these inputs for regen braking or cutoffs without having to use your own pulldown resistors.
Whats the newest firmware and how do I know if I have it?
 
Tommm said:
Whats the newest firmware and how do I know if I have it?

My controller is running firmware 6.012, bootloader 1.324. You can view these data in the Android app under "BAC Information", and in BacDoor also but you may have to add parameters to read. Happy to share the updated dictionary and config files, just PM me (I get PM but not thread notifications).

Unrelated edit: I was able to slightly reduce the subtle vibrations when accelerating from a complete stop or regenerating at low speed by making small adjustments to the Current Regulator Kp/Ki values.
 
Hey just curious, when you say "bought direct from ASI", do you mean that "eval kit" on their web site?
 
anyone have an idea how to program the cruise control with the asi 8000/4000/2000 ?
 
PopTart said:
Hey just curious, when you say "bought direct from ASI", do you mean that "eval kit" on their web site?

I bought the BAC8000 evaluation kit before they raised their price from $800 to $1600, yes. They are currently revamping their support page and documentation, thankfully! I was concerned about issues with ERT, didn't know of another distributor, wanted the option to get troubleshooting support, and wanted to ensure I had a login so I could program it myself.

Currently very happy with it although I still haven't gotten the temperature sensor to work properly... the input voltage appears to track properly, but the calculated temperature does not even though it's mapped to use the temp sensor for that same input.
 
Apparently controllers running on 5.xx firmware use a different chipset than the 6.xx controllers, so newer firmware meant for a v6 controller will not work on a V5 controller.

From ASI support:

"Yes, we have two versions of firmware: version 5 for “old” and version 6 for current production controllers. If your controllers are on v5, all of them will use the same firmware. The same goes for v6. The only thing is if you have a mix of v5 and v6 controllers, then you will be running different firmware since the v5 will not work on v6 controllers and vice-versa.

The difference between v5 and v6 is the chipset, thus the incompatibility."

So the 5.xx firmware works on all v5 controllers but not on v6 controllers, and 6.xx firmware works on all v6 controllers, but not V5 controllers. If you have an older controller, running 5.xx software, you may brick your controller trying to upgrade to 6.xx firmware.
 
So I've been trying to decipher the serial protocol of the ASI controllers, to find a way to quickly reprogram entire profiles of parameters by a hardware switch instead of just the speed/max power available by the native street/race modes through digital inputs. For example, change phase amps and min/max field weakening for an 'efficiency' profile at the saturation limit and a 'wheelie' profile to drop jaws :twisted: As well, I'd prefer to have my torque sensor and throttle as separate inputs on the BAC8000 and use its assist profiles to disable/adjust the torque sensor or control max power natively, rather than externally through a cycle-analyst and shunt. I tried *many* port sniffing applications but none worked for various reasons-- driver, x32 architecture, unmentioned trial limitations.

So I asked Martin about it. He provided this very helpful attached document on the MODBUS implementation used by ASI controllers. With this information, after checking the slave ID in BacDoor (1 for this serial input) I was able to read or edit parameters using only a PuTTy serial terminal. Turns out this is quite straightforward and I'll be using these findings to develop a python-based display for ASI controllers to run on a Raspberry Pi.

For example, to read the field weakening value I send the following command (in hex):
Code:
01 03 00 81 00 01 d4 22

01 is the slave ID. 03 represents the command, read register. 00 81 is the hex for address 129 (register 128!). 00 01 represents the number of registers from 129 to be polled-- just this one. D4 22 is a "CRC" code, kind of like a two-byte hash generated from all the previous bytes of the request and calculated independently on each device, compared to ensure the data was properly transmitted.

As you can see, it is really quite easy to program these values. I have since discovered a nice program Modbus Master that makes it easy to experiment with commands and log the actual serial data between the PC and controller. Conveniently, many of the parameters are logically grouped. With one command, you can poll controller temperature, vehicle speed, motor temperature, motor current, motor RPM, motor speed, battery voltage, battery current, battery SOC, and battery power by reading address 259 and the following 10 registers:
Code:
01 03 01 03 00 0a 34 31


So to adjust field weakening to 0% on my controller, the value is 0 and the command 10 to write holding register 128 (address 129) results in the follow line:
Code:
01 10 00 81 00 01 02 00 00 b8 41
To adjust to 50% field weakening, the value is 2048 and the resulting hex command is:
Code:
01 10 00 81 00 01 02 08 00 bf 81
In both cases, in accordance with the attached protocol, the controller sends the following to confirm successful receipt of the command at that register:
Code:
01 10 00 81 00 01 51 e1

I've now decided a simple profile switch would be too easy. There is great support for MODBUS on a variety of devices... I want to make my own display. Arduino is too slow to write to a display one pixel at a time, so I think Raspberry Pi is the answer. It's a bit like using a sledgehammer on an ant but cost is comparable to Arduino and it will guarantee exceptional responsiveness on the display, and can be used for many other purposes e.g. dashcam logging, interfacing with other onboard devices like a lowjack or relays for accessories, running Android/navigation, Diablo2, whatever. :lol:

So, I'm developing an open-source Pi-based display for ASI controllers. I'll do just one screen with key stats... maaaybe a 2nd screen with interesting trip stats. Main screen will show speed, power, Ah from logged current/time and from that Wh/mi trip average and "instantaneous" rolling average, battery voltage with a most sag in last x seconds indicator/value, motor temperature with indicator when foldback initiates, controller temperature, buttons to increment and display current assist profile, and a few buttons to switch preset configuration profiles based on exported .xml... and a button to arm my GeogramOne lowjack, engage antitheft, display a keypad and wait for a PIN to unlock.
 

Attachments

  • ASI Modbus Protocol Rev 1.21.pdf
    1 MB · Views: 308
xenodius said:
The new library has bits in Features2 that allow you to toggle the pullups on brake1/2, so you can use either a hall, potentiometer, or switch on these inputs for regen braking or cutoffs without having to use your own pulldown resistors.

Is this similar to your configuration for analog brake?
Mine is still not working, I can't change value for Bit 12 and bit 13.
I am using traditional hall throttle as a analog brake.

Many Thanks
j
 

Attachments

  • Screenshot_2020-08-22-18-09-20-51_62d4deb04d2944ef725c78981e37173f.jpg
    Screenshot_2020-08-22-18-09-20-51_62d4deb04d2944ef725c78981e37173f.jpg
    64.3 KB · Views: 9,489
  • Screenshot_2020-08-22-18-09-31-47_62d4deb04d2944ef725c78981e37173f.jpg
    Screenshot_2020-08-22-18-09-31-47_62d4deb04d2944ef725c78981e37173f.jpg
    67.9 KB · Views: 9,482
Brake 1 input for me only operated like a switch for regen. I think both are listed as analog inputs but you might need to use Brake 2 for a hall sensor or potentiometer. As you realized the Brake 2 pullup you have on should only be on if you're using a potentiometer that increases resistance as you engage it, versus a hall sensor that reduces resistance as you engage it. You could overpower it with a pulldown resistor but its preferable to keep the signal lines as clean as possible. 20mA max IIRC.

I had the same problem with the pullups when I tried to program a 6.xx hardware controller with 6.xx firmware using the 5.xx parameter dictionary I had on either PC or android BacDoor apps. I have attached the parameter dictionary (ASIObjectDictionary.xml) a nice layout for PC BacDoor (ApplicationLayout.xml) and the firmware file I got on 5/23/2020 (90-000280 BAC_Application_28035_6013.ehx). You probably just need the parameter dictionary, but you're not the only one who has had this or a similar issue-- 14 other people have PMed me to ask about similar issues related to their recent hardware/software revision that required these so I'm just gonna post them, but emphasize that other people stumbling upon this verify that they have a 6.xx controller as I'm not sure what problems could result from flashing 6.xx firmware onto 5.xx software. If in doubt email ASI with the serial/hardware information stickered on your controller.

Sending
Code:
01 10 00 ad 00 01 02 00 00 bf ed
in a serial terminal would also disable the pullup on 6.xx :wink:
 

Attachments

  • ASI.zip
    148.9 KB · Views: 242
xenodius said:
Brake 1 input for me only operated like a switch for regen. I think both are listed as analog inputs but you might need to use Brake 2 for a hall sensor or potentiometer. As you realized the Brake 2 pullup you have on should only be on if you're using a potentiometer that increases resistance as you engage it, versus a hall sensor that reduces resistance as you engage it. You could overpower it with a pulldown resistor but its preferable to keep the signal lines as clean as possible. 20mA max IIRC.

Thank you very much 4 your support!
My firmware is 6.012 with 1.324 bootloader

Some updates with my configuration (following your precious suggestions :eek: ):
  • Wired the Brake Hall sensor (a thumb throttle) on Brake 2 input
  • Brake 1 input (switch regen) for now shortcutted with +5v
  • "Bit 13 Brake 2 Pullup enable" -> finally I can set the option to on
    (NOTE FOR THE FUTURE READERS this settings needs to be added to BACDoor app, use "Insert Parameter" to find it)

My actual Setup still not working, when I press the regen brake now controller cut off the engine, but regeneration did not happens. Probably there is some other settings need to be configured and I hope that there is no bug of 6.x firmare!

Pleeeease xenodius or something else could share an exaple xml of working regen configuration?

I have attached my own, I noticed that my xml has any parameter with a comment, it will be easy to find the parameters with other settings directly opening the xml file (I am using Beyond Compare 4 to do that)

View attachment Config02.xml

thanks
j
 

Attachments

  • Screenshot_2020-08-23-11-16-07-07_62d4deb04d2944ef725c78981e37173f.jpg
    Screenshot_2020-08-23-11-16-07-07_62d4deb04d2944ef725c78981e37173f.jpg
    68.9 KB · Views: 9,427
I poked around in the config file a bit (very nice of you to comment it like that) but for faster debugging just loaded your configuration onto my controller to test it live using PC BacDoor. Right away I noticed that contrary to the mobile app images you showed that the Cutoff brake sensor source and Regen brake source are both 0 (brake 2) so you are likely triggering cutoff and preventing both regen and throttle. Changing your Cutoff brake sensor source to network or an unused input should do it. Did you update your mobile application parameter dictionary with the previously attached file? Here's my config-- I'm also using Brake 2 for regen and have Cutoff brake sensor source set to Network.

Also you said you could finally set brake 2 pullup to on, but it is off in your config-- as it should be for a hall throttle!
 

Attachments

  • Taranis.xml
    53.3 KB · Views: 135
Back
Top