These tools replace all existing old applications (as if version 0.2 and 0.3). Bernhard Walle has written a new library for USBprog which now is used in the grafical application and the console tool. Thank you Bernhard for this great job!
The USBprog upload tool supports the easy change of different firmwares on the USBprog device. The tool has following capabilities:
-
downloading of the firmware from an online pool,
-
an offline mode (cache) to work with a PC without or with only temporary Internet connection (like Notebooks),
-
upload of local firmware files for testing,
-
multiple USBprog devices on a single computer and'
-
displaying of informations about a firmware, including the pin assignment.
There's a GUI version and a command line version of USBprog. The command line version has an interactive mode (like a shell) and a batch mode, which makes it possible to use USBprog in scripts or Makefiles.
Both versions use the same functions to interact with the device and to manage the firmware caches. This was done using a simple library which is used from both programs to simplify development and to keep the consistency across both versions.
Both the GUI and the CLI run on Microsoft Windows and Linux. It's easy to port USBprog to other Unix-like operating systems, but the authors don't have the time to test all these different systems.
To get an impression of the USBprog programs, here are two screenshots:
GUI version (on Linux)
Command line version (on Linux)
Linux
Please make sure that the system fulfills following dependencies:
-
libusb to access the device,
-
libxml to parse the firmware descriptions,
-
libcurl to download the firmware,
-
readline toj simplify editing of the command line (in the CLI version),
-
wxWidgets, if you want to compile also the GUI version and
-
a good C++ compiler like g++.
After this was verified, just install USBprog as usual:
-
extract the tarball and change into the newly created directory,
-
execute ./configure,
-
execute make to compile and finally
-
do make install to install all files (as root).
Binary Packages
Binary packages that are independent from the distributions are expensive (because all libraries have to be linked statically) and are not offered by us. However, installation from source code is relatively easy.
Our goal is to get USBprog into all widespread Linux distributions. Packages for openSUSE are available in the openSUSE Build Service at http://download.opensuse.org/repositories/electronics/. The repository can be added to your package manager (YaST or smart). This way, it's easy to make sure that the latest and greatest USBprog version is always installed on your computer.
Example für zypper (openSUSE 10.3)
$ zypper ar -r \
http://download.opensuse.org/repositories/electronics/openSUSE_10.3/electronics.repo
$ zypper ref
$ zypper install usbprog usbprog-gui
The reason why we currently only have openSUSE packages is that the developer of the USBprog program works at SUSE. But this shouldn't demonstrate any preference for the openSUSE distributions. We support all (widespread) distributions!
If you are in the situation to offer packages for another distribution and if you're willing to maintain that packages for a longer period of time, drop us a note at the USBprog mailing list.
Permissions
By default, only the root user can access USB devices without limitations. To make it possible for an ordinary user to access USBprog, you have to configure HAL and udev. It can give the files under /dev/bus/usb write permissions for normal users.
On openSUSE, you can just add a new file called /etc/hal/fdi/policy/20customized with following content:
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<!-- USBprog in update mode or various demos -->
<device>
<match key="info.bus" string="usb_device">
<match key="usb_device.vendor_id" int="0x1781">
<match key="usb_device.product_id" int="0x0c62">
<merge key="resmgr.class" type="string">scanner</merge>
</match>
</match>
</match>
</device>
<!-- Atmel AVR ISP MKII -->
<device>
<match key="info.bus" string="usb_device">
<match key="usb_device.vendor_id" int="0x03eb">
<match key="usb_device.product_id" int="0x2104">
<merge key="resmgr.class" type="string">scanner</merge>
</match>
</match>
</match>
</device>
</deviceinfo>
This makes HAL treating USBprog devices like Scanners which means that the currently locally (not over SSH) logged-in user can access the device.
Microsoft Windows
USBprog runs on Windows 2000 and XP. The DOS-based Windows versions 95, 98 and ME are not supported.
Because we created an installer, the installation process on Windows is easy:
-
Download the current USBprog version for Windows.
-
Execute the installation program and follow the instructions. Please note that it's important to install the driver package once. When you just update USBprog, it's not necessary.
-
After you plugged-in the USBprog device, Windows should detect it in “update mode” and starts the plug & play driver installation.
-
Choose the automatic installation mode in the driver installation of Windows.
-
Now you can update USBprog with the newly installed flash tool.
| Warning:
| Switching into update mode On Windows you always should change into update mode manually with jumpers. You can find more instructions about this here. |
After the installation you should test the device. To perform this, just use the simple “blinkdemo” firmware. The usage of the GUI version should be easy and there shouldn't be any instructions necessary. Just start it with the Icon in the Windows start menu, or with the binary usbprog-gui on Linux.
Command Line Version
-
Start the CLI version in a terminal with usbprog.
-
The program now downloads an index file from the Internet. Enter list to get a list of all available firmwares.
-
Download the “blinkdemo” firmware with the download blinkdemo command.
-
Display a list of attached USBprog devices with devices. You should see at least one USBprog device. If the USBprog device is already in update mode, this should be signed with a star. If not, use device 0 to select the first device as update device.
-
Upload the “blinkdemo” firmware with upload blinkdemo to the device. The firmware should start automatically.
The command line program has a command help which lists all available commands. With helpcmd command you can get help for a specific command.
On Linux, both programs (usbprog and usbprog-gui have manual pages installed. This contain a short summary of all available commands and options.
Downloads
Please report bugs on the USBprog mailing list or in the USBprog board.