I wanted to build a small drone of my own as a hobby project. My old drones were broken so I wanted to salvage as much as I could to build a small indoor one. I wanted to use an Arduino, however, I am facing a small problem.

Now, my drone controller is broadcasting at a frequency of 2.4 GHz which I want to capture through my Arduino. However, every tutorial online uses a small specialized module to capture those signals.

So my question is - why can't I use a simple wire as a 2.4 GHz antenna?

I guess I would have left it alone but my drone has a small wire as an antenna (it is an indoor one). So how come that drones use a small piece of wire for receiving those signals while MicroControllers have to use a full-on module?

  • $\begingroup$ Welcome to ham.stackexchange.com! $\endgroup$ – rclocher3 Apr 27 '20 at 16:26

A wire will pick up a GHz signal, as well as a ton of other RF signals, all mixed together. Some sort of filtering is required to separate out your desired radio signals. An Arduino has none of filtering required.

Sampling a 2.4 GHz signal requires a sample rate above 5 billion samples per second. The A/D on an Arduino samples at a rate of about 9000 samples per second, which is a few hundred thousand times too slow. To say nothing about the CPU being able to store or process that amount of data.

  • $\begingroup$ But how do we pick up 2.4 Ghz signals with an arduino and a wire? I can't any any tutorial online... $\endgroup$ – neel g Apr 27 '20 at 3:28
  • 1
    $\begingroup$ @neelg read the answer carefully: you simply can't. $\endgroup$ – Marcus Müller Apr 27 '20 at 5:53
  • 4
    $\begingroup$ @neelg "it must be doable" says you, the expert on RF electronics?! Seriously?! 9000 Samples suffices for a bandwidth of merely <4.5 kHz, and things like radio controls, wifi, ... use 1 MHz to 100 MHz of bandwidth. And you're right, you don't in practice do direct sampling, but downconversion with a complete receiver/mixer frontend and then baseband sampling, but you still need twice the bandwidth. You're really still asking "why can't we make a car motor with a wooden match? It also ignites gasoline!", ignoring that there's still a frigging car missing after you're able to ignite gasoline. $\endgroup$ – Marcus Müller Apr 27 '20 at 7:05
  • 1
    $\begingroup$ @MarcusMüller you speak the vernacular like an American, haha! $\endgroup$ – rclocher3 Apr 27 '20 at 14:59
  • 2
    $\begingroup$ @neelg : The arduino is picking up the 2.4GHz signal. But it's way smaller than all the other RF and radio signals that the wire is picking up, way too fast for the arduino A/D to measure, and way too small for the arduino A/D to tell apart from noise. You need something many millions of times faster (a faster A/D, plus an FPGA, plus some tiny filtering impossible to describe in a simple tutorial), or an RF module. $\endgroup$ – hotpaw2 Apr 27 '20 at 15:50

It might be a good idea to start by trying to make a block diagram of what you have inside of each of those controllers...

Namely, the drone controller is most likely some sort of a system on a chip, which on its own chip, in addition to having a microcontroller also has the radio interface built in.
Those are two separate things, but in one package.

Radio modules usually only communicate over radio, and need a extra digital electronics to drive them (today commonly implemented using microcontroller), which lead to the popularity of specialized microcontrollers with integrated radio interfaces. There are also many other types of specialized microcontrollers, with Bluetooth radios integrated, with audio amplifiers integrated, with FM and DAB radio receivers integrated and so on.

On the other hand, Arduino is a platform for rapid prototyping, which is based on Atmel's (now Microchip's) ATmega series general purpose microcontrollers. Its main selling point is not that it's especially cheap, or that it has integrated modules for something, but that it's super simple and relatively easy to understand, and therefore attractive to beginners. As I mentioned, the ATmegas are general purpose micro controllers. They do not include the radio interface in them. Therefore, you need to use an external radio interface. That interface, depending on its complexity, will most likely converts the signal into data, which the microcontroller can easily process. However, since the interface chip doesn't know what is it actually going to be talking to, it needs to implement a lot of intelligence on its own, in order to covers the radio signal to data, which drives the cost of such modules up.

Now, let's go to the "piece of wire" statement. The piece of wire is almost certainly not just some piece of wire, but a wire antenna, hopefully cut to the appropriate length. The drone controller's PCB also most likely has tuning elements on it, which should allow it to properly drive the wire antenna you have. The radio interface module for the microcontroller will also have its own antenna, either on the PCB, or perhaps externally, and needed electronics to drive it.

And finally, one important thing to keep in mind: In order to have any hope of capturing the drone's signal, you need to actually figure out which protocol the drone uses in its controller, and to know which modules can work with them, so that you can select an appropriate one for your microcontroller. Just picking one up at random is not going to work, since the protocols running at 2.4 GHz tend to be very complicated.

  • $\begingroup$ But why we can't just jam that antenne from the drone in the analog pin of an arduino (or any other better suited) and then receive the signal, convert it and use them?? $\endgroup$ – neel g Apr 27 '20 at 5:08
  • 1
    $\begingroup$ @neelg because as hotpaw2 said, that's not part of the abilities that an arduino has. Why can't we screw in a screw with a water hose? $\endgroup$ – Marcus Müller Apr 27 '20 at 5:54
  • $\begingroup$ @neelg it really seems that you don't try to understand the two answers you've been given! If anything is unclear about an answer, don't hesitate to ask the author of that answer about the specific sentence you do not understand, instead of just repeating your question. I have a question for you, Neel: AndrejaKo wrote "they do not include the radio interface". So, what about that sentence does not answer your question? $\endgroup$ – Marcus Müller Apr 27 '20 at 5:59
  • $\begingroup$ What is the function of a radio interface? Why can't it be simulated with an Arduino? it is supposed to be a generally programmable microcontroller, so we could program it to act like one? $\endgroup$ – neel g Apr 27 '20 at 6:07
  • 2
    $\begingroup$ @neelg these questions have been answered in the answer, too, at least superficially. If your question is "what does the radio interface in a wifi-enabled system on chip do", the answer to that is basically "it's a full digital radio receiver". Which is a damn lot more than an analog input pin – I really don't know where to start explainig that at your level of understanding. Maybe you'd want to read up on the basics of radio receivers? $\endgroup$ – Marcus Müller Apr 27 '20 at 7:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.