Solo device resets ...
 
Notifications
Clear all

Solo device resets settings  

  RSS

Illylonka
(@illylonka)
Eminent Member
Joined: 4 weeks ago
Posts: 47
04/10/2020 12:19 pm  

Hi,

I was having this conversation with my Solo device:

sent:     FF FF 00 97 00 00 00 00 00 FE   (GetMotorType command)
received: FF FF 00 97 00 00 00 03 00 FE (GetMotorType response: 3)
sent: FF FF 00 15 00 00 00 00 00 FE (SetMotorType command: 0)
received: FF FF 00 15 00 00 00 00 00 FE (SetMotorType response: OK)
sent: FF FF 00 97 00 00 00 00 00 FE (GetMotorType command)
received: FF FF 00 97 00 00 00 03 00 FE (GetMotorType response: 3)

Acutally, this is not the only setting that I cannot change despite the device acknowledging the change.

I CAN NOT change:

  • PWM frequency
  • winding resitance
  • winding inductance
  • speed control mode
  • current controller Kp
  • current controller Ki

I CAN change:

  • current limit
  • speed control Kp
  • speed control Ki
  • motor direction
  • number of poles
  • encoder lines
  • position controller Kp
  • position controller Ki

I have not tested the other settings.

What am I doing wrong?

Best,

Illylonka


Quote
(@milad)
Chief Member Moderator
Joined: 8 months ago
Posts: 75
04/10/2020 12:38 pm  

Hi @illylonka

ok, to solve this, you need to remember, that SOLO operates in two separate Modes, Analogue mode, and Digital Mode, some of these parameters if you are not in Digital Mode, will be overwritten by analog settings as they will have higher priority once the system is in Analogue mode ( like motor type and so on), so to test better this:

1- first put SOLO in Digital Mode (command code 0x02) and check if the problem gets solved.

2- for PWM frequency, you need to know that, once you set the parameter the value is in kHz, but once you read it from SOLO it's in Hz (1000) times more. so for example, if you set the PWM frequency at 8kHz by sending "ff ff 00 09 00 00 00 08 00 fe" after you read it, it will be like " ff ff 00 8b 00 00 1f 40 00 fe" , as 0x001f40 stands for 8000.

3- for some parameters like  "winding resistance" , "winding inductance" , "current controller kp" and "current controller ki" , are you sure you are setting them correctly? are their conversion is in range? 

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.


ReplyQuote
Illylonka
(@illylonka)
Eminent Member
Joined: 4 weeks ago
Posts: 47
04/10/2020 3:18 pm  

Hi @milad,

thank you for the clarification!

    I set the command mode to digital and now I can change the motor type.

  1. My GUI object was smarter than it is supposed to be 😉 I read a value of several thousand Hertz and wrote it into a spin box that only allows values between 8 kHz and 80 kHz therefore capping to 80 kHz. A simple
    static_cast<int> (round(static_cast<double>(pwm_frequency)/1000.0))

    does the job.

  2. However, I still cannot set the following even though I have set the Solo device to digital command mode and the Solo device confirms all commands.
    • speed control mode
    • current controller settings
    • winding impedance settings

Best,

Illylonka


ReplyQuote
(@milad)
Chief Member Moderator
Joined: 8 months ago
Posts: 75
04/10/2020 4:49 pm  

@illylonka

I checked again the points you've mentioned:

- For the speed control mode setting I could successfully read and write into it as you can see in the attachment with command codes of [0x13] and [0x99], pls let me know. (try to put at some delay between the commands and see if it helps or not, but it should work without delays as well.)

- For current controller Kp and ki:

you are right, once you write into these two parameters, you need to Recycle the power of SOLO, to see the effect, but to explain why this happens, you need to know that, first of all, a general user will not need to set current controller Kp, Ki, or winding resistance or inductance, as all these parameters are automatically identified during Motor Identification, and they will be remembered, but still some people might want to change them, so we put this option. In the next firmware, we will try to eliminate the need for a power reset for these parameters. ( The general idea was to avoid users interfering in this part )

Regarding the current controller Ki:

once you read it from SOLO, you are actually reading "Ki / 0.00005" which is the Ki gain over sampling time (1/20kHz), also the users in practice need to set Ki in this way if they like to be able to compare it with the "Ki" that SOLO identifies after motor identification for the current controller, but in general, you can set any arbitrary Ki, but when you read it, it will be the result of the mentioned equation, so to find the real value you need to multiply what you read as Ki for current controller into 0.00005 to get the final answer.

- For reading or set of winding resistance and inductance:

Yes, there is a bug here, and we never noticed it, because we never used it as the Motor identification was always working fine, but still, this is a bug, which we will fix in the next F.W release, thanks a lot for catching it. I again repeat that a vast majority of our users, will not need to set any of these values, and they must be identified well by SOLO during Motor ID. so please leave this part aside, and in the next Firmware, you'll be able to put them in action.

Thanks again.

Milad

 

 

 

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.


ReplyQuote
(@milad)
Chief Member Moderator
Joined: 8 months ago
Posts: 75
04/10/2020 5:03 pm  

@illylonka

Sorry, I forgot to mention an important point above:

Regarding the current controller Ki:

once you read it from SOLO, you are actually reading "Ki / 0.00005" which is the Ki gain over sampling time (1/20kHz), also the users in practice need to set Ki in this way if they like to be able to compare it with the "Ki" that SOLO identifies after motor identification for the current controller, but in general, you can set any arbitrary Ki, but when you read it, it will be the result of the mentioned equation, so to find the real value you need to multiply what you read as Ki for current controller into 0.00005 to get the final answer.

it might be a little bit strange but this is what happens inside SOLO, again we need to update the datasheet for that, and sorry for the inconvenience. 

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.


ReplyQuote
Share: