LibUsbDfu 1.1.1
dotnet add package LibUsbDfu --version 1.1.1
NuGet\Install-Package LibUsbDfu -Version 1.1.1
<PackageReference Include="LibUsbDfu" Version="1.1.1" />
<PackageVersion Include="LibUsbDfu" Version="1.1.1" />
<PackageReference Include="LibUsbDfu" />
paket add LibUsbDfu --version 1.1.1
#r "nuget: LibUsbDfu, 1.1.1"
#:package LibUsbDfu@1.1.1
#addin nuget:?package=LibUsbDfu&version=1.1.1
#tool nuget:?package=LibUsbDfu&version=1.1.1
LibUsbDfu
LibUsbDfu is a C# USB DFU firmware upgrade utility using LibUsbDotNet and Mono.Options.
The program performs the entire DFU upgrade procedure - booting to update mode, downloading the firmware and manifesting it - by a single command.
It accepts .hex
, .s19
and .dfu
image file formats as input.
Features
The DeviceProgramming project implements
- Generic classes for device firmware and memory layout representation (
DeviceProgramming.Memory
) - Parsers for common firmware image file formats such as Intel HEX and Motorola SREC (
DeviceProgramming.FileFormats
) - USB DFU class logic (
DeviceProgramming.Dfu
) and file parser (DeviceProgramming.FileFormats.Dfu
) supporting both the latest official USB specification (version 1.1) and the ST Microelectronics Extension (version 1.1a)
Example
LibUsbDfu.Cli -d 483:5740 -v 1.12 -i "newfw.hex"
Note: The USB VID:PID and version are overwritten from the .dfu
file if that format is provided.
Footnotes
Unlike HID or MSC, the USB DFU class isn't recognized natively by today's OSes, therefore the interface driver must be created and distributed for each device. LibUsbDotNet is used as an underlying USB device interface, as it provides the most direct USB access on the widest platform range.
Development
Since LibUsbDfu depends on DeviceProgramming package, development update of the latter requires the use of a local NuGet Feed.
- Set up a folder for the local NuGet Feed, e.g.
C:\NuGetLocalFeed
, configurable in Visual Studio underTools
→Options
→NuGet Package Manager
→Package Sources
, or viadotnet nuget add source C:\NuGetLocalFeed -n LocalFeed
- After the changes are made, update the package version, and deploy the package to the local feed:
dotnet pack DeviceProgramming/DeviceProgramming.csproj -c Release -o C:\NuGetLocalFeed
- Update the dependent package version in
LibUsbDfu.csproj
file, and build it.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DeviceProgramming (>= 1.0.4)
- LibUsbDotNet (>= 2.2.29)
-
net8.0
- DeviceProgramming (>= 1.0.4)
- LibUsbDotNet (>= 2.2.29)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on LibUsbDfu:
Repository | Stars |
---|---|
ArduPilot/MissionPlanner
Mission Planner Ground Control Station for ArduPilot (c# .net)
|