Pushing a Parrot Disco to the limit

  • Sonar Optical flow sensor does not work with 3.9.1 release. Enable but no output !
  • Voltage sensor is pretty inacurrate : Set a failsafe near 11.0 or 10.9V is like having 10.5V. Battery tuning does not make anything

With upgraded Parrot 1.7.1 firmware, telnet is not available. Press 2 times button while running enable it.

1 Like

Here is a description how to add streaming video from your Parrot DISCO to your ground station.

Assuming that you are using Wifi to connect to the drone, and your phone, tablet will have IP address 192.168.42.99. The Parrot DISCO IP address by default is 192.168.42.1.

The DISCO will be streaming wideo by UDP to port 9999 on your computer, phone or tablet.

Here is how.

After connecting to DISCO wifi:

telnet 192.168.42.1

(here you may need to press the on/off button on your disco twice to activate the telnet service first, depending on your firmware version)

After connecting to the DISCO with telnet,

checking the contents of the 3 button press:

(it should have the ardupilot activation script and deactivation of the original pilot called dragon-prog or similar)

cat /bin/onoffbutton/shortpress_3.sh

Making the filesystem writable:
Caution, from here on every mistake counts. can brick your drone :slight_smile:

mount / -o remount,rw

Adding a video streaming command to the end of the ardupilot activation script:

echo "pimpctl stream-start front 192.168.42.99 9999" >> /bin/onoffbutton/shortpress_3.sh

Going back to read-only mode:

mount / -o remount,ro

Checking again the result:

cat /bin/onoffbutton/shortpress_3.sh

From now on, when pressed the on/off button 3 times, beside activating the ardupilot, it will also start streaming the front camera video to your phone or tablet.

Make sure that your connection is manual (not dhcp address) and you set the IP address of your phone or tablet to the same as above: 192.168.42.[99 - can be anything between 2 and 254, but must be the same as given to DISCO previously by telnet]

QgroundControl settings to receive video:

Settings/General: Video source: UDP stream

UDP port: 9999 [the same as in the DISCO example above]

Aspect ratio: 1.5

Hi
Are you good on Parrot Disco Chuck and how to config to use external ESC?

Regards Anders

Sorry this is beyond my capability but has anyone seen these ?

its an I2c converter to PWM which in theory would control and external esc thus being able to put this CHUCK directly into an x8 possibly.

When I asked for information on it they guy said

I have no idea what protocol parrot uses for their I2C ESC but I can guarantee you it’s not the same one Mikrokopter uses.
Therefore without actually knowing what the protocol is (i.e. analying it with a logic probe/data logger of some kind) and writing appropriate firmware for the I2CPWM converter, none of this is going to work.
Honestly your best bet (once you do figure out the protocol) is using some arduino shit like nano or etc and writing custom code to convert from whatever i2c/what else could it be throttle format into PWM for the ESC.

I doubt there’s an off the shelf solution unless the protocol has been published somewhere and/or someone had enough time to reverse/implement it in some other hardware.

Anyone know how to do any of the above haha !

@AlexP Thanks for the instructions, I can’t make it work, mostly because pimpctl does not seem to be able to connect with pimp:
/ # pimpctl list-cameras
failed to connect to pimp: timeout

(Disco 1.7.1 firmware)

@Andre-K, maybe dragon-prog was still running?

to get the list try:
ps | grep dragon
to stop the original dragon-prog autopilot try:
kk

@AlexP My pimpctl is also not working

pimpctl

failed to connect to pimp: timeout

when i start pimp manually i get a segfault :frowning:

libpimp-Message: pimp_apm_p7.c:89:pimp_apm_p7_make_pipelines: front camera found, making pipeline

(pimp:1213): libpimp-CRITICAL **: isp_p7.c:86:dxo_new: failed to open dxo shared memory

Segmentation fault

I am on fw 1.7.1

Can I message you about how you put this CHUCK in this plane? How did that work for you? Im thinking about putting a CHUCK in a 2m opterra

I will put out short subjective overview about the arduplane state on Parrot Disco CHUCK as of 09/2019 - learned from hands-on experience:

  1. arduplane 3.9.8 build is the latest that will load on CHUCK (fw 1.7.1). Newer builds will fail to load (with glibc version related error - probably newer versions are required than available from Parrot firmware).

  2. Loaded default params from: https://raw.githubusercontent.com/ArduPilot/ardupilot/master/Tools/Frame_params/Parrot_Disco/Parrot_Disco.param

  3. No sonar readings seen (with Bebop rangefinder type). Probably does not work. Perhaps libiio version mismatch with the build?

  4. Live stream has to be started manually through pimpctl. You have to know receiver (ie your laptop) ipaddr. Stream resolution is 360p.
    pimpctl stream-start front 192.168.42.41 5600

  5. Setting up RC controller buttons/switches for proper flightmode switching is not so trivial for beginners. Here is an example for OpenTX (Taranis x9d Plus SE):

Overall flightmode switching logic:
2-position SF: RTL (takes always precedence)
3-position SE: none | LOITER | CIRCLE (takes precedence over other flightmodes)
3-position SG: AUTO | CRUISE | FBWA

Create 5 logical switches (RTL on SF takes precedence and LOITER/CIRCLE takes priority over other flight modes):
L01: AND SE- — !SF↓ # LOITER
L02: AND SE↑ SG↑ !SF↓ # AUTO
L03: AND SE↑ SG- !SF↓ # CRUISE
L04: AND SE↑ SG↓ !SF↓ # FBWA
L05: AND SE↓ — !SF↓ # CIRCLE

Create 5 inputs:
I5: RTL SF
I6: LTR L01
I7: AUTO L02
I8: CRUI L03
I9: FBWA L04
I10: CIRC L05

Create flightmode switches on channel 5:
CH5:
I5 RTL WEIGHT -100
I6 LTR WEIGHT -45
I7 AUTO WEIGHT -20
I8 CRUI WEIGHT +20
I9 FBWA WEIGHT +45
I10 CIRC WEIGHT +100

Set flightmode params on ardupilot (via GCS on RC channel 5):

FLTMODE1 11 # RTL 910-1230 on RC5
FLTMODE2 12 # LOITER 1231-1360 on RC5
FLTMODE3 10 # AUTO 1261-1490 on RC5
FLTMODE4 7 # CRUISE 1491-1620 on RC5
FLTMODE5 5 # FBWA 1621-1749 on RC5
FLTMODE6 6 # CIRCLE 1750-2049 on RC5

P.S. If anyone has any ideas how to make rangefinder to work - please share :slight_smile:

  • 1/ Why not putting an issue in github ardupilot : https://github.com/ArduPilot/ardupilot/issues
    Still doubt IMO to switch to 1.7.1, 1.4.1 works well. I have one running 1.7.1 with different ring tones than the other in 1.4.1

  • 3/ Good catch, I will try to use fw 1.3 or 1.4 to test if sonar is working !

  • Battery voltage are more accurate than % or Amps or W (you removed it from your post …)

Submitted https://github.com/ArduPilot/ardupilot/issues/12260 - arduplane versions >3.9.8 not loading on CHUCK.

Battery metering is somehow off - voltage reading seems “correctish” - yet accumulated usage and battery % are somehow way off. Cannot make any sense of it right now - it seems there are no parameters to influence battery % calculation in case of Bebop battery monitor type.

Battery percent are mostly computed in Volts rather than Amps in devices (eg: smartphone, computer …). In Ardupilot it uses W so Volt * Amps, it doesn’t make sense since we don’t have a reliable current sensor and can compute this.
So what is better is to monitor your battery with Volts instead of percent. If you are asking about failsafe : put failsafe in volts only and not percent