Hi everyone,

I'm new in making customization for drones (not new in electronics) and I want to connect a camera with 3d gimbal and optical zoom and other options (that controled by PWM/RS232 channels).

is it possible to use the connector of the original gimbal and make some software modifications in the Solo?

if not what else can I do to make this work without using an external reciever?

Views: 1610

Replies to This Discussion

In your case is it possible to attach something like a BeagleBone or Raspberry Pi to control the camera's functions? (Something really small like the new Raspberry Pi Zero would most likely work.) If so, those items are IP-addressable and you could build an app to run on the tablet and control the camera via commands sent over the network. Just an idea. Ever since doing something similar to control a Xiaomi Yi from the Solo controller's paddle control, I've been thinking there's a lot of other things that could be controlled in a similar way.

Thank you, how is it connecting to the drone system?

On my setup? The only physical connection is the HDMI cable from the camera to the Solo. All other communication is over a wireless socket connection on the SoloLink_xxxx AP, to a service running on the camera. The wiring is, as you might expect, very clean. :-)

In my case, I mapped button-press events from the controller to commands to send to the camera. For example, I push the "paddle" control on the Solo controller to start recording. The controller sends that "button press" event across the network to the Solo. In /usr/bin/shotManager.py on the Solo, there's a handleButtons() function that processes all button clicks. I wrote a little XiaomiManager class which gets the button-press events, and decides how to handle them. When the button is clicked, I toggle recording by sending either a "start recording" or "stop recording" command to the camera via the socket. When the button is long-pressed (and I'm not already recording), I send a "take picture" command instead. It works great! A lot of it was simplified by the fact the Yi has its own battery (obviously) and already has wifi capability. It was simply a matter of getting the Yi onto the SoloLink_xxxx network with a static IP address I could reference from the scripts running on the Solo.

Most small machines like BeagleBone, RPi, etc are capable of running a simple web service and responding to calls however you want them to.

So, if I had a camera (or other device) I wanted to control with PWM/etc calls, here's what I would do:

  • Grab my BeagleBone Black (which is literally covered with IO ports for that sort of thing, and includes a nice set of APIs for sending/receiving PWM, I2C, etc on those ports).
  • Put a wifi device in its USB port and get it onto the appropriate network as an addressable device with a static IP.
  • Put a simple web service on it to handle incoming HTTP requests for actions I wanted to perform on the camera, and respond to them by sending the appropriate PWM/etc commands to the camera to control it.
  • Put a simple web app on the BBB with the basic buttons and UI I needed in order to control the camera from across the network. (It would call the web service as appropriate.)

When flying around, I would have the Solo app open for the normal "Solo" stuff people do, but I could also open Chrome on the tablet and navigate to my BBB's static IP (e.g. It would provide the UI I need to do things with the camera. 

That's the basic idea. You could also create an app instead of a web UI to call the service, but the basic idea is that you're just using basic network calls to send commands to the devices doing the actual work. Note that the Solo itself can also run a web server, which can support web services as well. The whole "wifi is the connection" thing really opens up a lot of possibilities in my mind for things that could be done, but that's probably because I'm a developer by trade.


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service