SOLO Communication Manual - UART and USB Contents: Purpose of this user manual UART and USB Access points on SOLO UNO: UART and USB Access points on SOLO MINI: UART or USB Hardware Settings: UART/USB Packets formation _ Commanding and Feedbacks: Memory Assignment for Write Commands:...
Manual is to give a clear idea about how to setup and utilize SOLO communication networks powered by UART or USB and what is the purpose of each command existing in our command lists.
Figure 1- UART and USB access points on SOLO UNO UART TX is not +5V tolerant on SOLO UNO, as it’s an output pin with signal leveled at 3.3V which is compatible with all Arduino and Raspberry Pi modules, connection of this pin to +5V rated signals will damage the device.
Figure 2- UART and USB access points on SOLO MINI UART TX is not +5V tolerant on SOLO MINI, as it’s an output pin with signal leveled at 3.3V which is compatible with all Arduino and Raspberry Pi modules, connection of this pin to +5V rated signals will damage the device.
In case of using USB connection, it will be recognized as a “Virtual COM Port (VCP)”, and the notion of “Baud-rate” will not be relevant as SOLO has a native USB-2 communication and the data-rate is defined by USB-2 ratings, however you can select any desired baud-rate for this port in VCP mode.
SOLO’s in a network, so each of them can be assigned to a unique address. The default value of the address is set at zero.
Page 12
1. Commands to Write or Set something, these commands as their name suggests, will allow the user to tune a parameter inside of SOLO or set a value for the controllers like the desired speed or torque and so on, beside putting the right COMMAND code, the DATA section is used to write the desired value in desired register in SOLO.
Once a parameter is written into SOLO, depending on the nature of the command two scenarios for storing the value will occur, either it will be stored on volatile memory of SOLO and resets to default after power recycling or it will be saved on non-volatile memory of SOLO and remembered after even power recycling and forever until it’s being overwritten or changed.
SOLO Communication Manual - UART and USB DATA Types: The data types in SOLO are categorized into three main types as shown in table below: Name Value Size[bits] Range Resolution UINT32 Unsigned [0 to 4,294,967,295] +/- 1 Integer [-2,147,483,647 to...
3) The float number = (data in Decimal format taken from step “2” /131072 ) * -1 Example1 _ positive Numbers: Data read from SOLO is “0x00030000” So it’s a Positive Numbers Conversion since the data read from SOLO is less than or equal to 0x7FFE0000 so the conversion will be: 1) Decimal (0x00030000) = 196608 2) 196608 / (131072) = 1.5...
Converting float data type to Sfxt(32-17) data type : If the DATA section of a packet to be sent to SOLO, contains a number in Fixed-Point format, you can use the following two methods to convert your real world float number into a Sfxt(32- 17) data type depending on the sign of the float data and whether if it’s a positive value or a...
Converting 32 bits Hex data to signed INT32 format: If you want to convert a DATA part of a packet read from SOLO into the real world Int32 format, based on the sign of the DATA you will fact the following two conditions for the conversion:...
If you want to convert an INT32 value to a Hex formatted number to place in the DATA part of a packet to send to SOLO, based on the sign of the data you want to send, you will face the...
SOLO Communication Manual - UART and USB WRITE Commands: Below all the existing Write commands to set a value in SOLO with their description for UART or USB communication for are listed. 0x01 : Set Device Address Code: 0x01 Set Device Address...
Once in Analogue Mode some configuration can be done only at hardware level, as the table below suggests, everything else outside of the below table can be set only through sending data packets to SOLO through UART, USB or CAN bus.
This command sets the amount of desired current that acts in torque generation. In 3-phase motors this is called Iq or quadrature current as SOLO operates in FOC mode, however for DC brushed motors this value sets the reference for IM in DC brushed motors.
RPM* Description: This command defines the speed reference for SOLO once it’s in Digital Speed Mode, as in analogue mode the reference is set through the “S/T” input pin with analogue voltages or PWM pulses once SOLO is in Speed Mode.
0 or 1 Description: By putting 1 in the DATA section of a packet sent with this command, SOLO will start identifying the electrical parameters of the Motor connected, The identification will take 1 second to be done and after that the Motor Inductance, Resistance and some internal parameters are Identified ( or re-identified).
This is the integral gain of the PI controller that SOLO uses to control to stabilize the speed of a motor on a given reference point, This gain is normally for most motors takes a value in between 0.0001 to 0.01 but there might be some cases that you need to go even higher, the...
[1-254] Description: This command sets the number of the Poles of a 3-phase motor commissioned with SOLO, in case of BLDC or PMSM motors, the Number of poles is equal to the number of magnets on the rotor of the Motor, for ACIM motors, the user has to refer to the technical datasheet of their motor to find this parameter.
Uint32 Description: This command resets the device address of any connected SOLO to zero, to properly form this command the user has to put “0xFF” as the Device Address inside the packet being sent to SOLO with DATA filled with zeros as below:...
Memory Storage Default Value Uint32 [0-2] Description: This command sets the type of the feedback control SOLO has to operate with based on table below both in Analogue or Digital Mode: DATA Operation 0 (0x00000000) Operates in Sensor-less feedback Mode...
0x15, the user has to note that in Analogue Mode the Motor Type is only selected by Piano Switch in SOLO UNO using PIN 1 and 2 and on SOLO MINI it’s selected by M1 and M2 pins on the “I/O Port” (refer to respective SOLO user manual to know more)
Mode based on the following table, in Analogue Mode this functionality is selected by using Piano switch PIN 4 in SOLO UNO and using FN pin on SOLO MINI for only Torque and Speed controlling functionalities. (refer to respective SOLO user manual to know more)
PI controller that controls the current (torque) inside of the motor both in Analogue or Digital Mode, this value is automatically identified by SOLO after Motor Identification but in any case it’s possible for the user to alter this value as they like. After changing this value manually, for them to take effect a power recycle is required.
DATA is sent using the command code of 0x19 in a data packet to SOLO, this functionality works both in Digital and Analogue Control Modes. This Mode is recommended to be used only for inspections and during system evaluations, as its activation puts a heavy processing burden on the main DSP on SOLO.
This command sets the desired magnetizing current (Id) required for controlling ACIM motors in FOC in Amps, it can be used only in Closed-loop digital mode, since in Analogue mode the Magnetizing current reference is set throug Pin “P/F” (refer to SOLO user manual to know more)
DATA part with only zeros inside, the whole error register will be overwritten. Once the error is over-written if it’s cause of existence is removed, SOLO will return back to normal operation, otherwise it will stay in fault mode without any switching at the output.
[0.01 - 16000 ] Description: This command sets how fast the observer should operate once SOLO is in sensorless mode with normal BLDC-PMSM selected as the Motor type. Generally this gain can have values from 1 to 1000 and the lower the gain, the better will be the performance in Higher speeds.
This command sets the baud-rate of the UART line, currently there are two baudrates supported by SOLO, and they can be selected by sending either 0 or 1 in DATA section of the packet with command code of “0x26”, if the value of the baud rate is changed, to make it effective a power recycle is necessary.
This command defines the acceleration value of the Speed for speed controller both in Analogue and Digital modes in Revolution per square seconds, this value only has effect once SOLO is in Speed control mode and it will be ignored once in Torque or Position Mode. www.solomotorcontrollers.com September 2021 - Revision V_1.0.1...
Analogue and Digital modes in Revolution per square seconds, this value only has effect once SOLO is in Speed control mode and it will be ignored once in Torque or Position Mode. Defining deceleration can reduce the regenerative power going back to supply as the speed reduces slowly.
This command sets the baud rate of CAN bus in CANOpen network based on the following table if the DATA in the packet with command code of 0x2C is used, after changing the baud rate a power cycle is required for SOLO so the new baud rate can take effect. DATA...
SOLO Communication Manual - UART and USB Read Commands: Below all the existing command codes to read a value from SOLO with their description for UART or USB communication for SOLO are listed, to read a value from SOLO, the proper command code should be used with DATA section filled with Zeros (unless specified) for the request of the feedback.
Memory Storage Default Value Uint32 [1 - 200,000] 1000 Description: This command reads the number of physical Incremental encoder lines set on SOLO. 0x91 : Current Controller Kp Gain Code: 0x91 Current Controller Kp Gain Data Type Data Range Units...
Analogue mode the motor type shown is the Motor type selected by Piano switch in SOLO UNO ro by the M1 and M2 pins in SOLO MINI in Analogue mode (refer to respective SOLO user manual to know more), to see the Motor type selected in Digital Mode, first the user has to put the system in Digital Mode using command code of “0x02”.
Data Range Units Memory Storage Default Value Uint32 0 or 1 Description: This command reads the actual commanding mode that SOLO is operating , based on table below : DATA Operating Mode 0 (0x00000000) SOLO is in Analogue Mode 1 (0x00000001) SOLO is in Digital Mode www.solomotorcontrollers.com...
Data Range Units Memory Storage Default Value Uint32 [0-30,000] 30,000 Description: This command reads the value of the speed limit set on SOLO. 0x9D : PositionController Kp Gain Code: 0x9D PositionController Kp Gain Data Type Data Range Units Memory Storage...
, the error has occurred if the respective bit is set to 1, The errors can be over-written using command code 0x20 , if an error occurs, until it’s not over- written, SOLO will send out the Error register packet every 300 Milliseconds. Bit Number...
Memory Storage Default Value Uint32 Description: This command reads the Firmware version existing currently on the SOLO unit, the DATA section of the received command will contain a Number like “0x0000B009” which will indicate the firmware version. 0xA3 : Hardware Version...
Default Value Sfxt(32-17) [0 - 100] Description: This command reads the desired Power reference for SOLO to apply in Digital Open-loop speed control mode for 3-phase motors in terms of percentage. 0xA9 : Desired Direction of Rotation Code: 0xA9 Desired Direction of Rotation...
Units Memory Storage Default Value Uint32 Bits/s 937500 Description: This command reads Baud Rate selected on SOLO unit to communicate through UART line as shown in table below: DATA Baud-Rate [bits/s] 0 (0x00000000) 937500 (compatible with 921600) 1 (0x00000001) 115200...
_ NOTE : The SPACE character in between the bytes below, is just for readability purposes and ASCII code of SPACE shouldn’t be sent to SOLO, all the bytes should be sent to SOLO one after another with nothing in between.
Change or Set/Reset the Device address: The default device address on each SOLO upon delivery is 0x00, but you can change this value to anything in between 0x00 to 0xFE (254). For example, below you can see an example of how to change the device address from 0 to 1, and then check the changes.
Set the output switching Frequency (PWM frequency): On SOLO you can have any switching frequency from 8kHz to 80kHz at the output depending on your need and the inductance of your motor, in general the Motors with low inductance need higher switching frequencies to be able to keep their current stabilized and controlled.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
SOLO UNO or by putting the Control Mode Switch on O.L on SOLO MINI As long as the piano switch number 5 is UP in SOLO UNO or the Control Switch Mode is on O.L in SOLO MINI, you can send the following commands in order to control the speed of your brushless motor in open-loop mode.
3. Make sure the motor Identification is done. As long as the piano switch number 5 is DOWN in SOLO UNO or the Control Mode Switch on SOLO MINI is on C.L, you can send the following commands in order to control the torque of your brushless Motor.
Position Control Resolution [deg] = ℎ ∗ 4 The position references sent to SOLO are from the signed Int32 data type and they can be anything from -2,147,483,647 to +2,147,483,647 in decimal form which are indicating the desired position to be reached in terms of quadrature pulses.
Before sending the following commands you must do the following steps at least once: 1. Turn ON SOLO 2. Put SOLO in closed-loop (using Piano switch on SOLO UNO or Control Mode Switch on SOLO MINI) 3. Make sure the motor Identification is done.
Before sending the following commands you must do the following steps at least once: 1. Turn ON SOLO 2. Put SOLO in closed-loop (using Piano switch on SOLO UNO or Control Mode Switch on SOLO MINI) 3. Make sure the motor Identification is done.
Need help?
Do you have a question about the UNO and is the answer not in the manual?
Questions and answers