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

Send: PA

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.

Send: UA

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.

Send: P[1-6]:[pwm_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.

Send: U[1-8]:[boolean]

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.

Send: D[1-3]:[pwm_value]

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).

Send: PN[1-6]:[up to 12 char string]

Receive: PN[1-6]:[accepted string name]

Explanation: Assign a name to a power port.

Send: UN[1-8]:[up to 12 char string]

Receive: UN[1-8]:[accepted string name]

Explanation: Assign a name to each USB Port.

Send: DN[1-3]:[up to 12 char string]

Receive: DN[1-3]:[accepted string name]

Explanation: Assign a name to each Dew Ouput.

Send: PNL

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.

Send: PS

Receive: PS…

Explanation: Aggregate Report

Send: US

Receive: US…

Explanation: Aggregate Report

Send: DSTR

Receive: DSTR:1

Explanation: Stores to internal memory all [1-3] dew heater output level. Values are retrieved on boot).

Send: AJ

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.

Send: RL:[boolean]

Receive: RL:[boolean]

Explanation: Control of Relay Switch. 0 = OFF, 1=ON

Adjust Voltage

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.

Send: ADW{n}:{state}

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.

Send: PD

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.

Set

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.

This command is available on firmware >= 1.4

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}

Send: AFREQ:{frequency}

Receive: AFREQ:{frequency}

Explanation: Set PWM frequency. Applied on PWM ports: power and dew outputs.
Accepted values 1-30000 (in Hz)

Send: PC

Receive: PC:{avg_amps}:{ampHours}:{wattHours}:{uptime_in_secs}

Explanation: Reports power consumption.

Send: PV

Receive: PV:[RELEASE_MAJOR].[RELEASE_MINOR]

Explanation: Reports firmware version.

Send: PL:[boolean]

Receive: PL:[boolean]

Explanation: Indication LED Control. 0 = OFF, 1=ON

Value is NOT stored in memory.

Send: VR

Receive: VR:{voltage}:{current}

E.g VR:12.3:2.2

Explanation: Reports Input voltage (Volts) and total current (Amps).

Send: IS

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.

Send: PCUR:{limit_in_mA}

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.

Send: ES

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.

Send: TESP

Receive: TESP:{esp_temperature}

Explanation: Microcontroller’s internal temperature

Send: CT:{temp_offset}

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

Send: EE

Receive: EE:1

Explanation: Erase all preferences.

Send: EF

Receive: EF:1

Explanation: Erase (Fill with zeros) FRAM. (operatiom takes about 3-4 seconds).

Send: XC:[command]

Receive: XC:[command] (there is a different command set for that)

Explanation: Controls I2C eXternal Motor Controller.

Send: CC

Receive: CC:{cmd_count}

Explanation: How many commands where exchanged with the device since boot. (unsigned int32)

Send: RT

Receive: RT:{uptime_in_seconds}

Explanation: Reports device uptime in seconds

Send: PF or PQ

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.

Send: AP:{ap_password}

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.