Go Down

Topic: Closed (ouch) or Open Hardware new Uno's ? (Read 15333 times) previous topic - next topic

Paul Stoffregen

Anyone know where the source corresponding to 0020 can be found?

The svn doesn't have any recent updates that seem to correspond to this new version.

48X24X48X

Just downloaded 0020 and tried on my own board version of Arduino. Uploaded the sketch like 0019 & 0018. I thought it would give a warning "You are using a clone version of Arduino!". Just joking. :)

Paul Stoffregen

is the source for 0020 published yet?

I just did a fresh svn checkout, and it's definitely still 0019.  Comparing the java binary JAR files between 0019 to 0020, classes "Base", "Compiler" and "UpdateCheck" appear to have changed.

Eight

I suppose another bit someone should check, is how different (if at all) the Uno bootloader is because of the change in the USB comms chip.

The bootloader is beyond me I think. :D But could be important to know.

admin

Hello

I'm still in NYC and it will take a bit of time for me to write a long and articulated reply to this thread but I would like to write two small personal observations (as massimo and not as Arduino):

* These is a lot of FUD in this discussion. I would like to thank jon oxer for his support and understanding what we are doing.

* cloners are ONLY the ones who take the reference file , delete "reference design" and manufacture it and sell it as "Arduino" i.e. they don't add anything to the community or the platform. they just make money by conning people into thinking they are buying an official board.
We caught an official distributor who was selling (defective) clones at the same price of the original claiming they were original. We terminated their relationship to us.

All the other people who are building upon the Arduino platform to make their own board, provide their own innovation and sell putting their name on it are a VERY VERY welcome part of the community. The follow the spirit of the Open Source Hardware movement that we have contributed to create.


now can you all chill out for a second?

m


admin

The blog post that announces the Arduino 20 Release mentions that the source is now in github.

We moved to github to make it easier for the community to contribute to the project.


m

Paul Stoffregen

Quote
I suppose another bit someone should check, is how different (if at all) the Uno bootloader is because of the change in the USB comms chip.


I just compared the code.  Nothing in the '328 bootloader changed.  The makefile is the only file that's different, but the extra 224 bytes are due to windows-style newlines.  When I converted 0020's makefile back to unix style newlines, all the files are an exact match to those in 0019.  Specifically, all the files in "hardware/arduino/bootloaders/atmega".  0020 does include several other bootloaders which were not in 0019.

The source for the 8u2 chip is also present, in "hardware/arduino/firmwares".   It requires the LUFA code, which isn't included but can be easily downloaded.  I didn't try building, and I don't have a real Uno yet for comparison, but I did read through the code and it appears to be fine.

The 8u2 serial code uses VID 0x2341.  Presumably this is the official Arduino VID?  It is hard coded in "hardware/arduino/firmwares/arduino-usbserial/Descriptors.c".  The PID is configured from the makefile.  The Uno has PID 0x0001 and the 2560 has PID 0x0010.  The names are hard coded in Descriptors.c as "Arduino Uno" and "Arduino Mega 2560".  The manufacturer name is hard coded as "Arduino (www.arduino.cc)".

I could not find any mention of what clones should do.  However, it's clear this code was only designed to easily change the PID for different Arduino boards.  Everything else requires editing the Descriptors.c code.  I could not find any guidance in the comments, makefile or readme.txt regarding how 3rd party boards should adapt this code.



Paul Stoffregen

Quote
We moved to github to make it easier for the community to contribute to the project.


Thanks.  That makes perfect sense.  I just didn't know.  Maybe I've not caught up with emails on the developer list?

When you get a chance, it might be good to update the links on the download page (which still points to the google code svn).

http://arduino.cc/en/Main/Software

pracas

I think FTDI is good enough given for a long time to come... given atmels lead times and pricing of ics... even if we pool up money and get a vendor id... we still might not be able to get the atmel chips!
Be The Change...

Eight

@Paul

Quote
I just compared the code.  Nothing in the '328 bootloader changed.

Cheers mate, that's very handy to know (as is all the info you posted of course).

I'm sure everyone here supports the position of the Arduino team in dealing with the cloners. The rest of us all are just discussing how the measures *might* affect us.

Paul Stoffregen

Just one more followup... everything seems to be fully published.  I don't think anybody has cause to say "closed source".

It looks like 3rd party boards are expected to use a different VID, based on an update recently added to the README.txt file.

Quote
Please note that the Arduino VID and PIDs are only for use with official Arduino hardware and should not be used on other products.


I really don't think that's a huge problem, though it does mean 3rd party boards will need to edit Descriptors.c, and the INF, and users of those boards will need to install a separate INF.

While a unique VID costs $2500, Atmel apparently publishes VID/PID pairs that can be used.  Anyone making their own board on a shoestring budget could easily use that VID/PID.

The INF is not signed by Microsoft.  Everybody using Windows will get the unsigned driver warning.

I really don't think there's much for 3rd party boards to fear, only more care and attention to detail is needed when using the published code.

Paul Stoffregen

Opps, I was wrong about the bootloader not changing.  The old bootloader is still there in 0020, and unchanged.

It looks like Uno uses the new optiboot, which is also open source, and it one of the several new bootloaders in the 0020 download.

Eight

Quote
It looks like Uno uses the new optiboot, which is also open source, and it one of the several new bootloaders in the 0020 download.

Uh oh... :D

I suppose the only significant issue would be if newer Arduino bootloaders are made reliant on the 8u2, thereby making non-8u2 based boards require different bootloaders.

Need a crystal ball maybe for that one. :)

Paul Stoffregen

#73
Sep 27, 2010, 07:59 pm Last Edit: Sep 27, 2010, 08:03 pm by pjrc Reason: 1
Quote
I suppose the only significant issue would be if newer Arduino bootloaders are made reliant on the 8u2, thereby making non-8u2 based boards require different bootloaders.


Having read this code, I would say any such fears are utterly unfounded.  Did you read the code?  I have, and there doesn't seem to be anything like this.

Optiboot was developed long before Uno.  Well, months anyway.  It appears to work with any serial device.  It works with FTDI, or even a real serial port.

Likewise, the 8u2 source is now fully published, and if you read it, there's nothing special it does other than passing data back and forth, and implementing the various required USB stuff.  It implements a very generic USB to serial converter, which is pretty much the same as the published examples in LUFA (developed long before Uno).

The code is fully published now.  It's not even very long, as these are both pretty small programs (the huge LUFA distribution aside).  If you think there's something malicious lurking in there, why not actually look for it and quote the offending lines of code?

I'll be very impressed, and fully retract everything I've said if you manage to find anything malicious I missed, but I'm pretty sure you won't find any such thing.  You don't need a crystal ball, only the code and a text editor.

Eight

#74
Sep 27, 2010, 08:05 pm Last Edit: Sep 27, 2010, 08:06 pm by Eight Reason: 1
Quote
Having read this code, I would say any such fears are utterly unfounded.  Did you read the code?  I have, and there doesn't seem to be anything like this.

No, and that's why I said "if" and "crystal ball". I wouldn't claim to have to the knowledge to fully understand what is in the bootloader.

I've never once suggested that Arduino are up to anything malicious. I don't think Arduino are out to screw anyone or 'close source'. I simply mentioned a potential issue that could maybe arise one day - but quite probably won't by the sounds of it. "Unfounded" is more than fine by me.

And I thank you again for your efforts in looking into that code - you've helped everyone understand a bit better what is going on. Especially me.

Go Up