Close

Ugh, BLOBs

A project log for Robot Radar Module

60 GHz radar distance sensor for your robot

ted-yapoTed Yapo 06/04/2018 at 03:584 Comments

Finish this proof:

1. All closed-source binary-only firmware BLOBs suck.

2. The software for the A111 radar part is supplied as a closed-source binary-only firmware BLOB.

3. Therefore, it follows that ______________

When I first saw this part and noticed that it used an SPI interface, I was pretty psyched.  SPI interfaces are easy and supported everywhere.  Then I agreed to Acconeer's license so I could download their software to try the part out.  It turns out that they don't document the SPI interface at all, but merely provide pre-compiled code that interfaces with the part.  The license agreement allows me to distribute a binary containing their drivers as long as I license it to end users under an agreement at least as restrictive as the one I agreed to (at least I think it says that - don't rely on my opinion here).

So, OK, I won't use their software (except maybe to initially test the PCB).  But, in their agreement, it says I can't reverse-engineer the part (as pointed out in the comments below - I can't reverse engineer the software, but having signed the agreement, this practically means the part, too).  So, trying to figure out the SPI protocol/commands is off limits.  If I had just bought the part and slapped it on the PCB, I could have hacked away at the protocol to see if I could get it to do anything.  But, having signed the agreement, I don't think I can do that anymore.

So, this project may just end up being a breakout PCB for the part, without any useful software of my own.  You could still use it with Acconeer's software (assuming you agree to their terms).  On the positive side, it should cost less than $20, as opposed to $250 for the two development kit boards you would otherwise need to purchase from Acconeer.  In that sense, it will be a success if it works, but the software situation is still quite disappointing.

I've attached their software license agreement in its entirety below.


This is all garbage - it's a chip, people - sell me the part and tell me how to program it - don't go full Microsoft with this paranoid licensing nonsense!

SOFTWARE LICENSE AGREEMENT LIMITED LICENSE AGREEMENT FOR ACCONEER MATERIALS IMPORTANT - READ CAREFULLY: This Limited License Agreement ("LLA") is made between you (either an individual person or a single legal entity, who will be referred to in this LLA as "You" or “Licensee”) and Acconeer AB, a company incorporated under the laws of Sweden (hereinafter “ACCONEER”) for the software licensed materials that accompany this LLA, including any associated media, printed materials and electronic documentation (the "Licensed Materials"). The Licensed Materials include any software updates and supplements, that Acconeer may provide You or make available to You after the date You obtain the Licensed Materials to the extent that such items are not accompanied by a separate license agreement or other terms of use. 1. LIMITED LICENSE Subject to the terms and conditions of this LLA and applicable Open Source Terms (as defined hereafter) and during the term of this LLA, ACCONEER hereby grants You under intellectual property rights owned by or licensed to ACCONEER, a non-exclusive, non-transferable, royalty-free, copyright license, without the right to sub-license (except as expressly stipulated herein or authorized in writing by an authorized representative of ACCONEER), to use and reproduce the Licensed Materials in object code solely and exclusively with ACCONEER chipsets or integrated circuits as applicable (“ACCONEER Chipsets”) for incorporation in a Licensee Product (as defined hereinafter) and subsequent distribution directly or indirectly of said Licensee Product provided that the software part of Licensed Material executes solely and exclusively on, or in conjunction with ACCONEER Chipset in Licensee Product (“Limited License Purpose”).   To the extent the Licensed Materials are made available to You in source code and subject to the terms and conditions of this LLA, ACCONEER hereby grants You under intellectual property rights owned by or licensed to ACCONEER during the term of this LLA a non-exclusive, royalty-free, nontransferable copyright license, without the right to sublicense (except as expressly stipulated herein or authorized in writing by an authorized representative of ACCONEER), to use, reproduce and modify the source code form of the Licensed Materials and compile such modified source code into new object code, for the Limited License Purpose only.   Subject to the terms and conditions of this LLA, You will be authorized to sub-license the Licensed Materials and derivative works thereof in object code solely as part of your software or hardware application (“Licensee Product”) and not as a stand-alone product for the Limited License Purpose only. You will enter into an agreement with your customer under terms and conditions no less stringent as the terms of this LLA. Upon request, You shall provide ACCONEER with requested contact information of your customers.   Subject to the terms and conditions of this LLA, ACCONEER hereby grants You under intellectual property rights owned by or licensed to ACCONEER, a non-exclusive, non-transferable, royalty-free, copyright license without the right to sub-license (except as expressly stipulated herein or authorized in writing by an authorized representative of ACCONEER), to use the Licensed Materials made available as comments, annotations, instructions, manuals, and other materials, whether in printed or electronic form, including without limitation installation manuals, user’s guides, and programmer guides (“Documentation”) solely to support and exercise the rights granted under this article 1 and to copy, modify and/or create derivative works from the Documentation – e.g. by creating technically accurate subsets and by translating it into other languages or otherwise creating technically accurate localized versions thereof – and distributing such Licensee documentation only with Licensee Product.   You acknowledge that the Licensed Materials have not been specifically designed to meet Your individual requirements and that You have all information necessary to evaluate whether the Licensed Materials meet your requirements or not, will be suitable for your intended use or application and substantially comply with the Documentation. Therefore the Licensed Materials shall be deemed accepted upon delivery to Licensee. You shall use, at your own risk, the Licensed Materials and any development that is obtained from such use. You acknowledge that ACCONEER cannot in any way be held responsible for the consequences resulting from use of the Licensed Materials and any development made following such use of the Licensed Materials. Notwithstanding anything to the contrary herein, You are not authorized to sublicense to or have used the Licensed Materials by a competitor of ACCONEER. Licensed Materials are not designed for use in safety critical applications such as i) any medical, live saving or support device or system, or ii) any safety device or system in any automotive application and mechanism (including but not limited to automotive brake or airbag systems) or iii) any nuclear facilities, or iv) any air traffic control device, application or system or v) any weapons device, application or system, or vi) any other device application or system where it is reasonably forseable that failure of the Licensee Product as used in such device, application or system would lead to death, bodily injury or catastrophic property damage. ACCONEER expressly disclaims any responsibility for such usage which shall be made at Your sole risk, even if ACCONEER has been informed in writing of such usage. You acknowledge and agree to be solely responsible for regulatory and safety related requirements concerning your own products and any use of the Licensed Materials in Your products and related applications and any claim arising from incorporation of the Licensed Materials in any application or system where failure of the Licensed Materials could lead to death or personal injury 2. RESTRICTIONS AND ADDITIONAL OBLIGATIONS Unless otherwise expressly stipulated under Article 1, You shall not, and shall not permit any third party to: (i) copy, reproduce or duplicate the Licensed Materials; (ii) translate, modify, adapt, decompile, disassemble or reverse engineer and make derivative works of (any portion of) the Licensed Materials; (iii) rent, disclose, publish, sell, assign, lease, lend, sublicense, market, transfer, distribute or otherwise provide third parties access to (any portion of) the Licensed Materials for any purpose; (iv) attempt to derive the source code, algorithmic nature or structure of any object code portions of the Licensed Materials; (v) use the Licensed Materials to create any product that competes with the Licensed Materials; (vi) remove or circumvent any protection or other restrictive technology mechanism of the Licensed Materials or ACCONEER Chipsets; (vii) disclose the results of the Licensed Materials’ performance benchmarks to any third party; or (viii) otherwise use (any portion of) the Licensed Materials in any manner not expressly authorized by this LLA.   Other than the limited expressed license granted to You under Article 1 herein, no other rights or licenses are granted, or implied by estoppel or otherwise, under any intellectual property rights of ACCONEER and/or its affiliated companies or any intellectual property of a third-party residing in the Licensed Materials or any other confidential information furnished by ACCONEER, including (i) for the combination of such Licensed Materials or other confidential information with one or more other items (including items acquired from ACCONEER and/or its affiliated companies) even if such items have no substantial use other than as part of such combination (ii) with respect to any trademark, trade or brand name, a corporate name of ACCONEER and/or its affiliated companies, or any other name or mark, or contraction, abbreviation or simulation thereof, (iii) under any intellectual property rights covering any standard set by a standard setting body and any de facto standards.   Acconeer has no obligation to provide You with maintenance, support or updates for the Licensed Materials. Nothing in this LLA will be construed as: (i) a warranty or representation by Acconeer to maintain production of any Acconeer device, hardware or software with which the licensed Materials may be used in any manner; and (ii) a commitment from Acconeer to bring or prosecute actions against third-parties for infringement. 3. OWNERSHIP, COPYRIGHTS AND TRADEMARKS The Licensed Materials are and will remain the exclusive property of Acconeer or its licensors, whether or not specifically recognized or perfected under the laws of the country where the Licensed Materials are used. You will not take any action that jeopardizes ACCONEER's or its licensors' proprietary rights or acquire any rights in the Licensed Materials, except the limited rights specified in Article 1.   All titles, trademarks and copyrights in and pertaining to the Licensed Materials, the accompanying printed materials, and any copies of the Licensed Materials, are owned or licensed by ACCONEER or its affiliated companies or suppliers. You shall ensure that such notice is reproduced in any copy of the whole or any part of the Licensed Materials. You shall not remove, modify or alter any ACCONEER copyright or trademark notice from any part of the Licensed Materials or copy partially or totally. 4. CONFIDENTIALITY The Licensed Materials may include confidential information and trade secrets designated as “confidential”, “proprietary” or similar legend with the name, sign, trade name or trade mark of ACCONEER. You may only use the Licensed Materials for the Limited License Purpose and shall take necessary precautions to maintain the confidentiality of the Licensed Materials provided by ACCONEER under this LLA. Unless permitted by this LLA, You shall not disclose, provide or make available the Licensed Materials and/or part thereof to any person other than your employees who have a need to know for the Limited License Purpose. You shall not remove any proprietary, copyright, trade secret and warning legends from the Licensed Materials and/or parts thereof, and You shall reproduce, without any amendment or change thereto, any proprietary rights legend and marking of ACCONEER or its third party suppliers in any Licensed Materials provided by ACCONEER.   You shall be liable towards ACCONEER for any damages incurred due to a failure by any employee or customer having access to the Licensed Materials to comply with the provisions in this LLA. You shall immediately notify ACCONEER of any unauthorised use or disclosure of, or of any unauthorised access to, or of any theft or loss of the Licensed Materials or part thereof, which comes to your notice.   The confidentiality obligations shall not apply to Licensed Materials, which can be shown by documentary evidence: (i) entered the public domain through no fault of the Licensee; or, (ii) known to the Licensee prior to receipt from ACCONEER; or, (iii) disclosed to the Licensee by a third party having the right to disclose; or, (iv) independently developed by the Licensee without use of the Licensed Materials, the onus of proof of independence being on the Licensee 5. DISCLAIMER OF WARRANTY YOU ACKNOWLEDGE THAT THE LICENSED MATERIALS AND ANY AND ALL PARTS THEREOF ARE PROVIDED “AS IS”. ACCONEER MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE LICENSED MATERIALS AND OR PARTS THEREOF WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SPECIFICALLY, WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, ACCONEER MAKES NO REPRESENTATION OR WARRANTY THAT (I) THE USE AND DISTRIBUTION OF THE LICENSED MATERIALS AND OR PARTS THEREOF WILL BE UNINTERRUPTED OR ERROR FREE, AND OR (II) ANY USE AND DISTRIBUTION OF THE LICENSED MATERIALS AND OR PARTS THEREOF, WHETHER INTEGRATED INTO OTHER EQUIPMENT OR NOT, ARE FREE FROM INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHTS. IT SHALL BE YOUR SOLE RESPONSIBILITY TO MAKE SUCH DETERMINATION AS NECESSARY WITH RESPECT TO THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY RIGHTS OF THIRD PARTIES. CONSEQUENTLY, ACCONEER DISCLAIMS ANY LIABILITY IN CASE ANY SUCH USE AND DISTRIBUTION INFRINGE ANY THIRD PARTY’S INTELLECTUAL PROPERTY RIGHTS. FURTHERMORE ACCONEER HEREBY DISCLAIMS ANY WARRANTY AND LIABILITY WHATSOEVER FOR ANY DEVELOPMENT CREATED BY OR FOR YOU AND BY OR FOR YOUR CUSTOMERS. YOU ACKNOWLEDGE THAT YOU HAVE RELIED ON NO WARRANTIES OTHER THAN THE EXPRESS WARRANTIES IN THIS LLA AND THAT NO WARRANTIES ARE MADE BY ACCONEER OR GRANTED BY LAW WHENEVER IT IS PERMITTED BY LAW. 6. OPEN SOURCE Some portion of the Licensed Materials might contain Open Source Software subject to Open Source Terms applicable for each such portion, as further specified in the Licensed Materials. Such Open Source Software is supplied to You under the applicable Open Source Terms and is not subject to the terms of this LLA to the extent the terms of this LLA are in conflict with such applicable Open Source Terms.   Except for Open Source Software, You have no rights under this LLA to, and may not under any circumstances use the Licensed Materials, and/or any parts thereof such that they become subject to any Open Source Terms. These actions include but are not limited to combining the Licensed Materials by means of incorporation or linking or otherwise.   For the purpose of this LLA, “Open Source Terms” shall mean any open source license that complies with the Open Source Definition specified at www.opensource.org and any other comparable open source license such as for example GNU General Public License (GPL), Eclipse Public License (EPL), Apache Software License, BSD license and MIT license, and “Open Source Software” shall mean any software that is licensed or distributed under Open Source Terms as specified in the Licensed Materials. 7. COMPLIANCE You agree not to use the Licensed Materials in violation of any law, statute, ordinance or other regulation or any obligation to which You are bound. You agree to comply with all applicable laws and regulations regarding the use of the Licensed Materials. You acknowledge that the Licensed Materials are subject to export controls restrictions. You agree that You will not export, re-export Licensed Materials, directly or indirectly, to any country to the extent export to such country at the time of export requires an export license or other governmental approval under any export control laws and regulations, without first obtaining such license or approval.   Some Licensed Materials may (i) require licenses from third parties claiming intellectual property rights covering implementation of the Licensed Materials or (ii) be based on industry recognized standards or software programs published by industry recognized standards bodies and certain third parties may claim to own intellectual property rights that cover implementation of those standards. You acknowledge and agree that this LLA does not convey a license to any such third party intellectual property rights and that You are responsible for any fees or royalties payable to any third party based on such third party's interests in the Licensed Materials.   You, at your expense, shall defend and indemnify ACCONEER against any claim, action or proceeding brought against ACCONEER which arises from or is in any manner connected with your unauthorized use of the Licensed Materials or that arises from your breach of any provision of this LLA. You shall be responsible for the due and proper compliance with the terms and conditions of this LLA by your customers and shall be jointly and severally liable to ACCONEER for any and all damages incurred by ACCONEER and its suppliers and licensors in connection with any such thirdparty’s non-compliance therewith. 8. DISCLAIMER OF DAMAGES IN NO EVENT SHALL ACCONEER AND ITS AFFILIATES BE LIABLE TO THE LICENSEE AND ITS CUSTOMERS FOR ANY INDIRECT, INCIDENTAL, PUNITIVE, SPECIAL OR CONSEQUENTIAL DAMAGES AND LOST PROFITS OR LOST SAVINGS, LOSS OF BARGAIN OR OPPORTUNITY, PROFESSIONAL FEES OR EXPENSES, BUSINESS INTERRUPTION, LOST REVENUES OR SALES, DAMAGE TO ASSOCIATED PRODUCT OR EQUIPMENT OR TO FACILITIES, COSTS OF SUBSTITUTE PRODUCT, FACILITIES OR SERVICES, COSTS ASSOCIATED WITH DOWN TIME, GOODWILL, LOSS OF DATA AND ANY SIMILAR OR DISSIMILAR LOSSES, WHETHER FORESEEABLE OR UNFORESEEABLE AND WHETHER OR NOT SUCH DAMAGES ARE BASED ON WARRANTY, CONTRACT OR ANY OTHER LEGAL THEORY – EVEN IF LICENSEE HAS BEEN ADVISED, OR IS AWARE, OF THE POSSIBILITY OF SUCH DAMAGES ARISING FROM ANY USE AND OR DISTRIBUTION OF THE LICENSED MATERIALS AND OR PARTS THEREOF, WHETHER INTEGRATED INTO OTHER EQUIPMENT OR NOT, AND OR ARISING BY REASON OF THE FACT THAT THE LICENSED MATERIALS AND OR ANY PARTS THEREOF ARE DEFECTIVE OR NONCONFORMING AND OR ARISING FROM THIS LLA. IN NO EVENT SHALL ACCONEER AND ITS AFFILIATES BE LIABLE FOR ANY DAMAGE, COSTS OR EXPENSES ASSOCIATED WITH WARRANTY OR INTELLECTUAL PROPERTY INFRINGEMENT CLAIMS WHETHER FOR THE REPLACEMENT OR REPAIR OF PRODUCTS, INCLUDING LABOR, INSTALLATION OR OTHER COSTS INCURRED BY LICENSEE AND, IN PARTICULAR, ANY COSTS RELATED TO THE REMOVAL OR REPLACEMENT OF ANY PRODUCTS SOLDERED OR OTHERWISE PERMANENTLY AFFIXED TO ANY PRINTED CIRCUIT BOARD, EXCESS PROCUREMENT COSTS, OR REWORK CHARGES. ACCONEER AGGREGATE AND CUMULATIVE LIABILITY TOWARDS LICENSEE UNDER THIS LLA SHALL NOT EXCEED 100 USD. THE LIMITATIONS SET FORTH IN THIS ARTICLE 8 SHALL ONLY APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. 9. TERM AND TERMINATION This LLA shall be valid for from acceptance by You of this LLA, until expiration or termination. This LLA shall expire when You have used the Licensed Materials in accordance with the Limited Licensed Purpose. It may be also terminated by You at any time by destroying all Licensed Materials or by returning those to ACCONEER. ACCONEER may terminate this LLA at any time if (i) You fail to comply with the terms and conditions of this LLA, or (ii) You file litigation against ACCONEER or its affiliated companies, (iii) ACCONEER receives notice of any claim, suit or proceeding that alleges that the Licensed Materials or Your use or distribution of the Licensed Materials infringes any third-party intellectual property rights or (iv) to the extent permitted by laws, a voluntary or involuntary petition in bankruptcy or winding up is filed against Licensee, any proceedings in insolvency or bankruptcy are instituted against Licensee, a trustee or receiver is appointed over Licensee, or any assignment is made for the benefit of creditors of Licensee. Upon termination you shall delete, destroy, or return to ACCONEER all Licensed Materials in your possession and You shall stop using the Licensed Materials for any purpose whatsoever. The rights and obligations under Articles from 2 to 11 will survive the termination or expiration of this LLA. Furthermore the right to use the Licensed Materials incorporated in any individual Licensee Product as per Article 1 before the expiration or termination of this LLA will survive, for the lifetime of such Licensee Product. 10. MISCELLANEOUS If a court or agency of competent jurisdiction holds any term of this LLA invalid, illegal, or unenforceable for any reason, the remainder of this LLA shall be valid and enforceable and You and ACCONEER shall discuss in good faith a substitute, valid, enforceable provision which most nearly effects the parties’ intent in entering into this LLA.   The failure by ACCONEER to enforce any provisions of this LLA or to exercise any right in respect thereto shall not be construed as constituting a waiver of its rights thereof.   No agency, joint venture, partnership or other business organisation shall be created or be construed as being created by reason of this LLA. You will not have the right or authority to, and shall not, assume or create any obligation of any nature whatsoever on behalf of ACCONEER or bind ACCONEER in any respect whatsoever. You and ACCONEER are independent parties. Nothing in this LLA shall be construed as making You an employee, agent or legal representative of ACCONEER. This LLA contains the entire and sole agreement between You and ACCONEER on the subject matter of this LLA, and supersedes all representations, undertakings and agreements previously made between You and ACCONEER and shall prevail over the terms and conditions set forth in any document from You with respect to the subject matter of this LLA. Any amendment to this LLA shall be agreed in writing and be duly signed by You and ACCONEER and shall make reference to this LLA. 11. APPLICABLE LAW This LLA is governed by the laws of Sweden, without regard to its conflict of law rules. All disputes, differences or questions arising out of or in connection with this LLA shall be finally settled by the competent courts of Malmö, Sweden. Notwithstanding the aforesaid, nothing in this LLA shall prevent ACCONEER from seeking any interim or final injunctive or equitable relief by a court of competent jurisdiction.   THE LICENSED MATERIALS ARE LICENSED TO YOU ON THE CONDITION THAT YOU ACCEPT ALL THE TERMS AND CONDITIONS OF THIS LLA. BY CLICKING ON THE "I ACCEPT" BUTTON OR BY INSTALLING, COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THE LICENSED MATERIALS, YOU AGREE TO BE BOUND BY THE TERMS OF THIS LLA. IF YOU DO NOT AGREE WITH ANY CONDITION OF THIS LLA, DO NOT INSTALL, ACCESS OR USE THE LICENSED MATERIALS.

Discussions

Mikael wrote 01/19/2019 at 14:00 point

What happened to this? Are you still working on it or?

  Are you sure? yes | no

Ted Yapo wrote 01/19/2019 at 15:06 point

It got stuffed into a drawer after I realized there was little hope of an open-source driver without reverse-engineering the part, and that I had agreed to not do so in order to download the evaluation software.

If you're interested, you might check if the software or documentation has improved to the point where an open-source driver could be written. Or, if you haven't signed the agreement, you could reverse engineer the protocol yourself.

  Are you sure? yes | no

Clara Hobbs wrote 06/04/2018 at 18:55 point

Where in that license does it say you can't reverse-engineer the part?  I see where it says you can't reverse engineer the Licensed Materials, but it doesn't look like the chip itself is included in the Licensed Materials.  In which case, you could still send it random SPI commands until it maybe does something useful, just so long as you don't use their code in any way to do it.

Of course, now that you signed the license and have their code, even if you make your own code from scratch that can make use of the chip, how could you prove in court that you didn't reverse engineer their code?

  Are you sure? yes | no

Ted Yapo wrote 06/04/2018 at 19:11 point

Yes, I think you're technically correct - I didn't sign a license before buying the part on DigiKey. But I think you're also correct that having signed the document to access the software it would be up to me to prove I didn't use the licensed materials in any way to figure the thing out.

So, if some enterprising hacker out there bought one of these parts, plopped it on a PCB and figured it out, they would be in the clear.

There's a provision for canceling the agreement by deleting/destroying the licensed materials, too, but again, I'd have to prove I didn't use the materials to reverse engineer the software before I deleted them.

I think I'm hopelessly legally contaminated with respect to this part.  It's a shame, too, because this seems like it would be a very useful module.

Maybe they will come around.  I'll send an email and ask for open documentation on the part's SPI interface so I can program it directly.  I guess it's not really fair to condemn them before asking them to do the right thing.

  Are you sure? yes | no