Fri, 18 Jan 2019 12:33:39 +0100
[hp34970a] fixes and improvements on the protocol description
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
1 | ================================================== |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
2 | Updating the Prologix USB-GPIB firmware on Linux |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
3 | ================================================== |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
4 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
5 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
6 | :author: David Douard |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
7 | :Category: Electronics |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
8 | :Tags: test equipment, GPIB, Prologix |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
9 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
10 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
11 | Prologix_ sell several low cost GPIB controllers. I have one their old |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
12 | deprecated dongle "GPIB-USB Controller 4.2" and had fun with it with |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
13 | my pygpibtoolkit_ project. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
14 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
15 | It's a very simple dongle consisting in an Atmel ATMega164P |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
16 | microcontroller and a FTDI FT245FL chip for the USB<->RS232 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
17 | convertion. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
18 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
19 | .. image:: {filename}images/prologix/prologix_4.2_small.jpg |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
20 | :alt: The Prologix GPIB-USB controller. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
21 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
22 | Unfortunately, it's no longer available (I find this unfortunate |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
23 | because it was really cheap, and very useful for hobbyist like me). |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
24 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
25 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
26 | Upgrading the buggy firmware |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
27 | ============================ |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
28 | |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
29 | My controller had the version 5.2 of the firmware, which really is |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
30 | buggy. For example if a device on the GPIB bus is continuously sending |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
31 | data and the controller is in "auto" mode (in which it automatically |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
32 | perform a reading of the available data), then it was impossible to |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
33 | send it commands anymore. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
34 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
35 | Unfortunately, the Prologix web site only describe the product as "No |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
36 | longer in production". There is still an available FAQ_ and the `user |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
37 | manual`_, but the firmware update procedure is not described any more. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
38 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
39 | However, the `directory serving all the firmwares`_ for their products |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
40 | still have the firmwares for this device. The latest published version |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
41 | is the `4.2-6.95`_ (in fact, it's the version 6.95 of the firware for |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
42 | the version 4.2 of the USB-GPIB controller). |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
43 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
44 | The content of this archive is: |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
45 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
46 | .. code-block:: bash |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
47 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
48 | unzip -l ~/Downloads/gpib-usb-4.2-6.95.zip |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
49 | Archive: /home/david/Downloads/gpib-usb-4.2-6.95.zip |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
50 | Length Date Time Name |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
51 | --------- ---------- ----- ---- |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
52 | 244837 2007-07-08 23:57 avrdude.conf |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
53 | 186880 2007-07-08 23:57 avrdude.exe |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
54 | 31162 2010-09-21 10:57 m16.hex |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
55 | 31542 2010-09-21 10:57 m164.hex |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
56 | 61440 2010-06-16 18:21 PxUpdate.exe |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
57 | 409 2009-01-21 11:00 readme.txt |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
58 | --------- ------- |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
59 | 556270 6 files |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
60 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
61 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
62 | Obviously, Windows stuff only, and no documentation on how to upgrade |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
63 | the device on Linux. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
64 | |
56 | 65 | But the fact it uses avrdude_ is good sign it might be possible to find solutions |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
66 | on Linux. According the names of the hex files, it seems there have 2 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
67 | versions of the hardware, one with a ATMega16 and one with a |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
68 | ATMega164P (mine uses a 164P). |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
69 | |
56 | 70 | Now, the question is: how is the AVR programmed? There are dozens of |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
71 | 'backends' available on avrdude. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
72 | |
56 | 73 | Doing a ``string`` on the main exe in the archive, PxUpdate.exe, |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
74 | shows a few interesting things, especially this: |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
75 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
76 | .. code-block:: bash |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
77 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
78 | strings PxUpdate.exe | grep -i avr |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
79 | avrdude.exe -p %s -P \\.\COM%d -c avr109 -u -e -U flash:w:%s |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
80 | AVRBOOT |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
81 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
82 | |
56 | 83 | So we know the command line used by this firmware update tool, and we |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
84 | known it uses the AVR's bootloader as decribed in the AVR109_ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
85 | application note. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
86 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
87 | But any attempt to read the content of the flash using: |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
88 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
89 | .. code-block:: bash |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
90 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
91 | avrdude -p m164p -c avr109 -U flash:r:flash.hex:i |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
92 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
93 | fails stating the avr does not respond: |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
94 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
95 | .. code-block:: bash |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
96 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
97 | avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:r:flash2.hex:i |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
98 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
99 | avrdude: Version 6.1, compiled on Sep 11 2014 at 20:00:34 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
100 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
101 | Copyright (c) 2007-2014 Joerg Wunsch |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
102 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
103 | System wide configuration file is "/etc/avrdude.conf" |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
104 | User configuration file is "/home/david/.avrduderc" |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
105 | User configuration file does not exist or is not a regular file, skipping |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
106 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
107 | Using Port : /dev/ttyUSB0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
108 | Using Programmer : avr109 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
109 | AVR Part : ATmega164P |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
110 | Chip Erase delay : 55000 us |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
111 | PAGEL : PD7 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
112 | BS2 : PA0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
113 | RESET disposition : dedicated |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
114 | RETRY pulse : SCK |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
115 | serial program mode : yes |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
116 | parallel program mode : yes |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
117 | Timeout : 200 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
118 | StabDelay : 100 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
119 | CmdexeDelay : 25 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
120 | SyncLoops : 32 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
121 | ByteDelay : 0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
122 | PollIndex : 3 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
123 | PollValue : 0x53 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
124 | Memory Detail : |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
125 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
126 | Block Poll Page Polled |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
127 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
128 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
129 | eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
130 | flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
131 | lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
132 | lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
133 | hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
134 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
135 | calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
136 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
137 | Programmer Type : butterfly |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
138 | Description : Atmel AppNote AVR109 Boot Loader |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
139 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
140 | Connecting to programmer: .avrdude: ser_recv(): programmer is not responding |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
141 | avrdude: butterfly_recv(): programmer is not responding |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
142 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
143 | |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
144 | So there is something else required to put the device under firmware |
56 | 145 | upgrade state. I was wondering if there is an undocumented controller |
146 | command (anything starting with ``++`` is interpreted as a controller | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
147 | command), so I searched for the ``++`` string in ``PxUpdate.exe``: |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
148 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
149 | .. code-block:: bash |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
150 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
151 | strings PxUpdate.exe | grep ++ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
152 | Microsoft Visual C++ Runtime Library |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
153 | ++rst |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
154 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
155 | No magic undocumented command, but a reset of the controller is |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
156 | performed by this tool. Let's try this: |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
157 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
158 | .. code-block:: bash |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
159 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
160 | stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
161 | echo -en '++rst\r' > /dev/ttyUSB0; avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:r:flash2.hex:i |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
162 | avrdude: Version 6.1, compiled on Sep 11 2014 at 20:00:34 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
163 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
164 | Copyright (c) 2007-2014 Joerg Wunsch |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
165 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
166 | System wide configuration file is "/etc/avrdude.conf" |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
167 | User configuration file is "/home/david/.avrduderc" |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
168 | User configuration file does not exist or is not a regular file, skipping |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
169 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
170 | Using Port : /dev/ttyUSB0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
171 | Using Programmer : avr109 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
172 | AVR Part : ATmega164P |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
173 | Chip Erase delay : 55000 us |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
174 | PAGEL : PD7 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
175 | BS2 : PA0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
176 | RESET disposition : dedicated |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
177 | RETRY pulse : SCK |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
178 | serial program mode : yes |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
179 | |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
180 | parallel program mode : yes |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
181 | Timeout : 200 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
182 | StabDelay : 100 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
183 | CmdexeDelay : 25 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
184 | SyncLoops : 32 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
185 | ByteDelay : 0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
186 | PollIndex : 3 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
187 | PollValue : 0x53 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
188 | Memory Detail : |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
189 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
190 | Block Poll Page Polled |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
191 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
192 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
193 | eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
194 | flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
195 | lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
196 | lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
197 | hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
198 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
199 | calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
200 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
201 | Programmer Type : butterfly |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
202 | Description : Atmel AppNote AVR109 Boot Loader |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
203 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
204 | Connecting to programmer: . |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
205 | Found programmer: Id = "AVRBOOT"; type = S |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
206 | Software Version = 1.0; Hardware Version = 1.0 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
207 | Programmer supports auto addr increment. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
208 | Programmer supports buffered memory access with buffersize=128 bytes. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
209 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
210 | Programmer supports the following devices: |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
211 | Device code: 0x76 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
212 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
213 | avrdude: devcode selected: 0x76 |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
214 | avrdude: AVR device initialized and ready to accept instructions |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
215 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
216 | Reading | ################################################## | 100% 0.00s |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
217 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
218 | avrdude: Device signature = 0x1e940a |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
219 | avrdude: safemode: Fuse reading not support by programmer. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
220 | Safemode disabled. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
221 | avrdude: reading flash memory: |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
222 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
223 | Reading | ################################################## | 100% 0.26s |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
224 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
225 | avrdude: writing output file "flash2.hex" |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
226 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
227 | avrdude done. Thank you. |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
228 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
229 | **Much better!** |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
230 | |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
231 | Now I can upgrade the firmware: |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
232 | |
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
233 | .. code-block:: bash |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
234 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
235 | echo -en '++rst\r' > /dev/ttyUSB0; avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:w:m164.hex |
109
96e9f64b86ed
[prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents:
56
diff
changeset
|
236 | |
30
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
237 | Et voilĂ ! The Prologix GPIB-USB interface is upgraded to the latest |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
238 | available software. From what I've seen so far, it seems more stable |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
239 | (at least I can read data from my HP5442A and HP3456A in "fast" mode |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
240 | without loosing my GPIB controller.) |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
241 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
242 | |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
243 | .. _`4.2-6.95`: http://prologix.biz/downloads/gpib-usb-4.2-6.95.zip |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
244 | .. _Prologix: http://prologix.biz/ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
245 | .. _FAQ: http://prologix.biz/gpib-usb-4.2-faq.html |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
246 | .. _`user manual`: http://prologix.biz/downloads/PrologixGpibUsbManual-4.2.pdf |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
247 | .. _pygpibtoolkit: https://www.logilab.org/project/pygpibtoolkit |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
248 | .. _`directory serving all the firmwares`: http://prologix.biz/downloads/ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
249 | .. _avrdude: http://savannah.nongnu.org/projects/avrdude/ |
bc305adb1847
[prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
250 | .. _avr109: http://www.atmel.com/Images/doc1644.pdf |