Blob Blame History Raw
diff -up ./mainwindow.cpp.orig ./mainwindow.cpp
--- ./mainwindow.cpp.orig	2012-09-10 21:59:23.388373021 +0100
+++ ./mainwindow.cpp	2012-09-10 22:29:57.776258400 +0100
@@ -664,7 +664,7 @@ void MainWindow::update_firmware()
     QString filename;
     int ret = 0;
 
-    QMessageBox::information(this, "Prepare", "Please power off the amplifier, then power it back on while holding \"Save\" button.<br>After pressing \"OK\" choose firmware file and then update will begin.<br>It will take about one minute. You will be notified when it's finished.");
+    QMessageBox::information(this, "Prepare", "Please power off the amplifier, then power it back on while holding down:<ul><li>The \"Save\" button (Mustang I and II)</li><li>The Data Wheel (Mustang III, IV and IV)</li></ul>After pressing \"OK\" choose firmware file and then update will begin.It will take about one minute. You will be notified when it's finished.");
 
     filename = QFileDialog::getOpenFileName(this, tr("Open..."), QDir::homePath(), tr("Mustang firmware (*.upd)"));
     if(filename.isEmpty())
diff -up ./mustang.cpp.orig ./mustang.cpp
--- ./mustang.cpp.orig	2012-09-10 21:38:55.322810243 +0100
+++ ./mustang.cpp	2012-09-10 23:02:36.685180287 +0100
@@ -1286,11 +1286,15 @@ int Mustang::update(char *filename)
             return ret;
 
         // get handle for the device
-        amp_hand = libusb_open_device_with_vid_pid(NULL, USB_UPDATE_VID, USB_UPDATE_PID);
+        amp_hand = libusb_open_device_with_vid_pid(NULL, USB_UPDATE_VID, OLD_USB_UPDATE_PID);
         if(amp_hand == NULL)
         {
-            libusb_exit(NULL);
-            return -100;
+	    amp_hand = libusb_open_device_with_vid_pid(NULL, USB_UPDATE_VID, NEW_USB_UPDATE_PID);
+            if(amp_hand == NULL)
+	    {
+                libusb_exit(NULL);
+                return -100;
+	    }
         }
 
         // detach kernel driver
diff -up ./mustang.h.orig ./mustang.h
--- ./mustang.h.orig	2012-09-10 21:38:47.948033052 +0100
+++ ./mustang.h	2012-09-10 21:40:04.731709631 +0100
@@ -17,7 +17,8 @@
 
 // amp's VID and PID while in update mode
 #define USB_UPDATE_VID 0x1ed8
-#define USB_UPDATE_PID 0x0006
+#define OLD_USB_UPDATE_PID 0x0006  //Mustang I and II
+#define NEW_USB_UPDATE_PID 0x0007  //Mustang III, IV, V
 
 // for USB communication
 #define TMOUT 500