---
name: "usbprog"
section: "1"
platform: "linux"
package: "usbprog"
version: "0.2.0-2.2+b2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/usbprog"
---

# usbprog(1)

Programmer for the USBprog hardware

## NAME

usbprog - Programmer for the USBprog hardware

## SYNOPSIS

usbprog \[options\] \[commands\]

## DESCRIPTION

USBprog has two modes: An interactive mode and a batch mode. Both mode use exactly the same commands. As every command takes a fixed number of arguments, no separator is necessary between commands -- just specify as much commands as you would like to execute.

The **help** command gives a list of all commands, **?** *command* can be used to get help for a specific command. Example:

```
  (usbprog) help
  (usbprog) ? upload
```

## OPTIONS

Following options can be specified, both for the interactive and the batch mode:

- **-h** \| **--help**

  Prints a short help.

- **-v** \| **--version**

  Prints the version number to standard output.

- **-d** \| **--datadir** *datadir*

  Uses *datadir* instead of *~/.usbprog*.

- **-o** \| **--offline**

  Don't try to connect to the internet. Use the cached firmware and index file(s) only.

- **-D** \| **--debug**

  Enable debugging output.

## COMMANDS

This section describes all commands. As mentioned above, the syntax is the same for interactive and batch usage.

- **help**

  This just prints an overview about every command, i.e. the command name and an one-sentence description.

- **helpcmd** \| **?** *command*

  Print a detailed description for *command*.

- **exit** \| **quit**

  Quit the program. On Unix, you can also send an *EOF* by pressing *Ctrl-d* on your terminal.

- **copying** \| **license**

  Prints a short license (GPL) text and the version number of the program.

- **list** \| **firmwares**

  Prints a list of available firmwares. A *\[\*\]* shows that the firmware is available in the offline cache.

- **download** *firmware*

  Downloads the specified *firmware*. Use the same string as you retrieved from the **firmwares** command described above. This command doesn't work in offline mode.

- **info** *firmware*

  Shows some basic information about *firmware* like what it does, the latest version number, the author and the USB ID which the USBprog device has after this firmware has been uploaded. See also the **pins** command.

- **pins** *firmware*

  This shows the PIN assignment of *firmware* and the meaning of the LED and jumpers. See also the **info** command for basic information about the *firmware*.

- **cache** *clean* \| *delete*

  *clean* deletes all old firmware versions from the firmware cache, i.e. if the latest version of a firmware is 5, then it deletes the versions 0 to 4 if they are still on disk. The *delete* command deletes the whole firmware cache. Only the index and history file are in the cache directory after executing this command.

- **devices**

  Shows a list of connected USB devices related to USBprog. The currently used update device an be set with **device** and is also marked in the output.

- **device** *number* \| *name*

  Sets the update device for the **upload** command. You have to use the integer *number* or the device *name* you retrieved from the **devices** command.

- **upload** *firmware* \| *file*

  Uploads a new firmware. The firmware identifier can be found with the **list** command. Alternatively, you can also specify a file name on the disk. The extension doesn't matter.

## FILES

- *~/.usbprog/version.xml*

  Index file, downloaded from *http://www.ixbat.de/usbprog/versions.xml*.

- *~/.usbprog/history*

  The saved *readline*(1) history.

- *~/.usbprog/\**

  The rest in that directory are firmware files. The naming scheme is *name*.*version*.

## AUTHOR

The USBprog program and documentation has been written by Bernhard Walle \<bernhard@bwalle.de\>.

## SEE ALSO

[*usbprog-gui*(1)](/usbprog-gui/1.md), *http://www.embedded-projects.net/index.php?page\_id=135*
