twinearthsoftware / ArduinoSketchUploader

A .NET library and a command line utility to upload a compiled sketch (. HEX file) directly to an Arduino board.
MIT License
181 stars 73 forks source link

UWP Support #8

Closed cmassman closed 7 years ago

cmassman commented 7 years ago

Do you have plans to make this run under Windows 10 IoT UWP Apps?

christophediericx commented 7 years ago

Could you please add some more detail? Do you mean deploying an application to a Windows 10 IoT Core device?

cmassman commented 7 years ago

Yes… I need to be able to upload a sketch file to the Arduino from a Raspberry Pi running windows 10 IoT UWP app.

From: Christophe Diericx [mailto:notifications@github.com] Sent: Monday, June 5, 2017 8:22 AM To: christophediericx/ArduinoSketchUploader ArduinoSketchUploader@noreply.github.com Cc: Chris Massey CMassey@tankcomponents.com; Author author@noreply.github.com Subject: Re: [christophediericx/ArduinoSketchUploader] UWP Support (#8)

Could you please add some more detail? Do you mean deploying an application to a Windows 10 IoT Core device?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/christophediericx/ArduinoSketchUploader/issues/8#issuecomment-306185918, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Abq5SGYC3EPKyYa5XPqals2-aEicI-Yzks5sBAERgaJpZM4NsJyb.

christophediericx commented 7 years ago

Support for that is not planned. I don't have the relevant hardware and I have had very little free time in the last couple of months, so this is not something I can commit to.

That being said, it should not be too hard to get it working based on the principles applied in this code base (the general protocol is straightforward). The main issue would be that this library currently depends on System.IO.Ports.SerialPort and SerialPortStream. Both have quirks, and are / were only available on a traditional Windows .NET Framework environment (some people were working on a .NET Core port of SerialPort, but it's definitely bleeding edge if it's already available).

You may be able to leverage some of the classes from the Windows.Devices.SerialCommunication namespaces in the UWP context.

VladimirAkopyan commented 7 years ago

I could help if you were to organise code in such a way that is obvious where I should be putting uwp related stuff

scout208 commented 4 years ago

I was able to make this work for UWP for my application. I'm using an Arduino Mega2560 so I only implemented it for that particular bootloader but it isn't too difficult. Just need to change the RJCP.IO.Ports.SerialPort object in ArduinoBootLoaderProgrammer.cs to type Windows.Devices.Communication.SerialDevice and update the ReceiveNext and Send methods to use the SerialDevice namespace methods instead and I can confirm that it all works as expected.

What are your guys particular Arduino models you are using? If you're using an Arduino Mega2560 you could just use my code, if something else then it would just need to be modified slightly for that bootloader probably but you could use my code as an example.

Let me know if it will help and I will push my stuff to a fork.