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:
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.
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 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 |
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.
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
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.
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 → | 14 | 13 | ← ENC1 B 5 |
ENC0 A 5 → | 12 | 11 | ← ENC0 B 5 |
Ground ― | 10 | 9 | ↔ DIO1 |
5V ― | 8 | 7 | ― Ground |
Ground ― | 6 | 5 | ― 3.3V |
ADC0 → | 4 | 3 | ― Ground |
PWM4 ← | 2 | 1 | → 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 ― | 28 | 27 | ― 3.3V |
I2C1 SCL ← | 26 | 25 | → I2C8 SCL |
I2C1 SDA ↔ | 24 | 23 | ↔ I2C8 SDA |
DIO5 ↔ | 22 | 21 | ↔ DIO0 |
DIO4 ↔ | 20 | 19 | ↔ DIO2 |
SPI0 CS1 ← | 18 | 17 | ↔ DIO3 |
SPI0 CS0 ← | 16 | 15 | → SPI2 CS |
SPI0 SCK ← | 14 | 13 | → SPI2 SCK |
SPI0 MOSI ← | 12 | 11 | → SPI2 MOSI |
SPI0 MISO → | 10 | 9 | ← SPI2 MISO |
UART1 RTS ← | 8 | 7 | → UART0 RTS |
UART1 CTS → | 6 | 5 | ← UART0 CTS |
UART1 TX ← | 4 | 3 | → UART0 TX |
UART1 RX → | 2 | 1 | ← UART0 RX |
J15 Connector (User digital, I2C, SPI and UART)
5V ― | 6 | 5 | ― Ground |
Ground ― | 4 | 3 | ― 3.3V |
1.8V ― | 2 | 1 | ― 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 |
---|---|---|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
Yes |
Fully supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
no |
Not supported. |
|
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. |
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.