- Posts: 4
Control drones with Smartphone
- tjkim93
- Topic Author
- Offline
I ported deviation protocols to Arduino mini for controlling drones with Android Smartphone.
Interface between Arduino and Smartphone is bluetooth.
I named the module as UniConTX and the schematic and codes are open.
Click here for more details
Here is a screen shot for controller UI
UniConTX Firmware can be updated through bluetooth from smartphone.
All models from deviation are not supported due to arduino mini memory limitation.
Only below models are supported. (Actually every model is not tested yet...)
If you want specific models, you need not install all modules. just install the module what you want.
Manufacturer | Model | Type | Module |
Ares | Ethos QX75 | Quad | NRF24L01 |
Attop | YD717 | Quad | NRF24L01 |
Attop | YD928 | Quad | NRF24L01 |
Aviator | YK016 | Quad | NRF24L01 |
Cheerson | CX-10 | Quad | NRF24L01 |
Cheerson | CX-11 | Quad | NRF24L01 |
Cheerson | CX-205/SH6057 | Quad | NRF24L01 |
Cheerson | CX-30 | Quad | NRF24L01 |
Flytecs | X-Drone Nano | Quad | NRF24L01 |
Hisky | FF120 | Quad | NRF24L01 |
Hisky | HMX120 | Quad | NRF24L01 |
HobbyKing | Q-Bot Micro | Quad | NRF24L01 |
Huan | QI 881 | Quad | NRF24L01 |
Hubsan | X4 | Quad | A7105 |
Hubsan | H107C | Quad | A7105 |
Hubsan | H107L | Quad | A7105 |
Hubsan | H107D | Quad | A7105 |
Hubsan | H111 | Quad | A7105 |
Huaxiang Toys | Sky Walker 8983 | Quad | NRF24L01 |
JD | JXD 385 | Quad | NRF24L01 |
JD | JXD 388 | Quad | NRF24L01 |
JD | JXD 389 | Quad | NRF24L01 |
JD | JXD 390 | Quad | NRF24L01 |
JD | JXD 391 | Quad | NRF24L01 |
JD | JXD 392 | Quad | NRF24L01 |
JD | JXD 393 | Quad | NRF24L01 |
JIAYUAN | S-2 | Quad | NRF24L01 |
JJR/C | 1000A | Quad | NRF24L01 |
JJR/C | F180 | Quad | NRF24L01 |
JJR/C | F182 | Quad | NRF24L01 |
JJR/C | H8C | Quad | NRF24L01 |
Landbow | X-Dart Next | Quad | NRF24L01 |
Ni Hui | U207 | Quad | NRF24L01 |
Nincoair | Quadrone | Quad | NRF24L01 |
Sanlianhuan | SH 6043 Ladybug | Quad | NRF24L01 |
Sanlianhuan | SH 6044 | Quad | NRF24L01 |
Sanlianhuan | SH 6046 Puffer | Quad | NRF24L01 |
Sanlianhuan | SH 6048 F22 | Quad | NRF24L01 |
Sky Walker | HM-1306 | Quad | NRF24L01 |
Skybotz | Mini UFO | Quad | NRF24L01 |
Skyline | YD717 | Quad | NRF24L01 |
Syma | X1 | Quad | A7105 |
Syma | X2 | Quad | NRF24L01 |
Syma | X3 | Quad | NRF24L01 |
Syma | X4 | Quad | NRF24L01 |
Syma | X5C | Quad | NRF24L01 |
Syma | X5C-1 | Quad | NRF24L01 |
Syma | X6 | Quad | NRF24L01 |
Syma | X7 | Quad | NRF24L01 |
Syma | X8C | Quad | NRF24L01 |
Syma | X11 | Quad | NRF24L01 |
Syma | X12 | Quad | NRF24L01 |
Toybase | L6036 | Quad | NRF24L01 |
Toybase | L6038 | Quad | NRF24L01 |
Walkera | QR Ladybird | Quad | CYRF6936 |
Walkera | QR InfraX | Quad | CYRF6936 |
Walkera | QR X350 | Quad | CYRF6936 |
WL TOYS | v929 | Quad | A7105 |
WL TOYS | v939 | Quad | A7105 |
WL TOYS | v949 | Quad | A7105 |
WL TOYS | v959 | Quad | A7105 |
WL TOYS | v202 | Quad | NRF24L01 |
WL TOYS | v212 | Quad | NRF24L01 |
WL TOYS | v222 | Quad | NRF24L01 |
WL TOYS | v252 | Quad | NRF24L01 |
WL TOYS | v252 Pro | Quad | NRF24L01 |
WL TOYS | v262 | Quad | NRF24L01 |
WL TOYS | v272 | Quad | NRF24L01 |
WL TOYS | v323 | Hex | NRF24L01 |
WL TOYS | v333 | Quad | NRF24L01 |
WL TOYS | v343 | Quad | NRF24L01 |
WL TOYS | v353 | Quad | NRF24L01 |
WL TOYS | v393 | Quad | NRF24L01 |
WL TOYS | v626 | Quad | NRF24L01 |
WL TOYS | v636 | Quad | NRF24L01 |
WL TOYS | v646 | Quad | A7105 |
WL TOYS | v666 | Quad | NRF24L01 |
WL TOYS | v676 | Quad | A7105 |
XINXUN | X28 | Quad | NRF24L01 |
XINXUN | X30 | Quad | NRF24L01 |
XINXUN | X33 | Quad | NRF24L01 |
XINXUN | X39 | Quad | NRF24L01 |
XINXUN | X40 | Quad | NRF24L01 |
YI ZHAN | X4 | Quad | NRF24L01 |
YI ZHAN | X6 | Quad | NRF24L01 |
You can get Android application (BTCon4Drone) at play.google.com/store/apps/details?id=com.pinggusoft.btcon
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
What did you write the android app in? I've been working on a similar app in Cordova (see this thread: www.deviationtx.com/forum/7-development/...n-for-mobile-devices ). Is your app open-source? This also seems like a duplicated effort, and you are obviously much farther along than I am.
Please Log in or Create an account to join the conversation.
- tjkim93
- Topic Author
- Offline
- Posts: 4
My plan was...
1.Focusing multicopter protocols because my application was designed for it originally and memory size on Arduino mini.
only 7 protocols were ported - Devo, Flysky, Hisky, Hubsan, SymaX, V2x2, YD717
2.Reducing RAM usage so I decided to use C++ for instancing a protocol when it is used.
3.no changes in logic and flow except some initialization codes and controller channel handling as you see the codes ( github.com/PingguSoft/UniConTX ),
Initialization codes are changed because of reducing the code size, constants are moved to codes area for reducing flash and ram usage.
controller channel handling is changed because of compatibility of my Android application.
my Android application, BTCon4Drone was designed for MultiWii protocols originally and I decided to add the feature for supporting deviation protocols.
4.Telemetry related codes are not ported yet because of there are few models supporting the feature but it might be supported someday.
I don't think this kind of work is wasting because the goal is different..
Codes might be modified and redesigned for each goal unless codes have concrete structures for porting.
Anyway I will keep trying to update my codes whenever there are changes in your repository but I am not sure..
I really thank you for sharing your work and ideas..
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
Please Log in or Create an account to join the conversation.
- tjkim93
- Topic Author
- Offline
- Posts: 4
I am using eclipse with ADT for developing the application.
And the source is not open.. the app was designed for MultiWii protocols originally and deviation protocols are ported to UniConTX.
I opened the UniConTX codes and the communication between them is bluetooth serial.
I adopted MultiWii packet structure and some commands are added for controlling UniConTX from smartphone side.
The app sends protocol information when it starts and AETRF channel values every 20ms.
I'll share a video clip controlling Syma X5C with my app soon.
Please Log in or Create an account to join the conversation.
- Richard96816
- Offline
- Posts: 208
Nice work!
Please Log in or Create an account to join the conversation.
- VanDerPloeg
- Offline
- Posts: 2
Great work! Im looking to control my Cheerson CX-10 with Arduino, but I don't have an android phone to use your program with. I have been trying to figure out the bluetooth serial protocol you use so I can control it from a serial terminal, and have been able so far to get the version and set the RF protocol. But I still can't get it to work, because I don't know the "controller ID" which I need to supply when I start RF. How can I find it? Also, when I set the RF module and protocol (Im using nRF24L01), what are the "options"?
Thanks a lot!
VanDerPloeg
Please Log in or Create an account to join the conversation.
- mwm
- Offline
tjkim93 wrote: And the source is not open.. the app was designed for MultiWii protocols originally and deviation protocols are ported to UniConTX.
Just saw this, so I thought I'd point out that this might be a copyright violation. If you are distributing a binary that was built with a deviation source file, then it's a work derived from that source, and you can only legally give someone the binary as described by the license.
If you aren't building such an app, or aren't giving it to anyone else, or are distributing properly already, then this isn't an issue, and I'm sorry for the confusion.
On the other hand, I've been thinking that it might be a good idea to spin off the protocols from deviation into a separate project, to make them easier to use for things like this and the multi-protocol module.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- VanDerPloeg
- Offline
- Posts: 2
Getting the deviation protocols into another project would be great, I've been wanting to do some autonomous control with arduino
Please Log in or Create an account to join the conversation.
- FDR
- Offline
That would have GNU license as well, so anyone could use any part of it as far as he or she would publish his or her code under the same GNU license...
...or probably I might misunderstood the problem here.
Please Log in or Create an account to join the conversation.
- mwm
- Offline
This would require cleaning up and documenting the API, which is a good thing. Doing that would also have licensing implications, though possibly not good ones. It would make it easier for other projects to use the protocols. But the real win would be that protocols contributed to it via one project would be added to others by updating that repository.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- pcb45
- Offline
- Posts: 1
I have the same question VanDerPloeg has. Any chance you could briefly explain the serial protocol? Making progress but a quick explanation would really help use the library interactively for testing etc.
Thanks!
VanDerPloeg wrote: tjkim93,
Great work! Im looking to control my Cheerson CX-10 with Arduino, but I don't have an android phone to use your program with. I have been trying to figure out the bluetooth serial protocol you use so I can control it from a serial terminal, and have been able so far to get the version and set the RF protocol. But I still can't get it to work, because I don't know the "controller ID" which I need to supply when I start RF. How can I find it? Also, when I set the RF module and protocol (Im using nRF24L01), what are the "options"?
Thanks a lot!
VanDerPloeg
Please Log in or Create an account to join the conversation.
- FDR
- Offline
That's reasonable...
Please Log in or Create an account to join the conversation.
- Home
- Forum
- General
- General Discussions
- Control drones with Smartphone