# Configuring ACX1 SME Controller - CAN Network



## MoonUnit (Jun 29, 2019)

Hi, I'm trying to configure the CAN network on my ACX1 to receive messages. 



My CAN Network page is different to the one shown in the user manual, and gives me very little info. I'm trying to import SOC from my BMS.



Does anyonne else have this issue?



I am running SmartView_2BC_2BD_DLR, which I was given recently by Go-EV, but the help documentation is versioned 1.0.0, 2017.


Screenshots (first of my screen, second from the manual). And yes, I have emailed Netgain for help, but no response as yet.


----------



## JLMCC (May 28, 2021)

Salut.
J'ai le même problème, avez-vous trouvé une solution?
Je voudrais afficher la température du moteur et du variateur dans TORQUE PRO


----------



## MoonUnit (Jun 29, 2019)

JLMCC said:


> Salut.
> J'ai le même problème, avez-vous trouvé une solution?
> Je voudrais afficher la température du moteur et du variateur dans TORQUE PRO


Bonjour ... desole, je ne parle pas bien Francais, mais:

Torque requires OBD2 message structures. The ACX1 controller will send CAN messages, but not in OBD2 format. Do you use the Orion BMS? If so, you can use that as a 'relay' to receive CAN and transmit in OBD2 format for Torque.


----------



## JLMCC (May 28, 2021)

[QUOTE = "MoonUnit, message: 1072789, membre: 258373"]
Bonjour ... desole, je ne parle pas bien Francais, mais:

Le couple nécessite des structures de message OBD2. Le contrôleur ACX1 enverra des messages CAN, mais pas au format OBD2. Utilisez-vous le BMS Orion? Si tel est le cas, vous pouvez utiliser comme un `` relais '' pour recevoir CAN et transmettre au format OBD2 pour le couple.
[/CITATION]
Merci pour la réponse. Oui, j'utilise Orion BMS, tous les pids Orion sont OK dans TORQUE, c'est juste la température Netgain pour le moteur et l'onduleur, je ne vois pas ces informations dans TORQUE.
Désolé aussi, j'essaye de parler anglais sur ma réponse but forum try to translate..


----------



## JLMCC (May 28, 2021)

[QUOTE = "JLMCC, message: 1072797, membre: 274593"]
[QUOTE = "MoonUnit, message: 1072789, membre: 258373"]
Bonjour ... desole, je ne parle pas bien Francais, mais:

Le couple nécessite des structures de message OBD2. Le contrôleur ACX1 enverra des messages CAN, mais pas au format OBD2. Utilisez-vous le BMS Orion? Si tel est le cas, vous pouvez utiliser comme un `` relais '' pour recevoir CAN et transmettre au format OBD2 pour le couple.
[/CITATION]
Merci pour la réponse. Oui, j'utilise Orion BMS, tous les pids Orion sont OK dans TORQUE, c'est juste la température Netgain pour le moteur et l'onduleur, je ne vois pas ces informations dans TORQUE.
Désolé aussi, j'essaye de parler anglais sur ma réponse mais le forum essaie de traduire ..
[/CITATION]
Comment puis-je utiliser Orion comme «relais»?
Je fais les PID 25 et 26 avec CAN NETWORK, 25 est le moteur de température 26 est un inverseur de température. Quand je vérifie avec CAN ANALYZER, je peux voir ces PID
[QUOTE = "JLMCC, message: 1072797, membre: 274593"]
[QUOTE = "MoonUnit, message: 1072789, membre: 258373"]
Bonjour ... desole, je ne parle pas bien Francais, mais:

Le couple nécessite des structures de message OBD2. Le contrôleur ACX1 enverra des messages CAN, mais pas au format OBD2. Utilisez-vous le BMS Orion? Si tel est le cas, vous pouvez utiliser comme un `` relais '' pour recevoir CAN et transmettre au format OBD2 pour le couple.
[/CITATION]
Merci pour la réponse. Oui, j'utilise Orion BMS, tous les pids Orion sont OK dans TORQUE, c'est juste la température Netgain pour le moteur et l'onduleur, je ne vois pas ces informations dans TORQUE.
Désolé aussi, j'essaye de parler anglais sur ma réponse mais le forum essaie de traduire ..
[/CITATION]

Comment puis-je utiliser Orion comme «relais»?
Je fais des PIDS 25 et 26 avec CAN NETWORK, 25 est un moteur de température et 26 est un inverseur de température, quand je vérifie avec CAN ANALYZER, je peux voir ce PIDS mais je ne peux pas le voir avec TORQUE PRO.


----------



## MoonUnit (Jun 29, 2019)

What you need to do is enable support for the Curtis controller in the Orion software. That is how you use the Orion as a 'relay'.

Then choose a CAN id value - say 501 - and set it to 'receive' in the Orion CAN message page. Set all the fields to blank. 

Then go to the ACX1 and set a CAN message in the TPDO page for motor temperature and controller temperature. It might be easier to just do one of them first. Make sure it's sending the same message ID as the one you have chosen above (501).

You need to note which bytes are being used by the ACX1. If you use byte 0, that is letter 'A' in the torque formula.

In the Torque spec sheet on the Orion website, the Torque pids / formulae for the HPEVS devices are shown at the end. Change the motor temp one to use the CAN message id you used above. I think the Orion responds to mode B48xxx so if you had a CAN message id of 501, you'd use B48501 as the mode/pid to request that Orion send it as OBD2.

I hope that helps, I don't have the software open in front of me to check all this.


----------



## JLMCC (May 28, 2021)

Yours explications are clears but i don't understand why it doesn't work on my EV (ACX1 with Tau and Orion 2 )


----------



## MoonUnit (Jun 29, 2019)

Can you post a screenshot of:

1. The TPDO page in ACX1 showing the CAN message you want it to send.
2. The CAN message setup page on the Orion, showing the message structure.
3. The live CAN data on the Orion, which hopefully shows the CAN message from the ACX1 and which byte it is in
4. The Torque formula you are using?


----------



## JLMCC (May 28, 2021)

MoonUnit said:


> Peux-tu poster une capture d'écran de :
> 
> 1. La page TPDO dans ACX1 affiche le message CAN que vous voulez qu'il envoie.
> 2. La page de configuration du message CAN sur l'Orion, la structure du message.
> ...


----------



## bogtus (May 12, 2021)

MoonUnit said:


> What you need to do is enable support for the Curtis controller in the Orion software. That is how you use the Orion as a 'relay'.
> 
> Then choose a CAN id value - say 501 - and set it to 'receive' in the Orion CAN message page. Set all the fields to blank.
> 
> ...


Many thanks for this help, it has been days that I'm looking for this and I couldn't find any info on the web about that, crazy !


----------



## JLMCC (May 28, 2021)

bogtus said:


> Merci beaucoup pour cette aide, ça fait des jours que je cherche ça et je n'ai pas trouvé d'infos sur le web à ce sujet, dingue !
> [/C[/CITATION][/CITATION]
> 
> Est-ce que cette procédure a fonctionné chez vous ?


----------



## bogtus (May 12, 2021)

MoonUnit said:


> Can you post a screenshot of:
> 
> 1. The TPDO page in ACX1 showing the CAN message you want it to send.
> 2. The CAN message setup page on the Orion, showing the message structure.
> ...


Hi MoonUnit,

I've tried to do that as well for a can bus system with 250 Kbps










Here is the information I've set up following what you said ( and what Torque uses as well "601" & "602")
I've activated in the Orion BMS 2 software to retreive message from Curtis controller ( saying that it will integrate IDs 301 - 302, 601 - 602)










But Unfortunately it does not seem to work, I've tried with and without "Add My Node ID"










And no activity can be found at IDs 601 & 602










I've really no clue why it does not seem to work and also the controller seems to refuse those CAN parameters... 😵









@MoonUnit do you see the reason why ?

That would be a precious helping hand

On the other side, if I understood your need completely, you want to import the SoC from the BMS to the Controller ? 
I've been looking for a same feature to import CCL from BMS to controller but in other threads I've seen that the controller can't get any info from CAN bus.


----------



## JLMCC (May 28, 2021)

MoonUnit sayed 501 (not 601). Have a try.


----------



## MoonUnit (Jun 29, 2019)

The SME software doens't allow CAN messages with header from x580 to x67F, so yes, change TPDO message ID to x500, select Add My Node ID so that Real ID = x501. See if that gets you a green 'thumbs up'. If so, you should see a message with ID 501 in the Orion CAN messaging screen. Also, check the CAN speed your Orion is using (mine's on 500K) and make sure the ACX1 is the same.

Is your CAN network properly terminated?


----------



## bogtus (May 12, 2021)

MoonUnit said:


> The SME software doens't allow CAN messages with header from x580 to x67F, so yes, change TPDO message ID to x500, select Add My Node ID so that Real ID = x501. See if that gets you a green 'thumbs up'. If so, you should see a message with ID 501 in the Orion CAN messaging screen. Also, check the CAN speed your Orion is using (mine's on 500K) and make sure the ACX1 is the same.
> 
> Is your CAN network properly terminated?


CAN network is ok with 2 terminal resistances of 120 Ohms and I can get information from all the other devices from CAN.

The controller has been set with TPDO ID x501 which is detected on the CAN reader from the Orion BMS.

I have now values on Torque about Hyper 9 motor but unfortunately they are incoherent (up to 56000 rpm !  ).

First word of 501 TPDO is motor rpm (as suggested by Torque in the preconfig for the Orion +hyper9 system).
The formula seems ok when looking at PIDs list on Orion. Do you see anything wrong which could justify such values ? I have the same incoherent information for temperature, current,...
*







*
I









I've tried a Message ID 500 + Add My Node ID (thus 501) or directly 501 but it's exactly the same result

Getting confused


----------



## MoonUnit (Jun 29, 2019)

The ACX1 transmits its words in little endian format, so for the outputs like motor RPM that have two bytes, ie one word, that you need to reverse the letters in the formula. I don't think you need to set up anything specific on the Orion, just that each byte is blank and the message set to 'receive'.

For RPM, formula would be ((B*256)+A). I don't use Torque, I use EngineLink, but logic is the same.

For Temperature, there is an offset of 40 deg so formula needs to be (C-40) for your message structure.

For current, I am not sure if you can make it work with Torque. I couldn't do it with EngineLink because the messages is being sent in twos compliment and you need a bit of logic to decode it. EngineLink can't do it, maybe Torque can. But you can get current from the BMS anyway. I take motor speed, motor temp and inverter temp from the ACX1 and the rest from the BMS.

If you get the decimal values of the hex for each byte shown in the Orion CAN message you can do the maths yourself to check - remember that the Torque formulae as shown are for the Curtis controller format and the ACX1 is different, all we are doing is using the Orion feature that broadcasts OBD2 when the mode/pid starts B48xxx.


----------



## bogtus (May 12, 2021)

MoonUnit said:


> The ACX1 transmits its words in little endian format, so for the outputs like motor RPM that have two bytes, ie one word, that you need to reverse the letters in the formula. I don't think you need to set up anything specific on the Orion, just that each byte is blank and the message set to 'receive'.
> 
> For RPM, formula would be ((B*256)+A). I don't use Torque, I use EngineLink, but logic is the same.
> 
> ...


Many thanks, everything works perfectly thanks to your tips ! 

I've to precise that I had no problem to get motor Amps from the CAN word


----------



## MoonUnit (Jun 29, 2019)

bogtus said:


> I've to precise that I had no problem to get motor Amps from the CAN word


Glad to hear it's all working - can you explain how you got motor amps to work correctly?


----------



## bogtus (May 12, 2021)

Just as you told me, B*256+A but the results you have is the amps going from the controller to the motor which are very different from the Amps going out of the batteries. That might explain the fact that you had weird results but those are normal


----------



## JLMCC (May 28, 2021)

Is ((B*256)+A) RPM ?


----------



## bogtus (May 12, 2021)

Yes it is


----------



## JLMCC (May 28, 2021)

I start again try after painting.
In Config Battery, SOC Source, do you choose 'Get Soc from BMS' ?
If I choose this I have Alarm52 bloc. Just 'Soc Manager' is OK.


----------



## JLMCC (May 28, 2021)

Hello MoonUnit and Bogtus, 
In Config Battery, SOC Source, do you choose 'Get Soc from BMS' ?
If I choose this I have Alarm52 bloc. Just 'Soc Manager' is OK. 
I think is for that my TPDO aren't OK


----------



## MoonUnit (Jun 29, 2019)

Hi, I did try to get SOC from the Orion but never made it work, and I think I still have the ACX1 set to 'Get SOC from BMS'. It doesn't make any difference to anything as far as I can tell. 

Why do you need to get SOC from the BMS?


----------



## JLMCC (May 28, 2021)

I try to find why my TPDO doesn't work. I can try only with : Battery : Soc Source : Soc Manager.
If I choose battery : Soc Source : Get Soc from BMS i have an error : alarm 52 ID1 Bloc.
I don't know if you use : Soc Manager or Get Soc from BMS in this page.


----------



## JLMCC (May 28, 2021)

TPDO 501 is temperature motor, inverter and SOC, it's ok i have this in Torque.
TPDO 502 is RPM Motor and Amp Motor. I can see this in CAN but formula are no good. 
I use ((B*256)+A) for RPM and ((D*256)+C)/10 for Amp. Do you have idea ?


----------



## MoonUnit (Jun 29, 2019)

Hi - firstly, what would you expect the RPM to be, when you sent the screenshot above (B0, 13) in bytes 1 and 2?

I don't know exactly what 'Motor 1 - Speed *Reference* [rpm]' is supposed to be. But, the ranges are -32768 to +32767. That means the information is being transmitted in two's compliment which you need some logic to decode if you want to interpret negative numbers, I don't know if Torque can do that.

You could also try 'Motor 1 - Speed *Abs*' which I believe will always give you a positive (absolute) number, and does not use two's compliment.

For current, I think you have the same problem (two's compliment). @bogtus did get current to work, but I don't know which field he used in the ACX1?

Have you set up the CAN message structure in the Orion page, setting all fields (for x501) to blank, little endian, receive?


----------



## JLMCC (May 28, 2021)

Salut.
Maintenant c'est bon, mon TPD01 est bon mais pas possible d'utiliser le TPD02. Je ne comprends pas pourquoi.
I try with different ID, all parameters are good, i can see it in Live Canbus Traffic but I can't import in Torque 

je


----------



## MoonUnit (Jun 29, 2019)

Hi - in the Orion, make sure that for the CAN message IDs (501 and 401) that you want to receive from the ACX1 are set to 'receive', that CAN interface is the right one (not disabled), and that the byte order is little endian. Make sure the message speed is the same for ACX1 and Orion. 

If x501 is good, then the ACX1 to Orion bit is working.

The live CAN screen should show x401 byte 0 increasing every second:1F = 31seconds since you turned on the system.

What is the Torque formula you are using? It should be something like B48xxx,ACX1 Time on,s,A,7E3, where xxx = 401 in this case.


----------



## JLMCC (May 28, 2021)

Hi. I tried again today, it's OK I forgot 7E3 in formula.Many thanks MoonUnit.


----------

