# node-poweredup Class: PUPHub

# Class: PUPHub

## PUPHub

#### new PUPHub()

  The PUPHub is emitted if the discovered device is a Powered UP Hub.

  Source:
    - puphub.js, line 19

### Extends

- LPF2Hub
- Hub

### Members

#### <readonly> batteryLevel

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `batteryLevel` | number | Battery level of the hub (Percentage between 0-100)

  Inherited From:
    - Hub#batteryLevel
  Overrides:
    - Hub#batteryLevel
  Source:
    - hub.js, line 72

#### <readonly> current

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `current` | number | Current usage of the hub (Milliamps)

  Inherited From:
    - Hub#current
  Overrides:
    - Hub#current
  Source:
    - hub.js, line 86

#### <readonly> firmwareVersion

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `firmwareVersion` | string | Firmware version of the hub

  Inherited From:
    - Hub#firmwareVersion
  Overrides:
    - Hub#firmwareVersion
  Source:
    - hub.js, line 51

#### <readonly> name

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `name` | string | Name of the hub

  Inherited From:
    - Hub#name
  Overrides:
    - Hub#name
  Source:
    - hub.js, line 44

#### <readonly> rssi

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `rssi` | number | Signal strength of the hub

  Inherited From:
    - Hub#rssi
  Overrides:
    - Hub#rssi
  Source:
    - hub.js, line 65

#### <readonly> uuid

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `uuid` | string | UUID of the hub

  Inherited From:
    - Hub#uuid
  Overrides:
    - Hub#uuid
  Source:
    - hub.js, line 58

#### <readonly> voltage

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voltage` | number | Voltage of the hub (Volts)

  Inherited From:
    - Hub#voltage
  Overrides:
    - Hub#voltage
  Source:
    - hub.js, line 79

### Methods

#### brakeMotor(port)

  Fully (hard) stop the motor on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Source:
    - puphub.js, line 241

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### connect()

  Connect to the Hub.

  Inherited From:
    - Hub#connect
  Overrides:
    - Hub#connect
  Source:
    - hub.js, line 89

  ##### Returns:

  Resolved upon successful connect.

  Type
    Promise

#### disconnect()

  Disconnect the Hub.

  Inherited From:
    - Hub#disconnect
  Overrides:
    - Hub#disconnect
  Source:
    - hub.js, line 107

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### getHubType()

  Get the hub type.

  Inherited From:
    - Hub#getHubType
  Overrides:
    - Hub#getHubType
  Source:
    - hub.js, line 172

  ##### Returns:

  Type
    HubType

#### getPortDeviceType(port)

  Get the device type for a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#getPortDeviceType
  Overrides:
    - Hub#getPortDeviceType
  Source:
    - hub.js, line 180

  ##### Returns:

  Type
    DeviceType

#### rampMotorSpeed(port, fromSpeed, toSpeed, time)

  Ramp the motor speed on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `fromSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `toSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `time` | number | How long the ramp should last (in milliseconds).

  Source:
    - puphub.js, line 132

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### resetAbsolutePosition(port)

  Reset the current motor position as absolute position zero

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Source:
    - puphub.js, line 223

  ##### Returns:

  Resolved upon successful completion of command (ie. once the motor is finished).

  Type
    Promise

#### setAbsolutePosition(port, pos [, speed])

  Tell motor to goto an absolute position

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `port` | string |  |  |
  `pos` | number |  |  | The position of the motor to go to
  `speed` | number | Array.<number> | <optional> | 100 | A value between 1 - 100 should be set (Direction does not apply when going to absolute position)

  Source:
    - puphub.js, line 189

  ##### Returns:

  Resolved upon successful completion of command (ie. once the motor is finished).

  Type
    Promise

#### setLEDColor(color)

  Set the color of the LED on the Hub via a color value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | Color |

  Inherited From:
    - LPF2Hub#setLEDColor
  Source:
    - lpf2hub.js, line 80

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setLEDRGB(red, green, blue)

  Set the color of the LED on the Hub via RGB values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `red` | number |
  `green` | number |
  `blue` | number |

  Inherited From:
    - LPF2Hub#setLEDRGB
  Source:
    - lpf2hub.js, line 98

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setLightBrightness(port, brightness [, time])

  Set the light brightness on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `brightness` | number |  | Brightness value between 0-100 (0 is off)
  `time` | number | <optional> | How long to turn the light on (in milliseconds). Leave empty to turn the light on indefinitely.

  Source:
    - puphub.js, line 250

  ##### Returns:

  Resolved upon successful completion of command. If time is specified, this is once the light is turned off.

  Type
    Promise

#### setMotorAngle(port, angle [, speed])

  Rotate a motor by a given angle.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `port` | string |  |  |
  `angle` | number |  |  | How much the motor should be rotated (in degrees).
  `speed` | number | Array.<number> | <optional> | 100 | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0. If you are specifying port AB to control both motors, you can optionally supply a tuple of speeds.

  Source:
    - puphub.js, line 152

  ##### Returns:

  Resolved upon successful completion of command (ie. once the motor is finished).

  Type
    Promise

#### setMotorSpeed(port, speed [, time])

  Set the motor speed on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `speed` | number | Array.<number> |  | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0. If you are specifying port AB to control both motors, you can optionally supply a tuple of speeds.
  `time` | number | <optional> | How long to activate the motor for (in milliseconds). Leave empty to turn the motor on indefinitely.

  Source:
    - puphub.js, line 51

  ##### Returns:

  Resolved upon successful completion of command. If time is specified, this is once the motor is finished.

  Type
    Promise

#### setName(name)

  Set the name of the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | string | New name of the hub (14 characters or less, ASCII only).

  Inherited From:
    - LPF2Hub#setName
  Source:
    - lpf2hub.js, line 60

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### shutdown()

  Shutdown the Hub.

  Inherited From:
    - LPF2Hub#shutdown
  Source:
    - lpf2hub.js, line 48

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### sleep(delay)

  Sleep a given amount of time.

  This is a helper method to make it easier to add delays into a chain of commands.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `delay` | number | How long to sleep (in milliseconds).

  Inherited From:
    - Hub#sleep
  Overrides:
    - Hub#sleep
  Source:
    - hub.js, line 148

  ##### Returns:

  Resolved after the delay is finished.

  Type
    Promise

#### subscribe(port [, mode])

  Subscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `mode` | number | <optional> | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen.

  Inherited From:
    - Hub#subscribe
  Overrides:
    - Hub#subscribe
  Source:
    - hub.js, line 116

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### unsubscribe(port)

  Unsubscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#unsubscribe
  Overrides:
    - Hub#unsubscribe
  Source:
    - hub.js, line 134

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### wait(commands)

  Wait until a given list of concurrently running commands are complete.

  This is a helper method to make it easier to wait for concurrent commands to complete.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `commands` | Array.<Promise.<any>> | Array of executing commands.

  Inherited From:
    - Hub#wait
  Overrides:
    - Hub#wait
  Source:
    - hub.js, line 161

  ##### Returns:

  Resolved after the commands are finished.

  Type
    Promise

### Events

#### accel

  Emits when accelerometer detects movement. Measured in DPS - degrees per second.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `x` | number |
  `y` | number |
  `z` | number |

  Inherited From:
    - LPF2Hub#event:accel
  Source:
    - lpf2hub.js, line 358

#### attach

  Emits when a motor or sensor is attached to the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `type` | DeviceType |

  Inherited From:
    - Hub#event:attach
  Overrides:
    - Hub#event:attach
  Source:
    - hub.js, line 217

#### button

  Emits when a button is pressed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `button` | string |
  `state` | ButtonState |

  Inherited From:
    - LPF2Hub#event:button
  Source:
    - lpf2hub.js, line 198

#### color

  Emits when a color sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `color` | Color |

  Inherited From:
    - LPF2Hub#event:color
  Source:
    - lpf2hub.js, line 410

#### colorAndDistance

  A combined color and distance event, emits when the sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `color` | Color |
  `distance` | number | Distance, in millimeters.

  Inherited From:
    - LPF2Hub#event:colorAndDistance
  Source:
    - lpf2hub.js, line 426

#### detach

  Emits when an attached motor or sensor is detached from the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#event:detach
  Overrides:
    - Hub#event:detach
  Source:
    - hub.js, line 229

#### distance

  Emits when a distance sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `distance` | number | Distance, in millimeters.

  Inherited From:
    - LPF2Hub#event:distance
  Source:
    - lpf2hub.js, line 400

#### rotate

  Emits when a rotation sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `rotation` | number |

  Inherited From:
    - LPF2Hub#event:rotate
  Source:
    - lpf2hub.js, line 456

#### speed

  Emits on a speed change.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `speed` | number |

  Inherited From:
    - LPF2Hub#event:speed
  Source:
    - lpf2hub.js, line 516

#### temp

  Emits when a change is detected on a temperature sensor. Measured in degrees centigrade.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string | For Control+ Hubs, port will be "CPU" as the sensor reports CPU temperature.
  `temp` | number |

  Inherited From:
    - LPF2Hub#event:temp
  Source:
    - lpf2hub.js, line 380

#### tilt

  Emits when a tilt sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string | If the event is fired from the Move Hub or Control+ Hub's in-built tilt sensor, the special port "TILT" is used.
  `x` | number |
  `y` | number |
  `z` | number | (Only available when using a Control+ Hub)

  Inherited From:
    - LPF2Hub#event:tilt
  Source:
    - lpf2hub.js, line 443

#### Search results