1

I am in the process of building a quadcopter, and I would like to send the telemetry from the device to my laptop wirelessly (wires are very inconvenient for debugging!). I have several HM-10 BLE modules. What attracts me in BLE is that it is fully supported by iOS, Android, Macs and modern PCs. However, it looks like it is very slow (the original HC-10 module has default speed set to 9600), and from what I understand, the data packet is limited only by 20 bytes (so the telemetry data must be sent in binary, plus we cannot feed it much info, especially if it is in a floating point format)

Has anyone used these modules for sending telemetry information? Is it reasonable at all?

The only other option I have currently is ESP8266 module (I have esp-link firmware), which seems to be much faster in transfer speeds according to what I've read, but it seems to take a long time to boot (my MCU has already "started" and sending data, but the ESP is still connecting to the Wifi access point), plus it doesn't work "in the field" where there's no Wifi access points.

Thank you in advance for your suggestions!

O.W.Grant
  • 11
  • 2
  • Those HC-10 modules have a TI CC2540 chip on them. This IC support a datarate up to 1 MBps according to the manufacturer's website. So I think that the HC-10 modules are not limited to 9600 bps, you've just configured them in the wrong way. – Bimpelrekkie Aug 31 '17 at 08:25
  • *Wifi .. doesn't work "in the field"* Nonsense as well, either you setup your own access point (this can be done from a laptop or many other Wifi devices) or (better) use a point-to-point Wifi connection. – Bimpelrekkie Aug 31 '17 at 08:27
  • ESP8266 can be an AP itself. – Bence Kaulics Aug 31 '17 at 08:56
  • 1
    See here for alternatives (they are valid not only for arduino based projects): https://www.sparkfun.com/pages/wireless_guide . In particular, 433 MHz solutions. – pasaba por aqui Aug 31 '17 at 09:02
  • You cannot ask what is better unless you define your minimum Baud rate and maximum distance as these affect BER. Other differences exist such as coding method, coding rate and channel interference and needs for latency, power and antenna null pattern depth can affect performance. However, I suggest you use 868 MHz which offers lower path loss, less interference and better performance. – Tony Stewart EE75 Sep 14 '18 at 03:14
  • https://brage.bibsys.no/xmlui/bitstream/handle/11250/2416216/Chowdhury%2C%20A.S.M%20Samiul%20Saki.pdf?sequence=1 – Tony Stewart EE75 Sep 14 '18 at 03:20
  • Actually, you don't need to add hardware at all. The 2.4 GHz radio chips used in quadcopters are all *transceivers* so you can time-multiplex telemetry with the control reception. And you can pre-calculate BLE-compatible packets to transmit even with a non-BLE chip like the nRF24L01 or XN297, and thus send your telemetry to a BLE collector. This isn't theoretical, it's actually a feature of open source firmwares for reflashing onto tiny toys. – Chris Stratton Jan 19 '19 at 18:26

2 Answers2

0

BLE is much more power effiecient than WiFi. According to my experience with nRF chips vs ESP8266 difference is at least 5 times, closer to 10x when actively sending. WiFi on the other hand provides higher bandwidth. Connection issues you'll have at any rate, because BLE also has to find device and pair to it, albeit it's much faster than getting DHCP addresses and setting up a full-blown link. Setting up direct P2P connection with static addresses might speed up things for WiFi. WiFi "field problems" are exactly the same as with BLE - both need somewhere to send data to. Most of the modern phones/laptops support both protocols, so you can set up an AP or BLE Central on phone and use that.

Basically it all boils down to amount of data you want to send versus amount of battery resource you're willing to pay for it.

P.S. you can send telemetry as ASCII as well, you just have to take into account that every digit takes a full byte. You can stuff your data into binaries and send them over Wifi as well in such a manner.

stiebrs
  • 789
  • 4
  • 9
0

You don't mention what you want to do with the telemetry, we used two methods on a race car. Firstly we created a control website on the esp8266 and mounted it on the vehicle where it communicated in real time with an onboard chip. The second method was to transmit serial data over wifi to a laptop and graph it in realtime in MATLAB. Both worked very well and reliably.

BenG
  • 594
  • 3
  • 10