User Tools

Site Tools

Translations of this page:

howto:recover_remote_control_pairing_on_spark

Save and recover remote control pairing with Spark

Pairing the remote control (RC) to your Spark is normally a task for the first day of playing with your new toy: Do it with directions from the DJI GO 4 App or do it manually by pressing some buttons on the devices. But if you accidentally or on purpose un-pair them later on, you might get into trouble re-pairing them again. Just search on the Internet, it's full of such stories.

Pairing Spark and RC manually

  1. Power on your RC, and once the red light stopped blinking, press the red pause button, Fn button and the custom button (lower button, right side, front, under photo button) all at once for some seconds until the RC starts beeping. It won't stop beeping (and trying to pair) for the next 60 sec
  2. Power on your Spark, wait for 20 sec or so until it's booted and then press the power button of the battery for 3 sec until it beeps once. Then release the power button
  3. Sparks front lights will start blinking red for some 20 sec while it tries to pair with the RC
  4. If the light on the RC turns green and the infernal beeping stops, you're good
  5. If not, you've better have read this manual before

Saving your 11pkey aka sky_pwd of a current pairing

This step is essential for an accidental un-paring, e.g. by pressing the power button on the Spark for 6 sec until it beeps twice, which means “un-pair RC”, or even pressing it for 9 sec until it beeps thrice (yes, it's a word now), which means “wifi reset”.

The goal is to look for and write down the “11pkey”, which is essential for the link between this particular Spark and its RC. In a scenario where the parameters are reset on the air craft only, but not on the RC, you just have to restore said “11pkey” and set one other parameter to restore the pairing.

  1. Root your bird with DUMLracer
  2. adb pull /data/misc/wifi/preference.conf
  3. Look into preference.conf with any plaintext editor and write down the value 11pkey

Now you've got your 11pkey.

Restore pairing with saved 11pkey

Say, you've un-paired your Spark from the RC, accidentally or on purpose. And conventional means of re-pairing as described above won't work. What're you gonna do? Now the previously saved 11pkey comes in handy.

  1. Root your bird with DUMLracer
  2. adb pull /data/misc/wifi/preference.conf
  3. Open preference.conf in your favourite plain text editor
  4. Change fw=0 to fw=1
  5. Change 11pkey= to 11pkey=<your saved 11pkey> (ordinarily the line looks something like 11pkey=DKEMXABC)
  6. Save your local preference.conf
  7. adb push preference.conf /data/misc/wifi/preference.conf
  8. Reboot your bird now and switch on your RC
  9. Voilà

Of course, you can do the editing on an adb shell with busybox vi /data/misc/wifi/preference.conf, too.

Note: The 11pkey lives on the RC, too, of course. In a perfect world you would have to possibility to just look it up on the RC.

Note 2: Although there seems to be no indication on the Spark AC itself, it's possible that the RC has some kind of information with which AC it was paired beforehand (MAC wise), so it's unclear if this method can be used with a different Spark with a different Wifi MAC address.

Edit: Turns out, you can just align the MAC addresses of two Sparks by manipulating /amt/WIFI_nvram.txt on the AC to have two Sparks with one RC. But only one at a time, please.

  1. adb shell
  2. busybox hexdump -C /amt/WIFI_nvram.txt
  3. cd /;mount -o remount,rw /amt;echo -e -n \\x60\\x60\\x1f\\x12\\x34\\x56 > /amt/WIFI_nvram.txt;mount -o remount,ro /amt
  4. now you have an AC with the MAC 60:60:1f:12:34:56
  5. please pick a random 12:34:56 part and leave the 60:60:1f alone. The latter might be important for auto-pairing.

Note 3: Pressing the power button on the Spark RC for 9-12 sec will reset it. From my experience this doesn't reset the 11pkey nor any possible AC MAC binding, just its Wifi AP's SSID and WPA credentials to the default values.

howto/recover_remote_control_pairing_on_spark.txt · Last modified: 2019/09/20 09:27 by validat0r