Is there a way to get SmartAudio working?

I’ve love to have that feature! Count me in for $20 too.

1 Like

SmartAudio is not very complex and the I have the base functionality working OK in my branch, including power and channel/band changing.

But the bad thing is ArduPilot doesn’t have OSD menu and it is not so easy to do this. I believe most of the ArduPilot users uses flight controllers that has no onboard OSD. So OSD things never were in priority. External OSDs like minimOSD communicates by using mavlink protocol so this is even a harder task.

Another option is the LUA scripts on RC like those used in betaflight. But this is also not implemented and is a separate complex task, out of SmartAudio scope.

So, what is feasible in a reasonable time is adding of SmartAudio library that will know how to operate with VTx. Having that the next step will be to add different features that aren’t requires OSD:

  • low power if disarmed
  • power select by RC switch (force low / high)
  • auto power stepping depending on home distance
  • channel select by RC switch (not very useful I think)
  • channel select by a parameter setting (so the channel could be set via mavlink telemetry connection)
  • control VTX with onboard LUA scripts
    and so on
1 Like

A lot of us are using boards w/ onboard OSD now. Especially the users who are interested in smartaudio. I think more and more will… It’s not hard to see we can do more w/ a $30 FC than we can w/ the bigger expensive ‘pixhawk’ boards. And I’d be willing to bet the next generation pixhawks start to have onboard OSD, too, since everything else has one. It’s probably worth making it work w/ the onboard OSD’s. I wouldn’t worry about external OSD’s like minimOSD.

Sure, my point was the OSD Menu feature is a big separate task. Thus implementation in scope of SmartAudio doesn’t look feasible.

I am also using primarily the omnibus and f405 boards on projects now that do have built in OSD. These were the boards I envisioned writing this capability for primarily but I do agree a mavlink message to set parameters is probably more/equally important as it lays the foundation for OSD menu.

Sergey, do you know how hard it would be to implement on boards that do have OSD built in?

Are you asking for OSD Menu?
It is hard to say, it’s pretty big task. ArduPilot devs need to design the overall concept of OSD Menu, because obviously if we will have it then it should be used for configuring of many different things, not only for SmartAudio. So there must be a possibility to somehow define pages, to have a page tree, navigation, next-prev-back-enter and so on.
Also it is not only about OSD rendering but also for RC sticks input processing. And if we’re using RC sticks then this brings safety concerns and potential bugs.

Eventually I think that would be the end goal to “compete” with betaflight and inav. Short term just having the full smartaudio feature set implemented into the main code branch is a big step forward. What work needs to be done for your library to be mature enough for this?

Multiple OSD screens do exist and can be switched via RC channels, but I believe you are right that there are no “menus” as of yet.

1 Like

My lib missing one minor things - after command sent to VTX - lib does not hear for the answer. So it is unknown if the command was accepted by VTX or not. I never had issues of lost commands so I never implemented the VTX response handling. Anyway this is not something very complex and I will play with that on weekends.

1 Like

Any progress with this?

Maybe not with SmartAudio but the Onboard OSD menu functionality in Mission planner is great.

Oh is that new? Not tried that yet.

Relatively new. If you have an FC with Onboard OSD it’s great. This is from a Omnibus F4 Nano V6. Drag and drop metrics and screen positioning!!

2 Likes

I see. It is the OSD configurator. Yes - I have used that and it is fantastic.

Today later or tomorrow I will pull a PR with the initial SmartAudio implementation. To get a feedback from core dev team before going forward.

1 Like

it is great news. my most interest about this is actually to control vtx power and channel settings, that would be an extremely nice to have.
btw, does the runcam split camera also talk via smart audio protocol, for camera control to start/stop recording and settings?

1 Like

No, runcam has its own protocol (a few commands). But the most problem it uses different UART speed. Anyway, controlling both via single UART is possible.

is runcam doing half or full duplex? would be nice to have it married somehow with a generic camera control arducopter feature - i tried to look at it, but could not trace how one hooks with an another - i mean the camera trigger feature on the RCx with a protocol type on the serial. if you have figured it out - it would be a useful thing to have, to be able to start/stop runcam at least.

anyway, pls confirm when/if the smart audio will make it into the master. it would be really nice to have as well.

I din’t recall runcam interface details, I just sending a command and it works. I’m not reading an answer afterwards. So I have only the TX wire connected from FC to camera.

PR is on the review now, AP_SmartAudio: initial implementation by SergeyBokhantsev · Pull Request #11630 · ArduPilot/ardupilot · GitHub

BTW, for the practical purposes I have a 3.6.9 FW with a SmartAudio + Runcam control on the single UART port. You can compile and use it.
OR, for the testing purpose - you can compile my SmartAudio branch that is in PR.

Would love to see this as well. My main reason is as VTX get more powerful it’s nice to have them power up in pit mode and then go full power on arm.

1 Like