Pages: 1 ... 56 57 [58] 59 60 ... 67   Go Down
Author Topic: Your latest purchase  (Read 108230 times)
0 Members and 1 Guest are viewing this topic.
Pittsburgh, PA, USA
Offline Offline
Faraday Member
**
Karma: 98
Posts: 4808
I learn a bit every time I visit the forum.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You can always breadboard a Duino and use an FTDI cable or like to communicate with it.
I don't suppose that anyone has a serial cable that can do the job?

I have a Dontronics Little rAVR dev board for 90Sxxxx chips. It programmed through parallel.

Logged

I find it harder to express logic in English than in Code.
Sometimes an example says more than many times as many words.

Anchorage, AK
Offline Offline
Edison Member
*
Karma: 42
Posts: 1176
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I always got the impression the emulation of USB devices was a bit of an afterthought with the selection of the 8u2/16u2 chips, the prime driver of the change being manufacturing cost. But this business about the firmware in the chips not being legal to clone is also intriguing...

It was.  It's not "illegal" to clone the u2 firmware, but since it's not a dedicated USB-to-serial IC (it's just a micro with support for USB client mode), the developer is responsible for coming up with a valid USB vendor ID.  The USB Forum assigns these, so you can't just make it up, and it's against USB's terms and conditions to use another vendor's ID.  (This is how they ensure the device IDs are globally unique -- by assigning the vendor ID and delegating the responsibility for the device ID uniqueness to the vendor.  That breaks immediately if multiple vendors get to share vendor IDs.)

Vendors have to pay (I think it's $2000?) for a unique vendor ID, and it's not permitted to sub-let them.  So the clone manufacturer is obligated to buy a vendor ID of their own and program the ATmegaXXu2 with their own IDs.  Doing so makes the device unrecognizable to the official Arduino driver (since its keyed to the vendor + product ID pair by USB's design).  You could always hack the driver to include your own IDs and distribute that, but if you have no ethics, it's easier to just steal Arduino's valid IDs and hope for the best regarding potential ID collisions.
Logged

Offline Offline
God Member
*****
Karma: 32
Posts: 830
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I always got the impression the emulation of USB devices was a bit of an afterthought with the selection of the 8u2/16u2 chips, the prime driver of the change being manufacturing cost. But this business about the firmware in the chips not being legal to clone is also intriguing...
You could always hack the driver to include your own IDs and distribute that, but if you have no ethics, it's easier to just steal Arduino's valid IDs and hope for the best regarding potential ID collisions.

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. OTOH, if you had lifted the ID of another vendor for your *different* hardware, and required your hardware to use a *different* driver, then there is the prospect of a (driver) collison of some sort.

A bit like reusing MAC addresses (DEADBEEFFEED anyone ;-)

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.)

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?
 
Intriguing stuff, particularly int the context of open hardware designs.
« Last Edit: March 13, 2014, 03:00:51 am by pico » Logged

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.)

Global Moderator
Dallas
Online Online
Shannon Member
*****
Karma: 208
Posts: 12931
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
God Member
*****
Karma: 32
Posts: 830
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: March 13, 2014, 03:23:26 am by pico » Logged

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.)

Global Moderator
Dallas
Online Online
Shannon Member
*****
Karma: 208
Posts: 12931
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

Offline Offline
God Member
*****
Karma: 32
Posts: 830
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.)
Logged

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.)

Global Moderator
Dallas
Online Online
Shannon Member
*****
Karma: 208
Posts: 12931
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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".
Logged

Anchorage, AK
Offline Offline
Edison Member
*
Karma: 42
Posts: 1176
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: March 13, 2014, 01:41:49 pm by SirNickity » Logged

Pittsburgh, PA, USA
Offline Offline
Faraday Member
**
Karma: 98
Posts: 4808
I learn a bit every time I visit the forum.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That must be why my Teensies need that extra software.
Logged

I find it harder to express logic in English than in Code.
Sometimes an example says more than many times as many words.

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 129
Posts: 8525
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@draythomp

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

______
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17294
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 129
Posts: 8525
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Great idea.

______
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Denmark
Offline Offline
Full Member
***
Karma: 10
Posts: 224
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Bob Pease: "My favorite programming language is ... solder."

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 217
Posts: 13739
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



- http://www.amazon.de/dp/0071771336 -
Logged

Rob Tillaart

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

Pages: 1 ... 56 57 [58] 59 60 ... 67   Go Up
Jump to: