Your latest purchase

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.

pico:
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.

SirNickity:

pico:
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 :wink:

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.

pico:
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?

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

pico:
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".

pico:
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.

pico:
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.

pico:
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.

That must be why my Teensies need that extra software.

@draythomp

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


Rob

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

Great idea.


Rob

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

Excellent book. Perhaps the best among its kind.

TI Connected Launchpad: EK-TM4C1294XL Evaluation board | TI.com
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 :frowning:

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.

So many eval kits, so little time :frowning:

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 :slight_smile:


Rob

I really like the whole "comparative microcontroller evaluation" things, but it seems to be really difficult to actually get anything "done." :frowning: My poor 8-bit PICs seem to have fallen off the low end...

Hi, at last more manufacturers realising if they provide an evaluation kit at a good price, (not 100's of dollars), that designers just might use their product.
The power of open sourcing....

Now if ABB and Seimens can only get down off their high horses? Ridiculous prices for software for a start.
I avoid both brands like the plague when they say how much their software is, unforunately its there distributors salesman that looses the sale. I was trained on both brands and got sick and tired of keys and security on their software.
Especially when the key was a so-called uncopyable fragile 3 1/2 floppy.

Tom...... :slight_smile: