Libary for Windows IoT?


#1

Hi,
there are now a Libary for windows iot ?
We want to take our program to the Pi .


Blinkstick UWP library
Support for .netCore target
#2

We have to wait for @arvydas for a definite answer :wink:
But have you thought about realizing it with Python?


#3

my code writer has unfortunately no experience with pyton.


#4

@BenS seems that Windows IoT should support HID devices which is great news. I’m starting working on a library for this and will update you with the progress.


#5

Also made the switch to Windows 10 IoT, looking forward to BlinkStick support!


#6

Any update for a driver for windows 10 IoT?
We are planning a lot of projects on this os.


#7

Just a quick update that I got proof of concept working yesterday and new library supporting Windows 10 IoT will be released early next week.


#8

Dear arvydas!
I would appreciate drivers for Windows 10 IoT very, very much, too.
My latest project needs .NET functionality and I’m struggeling with mono under linux.
At the moment I can concentrate on the GPIO functions and connecting the hardware compontents, but in a few days the LED part and blinkstick willl come onto the schedule.

So if there is any progress on Windows 10 IoT and blinkstick pro I would be very thankful.
Greetings from germany and keep up this great work!
Frank


#9

Dear arvydas,

I’d like to ask, if there is any progress on your development on drivers for blinkstick pro with windows 10 iot?
SInce your latest post nearly a month passed
My project is now at the point to decide if I will go on with blinkstick and wait a few days longer, or to switch to arduino as ws2812 driver board and control via raspberry 3 windows iot and i2c bus.
I like the idea and concept of blinkstick, so any update on this would be very nice!
Yours sincerly
Frank


#10

Here is a preview of the library and test application.

BlinkStickUniversalTest.zip (160.7 KB)

I’ve tested this both on Win10 tablet and RPi3 running latest version of Windows 10 and all looks to be working well. The source code should be self explanatory, however due to Win10 universal app limitations I can’t get the information about the serial number of the device and other HID device metadata so I can’t determine the type of the device that has been connected. When you open the device you have to supply the type of device you would like to open. This does not affect much in the current release, but it will affect the behavior in later versions when I update the source code with more features. Everything is async in this library, so programming is slightly different, but API is compatible with BlinkStickDotNet.

Let me know if you have any questions and I will be happy to help! Your feedback would be very much appreciated.


Blinkstick Windows 10 IoT - Can not connect
#11

Hi Arvydas!
first things first: thank you very, very much!
I’ve tested your BlinkStick UniversalTest Application today.
Needed to update Visual Studio 2015 to SP3 and install the latest SDK, but after changing the debug Mode to ARM the application started.
Because I connected a WS2812B Stripe to a blinkstick pro I was first irritated, that the Morph Button only set the first LED to white.
But afterwards I remembered to change the Blinkstick-Mode to 2 an use Set-Color.
Result: works very nice!

So now I can start to use your library for my project!
Again: thank you very much!
I’ll keep you updated on my progress.
Frank


#12

Dear arvydas,
while your test project compiles fine and I can do some modifications for testing, I’ve have some troubles to create a project on my own.
I’ve set up a new Universal Windows App with Target Version 104393 and Min Version 10586.

At the moment I try to use FindFirstAsync I get a compiler Error: could not load file or assembly system.runtime.windowsruntime 4.0.11.0

It doesn’t matter if a create a new project and add “BlinkStickUniversal” as a whole project or if I create a new project and add a reference to a compiled BlinkStickUniversal.dll.
Both times same error.

I tried to add a reference to C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5.1\System.Runtime.WindowsRuntime.dll
but I get the error that the assemply is already part of the Buildsystem.

I think there is some conflict between different Versions of this dll, but I can’t find out what’s the difference to your project?

I would appreciate any help.
Thank you very much
FrankSheepStationBlinkstickTest.zip (566.6 KB)


#13

Dear arvydas,

I’ve still some problems with using the BlinkstickUniversal Project within my own test project.
Meanwhile I found out, that it the latest Microsoft.NETCore.UniversalWindowsPlatform (5.2.2) is needed.
As my project used 5.1.0 the BlinkstickUniversal Project was downgraded and could not be compiled after this.
After updating the Framework via NuGet, the App can be deployed to my Rasperry Pi 3 without any problems.

But now: new problem: no connection.
FindFirstAsync finds a “Blinkstick”.
Just to be sure this is no “false positive” I disconnected the Blinkstick and run the App again -> no blinkstick, no connection, no FindFirstAsync - so this seems to work like it should.

But when I use
theBS.OpenDeviceAsync(BlinkStickUniversal.BlinkStickDeviceEnum.BlinkStickPro) nothing seems to happen.
I found out, that there is a problem in OpenCurrentDevice:

this.device = await HidDevice.FromIdAsync(info.Id, Windows.Storage.FileAccessMode.ReadWrite);

returns null.
This value of info.Id is given to the function:

> \\?\HID#VID_20A0&PID_41E5#6&2413d1cd&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

What is going wrong? Any idea how to solve the problem?
Frank


#14

It’s funny, I didn’t see a UWP version of the libraries so I was starting to work on one of my own and ran into this same problem. HidDevice.FromIdAsync is returning null and I have no idea why or how to troubleshoot.

I’ve added what I believe to be the appropriate HID device capability to the UWP app manifest but that doesn’t seem to make a difference. I also see warnings on Microsoft webpages about ensuring you call this on the and have essentially copied their example and never see the OS ask for permission, so is this the problem? Is it not able to ask the user for some reason?


#15

Have you tried running the test program posted by Arvydas:

I have it working, so it can be done. :slight_smile:


Blinkstick UWP library
#16

Thanks for the responses @martin. Yes I’ve downloaded and tried the BlinkStickUniversalTest solution linked above with the same null result from HidDevice.FromIdAsync. I’ve tried this on two separate PCs but have not tried it on my Raspberry Pi running Win10 IoT because I figured I’d try it first on what I thought would be a more reliable/capable platform. My BlinkStick Square works very well with the BlinkStickDotNet library, but just can’t be seen by a UWP app.


#17

@JoshStrohminger my suggestion is that you try it on your device. I also have a Raspberry Pi 3 with windows IoT. Runs perfectly.

Haven’t tried the device code on my PC though. I think that’s your problem. Use the PC API for PC and Device API for the device.

I have created some common classes that I have in a .NET Standard library that is shared between my device and PC applications which returns different patterns. Then I just have a small manager on each platform.


#18

It works on my Raspberry Pi running Win10 IoT. I guess I should have tried that already but I thought of it as the next step after getting running on my PC. Now I can move forward, so thanks @martin for that. But I’m still curious why a HIDs behave like this in UWP, working in IoT but not a PC. I’ve seen some complaints in other forums about Win10 opening each HID as soon as its connected but I’m not sure why or how to prevent it. An example app from Microsoft has a comment about having a status of DeviceAccessStatus.Unspecified saying “Most likely the device is opened by another app, but cannot be sure” which makes me think that’s what is happening on the PC. I actually saw this on the the Raspberry Pi when I ran the test app, left the blinkstick connected, then ran my own app. It wasn’t until I disconnected from it with the test app that I was able to connect to it in mine. I guess I need to figure out why this is happening on the PC, or go with your approach and just use different libraries depending on the environment.