My Opinion of the ArduPilot Platform and APM 2.x HW

“I made three comments of which you answered, maybe, one. And I say maybe because when you talk about NuttX and Linux kernel you are talking about software, not hardware.”

I haven’t figured out how to quote something here, so I just enclosed it in quotes.

I don’t see any difference between open source hardware or software. The parallels in how it is developed is the same as far as contributions back to the community. But I don’t like to read the complaining when somebody takes the open source stuff and makes some money on it, like say Hobby King or other Chinese vendors, because they’re “stealing” from 3DR. Nothing of the sort happened. The documentation on those changes made to the APM platform thru further development are available from the people who continued development of it. The community chose to ignore that further development because they didn’t care about that hardware anymore, and because it was not an “official” 3DR product.

Whether it is hardware or software, the principle is the same. I use the example of linux because it is widely used and pretty much the “model” of how to make open source successful.

You also mistake that I advocate only developing for the 8-bit Atmel 2560, which is not the case. I said that 8-bit processor is more than adequate for probably about 90% of homebuilders. The community abandoning it because 3DR wanted to move to the project into commercial development was a mistake. All you have to do is look at how well it has withstood the test of time in the market to see that. And yes, there are perfectly viable 32-bit Arduino boards that the newest software will run on, and I fully intend to purse that. But I’m also going to take a look at the last 8-bit version because there’s a bunch of code bloat that was already appearing for the Pixhawk, which APM does not need.

What I’m saying in all this is that it is a very bad business decision for any company or development group to build a very good and economical Chevy Sonic, then build a Cadillac and declare that the Sonic is dead because everybody’s gonna drive Caddy’s now. Chances are, your market is considerably more substantial for the Sonic than it is for the Caddy.

As a final note, it’s good that ArduPilot runs on a variety of boards and hardware. Maybe now that 3DR is out of the picture the software end is proceeding with a fresh outlook. I read on The Lab back in about 2012 or so where Rob was telling some of the guys that 3DR was essential to the project and if they stopped supporting it, it would die. That shows somewhat of a misunderstanding of how open source stuff works. Open source stuff never truly dies because even if you abandon it somebody else will pick it up and run with it.

Well actually we made the decision to move away from the APM and fortunately 3DR supported our decision and they financed the development of the PX4, Pixhawk, and Pixhawk 2.

Well now we have hardware available from many vendors including 3DR, AUAV, Aerotenna, Virtual Robotics, Earle, Parrot, NAVIO, Intel, and Qualcomm and others.
http://ardupilot.org/dev/docs/supported-autopilot-controller-boards.html

We continue to grow the ecosystem and the options available.

I think you are quite mistaken but you’re entitled to your opinion but that’s not the opinion of hundred’s of thousands of other users.

Fantastic! If you want to create a port to the new Arduino board that would be great. And if you want to go back and maintain the the old 8bit APMs and update the code for them go for it. We always appreciate pull requests.

2 Likes

I think you are quite mistaken but you’re entitled to your opinion but that’s not the opinion of hundred’s of thousands of other users.

Craig, what I don’t like about Pixhawk is Nuttx. Put an embedded linux RTOS on it and then you got my attention.

Fantastic! If you want to create a port to the new Arduino board that would be great. And if you want to go back and maintain the the old 8bit APMs and update the code for them go for it. We always appreciate pull requests.

That’s exactly what I’m up to :slight_smile:

It’s going to take me some time to digest it and make some optimizations for the 2560 platform. The beauty of Arduino is that it is easily expandable, including doing things like running dual 8-bit cores (on the Mega 2560), adding WiFI or Bluetooth, or 1000BASE-T to it. And it doesn’t cost an arm and leg to do it. I’m just a linux hobbiest, and not a professional developer. But if I get in the right frame of mind I have come up with some pretty cool stuff in the past - like my Arduino based HF SDR that I built :slight_smile:

Just select the text you want to quote and a button will appear.

Where are those complaints? The only person I see complaining is you… Also if someone doesn’t respect the license that someone is stealing. Documentation is available? Where is it? I’m not going to link to any product but I certainly can find many without any documentation available.

And they can continue to use it but it is not enough for us and it was a burden to maintain.
Who told you it was abandoned because of 3DR? You keep saying that…

We are not driven by business decisions (and we aren’t selling anything).

Lots of open source stuff die. Just because they are still available doesn’t mean they are alive.

1 Like

Complaints? I can give 2 examples and one will hit home.

first example would the the openlrs that hobby king copied and sold. People have been complaining about that since day one. They are saying that hobby king just copped the board and are not giving back to the community and blah blah blah. Its opensource hardware but people are still going to bitch about it. Why are you going to opensource it then complain. I dont get it.

The second example would be the “witespy ready to fly quads” and how 3DR locked the clones out of mission planner. The developers you guys wrote that code so prevent people from uploading the firmware to the clone boards. You real fast removed that code. This is the ultimate complainant, its not just talking about it. You guys vindictively when in and made it impossible to use a “clone” from opensource hardware.

I dont see why not? if you see incorrect information and you know the truth then why would you not. Im just an average use or maybe an above average user of ardupilot. I personally feel that there is a lot of secrecy around ardupilot/3dr/the rest of you. Maybe or may not be but thats how I feel. After 3dr I have no clue who is in charge, who makes the call or who is paying for the development. No wonder there is false information rolling around. You have to correct it right?

Nothing personal to anyone by the way…

Francisco, I’m not complaining at all. There’s a difference between complaint and opinion, and please keep in mind this is an opinion piece.

As an example, click on the Files tab on the bottom of this webpage to see documentation of changes made to the APM after 3DR dumped it:

I disagree about how this project progressed in the past, and am quite interested in providing another resource to improve it for the future. It was totally driven by 3DR and their sole goal was to beat DJI in the consumer space. That failed, they went to Plan B. The line about Plan B being their plan all along is just that - a line. So I see everything about the project being driven by business decisions made by 3DR from the start of the project to where they jumped ship.

The future of the project can be different. It is very unusual to see volunteer open source developers actively develop for a commercial company, product or platform, and be driven by their desires. Now that that is no longer the case (hopefully), it can maybe progress without that influence.

Yes, and this sort of action of the part of open source developers is totally inexcusable and was influenced by 3D Robotics having paid developers on-staff pushing a business agenda. Which has no place in any shape or form of open-source development. Hopefully the development of the project has moved beyond that sort of thing, but keep in mind that 3DR is heavily supporting the Pixhawk2, or Pixhawk mini, or whatever you want to call it. Myself, I tend to be somewhat cautious of such arrangements.

I agree with this as it is unusual. Its interesting to see that 3DR made money on the backs of others. Maybe this is why they forked the project. At this point all the development that 3DR is doing on the “ardupilot-solo” will not benefit the community as a whole.

Good first example, something that isn’t about ArduPilot…

And the reason it was removed so fast was precisely because the team though it was wrong. If the team was so controlled by 3DR like you guys are saying why didn’t the lock down stay in? Also, that’s not a current complaint since there’s no restriction in MP.

Well, why open a blog post to share this opinion? This is an old subject, why revisit it again? What do you pretend with this post? I would understand if you were sharing your development with APM boards, but I don’t see what you want with just stating your opinion about an old subject.

Actually HK was one of the non-compliant ones (and still are, look for Px4Pilot, for example) but they were convinced to share the files. And there are a lot of other “clone” boards out there that don’t share any documentation, I’m sure you are aware of that.

So all of this is because of the past? 3DR has left ArduPilot for months, let’s move on guys, reliving the past won’t bring any good to anyone.

Being open source has nothing to do with how a project is conducted or not. Lots of companies open source their software but they still own it. Just look at Android: it is open source but if Google doesn’t want something in you aren’t getting it in.

3DR supported the development of Pixhawk2 but not anymore. It is being brought to the market by another company that isn’t related to 3DR.
Pixhawk Mini is something that supposedly 3DR is bringing to the market but we don’t have any good knowledge of it (except that a PR was opened to support it in ArduPilot).

What do you think Nuttx is?

http://nuttx.org/

NuttX Real-Time Operating System

NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards.

If you do some research and compare options: eg. uCLinux FreeRTOS you’ll find that NuttX is a good choice for the timers and the functionality that we need.

Francisco, if the clone boards don’t have any changes from what is already documented, there is no files or changes to share. You’re going to have to point one out so I can look at it. And I’ve gone thru the available APM clones with a fine tooth comb and, so far, have not found any non-compliant boards as far as the licensing goes. Have not looked at Pixhawk clones because I have no interest in Pixhawk. But even so, an example of a suspected non-compliant offering would be nice to look at.

Like I said, I’m interested in providing some contributions to the ArduPilot project on hardware that I’m familiar with and I like. I built APM Planner2 for 32-bit, including a Debian installer package for it, and offered to upload the build to the repository for other folks that may want to run it on older laptops. Currently only x86-64 builds are available for download. While OS X or Windows may not run very well on 32-bit hardware anymore, desktop linux has a much leaner, meaner code base and runs fine on 32-bit, without consuming the RAM that 64-bit binaries take. Lots of people still use older hardware with 32-bit linux running on it. So that’s a potential contribution I offered.

I’m sort of feeling out the rest of the development environment for different aspects of the project. Trying to ascertain who and what drives it, and where the allegiances are. I’ve always believed in contributing what I can to any open source project I use, and I’m far from a newbie when it comes open-source projects.

Until I see Pixhawk mini and/or Pixhawk2, and see how development of the ArduPilot stack proceeds, frankly I have a high level of caution based on history. I love the concept and the software. I’m on the sidelines on the currently supported hardware.

I know well what Nuttx is. Don’t need to look up anything on it. I don’t care for the BSD license.

That’s not exactly true, but I won’t discuss legal stuff.

I’m sorry to say but if you had gone through the APM clones you would have found a ton of them with no files. I’ve said that I’m not going to link to any product.
PX4 boards are in the same situation as APM boards, there are people making “clones” that don’t respect the license.

I don’t know what you are expecting to see that you haven’t seen in the last months but alright.

Well, I think this post has been beaten to dead. I hope to see your contributions to ArduPilot in the future.

OK, I’ll take your word for it. But strike me a bit confused. APM hardware does not belong to 3DR. It is Arduino and was modified for their use. It is licensed under the Creative Commons License. So anybody can do anything to that platform that they want. And that means anybody. Not just 3DR. I have not found one non-compliant case, so far. HK funded the engineering to progress to the APM2.7. 2.8 is a side pin version of it that includes a jello plate.

I have not looked into PX4. I don’t know that I’ll waste my time with that one. I just sense a (still present) allegiance to 3DR here, and anybody else that used the open source stuff developed by the community is automatically suspicious. Like you say, this has been discussed enough. I do have a better feeling for the development environment and know what to look out for. And am historically quite leery of any open source project that is not truly free, which anything licensed under BSD can never be guaranteed.

I do have a question for Rob, as he had entertained the thought that APM cannot do spline_nav. Possibly he was referring to single-rotor heli’s only.

Hi All.
To everyone who dislikes the direction of the project, I encourage you to step across the line from User to Developer, and get involved. Make helpful comments on PRs, wrote some code that fixes something and do a PR for it yourself, join the gitter.im channel and see the technical discussions going on here, attend the weekly mumble dev-calls and have your say on the future direction of the project, maybe get invited to one or more issue-specific skype discussions, get to know the people running the project and it won’t be a mystery any more. If you do all of these and still feel isolated, the contact one or more of us directly, as we’d love to get to know you better… as at that point you have earned our attention.

To all the people complaining about 3dr… please be aware that they did what no other company was willing to do at the time… they got involved in the development. ( see above ). They helped out, they engaged with the developer team, they even paid some people to do what they were already doing… as they saw the value in the team. They built a business that made hardware, and they got the developers opinion/s on how to do it so it could work really well with the software direction that the team was taking, and they made alpha-editions, and peripherals, and were an exceedingly valuable contribution. I would love to see more companies do this… and it’s starting to happen now… just on a smaller and slower scale. I have no affilliation with 3dr. They did send me some occassional hardware though, that for that I thank them… it made it possible for me to continue to be involved in this team.

3 Likes

Quoting one of my own posts on this for clarification. No need to bother Rob, I had assumed from a previous post that you had written the code for this. But taking a look reveals that David Dewey actually wrote the code for spline_nav. So question answered, and yes, APM is fully capable of spline navigation.

I did a port to FreeRTOS some time ago ( with custom hardware)
https://github.com/kwikius/ardupilot/tree/quantracker_master. included an OSD implemented using 2 SPI’s in the STM32F4 hardware https://www.youtube.com/watch?v=ybab6q70icI

I hope some time to try to implement it in Nuttx to see how it compares.

I too regret that the old 8 bit Atmega2560 code isn’t on master branch any more, but I believe the simple reason that then original Ardupilot Mega2560 microcontroller isnt developed any more:

Atmega2560 8 bit data bus, 8 K ram, 16 MHz instruction cycle, 256 K flash.

STM32F4 32 bit data bus 256K ram 180 MHz instruction 2 Mb Flash.
and many other features like hardware floating point math, tiered interrupts, 16 DMA channels, etc

I dont know how the 32 bit Arduino boards compare, but last time I looked they lagged quite a way behind the STM32

As to the Linux SOC boards , they tend to use extra hardware to do the realtime, though I think a great re use for the old Atmega2560 board would be to do the IO and let the Linux SOC do the higher level stuff.
http://diydrones.com/profiles/blogs/a-new-use-for-an-apm2-x

Anyway, as others have said, talk is cheap. The proof is in providing PR’s to the project :slight_smile:

ChrisOlsen, Rob was clear in his post that he wrote most of the Trad Heli stuff, not the spline waypoint. I’m sure that 99% of others understood that from what he wrote.

I’m sure that 99% of others are more familiar with who wrote what. Give me some time to get up to speed.

The Mega 2560 R3 is probably still in wider use than the 32-bit versions for robotics.

I think the dual-core A7 Arduino boards are considerably more capable than the STM32. They are not “official” Arduino, but then they don’t have to be as they are derived from it.

I think the dual-core A7 Arduino boards are considerably more capable than the STM32.

The only one I can see fitting the description is the PCDuino. I wouldn’t consider it a replacement for a modern ARM Cortex M series microcontroller. It has a faster clock but nothing like as impressive IO capabilities. For things like quad racing dedicated microcontroller’s still rule. and the STM32 is king for now.
Anyway I would recommend checking out the BBBmini port of Ardupilot http://bbbmini.com/. Also in the Ardupilot github rep. I think you could get that running on your pcduino without too much trouble and quite quickly.
As it happens I am planning to sling an optional SBC under my next Ardupilot FC, (which uses an stm32 as the main flight controller).
ArduPilot flight controller with onboard OSD ( and optional RPI Zero daughter board) - Blogs - diydrones
I plan to use a Raspberry Pi Zero though. The RPi Zero may not have the highest performance but it is very small ( 65 mm x 30 mm) and also has AV out, which makes it compatible with analogue video for FPV.

Anyway, technology is moving quite rapidly in the autopilot scene and I hope you can now see why the old Ardupilot Mega isnt being developed much any more.

EDIT: no was wrong about the atmega 5120, no such thing! Nevertheless Flash does go much further on an 8 bit micro!

1 Like