Custom messages and voice prompts in Solex

Joined
May 6, 2015
Messages
400
Reaction score
226
Age
63
With Solex 1.6.3 onwards, you have now the capability to prompt custom messages on your tablet. I am using this feature in my obstacle avoidance implementation to provide feedback to the pilot.
You can use this feature of course in any other context ;-)
Code:
#  howto display custom messages in Solex - Experimental only!
#  ... required libs
import struct
import app_packet

# insert this wherever you want Solex to display and speak the message in the Solo shotmanager
# eg into the appmanager.py connectClient function
# When you call it outside of appmanager.py you need to check first if Solex is connected to the
# Solo Wifi before you send the message with the self.appManager.isAppConnected() function
# your message text goes here
exceptStr = "Hello world, have a nice day and fly safe"
packet = struct.pack('<II%ds' % (len(exceptStr)), app_packet.SOLO_MESSAGE_SHOTMANAGER_ERROR, len(exceptStr), exceptStr)
self.sendPacket(packet)
time.sleep(0.2)

A little example video:
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
 
Last edited:
Just to clarify a bit on this... This is not actually a specific Solex function. The app will display and read error messages from ArduCopter or the IMX. Such as the GPS and level errors, that kind of thing. The 3DR app suppresses most of the messages from ArduCopter to simplify the user interface. As of Solex 1.6.3, Kelly made it so all messages above a given priority level are displayed and verbalized. This makes the app much more informative and useful.

What Stefan has done is make use of the ability to send error messages from the IMX. I don't think any error on the IMX actually sends these messages now. 3DR had the ability in there to do it, but never used it. Again probably to simplify the user interface. So Stephan's use of the ability is probably the first and only use of it. It is sending it as an "error" message, but you can make it say whatever you want as he has done here in that demonstration. If you can write python, you can make it say all kinds of things with all kinds of triggers.

In fact, this has given me some ideas to add to open solo! For example I can have it annouce arriving at each point in a cable cam. Or announce that a crash is imminent when the mode is changed to acro :)
 
Announcing the cable cam points actually would be super useful, especially if you wanted manual control of the camera while flying with a forewarning of the next "point" coming up.
 
Just to clarify a bit on this... This is not actually a specific Solex function. The app will display and read error messages from ArduCopter or the IMX. Such as the GPS and level errors, that kind of thing. The 3DR app suppresses most of the messages from ArduCopter to simplify the user interface. As of Solex 1.6.3, Kelly made it so all messages above a given priority level are displayed and verbalized. This makes the app much more informative and useful.

What Stefan has done is make use of the ability to send error messages from the IMX. I don't think any error on the IMX actually sends these messages now. 3DR had the ability in there to do it, but never used it. Again probably to simplify the user interface. So Stephan's use of the ability is probably the first and only use of it. It is sending it as an "error" message, but you can make it say whatever you want as he has done here in that demonstration. If you can write python, you can make it say all kinds of things with all kinds of triggers.

In fact, this has given me some ideas to add to open solo! For example I can have it annouce arriving at each point in a cable cam. Or announce that a crash is imminent when the mode is changed to acro :)
Matt, actually the IMX makes use of that capability in the shotmanager main event loop. In case the IMX runs anywhere in the Python code into a runtime error, it will send the trace to the app. I guess 3DR had baked that into the code during development and then disabled it in the app. Now with the re-enablement in Solex, it becames now the perfect debugging tool when you are out in the field. :)
 

New Posts

Members online

No members online now.

Forum statistics

Threads
13,096
Messages
147,752
Members
16,069
Latest member
Mr M