Another attempt at an "ArduConfigurator"

Hi all,

I wanted to share a project we’ve been working on: ArduConfigurator, a browser based configuration tool for ArduPilot.

Site: https://arduconfigurator.com
Source: https://github.com/j-w9/arduconfigurator

The goal is to make ArduPilot setup feel closer to Betaflight Configurator: a guided, configuration first experience rather than a raw parameter editor or a full ground station. Things like ports, receiver, outputs, power, OSD, and VTX are laid out as a walk through setup flow instead of being scattered across menus or buried in the parameter list, so getting a vehicle configured is much more approachable. It also handles firmware flashing.

The aim is that you can take a copter from flashing to flying without needing Mission Planner or QGroundControl, though it works for configuring other ArduPilot vehicles too.

It runs in the browser over Web Serial with no install, and there are installable desktop builds with native serial if you’d rather work offline.

The project is still new and under active development, so feedback, bug reports, and feature ideas are all welcome. The GitHub repo above is the best place for issues and contributions.

This is a joint effort with jb-01 (https://github.com/jb-01), co-developer on the project.

Thanks for taking a look, and we’d love to hear what you think.

9 Likes

I tried unsuccessfully to connect using Mavlink over ELRS.

I don’t have trouble connecting via UDP with Mission Planner.
this is the same as WebSocket, right?

I made sure Mission Planner was not open at the time I was testing Arduconfigurator. I’m looking forward to trying out Arduconfigurator. Thanks for sharing your work here.

Edit: I’d really like a way to set up my Arducopter OSD similar to my Betaflight OSD. It would be great if there were some easy way to make this conversion.

1 Like

Ardudeck has an OSD tool in it. I haven’t used that feature, but I know it will connect to Mavlink/ELRS.

1 Like

Hey, thanks for testing it and writing this up, its really helpful.

Quick answer on the connection: a WebSocket isn’t a UDP link, and browser tabs can’t open raw UDP/TCP at all (only native apps like Mission Planner can).

I just added native UDP/TCP to the desktop app in v1.1.0. Grab it from the releases page, pick UDP (direct), and point it at your feed :14550 to listen for an ELRS/MP-style stream, or host:port for a fixed sender, there’s a TCP option too. Tested it against ArduCopter SITL here and it pulled the full param set fine.

Worth noting: the browser version still does Serial/USB directly (Web Serial in Chrome/Edge), so if the board’s on USB you can skip the download. It’s just network links that need the desktop app.

On the OSD - there’s already a visual editor that’s pretty close to Betaflight’s: live preview, drag the elements to place them, toggle what you want, full element set across all four OSD screens. So matching your Betaflight layout is more “drag it around till it looks right” than digging through OSD1_* params. It can’t auto-import a Betaflight config yet, but that’s a good idea.

Appreciate you giving it a real go. Let me know how the desktop UDP route works out.

2 Likes

Also, I can see how the WS mentioning would be confusing, I added a blurb in the web UI to properly denote how to do UDP/TCP connections. thanks !

1 Like

I like where you are heading with this :slight_smile:

Hi! This project is very interesting. Great work!

I’m currently working on my own Ground Control Station, and your approach is very inspiring.

I would be happy to share a project I’ve built that includes a fully customizable OSD, similar to Betaflight, with complete control over the position of every OSD element.

I believe there is still a lot of room to modernize the user experience beyond QGroundControl and Mission Planner, and projects like yours are a big step in that direction.

I’d be happy to exchange ideas or collaborate if you’re interested. Keep up the great work!

2 Likes

Just added a new feature allowing for gimbal configuration as a peripheral

The GUI is nice and very easy in the eyes. Being a webapp is also a great feature.

What I think could be improved is making the configuration sequence clearer.
Basically guide or even force the users to configure certain things before other things. For example:

  • you can only calibrate the compass if you have configured the GNSS and have a GNSS fix
  • You can only test the motors if a battery is connected, and to make sure one is, the users must have configured and calibrated the battery monitor first.
  • you can calibrate the compass easier if telemetry is configured and used, instead of an USB cable
  • etc.

These are the kind of things that the ArduPilot methodic configurator software takes care of.

Have you looked at it?
The GUI is not as advanced as yours but the optimal sequence is strictly enforced.
As a side effect it’s a lot harder to miss a step, because it is built like a checklist.
I’m curious about your opinion.

2 Likes

Some users may want to make copter without GNSS, providing alternative of setting needed position manually may be a good idea.

Yes, that is a good idea. Many users also operate vehicles without an RC controller.

Currently the solution is to configure and calibrate the vehicles using both a GNSS receiver and a RC controller. After the tuning is done they can replace the GNSS receiver with optical flow or other systems, and remove the RC.

Agree with Amilcar on the GUI. Awesome work.

Can we get a feature where the user can manually enter their exact coordinates without a GPS? I think that will be very helpful especially when you may have to recalibrate the compass after tuning and do not have a GPS handy.

That is an ArduPilot feature. So one needs to do and upstream PR, that requests something like the HOME position to be used even when no GNSS is available and be used to determine the magnetic declination in the compass calibration process. Once that is there I can add it to AMC and I’m sure @jw07 will happily add it to the ArduConfigurator as well.

1 Like

That or ground stations can do a “fake GPS” transmission I guess.

Thanks for the feedback!

I do really like methodic configurator. we’ve taken some inspiration from it, while trying to mirror the simplicity and feel of betaflight configurator.

our dev plan so far has been

  1. building out all of the various features and making sure they are functional
  2. Simple look/feel
  3. building out and really cleaning up the advanced and basic guided setup to get to the step based optimal setup.

I really like the idea of rails such as can only test motors if batteries are plugged in, etc.

Just added this feature. it allows you to pick your location (or use your computers location) and temporarily streams MAV GPS data over the serial link to allow for your EKF to initialize and gives WMM a position. From here you can do the calibration and then stop the fake GPS. Caveat here is it does temporarily change your GPS1_TYPE parameter to 14(mavlink), and when you stop streaming the fake GPS it returns it to whatever it was previously

A bit of a hack, but welcome to any better solutions/ideas

2 Likes

For a person intentionally wanting to do the fake GPS, it won’t be a caveat :wink:

1 Like

all, a few feature updates i wanted to catch everyone up on.

  • dronecan and mavlink inspectors
  • flashing .hex and putting the fc into dfu mode
  • dronecan updating
  • a ton of UI decluttering and simplification of workflows (namely motor tab and receivers)
  • basic support of AP 4.7 changes (some work still to be done here)

again, any and all feature requests or feedback or extremely welcome!

1 Like

Hello,
ArduConfigurator looks good, there are many clever features. But please, can you add light theme? Dark one looks cool but it is next to impossible to use outside on normal laptop screen.

Thanks

1 Like