2

Robert Bosch Engineering and Business Solutions® has published an open source driver for their ES58X products. Based on this published code, I want to create an open-source hardware which is compatible with that driver. I want to get new VID/PID of course. The device would then be compatible with their proprietary software after a small change of their windows software. (a registry key as an example which defines VID/PID). Is it legal for me to do that? In general, is it legal to create a compatible open-source hardware for a proprietary software? The hardware is created by just sniffing the USB traffic between PC and device and guessing the protocol.

6
  • Q1: Is this github.com/torvalds/linux/blob/master/COPYING the applicable license file for the drivers? In this folder github.com/torvalds/linux/tree/master/drivers/net/can/usb/… I cannot see how the software is licensed. Instead I see text like "** Copyright (c) 2019 Robert Bosch Engineering and Business Solutions. All rights reserved. * Copyright (c) 2020 ETAS K.K.. All rights reserved.*" Jan 21 at 7:54
  • Q2: Is the protocol in the USB traffic depending on the open-source driver (assuming GPL?) or on the proprietary software? Jan 21 at 7:56
  • 2
    Look at the very top line, there's an SPDX identifier.
    – MadHatter
    Jan 21 at 8:02
  • That "driver" is part of the Linux kernel project. Research CAREFULLY the exact license for that part of the Linux kernel. The Linux kernel is generally covered by GPLv2 but some parts are covered by different licenses (eg. LGPL etc.). The project has a system to denote which parts are under what license. The copyright owner of the Linux kernel is Linus himself plus people who contributed to each file. Thus negotiating with the copyright owner of Linux involves potentially hundreds of people.. it's a hornet's nest.
    – slebetman
    Jan 21 at 12:51
  • @siebetman you will not do a mistake, if you assume GPLv2. As any license in the Kernel must be compatible with that. But as the file itself bears an SPDX identifier, the search can be considered done. Jan 21 at 16:58

1 Answer 1

1

The GPLv2 license for the code of the drivers here only applies to the software and any derivative work which is also software. So when you build the you are not restricted by GPL.

However, your hardware might include some code (in a processor, ROM, FLASH or otherwise) for the implementation of the USB protocol, and this code might be a derivative work of the existing code, possibly code from the drivers mentioned above or from the proprietary software you mentioned. Your question does not mention which part of the protocol you plan to reverse-engineer based on the sniffing of USB traffic. If it is the part covered by the GPL-licensed drivers I would not bother and just re-use the source code of these drivers as much as possible, it will be a derivative work which you have to license under GPL anyhow.

If, however, you are trying to reverse engineer the protocol parts that are not under an open license, but instead are originating in proprietary software, then you will have to carefully check the license terms of this proprietary software. Many license agreements for proprietary software include a clause that forbids reverse-engineering.

If you want to license the hardware under an open license, then you might want to consider license terms which are suitable for hardware, such as the CERN Open Hardware Licence or another license suitable for hardware, as most OSS licenses for software are not particularly suitable.

I will not be guessing about the impact of you changing a registry key on the user's Windows system. If you receive the user's explicit consent for that it will likely be fine, as I do not think that the value of any specific registry key would be copyrightable. The user might just drop out of the warranty clause of the proprietary software, but that's another thing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.