USB client to Win8?

Elsewhere in these forums, Pete Brown said:

Can somebody explain what this means, please? In particular, how might this impact people using Gadgeteer/.NETMF with USB client stuff?

Instinct is telling my eyes to pop out of my head but I guess I’m not sure what exactly this quote is saying… Isn’t USB used for pretty much everything nowdays?

Metro style apps (like iPad iPhone apps) make hardware access a little more challanging .

Standard desktop win 8 apps are just the same as you do now.

It’s symptomatic of the trend moving ever further away from being free to run (or write) whatever software you want or connect (or create) whatever hardware you want to a computer you supposedly own. How did we ever accept to be corralled into the beautiful walled gardens of iPad and Metro, with app stores to buy ‘approved’ software from and driver signing to control ‘approved’ hardware? I see a bleak future where we’ll eventually have to sign an EULA to obtain an LED-blinking licence. Meanwhile, users are encouraged to be content consumers and discouraged from being tinkerers, hackers, hobbyists or makers. Numbers of students enrolling in computer science or engineering courses continue to drop, from their peak of my generation brought up with 80s microcomputers that you could connect to a TV, switch on and type a few lines of code without having to jailbreak them first. Where will the next generation of developers come from in a future where kids have been conditioned to react with horror at the thought of programming their device themselves? “No! It is forbidden! There isn’t an app for that! They will hear us!”.

That’s why I’m enjoying exploring devices like Gadgeteer, Arduino and Raspberry Pi, and hope that maybe some of the next generation of programmers might come from the kids who learned to make things work with devices that actually allow and encourage such experimentation rather than locked-down magic tablet devices. Still, anyone creating electronics-based art projects can even expect to be arrested these days - like [this] or [this]!

Damn right it’s Monday morning!



@ RorschachUK - Totally agree with you - I guess since they are all getting SandBoxed we need new development tools - Spades and buckets…

@ ddurant - You just need to write a simple driver for your device, or modify the old one you have. Also, there is a lot of guides/tutorials on

Just to make things easier for you, this sample Browse code samples | Microsoft Learn that comes with Windows 8 Release Preview Sample Pack, have all the steps from the Metro app side, and even what u need to create/change to make your driver/device works on Windows8 metro app.

Let me know if it was useful or give me more details so I can try help you a bit more.

Best regards…


@ galvesribeiro - Thanks for the link.

Does this apply to projects that want to present themselves to the OS as something like a COM port or removable storage?

@ ddurant - If you implement the driver following the guidelines for the storage devices yes. Regarding the COM, you can implement a driver that converts the COM stuff into a HID device, of any other kind of device that works with metro. in there is a list of things that u can do and the new Windows 8 driver model description.

@ RorschachUK - Hyperbole much? :wink:

Look, I’m a bit biased, given that I work for Microsoft (though, to be clear, I don’t speak for the company, and what I post here is my own personal opinion), but I think the notion that we’re headed into some kind of hacker/tinkering gulag is over-the-top at best, and absurd at worst.

You only need to look at the popularity of sites like Hack-A-Day, magazines like MAKE, and the explosion of popularity of 3D printers, laser cutters, CNC routers and mills, and other maker gear to recognize that not only is tinkering and hacking healthy, it’s thriving tremendously.

There’s a huge difference between general purpose computing devices, and devices that are targeted at the broad base of consumers. Platforms that are completely “open” (whichever definition you use) may be better for those who want to repurpose or tweak the behavior of that platform, but they tend to be worse for consumers, because the very openness that appeals to the tweakers/hackers/makers leads to additional complexity and the need for making decisions for which many consumers simply aren’t adequately equipped.

My personal opinion is that there’s room for both, and I think that’s exactly where we are. We get to choose between full x86 PCs that allow all the breadth of code and hardware extensibility, and more limited environments that might require us to do more work (a la the links @ galvesribeiro posts above) to get to the same result.

Or we can choose from hundreds of available microcontroller boards, from arduino, to netduino, to arduino-compatible FEZ boards, or .NET Gadgeteer boards. And nearly all of these platforms feature some degree of open source, including the platform itself (for example NETMF and Gadgeteer) and in many cases, the hardware as well.

I have a hard time looking at the ecosystem as it exists today and describing it as anything less than an embarrassment of riches for would-be hackers and makers. If a given platform is more restrictive than you like, there are many to choose from.

It may be Monday morning, but I’ve got a bright outlook (maybe having something to do with actually getting more than 5 hours of sleep for once :slight_smile: ).


1 Like

I agree with this in general but, that said, I think I’d have zero problem giving a kid a Gadgeteer kit and a huge, serious problem asking that kid to also write a Windows driver.

Anyway, I’m still foggy on the what this all means…

Say, random contrived example, that I come up with a Windows Tablet app that’ll show you a google-like map with some arbitrary data overlayed. Maybe it’s sampled environmental data like temp/humidity/radiation count. Or maybe it’s something for vacationers that tell you where you went and how long you were at different spots. Say I also come up with some simple API for the app that talks to a USB client module as a COM port and pulls said data off a data-collection device. The app is widly successful and, once I’ve made my bazillions from it, I release all the sources so others can add different devices to it.

If I make a data collection device of this app for a Spider, do I need to write a kernel-mode Win8 driver for the tablet side then go through WHQL? If so, do I need another driver and WHQL run if I then rewrite it for a Hydra? Panda? Netduino? Arduino?? What about if I decide I want to expand it to include GPS data from the new FEZ QuadCopter?

I really don’t get where the lines are drawn. If this is “if you want to do some totally funky new device/protocol over USB, you need a driver” then ok, I get that. If it’s more than restrictive than that, I think it’s a big mistake. MS should be (IMO, from back here in the cheap seats) doing everything they can to make it easier to talk to their new machines. USB, being fast and being able to power devices, is (was?) a really good way to do that.