This document describes DUMLrub and some associated components. Essentially, DUMLrub is a ruby implementation of pyduml. But, there are some other components in the tool kit that take this one step further. The instructions below assume you are running on OSX. Most of these instructions will readily translate to most Linux variants.
Install your toolchain as per the instructions here. You only need to do this once… but check the instructions to see if there are any new tools that you may need.
If this is your first time using DUMLrub, you will need to checkout the code from git.
cd ~/Documents/ git clone https://github.com/MAVProxyUser/DUMLrub.git cd DUMLrub
If you have done this before and you want to make sure you have the latest code, you just need to sync to the most recent version
cd ~/Documents/DUMLrub git pull
This command will make a backup copy of all firmware on your connected equipment. During the process, it will:
ruby BackDatAssUp.rb
Once it is complete, you will find a firmware file dji_system.bin in the current directory.
RubaDubDUML is designed to upload a firmware image to your device. It takes two parameters. One being the comm port to use, and the other being the firmware to upload.
ruby RubaDubDUML.rb /dev/tty.usbmodem1445 dji_system.bin
LogJammer is designed to pull upgrade log files from your aircraft and decrypt them automatically.
ruby LogJammer.rb
CherryPicker allows you to pick individual firmware modules to allow you to “roll your own” firmware image.
It needs a module installed that is not in the toolchain page. This module is a little “demanding” to install. OSX commands listed below SHOULD work.
xcode-select --install sudo gem install nokogiri -v '1.6.7.2' -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.*.sdk/usr/include/libxml2 --use-system-libraries
ruby CherryPicker.rb