Pages: 1 [2] 3 4   Go Down
Author Topic: AVR with embedded USB?  (Read 6065 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 1
Posts: 104
I Love YaBB 2!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

There's a fair bit of use for turning that USB port into a proper USB device, though (particularly a lot of HID applications).  It's less to do with speed than with seamlessness.  I personally would love to have a "proper USB" support rather than just bit-banging with the AVRUSB library (which I'm doing now because I want to use the Arduino).

I'm all for it, basically, just like I'd love to see a better option than SoftwareSerial for serial interfaces (even if it means a little more add-on circuitry).
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Don't know if anyone's interested, but see my post "Arduino for AT90USB1287 / AT90USBKey demo board with Eclipse"
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks zaiq. read my reply.

As to Paul Stoffregen, I would rather you do not decieve others by using -duino. While we legally cannot stop you, -duino implies true compatibility to Arduino, not just in hardware and software but also how they share, which is in GPL/LGPL. You may see MIT as less restrictive, but we do see it as a loophole for people to decieve the openness of a platform.
Logged

0
Offline Offline
God Member
*****
Karma: 26
Posts: 626
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Clearly you're very unhappy with me, apparently due to using the -duino suffix, and because I used the MIT license?

Would it help if I were to switch to LGPL & MIT dual license in the next release?  Or maybe just LGPL and no mention of MIT at all?

That USB code was developed separately, and is also released as a stand-alone project intended for use in C language projects, totally separate from the Arduino IDE and wiring API.  For that, I chose the MIT license for few reasons.  1: it's short and simple.  2: it's OSI approved.  3: everybody claims it is compatible with all other open source licenses.  I specifically wanted a license that's as compatible as possible with any other project, and MIT seemed like a good idea.  I never imagined anyone would take exception to that decision.

Anyway, the only reason there's MIT licensed files in there is because I copied them from my other work and because OSI says the MIT license is compatible I didn't bother to change it.  But I could certainly change that to LGPL in a future release.  I'm an engineer, not an attorney, so these finer license details really don't mean a lot to me, and I've based most of my decision making on the what I've read from the OSI website.

You also seem pretty upset about the name.  I'd first like to point out the FAQ that appears on the Arduino website.   http://arduino.cc/en/Main/FAQ

Quote
What should I call my boards?

If you're making your own board, come up with your own name! This will allow people identify you with your products and help you to build a brand. Be creative: try to suggest what people might use the board for, or emphasize the form factor, or just pick a random word that sounds cool. "Arduino" is a trademark of Arduino team and should not be used for unofficial variants. If you're interested in having your design included in the official Arduino product line, please see the So you want to make an Arduino document and contact the Arduino team. Note that while we don't attempt to restrict uses of the "duino" suffix, its use causes the Italians on the team to cringe (apparently it sounds terrible); you might want to avoid it.

As nearly as I can tell, this seems to say that the name "Arduino" is what implies true compatibility and while the -duino suffix many sound terrible to Italians, its use it not restricted.

As a practical matter, there are lots and lots of projects using the -duino suffix to communicate they are somehow intended to be used together with the Audino IDE, or an official Arduino board or an unofficial clone or unofficial non-clone or whatever it might be called.  If the -duino suffix were meant to imply "true compatibility" (your message being the first I have ever seen suggesting it), the reality is the suffix is already in very widespread use for a very diverse range of projects.  That really isn't so surprising considering the FAQ.

It's certainly never been my intention to deceive anyone.  I've tried to be very clear.  Many people have offered advise and several times I have improved the web page, trying to make it as clear as possible.  In fact, it even says 'While many types of sketches can run, Teensy is NOT an "Arduino clone" due to the substantial technical differences. The Teensy hardware and Teensyduino software add-on are NOT endorsed or supported by the Arduino developer team.'

I've tried, perhaps not successfully, to apply the -duino suffix only to the software add-on that gets included into the Aduino IDE, but NOT to the hardware itself.

I'm really sorry you're so upset with me.  I have listened to feedback from many people and tried to incorporate suggestions where I can.  I have tried to follow the published guidelines on naming, and I've tried to follow OSI's advise regarding open source licenses.  I've edited the web page many times to clarify things.  I am only human and far from perfect, but I am continuing to make incremental improvements as I can.
« Last Edit: January 30, 2009, 07:27:04 am by pjrc » Logged

0
Offline Offline
God Member
*****
Karma: 1
Posts: 513
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Has anyone messed with bootloadHID recently?
http://www.obdev.at/products/avrusb/bootloadhid.html

or it's parent, avrusbboot?
http://www.fischl.de/avrusbboot/

It is all open source as far as I can see, though I have a feeling we've been here before smiley

Paul, only problem is that random person X cannot verify your claims without ordering your stuff, because it isn't entirely open.  And so who is going to send you money to help you build your credentials and reputation so you can have a monopoly on your hardware?  I don't think this is the right forum for non-open projects personally.
Logged

0
Offline Offline
God Member
*****
Karma: 1
Posts: 513
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ooohh, looks like follower has been active in the HID department as well smiley
http://code.rancidbacon.com/ProjectLogArduinoUSB
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am more upset the fact that it is not open source, more than the license itself. As you said, you design this project not as open source.

You can change it to LGPL or GPL, but as long as the hardware, software, and bootloader is not open source, it's moot. On the other hand, if you make it open source, keeping it as MIT is perfectly fine for me.
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 104
I Love YaBB 2!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'd agree with the above, Paul--I'm actually a prime candidate for the Teensy, as my current project (a serial input to USB HID device) is a prime candidate for Teensy; I'm currently using a bit-bang USB interface with the Diecemila, and there are some frustrations there-- what I really need is something with one serial port and one USB connection that can be configured as a HID device--sound familiar?  (and I have another project or two on the same vein).  But I'm pretty committed to everything being completely open.  What if you give up the Teensy project?  We'll be out of luck if we'd committed to that platform and everything wasn't completely open.

Politicians attach a "weight" to correspondence from constituencies, so a personal email, say, might reflect the opinion of 10 or so people.  Not sure what a public forum post is, but I'd say if a few of us have this objection (or confusion--feel free to put us straight) there are a few more quiet folks out there who think it's important too.  Heck, even the LUFA USB driver author has concerns about the openness:

Quote
This is one area where the Teensy could open up a bit — it would be nice to see the communication protocol published so that others can create compatible bootloaders and host-side software

I see on your page the "HalfKay Protocol Reference", so that's encouraging.  It could be that you've opened it completely now; I'm not sure.

Now, it could be that I just didn't look hard enough.  I see you have the schematic up on your site, which is great, because while it's important to me that the hardware be open, I frankly would rather just buy the thing (board layout files would be swell too, but at least the schematic satisfies that requirement for me).  But it sounds from above that the bootloader is still closed, and I'm not certain about the licensing on the Arduino environment changes.

Please do consider this.  It looks like a great project, but if it's not completely open, I know I would feel uncertain adopting it as a platform--and I certainly wouldn't feel comfortable about you using the -duino suffix.

I know it sounds like a bit of zealotry, but it's an important theme for this sort of thing.  I have just sent some Arduino-shield Gerber files out for manufacturing (for about 5-6 people actually) that probably should have used the AT90USB platform, but decided against it because I didn't find a completely open one (I've since found AVROpendous and ordered a board to play with, but it's also important that my end users have an easy environment like Arduino).

Just saying--please consider opening everything completely.  I'd wager you'll get more orders overall even with open specs, just like I'm guessing more Arduinos are sold than Seeeduinos, etc, and the market is bigger for Arduino because of its openness.

In fact, I'll place money where mouth is, because I think an easy-to-use AT90USB platform is an important project.  If you open all the code, bootloader and Arduino environments included (or show me where I'm wrong and that it is already open), I will buy one myself the next day and fork my project to support both the Arduino and the Teensy.  Not that one person's purchase is really that big a deal, but actions speak louder than forum posts.
« Last Edit: January 31, 2009, 01:57:06 pm by vputz » Logged

0
Offline Offline
God Member
*****
Karma: 26
Posts: 626
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I've since found AVROpendous and ordered a board to play with

Last time I checked, the DFU bootloader and GUI-based FLIP loader program were both closed source!

Sure, the website says "Open Hardware and Open Software Development Platform", but what does that really mean?  Can you find the bootloader source?
« Last Edit: February 01, 2009, 01:49:27 am by pjrc » Logged

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

Quote
Can you find the bootloader source?

If you mean for the Arduino:

http://svn.berlios.de/viewcvs/arduino/trunk/hardware/bootloaders/  ?

« Last Edit: February 01, 2009, 02:33:23 am by retrolefty » Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 104
I Love YaBB 2!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Last time I checked, the DFU bootloader and GUI-based FLIP loader program were both closed source!

Sure, the website says "Open Hardware and Open Software Development Platform", but what does that really mean?  Can you find the bootloader source?

Well, damn; hadn't noticed that.  Guess I don't have any options for the AT90USB then, and I'm stuck with my crappy bit-banging shield.  That's really a pity.

They do have Gerber/CAD files available, so that's a start:

Quote
If you need larger quantities you can always manufacture your own. AVRopendous
  is an Open Hardware design so all files are available for Open Source KiCAD
  (schematic/layout/gerbers/BOM/solder paste stencil).  For the adventurous,
  there is a simplified Quasi-Single-Layer version which can be built without
  needing to drill any holes and etching only one copper layer.

So that's one step up.  And hmm, okay, the magic AVROpendous bootloader source isn't available for... oh, wait, again from the LUFA guy's blog:

Quote
By contrast, the AVROpendous uses either the stock Atmel bootloader, or the LUFA (formerly MyUSB) DFU/CDC class bootloaders. The LUFA bootloaders are much bigger - 4KB a piece - however may be jumped to from the user application (with the processor in any state) and use the LUFA library as a backend, rather than a smaller set of custom USB code.

So there isn't a magic AVROpendous bootloader source to be had at all, and evidently it's possible to use the LUFA bootloaders, which are (I believe) open-source, which does indeed leave the problem of the FLIP programmer, which I'm not happy about.  That's a good point, because I do want my (five or so) end users to be able to reprogram it with a minimum of fuss, which is why I chose the Arduino instead of the AT90USBKey (which at the time was the only AT90USB board I knew of).  So now I not only have a spare AT90USBKey, but an incoming AVROpendous that I probably won't do much with.  

Although in the end I would still rate AVROpendous as more open, because if a bus came by tomorrow and wiped out the entire AVROpendous team, we could recreate everything they have available based on the source from their website; I'd still be reliant on the FLIP tool from Atmel, but then I'm already reliant on the AT90USB chip from Atmel.  I suppose a magic bus could come along tomorrow and wipe out all Atmel employees, but that's unlikely.

If you get hit by a bus tomorrow, Teensy dies, because HalfKay is gone forever.  Sure, it's probably FLIPable without HalfKay, but we're right back to where we started.

Crappy USB-bitbanging shield it is then.  Pity, because a Teensy would reduce the hardware to three parts: the teensy, a MAX233, and a DB9 male plug.  That'd be nice.

Paul, I know this probably seems like frustrating and bizarre behaviour to you, and I appreciate that.  You have made the decision that the assembler source for about 512 bytes of bootloader--which incidentally is a heck of an achievement that you should be congratulated for; I sure couldn't do it--is more important than a few lost sales from crazy hobbyists.  

And I respect that, I really do; I probably come across as a bit off my rocker here, but I really do think the Teensy is a feat of engineering and design, which, regrettably, I don't feel I can use.  But you also chose to name your device close to something which is 100% open, from everything I can see, and you have to expect some backlash from that.  In fact, that's the only part I can imagine anyone being upset about, because a new hobbyist tool of any sort is to be praised.

But why is there an Arduino name to leverage?  Sure, there's ease of use, but the free-as-in-beer tools from Atmel aren't that bad.  Why has this one particular design exploded in popularity?  The openness really does mean something.  To rather a few people.  Yes, obviously the core Arduino folks are "losing sales" to all the Arduino clones--but the size of the market is so much larger because of the openness that I imagine it's done them more favors than not.

Offer still stands: if it becomes completely open, I'll order one immediately and post the order number here as proof.  You can even provide a less-efficient-but-open bootloader than HalfKay if you'd rather.  And no hard feelings if you don't--my bit-banging shield does the USB job just fine (nothing fancy; it's just the rancidbacon shield from above).  Either way, the world will keep turning, and eventually an open solution will appear from somewhere, like the earlier-mentioned one on this thread.  Or not.  But it'd be nice if it did.

I don't want this to be a flamewar in any way.  And I don't even want to try and convince you to open up HalfKay because it'll give you a warm feeling inside (although it might) or because it sounds like a good piece of engineering that should be shared with the coding world because it will inspire future programmers (although it probably would).  I personally think it's in slightly poor taste to name a closed product in the style of an open one, but that's personal preference on my part.

But I do want to get across the idea to you as a businessman (and other businessmen who read this thread) that at least in the world of hobbyist electronics, there really are people (probably a fair amount) who make purchasing decisions based on licensing, and that the decision to keep part of your  product proprietary, while a perfectly legitimate decision (and you may have plenty of reasons for it), is costing you some customers.
« Last Edit: February 01, 2009, 06:48:42 am by vputz » Logged

0
Offline Offline
God Member
*****
Karma: 26
Posts: 626
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Paul, I know this probably seems like frustrating and bizarre behaviour to you,

Honestly, I'm simply not very impressed by everything I've read here.

I realize there are several voices here, but in particular I'm amazed that on the heels of such hostility that I'm supposedly abusing the Arduino trademark and being intentionally deceptive (despite my following the Arduino FAQ guidelines), I'm seeing what look like a lot of apologizing for avropendous having a closed source bootloader and relying on closed source software, especially when the site claims such openness!

Specifically, if LUFA publishing a bootloader that isn't actually shipped with a board somehow makes that board a fully open, then Teensy is fully open and you can go ahead and buy a Teensy!

There are so many other examples in this thread of incorrect information, poor fact checking, and not actually doing any substantial review of the subject.  I'm truly not impressed.

But I do hear your overall message, that you want me to make all aspects of Teensy open source.  I haven't actually answered this yet, so I will do so now.

Teensy is more than bits and bytes.  Teensy has a business model which has been carefully considered.  That model involves a mostly open source approach, but also some closed source tools.  PJRC has made very substantial capital investment into this business model.  More developments are on the way, which I won't discuss at this time.

Yes, factored into the business model are potential lost sales opportunities for "zealots" who will only buy a completely open platform.... or perhaps one with crafty marketing that seems like it has openness but in fact ships with a closed source bootloader and recommends closed source tools.  You won't see PJRC doing that!

But if the business model is successful, you should in time see more and more compelling advantages to using a Teensy.
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 104
I Love YaBB 2!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not being hostile at all; I've repeatedly praised Teensy as a technical achievement and I think you've done a great job with it... as a closed-source product, which is why I offered repeatedly to buy one if you opened it; I tend not to offer money to people as a means of being hostile.  I simply would like to see it opened, as I  feel it would get you more customers and become a de facto standard; if you don't, eventually someone will produce an open version, and Teensy will fall by the wayside, and that would be a pity, because it looks a great little board.

Quote
I'm seeing what look like a lot of apologizing for avropendous having a closed source bootloader

More correctly, they don't seem to provide any bootloader at all, thus forcing users to use the AVR bootloader and tools.  What you seem to be doing is saying "this will work with your open tools, but only if you use my proprietary bootloader."  Neither is exactly ideal.  There is a slight difference between "everything we offer you is open, but we didn't make you any extra tools" and "everything we offer you is open except this secret part which you can't have but need in order to use the tools you are using."

The problem with the latter approach is that you are leveraging the Arduino name and taking advantage of an open platform, but are in fact extending it with proprietary extensions which you control.  This may seem to make sense from a business perspective, which is why Microsoft made it such an established practice.  From the Wikipedia article, emphasis mine:

Quote
"Embrace, extend and extinguish," also known as "Embrace, extend, and exterminate," is a phrase that the U.S. Department of Justice found was used internally by Microsoft to describe their strategy for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences to disadvantage its competitors.

Unfortunately the open-source community is extremely sensitive to embrace-and-extend tactics (as this thread and others are showing), because they run counter to the ideals of open-source practices, and because they are almost always unnecessary.  They add complications where they don't need to.  I truly believe that if you had made the Teensy open from the start, you would have more customers and probably not many people would bother competing.  Evidently you have made an analysis and concluded otherwise, which is your prerogative.

I think you've done a good job of portraying your point of view.  But I hope you can see at some level that what it looks like to the "fully-open, everyone share" community of Arduino is that you don't "get" the idea of open-source hardware/software, and are saying "I don't care about your values; I just want your money"--and indeed that feels rather hostile from this end as well.

Not to worry--I'm certain you'll have some customers, just as I'm certain that before too long someone will make a fully-open AT90USB board which works with the Arduino environment, which probably won't be as elegant or tiny as the Teensy.  And as mentioned, life will go on.

« Last Edit: February 01, 2009, 07:18:49 pm by vputz » Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 137
Posts: 6805
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Carefully "curling my fingers" (the e-equivalent of "biting my tongue"), I'll just say that I suspect that the complexity of implementing USB devices beyond a simple serial port simulation is going to be a much bigger barrier to success of things like the teenydunino than a lack of "openness" in the distribution model...  The "USB-whacker" has existed in PIC-land for quite a while now, for instance...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
But I do hear your overall message, that you want me to make all aspects of Teensy open source.  I haven't actually answered this yet, so I will do so now.

Teensy is more than bits and bytes.  Teensy has a business model which has been carefully considered.  That model involves a mostly open source approach, but also some closed source tools.  PJRC has made very substantial capital investment into this business model.  More developments are on the way, which I won't discuss at this time.

Yes, factored into the business model are potential lost sales opportunities for "zealots" who will only buy a completely open platform.... or perhaps one with crafty marketing that seems like it has openness but in fact ships with a closed source bootloader and recommends closed source tools.  You won't see PJRC doing that!

But if the business model is successful, you should in time see more and more compelling advantages to using a Teensy.

Fair enough. Just take out the -duino part, then label compatible with Arduino IDE, and I will be satisfy enough. It's no worse than a BIOS or the X-PORT, or even XBee at worse, which are also close source in such sense.

But even some boards that use components similar to Arduino and can use with Arduino IDEdon't name themselves as Arduino, such as the ZB1. Even though being zealot does have a connotations, I do have to say that this is an ugly truth you and us have to accept.

It could be worse of course, we could be forcing you to use GPLv3, which I do think is overboard. But able to change bootloader is nice: For example, it was the openness of Arduino bootloader that allows the development of Sanguino, and also open up a route for a multi-core Arduino.

Since our worry is that the product will die when you die, maybe you can open it in your last will and testament? J/K
Logged

Pages: 1 [2] 3 4   Go Up
Jump to: