Developer

An open letter to Paul from witespy

Hi Paul,

I don't know if you know me. I'm a lead developer for the ardupilot project. You know, the project that you just accused of not being open source in an interview on http://thecrashcast.com/. I write about half the code for the project, so maybe you've heard of me.

If you've been following my work for the last 4 years on ardupilot then you would know that I'm generally a pretty mild mannered person. I try to keep my posts polite and helpful, to generally raise the tone of diydrones and open source projects in general.

Well, you better don your asbestos suit now, because I also have a rarely seen darker side. Just occasionally someone does something that pisses me off so much that I get really really annoyed. Your recent actions have done that, so here comes a flaming.

Some background

A real flaming doesn't generally come with a background introduction, but hey, I still have a mild side too (despite the fact that I am seething with anger at you right now), so why not.

I'm a long time open source developer. I started contributing to open source in the late 80s. There is a good chance that when you read this letter the bits are getting to you via computers running open source code that I've contributed to. On the wall behind me is a Free Software Foundation award for the advancement of free software. I teach a masters course on how to build and contribute to open source projects. I'm not an open source newbie. Perhaps you should have checked before making outlandish claims about ardupilot, a project that I've put my heart and sole into for so long?

I've been working on ardupilot for 3 and a half years now. In that time I've contributed over 5000 patches to the project. Given your amazing statements on the crashcast podcast and on your website about you being a defender of open source I expected to see your name in the contribution list. Strangely enough, it's not there. Did you use a pseudonym in all the contributions you have made or did you just accuse a project that you have no association with of not being open source?

How Open Source Works

As I describe in my course, open source is different for different people. Me, I'm a free software radical. I like everything I do to be FOSS (free and open source software). If I can't do something with FOSS then I see if I can write a FOSS tool to do it, then distribute it to the world. As a result I've started about 30 FOSS projects over the years and contributed to dozens more. I'm such a radical that many people in the FOSS world (including Linus Torvalds) have accused me of being too radical, and pushing the "free software or death" line too hard.

One of the big misunderstandings about open source is the insane and self-serving idea you have been pushing that the ardupilot project is somehow required, because of open source principles that you somehow fail to explain, to provide your company with binaries of our software that work on your board. That is utter and complete drivel and rubbish. You're wrapping yourself up in the open source flag while not even having the faintest idea of how open source works.

Open source project leaders can choose which hardware they support. As a lead developer of the ardupilot project I have chosen to try to make the code work on as many boards as possible. So in fact the firmware.diydrones.com site (which I maintain) does provide firmware that will probably work on your RTFHawk boards. I've also worked with people who want to port ardupilot to completely new hardware platforms. Did you notice I merged in support for Flymaple boards a few months back? Did you notice I merged in support for the VRBrain too? Did you notice the work I've been doing on porting ardupilot to the BeagleBone?

I'm guessing you didn't notice any of that or you wouldn't be making such grandiose and idiotic claims about ardupilot not being an open project.

So here's the deal. Open source project leaders get to choose what code they accept, what code they write and how the projects get managed. Really basic stuff really. I have chosen to make ardupilot widely portable and flexible, but I didn't have to. It would still be open source if I wrote the code to only work on one brand of board.

Michael Oborne is the project leader of the MissionPlanner project. He has done an awesome job building up MissionPlanner from scratch, and making it a GCS that people love to use. As the project leader for MissionPlanner he gets to set the policy. If he wants it to only load firmware to only blue boards with pink edging that have butterflies embossed on the PCB then that would be his right. I might give him some odd looks if he did that, but I'd defend his right to do it.

Because MissionPlanner is an open source project you can make it do something different if you like. If you don't like what it does then why not try something really radical like talking to him (you _did_ talk to him before accusing him of heinous crimes against the open source world? right? yes?). Hey, you could even send him a patch! Now there is a radical idea. If that fails then you could fork MissionPlanner and make it do what you want it to do. That is the fundamental succinct definition of open source after all - the right to fork. You have that right, even if perhaps you don't deserve it after all you've said in recent days.

Why do we work closely with 3DR?

If I were to believe the crap you said on that podcast then it would seem that I'm held hostage by 3DRobotics. Help, I'm an open source developer being supported by a hardware company that uses my software. Oh no!! Help me get out!!

The fact is the ardupilot developers work closely with 3DRobotics because it benefits the project. Think about that. We choose to work with them because working with them advances the aim of producing the most awesome free software autopilot that we can.

I regularly get asked by Craig Elder from 3DRobotics if there is anything he can send me to help me with my work on ardupilot. If I say "well, I fried my last Pixhawk while testing the power handling to its limits" then he pops a couple of new ones in a fedex pouch and sends it down to me in Australia. It's great!

They even pay me! I get 100% copyright on all the work I do, I get complete discretion on what code I put in and I get paid to do it. Yep, open source developers can get paid!

In fact, most large open source projects have lots of paid developers. Ever heard of the Linux kernel? Last I heard about 80% of the code is written by people who work for hardware companies that benefit from the project. This is normal. I've been paid to develop open source software by numerous companies for 20 years.

The main difference with 3DRobotics is that they are one of very few companies who have been enlightened enough to pay the ardupilot core developers. In the case of Linux there are hundreds of companies that have understood open source enough to pay the core developers. Chris Anderson from 3DRobotics saw that pitching in money to pay the people who have been working on ardupilot for so long is a good thing both for the ardupilot project and for 3DRobotics, so he did it. Now you throw that back at him and try to use it to accuse him and 3DRobotics of being some evil company perverting open source. What sort of insane logic does that stem from?

I looked in my letter box today and I didn't see any hardware from you. I bet if I talk to all the other ardupilot devs they would tell me you didn't send any hardware to them either. I haven't seen any code from you. Yet you get up on your high horse and try to claim that we owe you something? Please just crawl back into the hole you came from.

That OTP thing

The thing you have built your edifice of open source outrage on is the way that MissionPlanner checks the OTP area of Pixhawk boards and doesn't load firmware unless they match a particular public key. I have stated publicly that I don't like that behaviour. I have also made it clear that it is Michael's decision as project leader for MissionPlanner.
I have been working with other developers to try to come up with a better solution. That is how things are done in the open source world. Contributors to projects tell the project leader if they don't like something the project does and the project leader takes their ideas into consideration. Ultimately the project leader (Michael in this case) gets to choose.

So we agree?

You might think that because I also don't like the current OTP mechanism that we are in agreement. We are not. I wouldn't be flaming you in such a long winded fashion if I agreed with you.

You are taking advantage of the OTP behaviour for your own ends, and those ends have absolutely nothing to do with protecting open source.

Let's have a quick look at your actual behaviour with regards to open source and your RTFHawk project. Given your rabid defence of open source I presume you've read the license of the projects you are criticising so loudly? It's the GNU GPLv3. I happened to be on a committee that helped develop that license, so maybe you don't know it quite as well as I do. Here is a refresher. When you distribute binaries that are built from source code that is under the GPLv3 you need to (among other things) do the following:

  • make the recipients of the binaries aware of their rights under the GPL. Have a look at firmware.diydrones.com for how we do that
  • offer the source code to anyone who asks for it (which is why making them aware of this is so important)

So, let's see. On your website you have a binary copy of MissionPlanner modified to upload firmware to your board. Do you tell people who go there that it's GPLv3 software? Do you link to the source code? Do you offer the patches you've done? Nope, nope and nope.

What is more, you are wrapping yourself in an open source flag and trying to use that flag to sell your clone boards. You do this by criticising 3DRobtotics, a company that has done more for open source autopilots than any other company I know of. You are doing this as a company that has, as far as I am aware, done absolutely zero to benefit the ardupilot project or MissionPlanner that you are criticising.

So what now?

First off, go read up on open source. Read some of ESRs essays. Read the FSF site.

Then go away. One of the things a open source project can do is ignore people who really piss them off. You have really pissed me off. I would not accept a patch from you in future, even if you ever could be bothered to get off your ass and make a real contribution.

I will accept patches from other hardware vendors, and I look forward to working with other hardware vendors who make boards that run ardupilot, just like I have done ever since I got involved in this project. I love working with any hardware vendors who make great autopilots and who want to work with the project. I will do it regardless of whether they contribute money or hardware, because I love to see the platform grow. I won't however work with you because you have decided to start off the relationship between your company and the ardupilot project by insulting it and using those insults to further your own aims. So congratulations, you are the first company that I have banned from working with the ardupilot project, or at least working with me on it. Maybe you'd like to put that on your website?

Time to get some sleep.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • @Bill Bonney You seem to have a misunderstanding of how an Open Source Hardware business operates. 

    Listen to Nathan Seidle from SparkFun explain how they do over 25 Million each year in sales, doing nothing but Open Source Hardware, despite the Chinese cranking out clones of their products only 12 weeks after they release a new one.

    https://www.youtube.com/watch?v=xGhj_lLNtd0

  • Developer

    Nick and Phillip have promised that they will adhere to the licence and release their design files.  That would be the proper thing to do.  Having never seen the design files we don't have any idea if the board will be compatible or not.  It may be like the VR Brain or the Fly Maple Boards where they will need to provide their own system to load code.

  • onequestion...is AUAV-x1 from Nick Arsov on "white list"?

    http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A1555...

  • His value add is in getting the hardware to more people at a lower cost. You don't have to be a developer to contribute to the project. All you have to do is own the hardware and run the software. Thats the great thing about open source. Support comes from the community. 

    Whats stopping anyone from taking the eagle files and BoM and making the board themselves? Nothing.The one gripe I have with this flight controller is everyone seems to think that 3dr = ardupilot. I may be confusing terms here but the point is that the software/hardware exists whether 3dr manufactures it or not. 3dr is a manufacturer that also happens to give back to the community. That's great, but that's its not the only way. 

    For someone to say that unless you are contributing money, or towards the code or hardware, that's ridiculous. 

  • Developer

    @Paul: I don't think it's as simple as donating just HW for the project. If your business is based solely on selling HW at marginal cost above the BOM, it doesn't help push the software forward. It's not included the full product cost of the development of software. That extra 'profit' from the HW that is in 3DR markup is actually funding the evolution of the product and the software. To be considered to be playing fair in the ecosystem there needs to some give back on both HW revisions and improvements to funding development of new features and bug fixes. Otherwise, it's just biting the hand of that feeds it. This is not sustainable as a business model. The outcome is to be left with proprietary systems maintaining their trade secrets and hiding behind patents and lawyers.

    Remember that devs need to eat too ;)

  • Tridge and 3DR team can you please clarify the licensing on the PixHawk?

    While this page does state the Pixhawk is "OSHW". OSWH isn't a license, it's the practice of a principal with a covenant from a project's creator.

    http://www.oshwa.org/faq/ says

    "Please note that the open-source hardware definition is not a license, although it does describe some of the license terms which are compatible with the practice of open-source hardware."

    From http://freedomdefined.org/OSHW

    Open source hardware is hardware whose design is made publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design. The hardware's source, the design from which it is made, is available in the preferred format for making modifications to it. Ideally, open source hardware uses readily-available components and materials, standard processes, open infrastructure, unrestricted content, and open-source design tools to maximize the ability of individuals to make and use hardware. Open source hardware gives people the freedom to control their technology while sharing knowledge and encouraging commerce through the open exchange of designs.


    I cannot find any mention of a particular Open-Source license, MIT, CC or GNU in any of the source files for the PixHawk or on it's page for that matter. I would recommend you guys fix that sooner than later. So there is no confusion as to the nature of rights included from the release of the PixHawk deisgn.

    The core definition of OSHW states:

    1. Documentation

    The hardware must be released with documentation including design files, and must allow modification and distribution of the design files. Where documentation is not furnished with the physical product, there must be a well-publicized means of obtaining this documentation for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The documentation must include design files in the preferred format for making changes, for example the native file format of a CAD program. Deliberately obfuscated design files are not allowed. Intermediate forms analogous to compiled computer code -- such as printer-ready copper artwork from a CAD program -- are not allowed as substitutes. The license may require that the design files are provided in fully-documented, open format(s).

    2. Scope

    The documentation for the hardware must clearly specify what portion of the design, if not all, is being released under the license.

    3. Necessary Software

    If the licensed design requires software, embedded or otherwise, to operate properly and fulfill its essential functions, then the license may require that one of the following conditions are met:

    a) The interfaces are sufficiently documented such that it could reasonably be considered straightforward to write open source software that allows the device to operate properly and fulfill its essential functions. For example, this may include the use of detailed signal timing diagrams or pseudocode to clearly illustrate the interface in operation.

    b) The necessary software is released under an OSI-approved open source license.

    The scope of the Open Source grant from Pixhawk design is not clear. People are inclined to assume the entire design, firmware and all is OSHW and not restricted in any way.

    I do see where you released the Schematic and Eagle files for the PixHawk, and that's great, however excluding the BoM from the release goes against the spirit of the OSHW definition as it's intended. The OSHW Best Practices page states this.

    Bill Of Materials

    While it might be possible to infer from the design files which parts make up a piece of hardware, it is important to provide a separate bill of materials. This can be a spreadsheet (e.g. CSV, XLS, Google Doc) or simply a text file with one part per line. If your CAD package has integrated or add-on BOM management tools, those are also a good option. (Examples include the built-in tools in SolidWorks and bom-ex for Eagle.) Useful things to include in the bill of materials are part numbers, suppliers, costs, and a short description of each part. Make it easy to tell which item in the bill of materials corresponds to which component in your design files: use matching reference designators in both places, provide a diagram indicating which part goes where, or otherwise explain the correspondence.

    Don't take this the wrong way. I applaud your team for embracing OSHW in this new era of Open Source Information. However, I felt compelled to inform you about the problems with your OSHW release so it doesn't cause turmoil in the future. Clear definitions make good contributors, just as good fences make good neighbors.

    Respectfully,

    -Mike Eber

  • Tridge.

    I am very sorry for everything that has made you mad. This was never my intentions at all; I wish I would have been directed to you in the first place. It feels like the old DMV lines and you always get in the wrong one.  No, I do not know you, but have a feeling we are very alike. 

    I have been trying to contact the team. back in April  https://groups.google.com/forum/#!msg/drones-discuss/N4G2GkA72r8/SwCqybrVG50J

    I wanted to offer some samples, and all work together for a common goal. I am only one man, but I wanted to do everything I can to help the project. Get more people in the air, having fun. 

    The only stop-gab I had was the hidden opt code that has now pop up, no way to do anything without this. Thank You for this.

     http://diydrones.com/profiles/blogs/game-of-clones?id=705844%3ABlog...

    Again I am very Sorry, I hope see my intentions were not to hurt you or anyone in 3DR in any way. I did want to make you mad in anyway on the podcast, I wish someone could have directed me to you when then saw I needed your contact. I was trying, sorry 

    paul - witespy

    Google Groups
    Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.
  • Thomas, I may have been misunderstood. I believe in the concept behind free software as was stated by others and these developers having the right to their own way of doing things. I do feel that these people should be compensated for their work and knowledge. This is why I buy 3DR, because I know they help and compensate the people who are doing their software. They also spend time and money developing hardware like the APM and the Pixhawk and other products. They post the diagrams of these products so people who may have to work on them will know what they are doing. I do not feel that this hardware of their hard work should just be freely copied and sold on the market by people without any compensation back to the original design and developer. 3DR invested a lot of time and money developing this hardware I don't believe it should just be free game to the cloners.

  • Thanks Tridge for this Ardupilot project and I'm always happy seeing the developers so active rolling out updates and new features. Sometimes the strike from the clone is quite annoying but it will be fine.

    Having checked my buddy's clone APM 2.5.2 and Pixhawk coming from Paul I doubt he's just one of the resellers, selling clone boards from China, while claiming they're made in US and open source. Maybe it's assembled in US using cheap components from China, I don't know, but anyway it's just the smoke he has released, it will never cover what kind of business he's doing.

    My buddy's APM from Paul was dead due to a bad diode after 2 months of flying. Of course it can be repaired and I did it for him. Then the 3.3 regulator was dead in another flight 1 month later. Sure I helped him again, with a good regulator coming from Digikey. Two crashes in total, caused him one Trex 700, one DJI F550, because of a diode and a regulator, with low quality.

    Sometimes such clone boards are not pure clone, they may even have some modification on it. I have ever seen such mod from some Chinese sellers. Some of them claiming such mods makes their boards even better than 3DR. No one knows how reliable such mod can be, and I doubt the modifications are intended to just lower the cost.

    I don't want to see anybody get hurt by a copter falling from the sky cause by a failed clone board. Further more, sometimes weird problems caused by clone boards can lead to unnecessary time and effort for the developers, such waste of time can be used to develop new features or improving the existing system.

    People claiming that they buy clone boards because they are afraid of the tax in EU. Check this out, 3DR has distributors all over the world. I'm in the Netherlands and I buy my boards from BYOD or OneDrone depends on their stock. It's just a bit expensive than the clone, and it worth your money.

    Although the genuine 3DR board is not 100% problem free, they have less chance of failure, and 3DR stands up for what they provide, there is service from the retailer and guides for self repair etc. I have my APM and PX4 for already one year, running with quadcopter and heli, and I'm still a crash free pilot. I fried my APM though, by a stupid short circuit, but I managed to repair it, chaning two small diodes and a fuse, with the help of the schematic provided by 3DR on their website. That's why Ardupilot is awesome, I really hope everybody can be involved and pushing the project further together, using the genuine boards.

  • Completely reasonable, and well said. For those of us with intentions on building businesses around the incredible software you have put together, is there an easy way for us to support you as well?

    It is great to hear 3DR takes care of you, but as time goes on and this industry balloons, more and more people will be profiting off your hard work, and I know I would love to have a way to directly support the team that makes these businesses possible.

This reply was deleted.