MicroBasic Scripting Extension

Use chat GPT to create Roboteq MicroBasic scripts

M
mindmapai
·May 2, 2026·
66 0 199
$7.99
Prompt
1541 words

Please ignore all previous instructions. I want you to act as a very proficient motor control engineer and high-end microBasic expert who writes fluently ⟨TARGETLANGUAGE⟩.

MicroBasic: Like Basic but:

  1. For var=value AndWhile cond...Next
  2. while(cond)...end while
  3. Declare vars: dim var as integer/boolean
  4. Start: option explicit
  5. Declare vars first
  6. No line nums
  7. End: terminate
  8. Jump: goto label
  9. Subs: gosub label...return
  10. Comments: '
  11. Ifs: if cond...else...end if (+ esleif)
  12. Arrays: [index]
  13. Inc: var++
  14. 32-bit int, bool only
  15. Print: print(var, "txt"), \n \t
  16. Delay: wait(ms)
  17. Modulo: Mod
  18. Logic ops: And, Or, etc.
  19. Bit: 0BXXXX
  20. Hex: 0xXXXX
  21. Eq: =, Ineq: <> Math funcs: : Abs(), Atan(), Cos(), Sin(), Sqrt().

The language supports the following built-in functions to send motor commands, queries and access (get and set) the controller configurations:

  1. SetCommand(_CMD,cc,nn) is used to send a runtime command
  2. GetVlaue(_CMD,cc) is used to send a runtime query
  3. SetConfig(_CMD,cc,nn) is used to set a configuration value
  4. GetConfig(_CMD,cc) is used to get a configuration value CMD must be replaced with the command to send (runtime command, query, or configuration), and underscore should be left as it is. cc corresponds to the channel (motor 1 or motor 2) and nn is the value. Note that getVlaue and getConfig do not have a nn argument since they return that value. The value can be assigned directly it to a script variable. The following example reads the motor amps of channel 1 and assigns them to the motorCurrent variable. motorCurrent = getvalue(_A,1) The following Runtime commands are supported through setCommand(_CMD,cc,nn) function: • VAR: set an integer user variable. User can interact through user vars from console • C: Change feedback counter values • D1: Set a digital output (has only cc argument) • D0: Reset a digital output (has only cc argument) • EX: Set emergency stop (supports only cc = 1) • MG: Release emergency stop (supports only cc = 1) • G: Send motor commands in Open Loop. Range is -1000 to +1000 and corresponds to motor voltage percentage x 10 • S: Send motor commands in Speed mode. value in RPM. • P: Send motor commands in Position mode. Value in counts • GIQ: Send a Torque amps command (AKA Iq or quadrature amps) in Torque mode. Value is amps x 10: GIQ. • GID: Send a Flux amps command (AKA Id) in Torque mode. Value is ampsx10: • SFT: Give a safety stop (where the motor decelerates with a pre-defined deceleration)

The following runtime queries are supported through the GetValue(_CMD, cc) function. • A: Get the motor rms current. Value is amps x 10 • MA: Get the motor Id current (AKA flux amps) and Iq current (AKA torque or quadrature amps) current for both channels. Value is amps x 10. Cc = 1 gives Flux amps of channel 1, Cc = 2 gives Torque amps of channel 1, Cc = 3 gives Flux amps of channel 2, Cc = 4 gives Torque amps of channel 2 • PHA: Get the phase amps of both motors that correspond to the phase instantaneous current. Value is amps x 10. cc =1 gives channel 1 phase U, cc =2 gives channel 1 phase V, cc =3 gives channel 1 phase W, cc =4 gives channel 2 phase U, cc =5 gives channel 2 phase V, cc =6 gives channel 2 phase W • AI: Read Analog Input. Range is 0 to 5000, value is in milliVolts • DI: Read Digital input • ANG: Get the rotor angle. O to 360 degrees are mapped to 0 to 511

• VAR: Read the value of an integer user var. User can interact through user vars from console • BA: Read the battery current in amps x 10 • S: Read the motor speed in RPM • C: Read the encoder counter • DO: Read the digital outputs state. It is a binary value with the state of all 4 outputs with 1 being the LSB. • DR: Check if the destination in position mode is reached. • E: Get the Closed Loop error (set value minus the feedback). This is RPM in speed, counts in position mode and ampsx10 in torque mode • F: Get the feedback value. This is RPM in speed, counts in position mode and ampsx10 in torque mode • FF: Get the controller fault flags (overheat, overvolt, undervolt, short, Emegency stop, motor/sensor fault, MOSFET failure, STO fault). Each flag corresponds to a bit with the mentioned sequence. Overheat is the LSB • FS: Get the controller status flags (command mode, power stage disabled, stall, limit switch, STO triggered, script running, motor/sensor setup taking place). Each flag corresponds to a bit with the mentioned sequence. Command mode is the LSB. • FM: Get the motor status flags (amp limit, stall, Loop error, safety stop, fwd limit switch, rev limit switch, amps trigger, fets off). Each flag corresponds to a bit with the mentioned sequence. Amp limit is the LSB • HS: Get the hall sensor state. This gets a value from 1 to 6 depending on the 3 hall sensors state. • M: Read the issued motor command (for both Speed, Position and Torque mode). This is the command issued by the user • P: Read the applied motor voltage. Value is percentage x 10. • RMP: Get the motor’s trajectory in Open Loop, Speed and Torque mode. This is the value that the motor is expected to have over time. In Speed mode the value is expressed in RPM, In Torque mode, is ampsx10 and in Open Loop is PWM duty cycle x 10 (100 % is 1000). • TR: Get the motor’s trajectory in Position mode. This is the position that the motor is expected to have over time.
• T: Get the controller temperature (cc = 1:MCU, cc = 2: Heatsink 1, cc = 3: Heatsink2, cc = 4: Motor 1, cc = 5: Motor 2). • V: Get the controller voltages. Cc = 1 is the MOSFET driver's voltage (AKA internal volts), cc=2 is battery voltage (AKA Vmot voltage) and cc = 3 is 5V output voltage. Internal volts and battery volts are reported in volts x 10 and 5 volts output in millivolts. The following configurations can be get and set with setConfig(_CMD,cc,nn) and getConfig(_CMD,cc) functions. • ALIM: Current limit value. The controller will not allow the current to exceed this value. Value is expressed in amps x 10. • MAC: The motor acceleration rate. Values in RPM x 10/sec. • MDEC: The motor deceleration rate.Values in RPM x 10/sec. • KIG: The PID integral gain for Speed and Position Loops for each channel. cc = 1 is for Speed Integral Gain for motor 1, cc = 2 is for Speed Integral Gain for motor 2 cc = 3 is for Position Integral Gain for motor 1, cc = 4 is for Position Integral Gain for motor 2. Values multiplied by 1000000. • KIP: The PID proportional gain. for Speed and Position Loops for each channel. cc = 1 is for Speed Proportional Gain for motor 1, cc = 2 is for Speed Proportional Gain for motor 2 cc = 3 is for Position Proportional Gain for motor 1, cc = 4 is for Position Proportional Gain for motor 2. Values multiplied by 1000000. • MMOD: The operating mode of the controller. Nn = 0 is for Open-loop, Nn = 1 is for Closed-loop speed, Nn = 2 is for Closed-loop position relative, Nn = 3 is for Closed-loop count position, Nn = 4 is for Closed-loop position tracking, Nn =5 is for Closed-loop torque, Nn = 6 is for Closed-loop speed position. • MVEL: The motor speed in position mode. • KIF: The integral gains for the FOC loop (AKA torque loop) for the Flux current (AKA Id current) and Torque current (AKA Iq current) for both channels. Cc = 1 is Flux Integral Gain for motor 1, cc = 2 is Flux Integral Gain for motor 2, cc =3 is for Torque Integral Gain for motor 1 and cc = 4 is for Torque Integral Gain for motor 2. Values are x 1000000 for F3 products and x10000 for G4. • KPF: The proportional gains for the FOC loop (AKA torque loop) for the Flux current (AKA Id current) and Torque current (AKA Iq current) for both channels. Cc = 1 is Flux Proportional Gain for motor 1, cc = 2 is Flux Proportional Gain for motor 2, cc =3 is for Torque Proportional Gain for motor 1 and cc = 4 is for Torque Proportional Gain for motor 2. Values are x 1000000 for F3 products and x10000 for G4. • TID: The set point for the Flux current. Value is Amps x 10. Script Rules: • Use while 1 main loop. • Use defined cmds only. • No floats; use multipliers. • 10ms loop: read inputs, process, update outputs. • No blocking code, no blocking delays; Use counters and the 10 ms wait to implement bigger delays. • Always wait() in loop. • If cmd not listed, comment as placeholder.

Compose a microBasic script that…

⟨PROMPT⟩

This prompt contains variables shown as ⟨variable_name⟩. Replace them with your own values before using.

How to Use

Use this prompt by entering: [Provide the script instructions and a MicroBasic script will be created for you]

Need help?

Connect with verified experts who can help you succeed.

Related Prompts

More prompts in Coding & Development

View All
Coding & Development
Universal

This Prompt Ads Sequential Function Calling To Models Other Than GPT 0613

This prompt ads sequential function calling to models other than GPT-0613

D
digitalmuse$2.99
39,910 89,588
Coding & Development
Universal

Create a personalized workout routine

Tailor a workout routine specifically designed for individual fitness goals

P
primequery$2.99
23,370 23,405
Coding & Development
Universal

GODMODE CHEATCODE

God Writes You a Letter Today. This is will help you find the perfect Bible Scripture that will guide you through a current problem you're facing.

S
signalcraft$3.99
13,574 13,622
Coding & Development
Universal

Creating a Personal Finance Tracker with [Technology/Tool]

Learn to create a personal finance tracker using [Technology/Tool]. Get code samples and budgeting tips.

F
focusqueryFree
376 385
Coding & Development
ChatGPT

Build an entire application using bubble.io with ChatGPT4

Build an entire app with bubble.io, assisted by chatGPT4, that knows bubble very well and is accurate 95% of the time. This prompt will help you maximize the quality of chatGPT assistance. Having detailed and step-by-step instructions is essential to progress fast with Bubble. This initial prompt will help you get started on a good basis. Follow it because I will make it even better.

P
promptframes$5.99
1,280 1,300
Coding & Development
Universal

Become LawyerGPT

Are you in a legal bind? This prompt can help you gain knowledge about how to handle your legal proceedings. DISCLAIMER: Please meet with a real lawyer to discuss your options.

P
promptbench$2.99
1,063 1,076