Clocks Analog Inputs Analog Outputs Digital Inputs Digital Outputs Encoder Inputs PWM Outputs Other Inputs Other Outputs Interrupts Watchdog Board-Specific Options Properties Targets See Also navigation bar

Quanser QDrone 2

The Quanser's Quanser QDrone 2 is a drone built and sold by Quanser Inc. The QUARC Target associated with the QDrone is the QUARC Linux QDrone 2 Target. The QDrone 2 driver provides access to the hardware I/O available on the QDrone 2 platform. The QDrone 2 includes an NVIDIA Jetson Xavier NX module with an NVIDIA Carmel ARM® v8.2 processor (up to 1.9 GHz, six core, 6M L2 cache, 4M L3 cache, 64 bit), a 384-core NVIDIA Volta GPU with 48 Tensor cores, dual NVIDIA Deep Learning Accelerator engines, 8 GB of memory and additional I/O supplied by Quanser. The additional I/O includes:

The QUARC driver name for this card is qdrone2.

The QDrone 2 uses the Quanser standard reference frame for UAVs, as shown below:

Quanser UAV Reference Frame

To select the QDrone 2 board, select the QUARC qdrone2 board type from the drop-down list on the Main tab of the HIL Initialize block. Please note that only one QDrone 2 card can be connected to a Quanser QDrone 2 and is supported in the system. The QUARC controller runs on the NVIDIA Jetson Xavier NX board and communicates with the QDrone 2 hardware I/O either directly or via a fast serial link.

Warning

Note that the Linux QDrone 2 target must be selected to use the QDrone 2 board, as it is connected to the Xavier NX module.

The Quanser QDrone 2 supports bluetooth devices such as mice and keyboards. It is also possible to send files, such as images, from the drone to a smartphone, if the phone supports this functionality.

For the time-of-flight sensor, use the Ranging Sensor block with the "VL53L1X Time-of-flight" sensor selected and a URI of i2c://localhost:6?address='0x29',baud='400000',memsize='255'.

The optical flow sensor outputs are provided as other outputs from the HIL API. See the Other Inputs section below.

The QDrone 2 is set up to allow connections using VNC. A default display resolution of 1600 x 900 has been configured when connecting headless (no monitor connected). Otherwise VNC will use the resolution of the monitor connected. To change the resolution through a VNC connection, open a Terminal and use the command:

xrandr --fb <resolution>

where <resolution> is the desired display resolution. For example:

xrandr --fb 1920x1080

To change the default resolution when connecting headless, edit the /usr/local/bin/set-headless-resolution script with the desired resolution.

Display

The LCD display normally displays the battery voltage and IP address of the QDrone 2. It also shows an icon beside the IP address indicating whether the current network connection is over the wired LAN via the Ethernet connector, or over wireless via the onboard WiFi. The following table shows some of the different status messages that may be displayed by the QUARC Power Monitor daemon on the LCD display. The power monitor only updates the display every ten seconds by default.

Display

Description

Random pixels indicating LCD powered on but processor still booting.

Shows the hostname for the Quanser QDrone 2 and indicates it is booting Ubuntu.

Battery voltage. No IP address has been obtained yet.

Battery voltage and IP address. Icon indicates the network connection is via WiFi (as opposed to LAN).

Battery voltage and IP address. Warning icon indicates the watchdog has expired or the ESC switch has been used to disable the ESC. This condition will not be cleared until the ESC switch is re-enabled and the model is restarted or the watchdog state cleared via a HIL Watchdog Clear block.

The red power button has been pressed and the Quanser QDrone 2 is shutting down.

The LCD display on Quanser QDrone 2 is a graphical LCD display. QUARC supports writing text or graphics to the display using the LCD Display block. To use the LCD Display block, set the LCD to LS012B7DD01 and the URI to spi-cpu://localhost:2?word=8,baud=1000000,frame=1,memsize=990. The display supports normal mode or dark mode, as well as an image or text. To format text for the display, use the String Print block, which supports a superset of standard C format strings. The display currently supports the Basic Latin character set as well as the Latin-1 Supplement. For images, the resolution of the display is 184 x 38 pixels.

Cameras

The QDrone 2 provides four onboard CSI cameras, as well as a Pi-compatible connector for an optional, additional camera. Three different cameras are supported on the Pi connector, but must be configured using the set-pi-camera tool: an IMX-219 (a Pi module V2 RGB rolling-shutter camera), an IMX-477 (a Pi High Quality RGB, rolling-shutter camera), and an OV9281 (global shutter, monochrome camera). It also provides an Intel Realsense D435 RGBD camera, with one RGB, two infrared and one depth stream. While these are accessed using the Video Capture and Video3D Capture blocks respectively, they are listed here for convenience:

Camera

Block

Device Identifier

Description

Intel RealSense D435

Video3D Capture

0

The Intel RealSense D435 RGDB camera which faces toward the front of the QDrone 2. This camera supports four video streams: RGB, infrared left (1), infrared right (2) and depth.

1MP Grayscale

Video Capture

0

The 1MP grayscale camera has a maximum resolution of 1280x800, with a global shutter. It faces down on the QDrone 2 and is intended for visual odometry applications.

8MP RGB

Video Capture

1

The 8MP RGB camera has a maximum resolution of 3284x2464, with a rolling shutter. It faces to the left of the QDrone 2 (the side with the USB connector).

8MP RGB

Video Capture

2

The 8MP RGB camera has a maximum resolution of 3284x2464, with a rolling shutter. It faces to the back of the QDrone 2.

8MP RGB

Video Capture

3

The 8MP RGB camera has a maximum resolution of 3284x2464, with a rolling shutter. It faces to the right of the QDrone 2 (the side with the power button).

Pi Camera Connector

Video Capture

4

The Pi camera connector supports a Pi Module V2 camera (IMX-219), Pi High Quality camera (IMX-477) or OV9281 camera, as selected using the set-pi-camera tool.

The Intel RealSense D435 camera is a 2MP camera with up to 1920x1080 resolution for the RGB camera and up to 1280x720 resolution on the depth and infrared cameras. The frame rates achievable at each resolution are listed for convenience in the table below. The maximum frame rate of the RGB camera is 60 FPS and of the depth and infrared cameras is 100 FPS, if the appropriate resolution is selected. Note that the infrared and depth cameras are global shutter.

Warning

Note that the achievable frame rate is affected by the exposure setting, so poor lighting will likely result in lower frame rates than those listed in the table below.

The maximum frame rates at each resolution are:

Camera

Resolution

Maximum Frame Rate (FPS)

Depth

1280x720

30

848x480

90

848x100

100

640x480

90

640x360

90

480x270

90

424x240

90

256x144

90

Infrared

1280x800

30

1280x720

30

848x480

90

848x100

100

640x480

90

640x360

90

480x270

90

424x240

90

256x144

90

RGB

1920x1080

30

1280x720

30

960x540

60

848x480

60

640x480

60

640x360

60

424x240

60

320x240

60

320x180

60

The Intel RealSense Viewer application is provided on the Quanser QDrone 2 for testing the RGBD camera. It may also be used for calibration and firmware updates of the RealSense camera. To run the Intel RealSense Viewer, run the realsense-viewer from a Terminal on the QDrone 2. Turn on the Stereo Module and RGB Camera to see the depth and RGB output from the camera. To update the firmware or calibrate the camera, see the options under the More hamburger menu. Note that the images can be viewed in 2D or 3D mode using the "2D | 3D" options in the top, right. Options for the Stereo Module and RGB Camera may be adjusted by expanding the respective item.

The 1MP grayscale camera has up to 1280x800 resolution. The frame rates achievable at each resolution are listed for convenience in the table below:

Resolution

Maximum Frame Rate (FPS)

1280x800

120

1280x720

130

640x480

180

640x400

210

The 8MP RGB cameras support up to 3280x2464 resolution. The frame rates theoretically achievable at each resolution are listed for convenience in the table below:

Resolution

Maximum Frame Rate (FPS)

Horizontal Field of View

Vertical Field of View

3280x2464

21

100%

100%

1640x1232

80

100%

100%

820x616

80

100%

100%

1640x820

120

100%

67%

820x410

120

100%

67%

Other resolutions are achievable but will be scaled versions of the resolutions in the above table. Hence, resolutions with a different aspect ratio may appear distorted. Camera resolutions were designed to always provide the full horizontal field of view of the camera rather than provide common video resolutions.

To use the Pi camera connector on QDrone 2, first select the desired camera using the set-pi-camera tool. Open a Terminal on the QDrone 2 and run the set-pi-camera tool with the --list option to see the names of the available cameras:

            sudo set-pi-camera --list
        

The following list will be presented:

            Camera names that may be selected:
              imx219
              imx477
              ov9281
        

To select the desired camera, invoke the set-pi-camera tool again, but this time pass the --name option followed by the name of the camera as it appears in the list. For example:

            sudo set-pi-camera --name imx219
        

After selecting the camera, shutdown the system, plug in the camera, and then boot up again.

The IMX219 camera (Pi Module V2 camera) is the default camera if the set-pi-camera tool has not been run.

Communications

The communications ports provided on the QDrone board can be utilized through the QUARC Communications blockset and the Quanser Stream API (see QUARC Communications Protocols).

For SPI communications, a sample URI for communications would be:

spi://localhost:0?baud='1000000',polarity='off',phase='off',lsb='off',frame='0'

where the frame option selects the SPI SS line to frame the SPI bus transaction (0 or 1 for port 0).

For I2C communications, a sample URI for communications would be:

i2c://localhost:0?baud='400000',address=0x69

where the address option specifies the I2C slave address.

For serial communications, a sample URI for communications would be:

serial://localhost:0?baud='115200',word='8',parity='none',stop='1'

where the port determines whether UART0 (port 0) or UART1 (port 1) is being used. Both serial ports support have RTS and CTS lines and support hardware flow control.

Clocks

There are currently no QDrone 2 clocks.

Analog Inputs

The QDrone driver supports 4 analog inputs. Hence, analog input channel numbers range from 0 to 3. The analog input range is 0 to +3.3V and is not configurable. Exceeding this range may damage the board. Channels 1 to 3 represent the electronics current (A), motor current (A) and battery voltage (V) respectively.

The battery level in Volts is reported at analog input channel 3. This signal should be monitored to ensure the battery does not degrade below safe levels, particularly for LiPo batteries. For instance, for a 3S battery, the voltage should not go below 10.5V. Note that the drone attempts to shut itself down gracefully if the battery voltage gets too low in order to prevent damage to the battery.

Analog Outputs

The Quanser QDrone 2 card does not support analog outputs.

Digital Inputs

The Quanser QDrone 2 supports 6 bidirectional digital I/O lines. Hence digital input channel numbers range from 0 to 5. A digital I/O line cannot be used as an input and output at the same time.

Since the digital I/O lines may be individually programmed as inputs or outputs on the Quanser QDrone 2, all of those channels which will be used for digital inputs should be configured on the HIL Initialize block's Digital Inputs tab. Set the Digital input channels field to all the digital I/O channels that will be used as digital inputs on the board for the current diagram. For example, enter 0:3 to designate channels 0 through 3 as digital inputs. Specify [0, 4, 5] to indicate that channels 0, 4 and 5 are to be configured as digital inputs.

Digital Outputs

The Quanser QDrone 2 supports 6 bidirectional digital I/O lines, as well as 6 digital output only lines for LEDs. Hence digital output channel numbers range from 0 to 11. A digital I/O line cannot be used as an input and output at the same time. The bidirectional channels are numbered 0 to 5, and the LED outputs are numbered 6 to 11. The order of the LED outputs is LED1 red, LED1 green, LED1 blue, LED2 red, LED2 green, and LED2 blue. The intensity of the LEDs cannot be controlled. They may only be turned on or off.

Since the first 6 digital I/O lines may be individually programmed as inputs or outputs on the Quanser QDrone 2, all the channels which will be used for digital outputs should be configured on the HIL Initialize block's Digital Outputs tab. Set the Digital output channels field to all the bidirectional digital I/O channels that will be used as digital outputs on the board for the current diagram, including the LED outputs used. For example, enter 0:3 to designate channels 0 through 3 as digital outputs. Specify [0, 4, 5] to indicate that channels 0, 4 and 5 are to be configured as digital outputs.

To set the digital output values when the model is loaded or unloaded, set the Initial digital outputs and Final digital outputs to the desired values respectively. If the vectors specified in these fields are shorter than the channel vector, the value of the last element in the vector will be used for the rest of the channels. Hence, a scalar value will apply to all channels specified in the Digital output channels field.

Encoder Inputs

The Quanser QDrone 2 supports two quadrature encoder inputs with 16-bit count values. Hence encoder channel numbers range from 0 to 1.

In order to set the encoder counters to a particular count or to change the default quadrature when the model is loaded, the encoder inputs must be configured on the HIL Initialize block's Encoder Inputs tab. Set the Encoder input channels field to all the encoder channels that will be used on the board for the current diagram. For example, enter 0:1 to indicate channels 0 through 1 are used as encoder inputs.

The Quanser QDrone 2 supports 2X and 4X quadrature. Since the Quanser QDrone 2 has 24-bit counters, valid initial count values range from -8388608 to +8388607. If the vectors specified in these fields are shorter than the channel vector, the value of the last element in the vector will be used for the rest of the channels. Hence, a scalar value will apply to all channels specified in the Encoder input channels field.

The Quanser QDrone 2 default sign convention in quadrature (4X) mode increments the encoder counter value when the B channel signal leads the A channel signal. Conversely, the encoder counter value is decreased when A leads B. This sign convention can be changed in the Board-Specific Options, with the enc0_dir option, for encoder channel 0, and with the enc1_dir for encoder channels 1. See the Board-Specific Options section below for more details.

PWM Outputs

The QDrone driver supports 6 PWM output channels. Hence, PWM output channels range from 0 to 5. PWM channels 0 to 3 drive the motors and must share the same PWM frequency. However, each channel can have its own duty cycle. Likewise, PWM channels 4 and 5 must share the same PWM frequency, but may have distinct duty cycles.

Warning

The first four channels (0-3) on the QDrone drive the four propellers and should be configured for DSHOT1200. The last two channels (4-5) are available to the user for whatever purpose is required.

In order to configure the PWM mode or frequency, or to set the value of the PWM outputs when the model is loaded or unloaded, the PWM outputs must be configured on the HIL Initialize block's PWM Outputs tab. Set the PWM output channels field to all the PWM output channels that will be used on the board for the current diagram. For example, enter 0:3 to indicate channels 0 through 3. Specify 1 to indicate channel 1 alone.

The PWM outputs are generic PWM outputs that are capable of producing the standard analog ESC protocols, namely standard PWM (1000us to 2000us), Oneshot125 (125us to 250us), Oneshot42 (42us to 84us) and Multishot (5us to 25us). The digital DSHOT protocol may also be used for any of the PWM outputs by setting the appropriate board-specific option. See the pwm03_dshot help for details. DShot150, DShot300, DShot600 and DShot1200 are all supported (and possibly faster).

The ESC Output block is recommended for constructing the input to the PWM output channel since it allows a 0% to 100% throttle value to be used, and it will output the appropriate pulse time (for PWM-based protocols) or raw value (in the case of DSHOT). Note that when using the ESC Output block, the PWM mode should be PWM_TIME_MODE (4) for PWM-based protocols and PWM_RAW_MODE (6) for DSHOT protocols.

The PWM parameters for each of these protocols are tabulated below:

Protocol

PWM Frequency

Pulse Time Range

Duty Cycle Range

Standard PWM

50 Hz (20ms)

0.001 to 0.002 seconds (1ms to 2ms)

0.05 to 0.1 (5% to 10%)

Oneshot125

2000 Hz (500us)

125e-6 to 250e-6 seconds (125us to 250us)

0.25 to 0.5 (25% to 50%)

Oneshot42

5952 Hz (168us)

42e-6 to 84e-6 seconds (42us to 84us)

0.25 to 0.5 (25% to 50%)

Multishot

20000 Hz (50us)

5e-6 to 25e-6 seconds (5us to 25us)

0.1 to 0.5 (10% to 50%)

DShot150

150000 Hz

N/A

N/A

DShot300

300000 Hz

N/A

N/A

DShot600

600000 Hz

N/A

N/A

DShot1200

1200000 Hz

N/A

N/A

DShot2400

2400000 Hz

N/A

N/A

The PWM outputs are not restricted to these parameter values as they are generic PWM outputs. The maximum output frequency is 30 MHz. The number of bits of resolution decreases with increasing PWM output frequency.

Set the PWM output frequency (a.k.a., pulse rate) in the "Frequencies in Hz or duty cycle" field. The PWM output mode is typically set to duty cycle mode (0) or time mode (4) when driving ESCs or R/C servos. Set the Initial PWM outputs and Final PWM outputs fields to the desired initial and final output values respectively. The interpretation of these output values depends on the PWM mode selected. If the vectors specified in these fields are shorter than the channel vector, the value of the last element in the vector will be used for the rest of the channels. Hence, a scalar value will apply to all channels specified in the PWM output channels field.

The polarity of the PWM channels may be set in the "Polarities" field. PWM channels 0 to 3 must be active high polarity because they are connected to the 4-in-1 ESC. PWM channels 4 and 5 support both active-low (0) and active-high polarity (1). If the vectors specified in these fields are shorter than the channel vector, the value of the last element in the vector will be used for the rest of the channels. Hence, a scalar value will apply to all channels specified in the PWM output channels field.

Other Inputs

The specific Other Inputs channels of the QDrone board are described in the table below. SI units are used.

Other Input Channel

Measurement Description

Units

3000, 3001, 3002

Angular velocity around the x-, y-, and z-axis, respectively (from gyroscope 0)

(rad/s)

3003, 3004, 3005

Angular velocity around the x-, y-, and z-axis, respectively (from gyroscope 1)

(rad/s)

4000, 4001, 4002

Linear acceleration along the x-, y-, and z-axis, respectively (from accelerometer 0)

(m/s2)

4003, 4004, 4005

Linear acceleration along the x-, y-, and z-axis, respectively (from accelerometer 1)

(m/s2)

10000

Temperature of IMU 0.

(C)

10001

Temperature of IMU 1.

(C)

17000

Optical flow in X.

(pixels)

17001

Optical flow in Y.

(pixels)

17002

Number of optical flow features found.

17003

Average optical flow pixel value.

uint8

17004

Maximum optical flow pixel value.

uint8

17005

Minimum optical flow pixel value.

uint8

17006

Optical flow shutter.

As a reference, the generic table for the Other Inputs channels for any HIL Data Acquisition Card is reproduced below. SI units are used.

Other Input Channel

Measurement Description

Units

0 - 999

Linear Position Along The X-, Y-, and Z-axis

(m)

1000 - 1999

Angular Position Around The X-, Y-, and Z-axis

(rad)

2000 - 2999

Linear Velocity Along The X-, Y-, and Z-axis

(m/s)

3000 - 3999

Angular Velocity Around The X-, Y-, and Z-axis

(rad/s)

4000 - 4999

Linear Acceleration Along The X-, Y-, and Z-axis

(m/s2)

5000 - 5999

Angular Acceleration Around The X-, Y-, and Z-axis

(rad/s2)

6000 - 6999

Force Along The X-, Y-, and Z-axis

(N)

7000 - 7999

Torque Around The X-, Y-, and Z-axis

(N.m)

8000 - 8999

Magnetic Field Along The X-, Y-, and Z-axis

(T)

9000 - 9999

Pressure Along The X-, Y-, and Z-axis

(Pa)

10000 - 10999

Temperature Along The X-, Y-, and Z-axis

(°C)

11000 - 11999

Operating capacity as a percentage (0.0 to 1.0 represending 0% to 100%)

(%)

12000 - 12999

Time

(s)

Other Outputs

The Quanser QDrone 2 card does not support other outputs.

Interrupts

The Quanser QDrone 2 card, or its driver, does not support any interrupt sources.

Watchdog

The Quanser QDrone 2 card does not support a watchdog timer.

Board-Specific Options

The Quanser QDrone 2 has a number of board-specific options to control specialized functionality of the QDrone 2. These options configure the IMU and set the encoder directions.

gyro0_rate

This option sets gyroscope #0's sensor's sampling rate. Valid values range from 12.5 to 32000. The units are Hz.

gyro0_ord

This option determines the order of the filter used for gyroscope #0's onboard filtering. Valid values are 1, 2 or 3.

gyro0_fs

This option sets the full-scale range of gyroscope #0's sensor. Valid values range from 15.625 to 2000. The units are degrees per second.

gyro0_bw

This option sets the bandwidth of the filter used for gyroscope #0's onboard filtering. Valid values range from 10 to 16000. The units are Hertz.

gyro1_rate

This option sets gyroscope #1's sensor's sampling rate. Valid values range from 12.5 to 32000. The units are Hz.

gyro1_ord

This option determines the order of the filter used for gyroscope #1's onboard filtering. Valid values are 1, 2 or 3.

gyro1_fs

This option sets the full-scale range of gyroscope #1's sensor. Valid values range from 15.625 to 2000. The units are degrees per second.

gyro1_bw

This option sets the bandwidth of the filter used for gyroscope #1's onboard filtering. Valid values range from 10 to 16000. The units are Hz.

accel0_rate

This option sets accelerometer #0's sampling rate. Valid values range from 12.5 to 32000. The units are Hz.

accel0_ord

This option sets the order of the filter used for accelerometer #0's onboard filtering. Valid values are 1, 2 or 3.

accel0_fs

This option configures the full-scale range of accelerometer #0. Valid values are 2 to 16. The units are g's.

accel0_bw

This option sets the bandwidth of the filter used for acceleromter #0's onboard filtering. Valid values range from 10 to 16000. The units are Hz.

accel1_rate

This option sets accelerometer #1's sampling rate. Valid values range from 12.5 to 32000. The units are Hz.

accel1_ord

This option sets the order of the filter used for accelerometer #1's onboard filtering. Valid values are 1, 2 or 3.

accel1_fs

This option configures the full-scale range of accelerometer #1. Valid values are 2 to 16. The units are g's.

accel1_bw

This option sets the bandwidth of the filter used for acceleromter #1's onboard filtering. Valid values range from 10 to 16000. The units are Hz.

temp0_bw

This option sets the bandwidth of the filter used for IMU #0's onboard filtering of temperature. Valid values range from 5 to 4000. The units are Hz.

temp1_bw

This option sets the bandwidth of the filter used for IMU #0's onboard filtering of temperature. Valid values range from 5 to 4000. The units are Hz.

enc0_dir

Set this option to "yes", "y" or "1" to reverse the direction of encoder 0. This feature makes it easier to migrate to the Quanser QDrone 2 hardware from another data acquisition card. It also allows models to be more portable to other cards.

Similar options exist for encoder channel 1 i.e., enc1_dir.

pwm03_dshot

Set this option to "yes", "y" or "1" to enable DSHOT on PWM outputs 0-3. When DSHOT is enabled, the only PWM mode supported is raw mode (6), and the input to the PWM output channel be a 16-bit value representing the bits of the DSHOT packet (where the most-significant bit is sent first). Note that DSHOT must be used with all four channels or none of the channels. It cannot be enabled for individual channels.

This 16-bit value should be constructed using the ESC Output block with the DSHOT protocol selected. This block allows the throttle, telemetry request and command to be used to construct the 16-bit packet.

PWM outputs 4 and 5 do not support DSHOT.

opt_rate

Set this option to the update rate to use for the optical flow sensor. Valid values range from 15.125 to 121. The units are Hz. The default is 121 Hz if no option is specified.

Properties

The Quanser QDrone 2 supports the following integer properties:

Property Name

Property Code

Description

PROPERTY_INTEGER_FIRMWARE_MAJOR_VERSION

10

The major version of the firmware.

PROPERTY_INTEGER_FIRMWARE_MINOR_VERSION

11

The minor version of the firmware.

PROPERTY_INTEGER_FIRMWARE_BUILD

12

The build of the firmware.

PROPERTY_INTEGER_HARDWARE_VERSION

13

The PCB revision.

PROPERTY_INTEGER_NUMBER_OF_ANALOG_INPUTS

16

The number of analog input channels.

PROPERTY_INTEGER_NUMBER_OF_ENCODER_INPUTS

17

The number of encoder input channels.

PROPERTY_INTEGER_NUMBER_OF_DIGITAL_INPUTS

18

The number of potential digital input channels.

PROPERTY_INTEGER_NUMBER_OF_OTHER_INPUTS

19

The number of other input channels.

PROPERTY_INTEGER_NUMBER_OF_ANALOG_OUTPUTS

20

The number of analog output channels.

PROPERTY_INTEGER_NUMBER_OF_PWM_OUTPUTS

21

The number of PWM output channels.

PROPERTY_INTEGER_NUMBER_OF_DIGITAL_OUTPUTS

23

The number of potential digital output channels.

PROPERTY_INTEGER_NUMBER_OF_OTHER_OUTPUTS

24

The number of other output channels.

PROPERTY_INTEGER_NUMBER_OF_CLOCKS

25

The number of clocks.

PROPERTY_INTEGER_NUMBER_OF_INTERRUPTS

26

The number of interrupt channels.

Connectors

The QDrone board has a number of connectors for expansion I/O. These connectors and their pinouts are listed below. Note that all pins are either 1.8V or 3.3V and are not 5V tolerant unless marked otherwise. Nor are the 1.8V pins 3.3V tolerant. The analog inputs only support 0 to +3.3V. Exceeding these voltages may damage the board!

J3 Connector (User analog, digital, PWM and encoders)

ENC1 A 5

1413

ENC1 B 5

ENC0 A 5

1211

ENC0 B 5

Ground

109

DIO1

5V

87

Ground

Ground

65

3.3V

ADC0

43

Ground

PWM4

21

PWM5

5 5V tolerant input pins

J10 Connector (ESCs)

Telemetry

8

NC ―

7

PWM3

6

PWM2

5

PWM1

4

PWM0

3

NC ―

2

Ground

1

J12 Connector (User digital, I2C, SPI and UART)

Ground

2827

3.3V

I2C1 SCL

2625

I2C8 SCL

I2C1 SDA

2423

I2C8 SDA

DIO5

2221

DIO0

DIO4

2019

DIO2

SPI0 CS1

1817

DIO3

SPI0 CS0

1615

SPI2 CS

SPI0 SCK

1413

SPI2 SCK

SPI0 MOSI

1211

SPI2 MOSI

SPI0 MISO

109

SPI2 MISO

UART1 RTS

87

UART0 RTS

UART1 CTS

65

UART0 CTS

UART1 TX

43

UART0 TX

UART1 RX

21

UART0 RX

J15 Connector (User digital, I2C, SPI and UART)

5V

65

Ground

Ground

43

3.3V

1.8V

21

Ground

Legend

→▯←

=

input

←▯→

=

output

↔▯↔

=

bidirectional I/O

=

1.8V signal

=

3.3V signal

=

5V signal

=

power

=

ground

Software

The following table lists particularly relevant software that has been installed and its associated version, in the event that the software gets upgraded accidentally and it is necessary to recover working versions. If a version is highlighted in red then it is highly recommended that it not be updated as it is likely optimized specifically for the target platform.

Package

Type

Version

Description

aiohttp

python

3.8.4

Async http client/server framework (asyncio)

cffi

python

1.15.1

Foreign Function Interface for Python calling C code.

curl

debian

7.58.0-2ubuntu3.24

command line tool for transferring data with URL syntax

Cython

python

0.29.33

The Cython compiler for writing C extensions for the Python language.

deepstream-6.0

debian

6.0.1-1

Nvidia DeepStreamSDK runtime libraries, development files and samples

future

python

0.18.2

Clean single-source support for Python 3 and 2

gast

python

0.4.0

Python AST that abstracts the underlying Python version

gfortran

debian

4:7.4.0-1ubuntu2.3

GNU Fortran 95 compiler

gnupg2

debian

2.2.4-1ubuntu1.6

GNU privacy guard - a free PGP replacement (dummy transitional package)

h5py

python

3.1.0

Read and write HDF5 files from Python

hdf5-tools

debian

1.10.0-patch1+docs-4

Hierarchical Data Format 5 (HDF5) - Runtime tools

Keras-Applications

python

1.0.8

Reference implementations of popular deep learning models

Keras-Preprocessing

python

1.1.2

Easy data preprocessing and data augmentation for deep learning models

libblas-dev

debian

3.7.1-4ubuntu1

Basic Linear Algebra Subroutines 3, static library

libcanberra-gtk-module

debian

0.30-5ubuntu1

translates GTK+ widgets signals to event sounds

libffi-dev

debian

3.2.1-8

Foreign Function Interface library (development files)

libfreenect0.5

debian

1:0.5.3-1build1

library for accessing Kinect device

libhdf5-dev

debian

1.10.0-patch1+docs-4

Hierarchical Data Format 5 (HDF5) - development files - serial version

libhdf5-serial-dev

debian

1.10.0-patch1+docs-4

transitional dummy package

libjpeg8-dev

debian

8c-2ubuntu8

Independent JPEG Group's JPEG runtime library (dependency package)

liblapack-dev

debian

3.7.1-4ubuntu1

Library of linear algebra routines 3 - static version

libomp-dev

debian

5.0.1-1

LLVM OpenMP runtime - dev package

librealsense2

debian

2.49.0

librealsense2 built using CMake

libsdl1.2-dev

debian

1.2.15+dfsg2-0.1ubuntu0.2

Simple DirectMedia Layer development files

libxslt1-dev

debian

1.1.29-5ubuntu0.3

XSLT 1.0 processing library - development kit

mock

python

3.0.5

Rolling backport of unittest.mock for all Pythons

numpy

python

1.19.4

NumPy is the fundamental package for array computing with Python.

nvidia-jetpack

debian

4.6.3-b17

NVIDIA Jetpack Meta Package

packaging

python

21.3

Core utilities for Python packages

pkgconfig

python

1.5.5

Interface Python with pkg-config

protobuf

python

3.19.6

Protocol Buffers - Google's data interchange format.

pybind11

python

2.10.3

Seamless operability between C++11 and Python

pygame

python

1.9.6

Python Game Development

pyquaternion

python

0.9.9

A fully featured, pythonic library for representing and using quaternions.

python3-colcon-common-extensions

debian

0.3.0-1

Meta package aggregating colcon-core and common extensions.

python3-matplotlib

debian

2.1.1-2ubuntu3

Python based plotting system in a style similar to Matlab (Python 3)

python3-pip

debian

9.0.1-2.3~ubuntu1.18.04.8

Python package installer

python3-sklearn

debian

0.19.1-3

Python modules for machine learning and data mining

ros-eloquent-desktop

debian

0.8.5-1bionic.20201210.230810

A package which extends 'ros_base' and includes high level packages like vizualization tools and demos.

ros-eloquent-rmw-connext-cpp

debian

0.8.2-1bionic.20201208.002937

Implement the ROS middleware interface using RTI Connext static code generation in C++.

ros-eloquent-rmw-opensplice-cpp

debian

0.8.1-1bionic.20201208.003235

Implement the ROS middleware interface using ADLINK OpenSplice static code generation in C++.

ros-eloquent-ros1-bridge

debian

0.8.3-1bionic.20201210.144804

A simple bridge between ROS 1 and ROS 2

ros-eloquent-vision-opencv

debian

2.1.4-1bionic.20201208.093514

Packages for interfacing ROS2 with OpenCV, a library of programming functions for real time computer vision.

ros-melodic-desktop-full

debian

1.4.1-0bionic.20230621.055320

A metapackage to aggregate several packages.

rosdep

python

0.22.1

rosdep package manager abstraction tool for ROS

setuptools

python

59.6.0

Easily download, build, install, upgrade, and uninstall Python packages

six

python

1.16.0

Python 2 and 3 compatibility utilities

tensorflow

python

2.7.0+nv22.1

TensorFlow is an open source machine learning framework for everyone.

testresources

python

2.0.1

Testresources, a pyunit extension for managing expensive test resources

torch

python

1.11.0a0+17540c5

Tensors and Dynamic neural networks in Python with strong GPU acceleration

v4l-utils

debian

1.14.2-1

Collection of command line video4linux utilities

zip

debian

3.0-11build1

Archiver for .zip files

zlib1g-dev

debian

1:1.2.11.dfsg-0ubuntu2.2

compression library - development

Targets

Target

Supported

Comments

QUARC Win32 Target

no

Not supported.

QUARC Win64 Target

no

Not supported.

QUARC Linux Nvidia Target

no

Not supported.

QUARC Linux QBot Platform Target

no

Not supported.

QUARC Linux QCar 2 Target

no

Not supported.

QUARC Linux QDrone 2 Target

Yes

Fully supported.

QUARC Linux Raspberry Pi 3 Target

no

Not supported.

QUARC Linux Raspberry Pi 4 Target

no

Not supported.

QUARC Linux Raspberry Pi ARM64 Target

no

Not supported.

QUARC Linux RT ARMv7 Target

no

Not supported.

QUARC Linux x64 Target

no

Not supported.

QUARC Linux DuoVero Target

no

Not supported.

QUARC Linux DuoVero 2016 Target

no

Not supported.

QUARC Linux Verdex Target

no

Not supported.

QUARC QNX x86 Target

no

Last fully supported in QUARC 2018.

Rapid Simulation (RSIM) Target

Yes

Supported with no communication to the hardware.

Normal simulation

Yes

Supported with no communication to the hardware.

 

navigation bar