Skip to content

baneageorge/Xamarin-NRF-DFU

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xamarin-NRF-DFU

Simple plugin for Xamarin forms which supports Secure DFU OTA Bluetooth update.

Platforms

iOS, Android, and basically any other what is supported by aritchie BLE plugin

Prerequesites

Features

  • Upload firmware for NordicSemiconductor devices supporting Buttonless Secure DFU without bonds

Usage

Include

using Plugin.XamarinNordicDFU;

Initialize

var dfu = new DFU();
DFUEvents.OnFimwareProgressChanged = (float progress, TimeSpan elapsed) =>
{

};
DFUEvents.OnSuccess = (TimeSpan elapsed) =>
{

};
DFUEvents.OnError = (string error) =>
{

};
DFUEvents.OnResponseError = (ResponseErrors error) =>
{

};
DFUEvents.OnExtendedError = (ExtendedErrors error) =>
{

};

Run [device is IDevice from bluetoothle]. Start command accepts Two streams - fimware stream xxx.bin and init packet stream xxx.dat. These files are usually found in distribution .zip package what can be created using nrfutil More info about distribution packages

var assembly = System.Reflection.Assembly.GetExecutingAssembly();

#if __IOS__
        var currentOS = "iOS";
#endif
#if __ANDROID__
        var currentOS = "Droid";
#endif
string firmwarePacketPath = String.Format("MyHelloProject.{0}.FW.{1}", currentOS, "nrf52832_xxaa.bin");
string initPacketPath = String.Format("MyHelloProject.{0}.FW.{1}", currentOS, "nrf52832_xxaa.dat");


Stream FirmwarePacket = assembly.GetManifestResourceStream(firmwarePacketPath);
Stream InitPacket = assembly.GetManifestResourceStream(initPacketPath);
            
await dfu.Start(device, FirmwarePacket, InitPacket);

TODO

  • Nuget package
  • Other firmware upgrade possibilities. Other than buttonless without bonds
  • Device advertised names now should be unique while updating DFU. Should add device name change for buttonless dfu.

License

MIT

Contributors

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%