Command List for Ultimate Powerbox v3
Device exposes a USB to Serial COM port:
Manufacturer: PegasusAstro
Product: UPBv3
VID: 303a
PID: 9005
Connection Settings: 115200, 8N1 (DTR on)
(All commands should be terminated with a new line /n)
Send: P# or ##
Receive: UPBv3_{id}_{revision_char}
Explanation: Reports UPBv3 identifcation.
{id} is a 8 char unique identificaion string followed by {revision_char} which is the PCB revision char e.g 35AC34FC_A
Receive: PA:{output1}:{output2}:{output3}:{output4}:{output5}:{output6}:{dew1}:{dew2}:{dew3}:{adj_buck}:{adj_boost}:{relay}
Explanation: Outputs the status of power ports.
{output[1-6]} and {dew[1-3]} can have values from 0 – 100 as they are PWM duty cycle % ports.
{adj_buck}, {adj_boost} and {relay} outputs are digital so they have 0 or 1 values.
Receive: UA: USB1:USB2:USB3:USB4:USB5:USB6:USB7:USB8
Explanation: Outputs the status of USB ports. USB ports are digital ports and have 0 or 1 value.
Receive: P[1-6]:[pwm_value]
Explanation: Set the power level of each power port. E.g. P2:100 or P2:0 or P2:34.
The pwm_value accepts a number from 0 to 100 and is a percentage of the power output (ports are PWM enabled).
PWM levels are reset, lost after a device reboot.
Receive: U[1-8]:[boolean]
Explanation: Set the USB status of each USB port. A boolean value of 0 or 1 sets the status of each USB port.
Receive: D[1-3]:[pwm_value]
Explanation: Set the power level of each dew heater output. E.g. D2:100 or D2:0 or D2:43.
The pwm_value accepts a number from 0 to 100 and is a percentage of the power output (dew ports are PWM enabled).
Receive: PN[1-6]:[accepted string name]
Explanation: Assign a name to a power port.
Receive: UN[1-8]:[accepted string name]
Explanation: Assign a name to each USB Port.
Receive: DN[1-3]:[accepted string name]
Explanation: Assign a name to each Dew Ouput.
Receive: PLN:{port1_name}, {port2_name},{port3_name},{port4_name},{port5_name},{port6_name}
Explanation: Lists Power Ports names.
Send: UNL
Receive: ULN:{usb1_name},{usb2_name},{usb3_name},{usb4_name},{usb5_name},{usb6_name}
Explanation: Lists USB Ports names.
Send: DNL
Receive: ULN:{dew1_name}, {dew2_name}, {dew3_name}
Explanation: Lists Dew Port names.
Receive: PS…
Explanation: Aggregate Report
Receive: US…
Explanation: Aggregate Report
Receive: DSTR:1
Explanation: Stores to internal memory all [1-3] dew heater output level. Values are retrieved on boot).
Receive: AJ:{adj_buck_voltage};{adj_buck_status}:{adj_boost_voltage}:{adj_boost_status}
E.g AJ:5:1:19:0
Explanation: Listing of adjustable outputs. Their status and configured voltage.
Receive: RL:[boolean]
Explanation: Control of Relay Switch. 0 = OFF, 1=ON
Send: PJ:[voltage_level]
Receive: PJ:[voltage_level]
Enable / Disable Port
Send: PJ:[boolean]Receive: PJ:[boolean]
Explanation: Sets voltage of adjustable buck output. Also sending 0 or 1 disables or enables the port.
Voltage level accepts values from 3 to 12V
Adjust Voltage
Send: PB:[voltage_level]
Receive: PB:[voltage_level]
Enable / Disable Port
Send: PB:[boolean]Receive: PB:[boolean]
Explanation: Sets voltage of adjustable boost output. Also sending 0 or 1 disables or enables the port.
{voltage_level} accepts values from 12 to 24V.
Receive: ADW{n}:{state}
{n} is each Dew Ouput number: 1,2,3
{state} can accept: 0 = disabled, 1 = enabled
Explanation: Enable or disable autodew to each dew port.
Receive: PD:{nnn}
Each {n} represents a dew port number. 0 = disabled, 1 = enabled
E.g Autodew is enabled on Dew1 and Dew2 -> PDS:101
Explanation: Autodew port report.
Send: DA:{aggresiveness_level}
Receive: DA:{aggresiveness_level}
Read
Send: DA:
Receive: DA:{aggresiveness_level}
Explanation: Autodew Aggresiveness.
Accepts values of 0 – 10. The highest, the most aggresive.
Controls the autodew aggresiveness per port. Permitted values are 1-10.
Set
Send: DA{dew dew_port_number}:{aggresiveness_level}
Receive: DA{dew_port_number}:{aggresiveness_level}
E.g: DA1:5
Read
Send: DAP
Receive: DAP:{dew0_port_agressiveness}:{dew2_agressiveness}:{dew3_agressiveness}
Receive: AFREQ:{frequency}
Explanation: Set PWM frequency. Applied on PWM ports: power and dew outputs.
Accepted values 1-30000 (in Hz)
Receive: PC:{avg_amps}:{ampHours}:{wattHours}:{uptime_in_secs}
Explanation: Reports power consumption.
Receive: PV:[RELEASE_MAJOR].[RELEASE_MINOR]
Explanation: Reports firmware version.
Receive: PL:[boolean]
Explanation: Indication LED Control. 0 = OFF, 1=ON
Value is NOT stored in memory.
Receive: VR:{voltage}:{current}
E.g VR:12.3:2.2
Explanation: Reports Input voltage (Volts) and total current (Amps).
Receive: IS:{power_port1}:{power_port2}:{power_port3}:{power_port4}:{power_port5}:{power_port6}
Explanation: Reports if a powerport had an overcurrent event. 0 = normal = 1 = overcurrent.
After an overcurrent event port turns off. To clear the overcurrent flag, switch on the specific port.
Receive: PCUR:{limit_in_mA}
Explanation: Set current limit in milliamps. After this limit the port will shut down and report overcurrent flag.
Accepts values from 1 to 6000.
Default mA value is 5800.
Receive: ES:{temperature}{relative_humidity}{dewpoint}{external_sensor}
Explanation: Reports Environmental Sensor data.
{external_sensor} flag is a boolean. 0 = data are from internal sensor , 1 = data are from external sensor.
Receive: TESP:{esp_temperature}
Explanation: Microcontroller’s internal temperature
Receive: CT:{temp_offset}
Explanation: Offset value for temperature sensor. {temp_offset} is a double.
Send: CH:{humidity_offset}
Receive: CH:{humidity_offset}
Explanation: Offset value for relative humidity sensor. {humidity_offset} is a signed integer.
Send: CR
Receive: CR:{temperature_offset}:{humidity_offset}
Explanation: Read temperature and humidity sensor offsets.
{temperature_offset} is a double, {humidity_offset} is a signed integer
Receive: EE:1
Explanation: Erase all preferences.
Receive: EF:1
Explanation: Erase (Fill with zeros) FRAM. (operatiom takes about 3-4 seconds).
Receive: XC:[command] (there is a different command set for that)
Explanation: Controls I2C eXternal Motor Controller.
Receive: CC:{cmd_count}
Explanation: How many commands where exchanged with the device since boot. (unsigned int32)
Receive: RT:{uptime_in_seconds}
Explanation: Reports device uptime in seconds
Receive: no output
Explanation: Reboot device
Send: SA
Receive: SA:{motor_position}:{is_running}:{motor_direction}:{motor_maxspeed}:{motor_msteps}{motor_current}{motor_freewheeling}{motor_controller_status}
Explanation: Motor Controller Aggregate Status.
{motor_position} : Motor current position in steps
{is running}: If motor is running (0 or 1)
{motor_direction}: motor direction. 0 = normal, 1 = reverse.
{motor_maxspeed}: motor maxspeed in steps/sec
{motor_msteps}: motor microstepping values (Can take values 1, 2, 4, 8, 16, 32)
{motor_current}: motor current in mA
{motor_idle_hold_torque}: Apply motor hold torque when idle. 0 = no torque, 1 = apply hold torque.
{motor_controller_status} motor controller status = 0 = Fail, 1 = OK
Send: SP
Receive: SP:{position_in_steps}
Explanation: Motor position in steps.
Send: SC
Receive: SC:{position_in_steps}
Explanation: Sync motor position in steps. (motor does not move. Only syncs its position)
Send: SH
Receive: SH:1
Explanation: Motor halt.
Send: SI
Receive: SI:{ismoving}
Explanation: Motor is moving or not. 0 = idle, 1 = is moving.
Send: SM:{steps}
Receive: SM:{steps}
Explanation: Move motor in an absolute position.
Send: SG:{steps}
Receive: SG:{steps}
Explanation: Move motor in a relative position.
Send: SR:{direction}
Receive: SR:{direction}
Explanation: Direction of motor. 0 = normal , 1 = reverse
Send: SS:{speed}
Receive: SS:{speed}
Explanation: Speed of motor.
{speed} is unsigned int16;
Send: MCUR:{max_current}
Receive: MCUR:{max_current}
Explanation: Max current of motor
{max_current} can be from 50 to 1500. (in mA)
Send: MSTEP:{mstep}
Receive: MSTEP:{mstep}
Explanation: Microsteps drive of motor controller. Accepted values are 1,2,4,8,16,32. Default is 2.
This command is available on firmware >= 1.4
Send: MHLD:{boolean}
Receive: MSTEP:{boolean}
Explanation: Apply motor idle hold torque. 0 = freewheel , 1 = apply hold torque when motor idle.
Setting is stored in meory and retrieved on boot.
To retrieve the value check “Motor Controller Aggregate Report” command.
Send: WS
Receive: WS:{ssid_name},{signal_strength},{encryption_type} : {ssid_name},{signal_strength},{encryption_type} : ….
Explanation: Lists top ten in signal strength available WiFI networks in the area.
Send: WN:{network_name}
Receive: WN:{network_name}
Explanation: Set Network Name of WIFi Client.
Send: WP:{client_password}
Receive: WP:{client_password}
Explanation: Set Client Password. Should be >=8 chars.
When device receives a client password , it uses the cliend SSID and tries to set the WiFi connection. If connection is not successful it will try every 10 seconds.
Send: AN:{ap_name}
Receive: AN:{ap_name}
Explanation: Set Access Point Name.
Receive: AP:{ap_password}
Explanation: Set Access Point Password. When device receives an AP password it uses AP Name and password to configure the Access Point (Hotspot).
Send: AL
Receive: AL:{ap_name:ap_password}
Explanation: Display configured access point (hotspot) SSID name and password.
Send: AE:{boolean}
Receive: AE:{boolean}
Explanation: Enable or Disable Access Point (hotspot). 0 = disable, 1 = enable
Send: A?
Receive: A?:{ap_status}
Explanation: Reports if Access Point (hotspot) is enables or disabled. 0 = disabled , 1 = enabled
Get Channel:
Send: AC
Receive: AC:{channel}
Explanation: Reports configured access point channel.
Set Channel
Send: AC:{channel}
Receive: AC:{channel}
Explanation: Sets the access point channel. Can accept a {channel} from 1 to 11.
Send: WA
Receive: WA:{wifi_ssid}:{wifi_ip}:{encryption_type}:{signal_strength}
Explanation: Reports WiFi information of client connected to WiFi SSID.
{wifi_ssid} is the SSID network that the client is connected to
{wifi_ip} is the assigned DHCP ip that client has
{encryption_type} is the encryption security of network. It is an interger and number 3 represents WPA2 security.
{signal_strengh) is the signal quality in percentage 0-100%.
Send: WZ
Receive: WZ
Explanation: Resets all WiFi settings back to factory default.