SMC 24v12 Hard Limits

Can the Hard Limits of the SMC 24v12 be set using Serial/USB commands?


It sounds like you are referring to the settings in the “Hard Limits” box found in the “Motor Settings” tab of the Simple Motor Control Center. As mentioned in the “Motor Settings” section of the Simple Motor Controller User’s Guide:

Information for the serial commands to set these values can be found in the “Set Motor Limit (any input mode)” heading of the “Binary Command Reference” section of the Simple Motor Controller User’s Guide.

If you have some more specific questions about setting these values, I would be glad to help clarify.


Hello Brandon,

I’m finally getting back around to this…

I have modified my code to read all the controller variables using the Get Variable command. They all look like I expect. But, I would like to be able to modify the Hard Limits in the non-volatile memory if a variable is not what I expect it to be.

Specifically, I have had to increase the Max Acceleration Forward value that my system uses. I had a value of 5 but changed it to 15. I realize that I can temporarily change the value with a Set Motor Limit command but this would have to occur every time I power on the SMC 24v12. I would rather just change the Hard Limit so that the new setting sticks in the non-volatile memory. The only way to do this right now is to disassembly the system, remove the SMC 24v12, connect it to a Windows machine, then use the Simple Motor Control Center app to change the value. This is rather annoying.

Can you please let me know how the Simple Motor Control Center changes the value so that I can implement that in my code?


The Simple Motor Control Center communicates uses the native USB interface to change the settings stored in non-volatile memory. There is no way to change these settings via TTL serial commands. If your setup can use native USB, you can find all of the available commands in the USB Software Development Kit. However, please note that the flash memory on the Simple Motor Controller’s microcontroller has a limited number of erase/write cycles (10,000), so you should be careful not to change them rapidly in your program or that limit could potentially be reached quickly.