Go Down

Topic: Your latest purchase (Read 183789 times) previous topic - next topic

Coding Badly

Finally, suppose you've developed clone hardware and you *want* it to run using the device driver written by another manufacturer (e.g., Arduino) as described above. Is there a mechanism to do that, apart from spoofing the Vendor ID on your hardware?


Under Windows, the "Arduino driver" is the standard Microsoft serial port driver.  The Arduino folks provide a text file that tells the operating system to bind their VID / PID to that kernel driver.  Just like countless other people have done with hardware that behaves like a USB serial port.

pico

#856
Mar 13, 2014, 09:21 am Last Edit: Mar 13, 2014, 09:23 am by pico Reason: 1

Finally, suppose you've developed clone hardware and you *want* it to run using the device driver written by another manufacturer (e.g., Arduino) as described above. Is there a mechanism to do that, apart from spoofing the Vendor ID on your hardware?


Under Windows, the "Arduino driver" is the standard Microsoft serial port driver.  The Arduino folks provide a text file that tells the operating system to bind their VID / PID to that kernel driver.  Just like countless other people have done with hardware that behaves like a USB serial port.



And if you are just using an existing driver as you describe, there is no issue of "signed" versus "unsigned" drivers then?
WiFi shields/Yun too expensive? Embeddedcoolness.com is now selling the RFXduino nRF24L01+ <-> TCP/IP Linux gateway: Simpler, more affordable, and even more powerful wireless Internet connectivity for *all* your Arduino projects! (nRF24L01+ shield and dev board kits available too.)

Coding Badly

And if you are just using an existing driver as you describe, there is no issue of "signed" versus "unsigned" drivers then?


Yes, there is.  You have to sign the text file (indirectly; the cat file is signed).

pico


And if you are just using an existing driver as you describe, there is no issue of "signed" versus "unsigned" drivers then?


Yes, there is.  You have to sign the text file (indirectly; the cat file is signed).



And does that signing require spending extra money a Microsoft? (Sorry for all the questions; learning something here.)
WiFi shields/Yun too expensive? Embeddedcoolness.com is now selling the RFXduino nRF24L01+ <-> TCP/IP Linux gateway: Simpler, more affordable, and even more powerful wireless Internet connectivity for *all* your Arduino projects! (nRF24L01+ shield and dev board kits available too.)

Coding Badly

And does that signing require spending extra money a Microsoft? (Sorry for all the questions; learning something here.)


As far as I know, no, it does not.  I believe you just need a "code signing certificate" # (or something very similar).  For broad distribution, you will have to purchase it from someone who can digitally sign your certificate with a "root level" certificate (the actually signing is done indirectly and automatically).  In the past we've gotten our certificates from Thawte (who was acquired by Veri$ign which broke my heart), Comodo (which caused problems because their root certificate was not generally distributed), and Go Daddy.  Arduino obtained their signed certificate from GlobalSign (in Windows go to Properties / Digital Signatures for the arduino.cat file).

If the distribution is "in house", you can generate and "self sign" a certificate.  You are responsible for protecting and distributing the root certificate.

In any case, Microsoft does a reasonable job of documenting the requirements and process on their website.  If you want more details I suggest spending some time with Google in case I'm leading you astray.




# Ah, yes, there it is...
• Ensures software came from software publisher
• Protects software from alteration after publication
Enhanced Key Usage = Code Signing (1.3.6.1.5.5.7.3.3)
...the hallmark of a "code signing certificate".

SirNickity

#860
Mar 13, 2014, 07:35 pm Last Edit: Mar 13, 2014, 07:41 pm by SirNickity Reason: 1
Unless I misunderstand, if your device is a true clone, then there should be no *practical* issue using the Arduino vendor IDs (ethical issues are another matter, of course). There no chance of a "collision" of any kind occurring -- you *want* your unit to identify to the system as an Arduino device in order to use that driver.


Yes, technically that would work.  However, it's a little like copying the key for a rental car, then helping yourself to the vehicle whenever it's on the lot.

So really it just boils down to the "theft" of the IDs. Has Arduino ever complained or made their position public on this point? Does the vendor (Arduino) even have the option to allow "sharing" of the ID if they so wanted under the terms of their agreement with USB Forum (if that's the licensing body.)


The way I understand it, no, they don't have this option.  The vendor ID is assigned to you as vendor, and TTBOMK it is not permitted to conspire to allow others to use your vendor ID, or to distribute product IDs to other entities.

Finally, suppose you've developed clone hardware and you *want* it to run using the device driver written by another manufacturer (e.g., Arduino) as described above. Is there a mechanism to do that, apart from spoofing the Vendor ID on your hardware?


No.  If you spoof the vendor + device ID of the original part (which, together, I call the product ID -- that may or may not be officially correct), you're basically stealing that from the licensed vendor.  No one's going to care if you do this on a DIY clone for your own use, but the minute you sell that product, it's likely you'll be reading a cease and desist letter soon.  The original author's driver will not acknowledge your compatible device with a different product ID, so you would have to provide your own driver.  That's not a big deal, but it does mean that it's not an exact clone anymore -- it's essentially a different device that performs the same function.  That's splitting hairs somewhat, but if your users have downloaded and installed the Arduino software, an actual Arduino just works.  Your "clone" would also require its own driver to be sourced from your website or included media (yeah right).

I got a little academic with all that talk about device ID collisions before.  The gist is, every vendor gets their own vendor ID and due to the threat of device ID collisions (and it being a breach of licensing terms), only the licensed vendor is allowed to use that vendor ID.  I should've worded the ending better, since using the same vendor and device ID wouldn't be a "collision" per se if it was meant to emulate the original device, but if a device manufacturer stole the vendor ID and made up device IDs from ones that weren't used by existing devices (for example, using the Uno device ID + 1 or whatever to identify "Brand X Uno Ultimate"...) then you run the risk of collisions.  Sorry for the confusion.

GoForSmoke

That must be why my Teensies need that extra software.
Nick Gammon on multitasking Arduinos:
1) http://gammon.com.au/blink
2) http://gammon.com.au/serial
3) http://gammon.com.au/interrupts

Graynomad

@draythomp

That looks like a nice arid area, just the way I like it.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

retrolefty

How cute is this! How handy to quickly determine how much current a arduino USB powered board is drawing. I'll let you know how good it works after if arrives. Nice price also.

http://www.ebay.com/itm/390646012397?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Graynomad

Rob Gray aka the GRAYnomad www.robgray.com

Peter_I

A handful of Pro Minis.
They seem to be working perfectly.
(After a bit of trouble connecting them to the USB-adapter  :smiley-red: )

"Nothing is foolproof to a sufficiently talented fool"

robtillaart



- http://www.amazon.de/dp/0071771336 -
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

nightcrawler218

Excellent book. Perhaps the best among its kind.
"Imagination is more important than knowledge."
-Einstein

westfw

TI Connected Launchpad: http://www.ti.com/tool/ek-tm4c1294xl
Several Cypress PSo4 Things, including some bare chips ($1 each!)
   Pioneer: http://www.cypress.com/?rID=77780
   Prototyping kits: http://www.cypress.com/?rid=92146 (what a great idea, as a "sample" alternative!)
I also scored an ST F4 "Nucleo" at EELive:  http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260000
So many eval kits, so little time :-(

Graynomad

#869
Apr 06, 2014, 04:28 am Last Edit: Apr 06, 2014, 04:30 am by Graynomad Reason: 1
Those PSoCs look real nice, I got a CD with the dev software a while back but haven't installed it yet. I'm waiting until I get my workshop up and running so I have some space for tinkering.

Quote
So many eval kits, so little time :-(

It's quite amazing what's available these days and all free or near as dammit to free. I don't know if it's better to play with everything or really get to know one family well. You are obviously going for the first option :)

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy