In my company we make a range of PCB's to control our equipment, all of which utilise the Atmega 328 or Atmega 2560 range of devices. For simplicity all our boards use the FTDi FT232RL devices for external communications but these devices are becoming harder and harder to source. I'm therefore considering replacing the FT232 with a 16U2 the same as on the Uno Rev 3.
I have no idea however how to write custom code for that functionality so my question is, am I legally allowed to just upload one of the usbserial.hex files that ships with the arduino IDE and use that? I don't mind that it will show as an Uno or Mega or whatever in device manager, I just want it to work without breaking any copyright laws.
I'm not a lawyer or law professional in any way, but my understanding is that you must disclose if you've used open source software and provide a copy of, or link to that software and/or hardware. If it has been modified by you then those modifications are proprietary, but the source is open. The customer can flash new code if they want, but you don't have to provide the updated code that is proprietary.
You need to contact a lawyer about the license. Getting legal advice here is not a good choice.
The USB identifier is a much bigger problem then the source code. From this...
Note on USB Vendor IDs (VID) and Product IDs (PID): The arduino-usbdfu
project uses Atmel's VID and MCU-specific PIDs to maintain compatibility
with their FLIP software. The source code to the arduino-usbserial
project includes Atmel's VID and a PID donated by them to LUFA. This
PID is used in LUFA's USBtoSerial project, which forms the basis for
arduino-usbserial. According to the LUFA documentation, this VID/PID
combination is:
"For use in testing of LUFA powered devices during development only,
by non-commercial entities. All devices must accept collisions on this
VID/PID range (from other in-development LUFA devices) to be resolved
by using a unique release number in the Device Descriptor. No devices
using this VID/PID combination may be released to the general public."
The production version of the arduino-usbserial firmware uses the
Arduino VID. This is only for use with official Arduino hardware and
should not be used on other products.
Thank you for the replies. I would always seek professional legal advice if I did go down that route but as that tends to cost money I thought I'd get a consensus of opinions here first.
The consensus seems to be probably not so I guess I have two options. 1) try to source a quantity of FT232 devices or 2) switch to the 16U2 and try to find somebody who knows what they are doing (it's way outside of my comfort zone) to write some custom code for me.
You can try purchasing a PID from someone who has a VID. That violates the USB-IF license agreement. Apparently, they have enforced that agreement. I assume that means you could lose a PID obtained this way.
LUFA (which is used to implement the USB/Serial function in the 16u2) has licensing requirements for commercial use as well, I think. (Hmm. Not too strict...)
Want to Use LUFA Commercially?
LUFA is free to use - even for commerical purposes, subject to the MIT license restrictions (see project documentation).
Commercial entities can pay a one-time US$1500 fee to obtain a commercial license to use LUFA in their products. With a commercial license, you receive:
But I wouldn't count on 16u2s being easier to obtain that FTDI chips. A lot of the current availability problems are industry-wide
(You might also want to look into using one of the newer FTDI chips...)
I assume you are using these PCBs in equipment that you are selling?
Are you using Arduino & libraries for the s/w?
If so there are licensing requirements/issues related to that as well.
There are several different licenses involved so depending what libraries you are using it can have varying and potentially dramatic effects on what you have to do / provide to your customers.