SITL and Firmware Validation (FW)

I have been using an older firmware of PX4 (1.1x) and it works flawlessly, every-time. From start to finish and I have auto takeoff and landing nailed down. That said, I’ve been reluctant to put my rig on a new firmware because I really don’t want to start over with it should any problems occur. So, I can test and take that risk which would be fine if I used another plane (not really what I want to do at all as it is a pain but also not great for moving to upgraded firmwares every time a stable release comes out), or I can use the SITL/HITL to validate new firmware revisions. HOW?

I have set it up (HITL) and got it working previously but I am curious as to what really constitutes validation from a devs (or anyone else) perspective who uses it to provide a strong indication of support to reliability in new versions? That is really what is holding me back. I would like to use the SITL opposed to HITL to merely test the procedures out there but from what I’ve read, the docs on simulation tend to be geared to MC. FW has some use in x-plane but I find it difficult to get there. Would appreciate the help and maybe even adding this to the guide bec it would be really helpful for people who want to upgrade to new firmwares but test the outcome firm in-front of them on a screen.

Thanks!

Personally I trust the stable releases, but I’ll go through what I do for development. Keep in mind the longer you wait between upgrades the bigger the change.

Generally I use SITL for development, it’s super fast and easy, but I don’t find the gazebo plane to be realistic. So I often still do a test with the actual autopilot hardware in HIL (xplane) before going to the field. Then I’ll do a number of flight tests with something cheap and stable (bixler, radian, etc) before moving on to a more expensive plane. In each setup I go through all the main things that are important to me. Auto takeoff, certain types of mission, auto land, failsafes.

When testing I take note of even the smallest abnormality or behavior I don’t understand and then dig through the logs and code until I understand/accept it or fix it.

There’s an effort to get more automated testing in the builds like running through actual missions, etc. If you’re interested in that kind of thing we could certainly use the help.