- improved video frame rate: about 10-12 fps on LTE link
- support for new control panel "cp_v0.06.html" that designed for use both on tablet and smartphone
- USB modem support: Huawei E3272, E1550, E3370
- 4 general purpose PWM channels (CH6 CH7 CH8 CH9) to control servo/gimbal etc
Finally, I finished new v 0.04 board design and sent it to production. Another month to wait for delivery (and another vacation to spend, this time in Greece).
Meanwhile I have a plenty of time to design a plastic case and hopefully find a reasonable offer to make it injection moulded.
So it's getting closer to the final product in the way it should be.
Have to return to websocket implementation as there are seems more issues with p2p than were expected.
When my android tablet is LTE connected sometimes I see lags in transmitting UDP packets for UDP hole punching technique and sometimes connection cannot be established. Or may be I dont know how to cook it right.
So websocket seems to be better solution for now. And easier to use as it works in any modern browser on all major platforms. And no extra software installations are required. Next step could be WebRTC but there is much more work to make it run on microcontroller.
Over last few month I have made some improvements both to hardware and software:
From the hardware side:
- added mini usb port for easy firmware upgrade (need to make another blog post to describe in details).
- added few more channels to receiver board (now it's 8 in total). 5 are used by NAZA and 3 left for future needs, like servo controls, etc. and also can be used to tune NAZA gains in air.
There were some issues too. It was a totally wrong idea to place GPS sensor on board, it simply cannot find any satellites when GPS antenna is close to microcontroller. So still have to use separate GPS module.
Now hardware looks like this (except GPS which is removed from board):
From the software side:
- biggest improvement is that now tablet connects to receiver board p2p that highly offloads server which is just used to connect 2 devices as both has no public IP.
- control panel app for Android and iOS (has some improvements on it's own and also a subject for another blog post).
- reduced video latency (depending a lot on mobile network though). In my case in Moscow region I have about 0.4 sec latency - on picture below).
Weather is getting better so will try to post new flights videos in a next few days.
Working on adding MPU9150 (9-axis motion tracking from Invensense) support to receiver board instead of MPU6050.
Weather is still bad (cold and rainy) so no new flight videos. Waiting for spring to come...
Зима. Холод. Снег. Совсем не тянет заниматься полетами. За последние 2 недели полностью разобрал и собрал коптер и... он стал хуже летать. Из изменений - поменял ESC с hobbywing 20A на Spider 30A, пропеллеры с 9 на 10 дюймов, укоротил провода моторов. Видимо нужно тюнить пиды на назе. Видимо мне повезло, в том что с первого раза случайно собрал стабильную и сбалансированную систему. Ну с другой стороны, позажигать с бубном тоже интересно.
Из позитива - перенес всю серверную часть на amazon web services. Стабильность производительности, канала и пинга радует по сравнению с другими хостерами, которых пробовал.
Вот думаю если теплее не станет на этой неделе, наконец возьмусь и перепишу панель управления под Cordov-у с udp hole punching-ом, чтобы уже сократить путь пакета с коптера до планшета до минимума.
I think the idea of having GSM link onboard is highly underestimated in commercial drone industry for the moment. Most drones we see on the market now has either rc remote controller link or WiFi link which both has FPV option but both requires direct visibility or very limited in range. Alternative could be GPS waypoints, that gives you an option to program your mission beforehand on earth and as soon as you run it you off the control of your drone. Even more you can do by adding just a little device that will track your drone in flight sending you GPS coordinates and point on the map where your drone is via GSM network. There are few devices on the market that can update waypoints on the fly. But real power of GSM and specifically of 3G/4G is that you can get both FPV and control over the same GSM link. That means you are limited just by your battery and GSM network provider coverage. Even more, by merging these two technics drones will be able to fly by preplanned waypoints and at the same time pilot can watch live video from onboard and take manual control at any time if needed.
A lot of work was done over last 3 weeks. Finally moved server part from shared hosting to my own VPS. And finally moved away from apache/php SSE (Server Sent Events - data channel from server to browser) and Ajax (data channel from browser to server) to more lightweight and fast Node.js and web sockets technology (double way server-browser text and binary communication over TCP). Now there is no need to base64 encode JPEG data that was previously streamed over SSE as SSE allows only text data to be sent. Now both JPEG binary and control/telemetry text data is transmitted over single web socket. That gives at least 30% less bandwidth requirement for server-browser link and considerably reduces control latency.
Today is -20 °C freezing cold, but windless and sunny weather, so why not to try another distant flight, this time ~ 3km long.
Same setup: quadcopter, Naza M V2, 3G/4G GSM FPV receiver, Megafon 4G GSM modem, iPad.
Receiver is configured to run at about 60% of Naza pitch/roll stick range, which already gives about 30 km/h flight speed. So there is a room for improvement here.