I really like this video because it is nice to know that there are other people who really dive into stuff and learn as much as possible from there experience. You don't give up and always keep looking for other ways to get the job done. And best, you share this information!
Joop Brokking Thanks Joop! The thing about radio waves is you can't see them, makes me always wonder exactly what's going on, and how far to trust the connection :) There is also the important difference between the stated capability of the modules, and what happens in a real situation, is good to know.
Thanks a looooot man!! You did so much real research with these many possibilities there that still impacting someone's project after 6 years! Thanks again.
Great analysis and summarization. Very Interesting to see from the data how the distance/antenna relationship played out. Thanks for doing all the work!!!
What you call pointing is putting the antenna in a horizontal plane which would direct the signal up and down and side to side and not towards your receiver if the tip is pointing towards the target. Antennas should always be in the same plane for best reception. So pointing is actually the opposite of what it says ;) In the HAM world (and other radio services) sometimes you put an antenna in the opposite plane of the transmitter you are trying to receive if there is excessive noise from other transmitters. This will lesson the noise but reduce the receive strength as well. Excellent review BTW - thanks.
Digger D Right. What I call 'pointing' is deliberately making the reception worse... perhaps I should have mentioned that instead of taking it for granted that viewers would already know that. The point was to see how much worse it gets, to estimate a safe distance to fly an RC model at.
I see, just wanted to clarify that for everyone. Your technical knowledge seems high so I was wondering? ;) Typically the term pointing an antenna means aligning it for best transmission/reception so a bit misleading to the beginners. Again, nice work.
Now-a-days you can learn a lot about which is likely to be the best antenna using the relatively cheap nano-vna. Many antennas are not actually tuned to the frequencies advertised. Long/short/shape/type/orientation probably mean less than the frequency at which it oscillates most efficiently.
Great work thanks for sharing all this. I enjoyed it and I passed it on to several ham radio friends too. I gave up on my CC1101 and now looking at the nRF24L01's.
Look around my channel for some more long range tests after I moved back to New Zealand. 31km using a large yagi at each end, and 35km from a whip to a yagi, on a high-altitude balloon :) ruclips.net/video/4XRp7pkZgPM/видео.html ruclips.net/video/o1J64naEEHY/видео.html
Hi, Good Video, nice comparisons between the various types of Pcb and Antenna,s. I would just like to mention one thing with your Attenna,s you would get the best signal when they where both vertical reletive to each other and the worst signal when they are pointed end or tip to tip, to get the very best signal you should use a yagi type Antenna beaming at each other and that would realy increase the range. the vertical whip gives a signal out in a doughnut shape and is also the same on Rx. being a radio ham i have had a lot of dealings with Anteena,s and how they perform. I am hoping to get myself a couple of the modules and will be doing some experimenting with them in the future. your video has spured me on into getting some of them . Thanks for the great effort and keep up the grand work. All the best Steve Liverpool UK
For 1-1.5 km range, I will use a 2.8 dBi omnidirectional linear polarization dipole antenna on my drone, which has an nRF24L01+ PA LNA communication module. Which antenna type would be a more suitable option for tracking the drone on the ground?
Bravo!!! Good and complet job about Test Range Wifi Radio's... The best method ever I see in video! I hope you have time to do this with another antena! 10k's I like!
5 years ago I watched this video and wondering how you did this when I can not even get my modules work longer than 150-200 meters. Recently I bought an N1201SA, checked my "2.4ghz" antennas that were shipped with these modules and they suck hard. Their frequency is way off and even on that freq they are extremely shitty.
Excellent Analysis. Just out of curiosity, in the past it has been my experience that antennas function better with a ground plane attached, While for transmit it normally is optimal to have a plane which is at least 1/4 wave length. In practice I have found that bigger is normally better up to a point. Although even a small ground plane seems to help. Have you tried taking a metal lid from a soup can, punching a hole in the center, and placing it over the connector and attach it electrically and mechanically at the base of your whip? The ground plane can also effect the radiation pattern of the signal. Just a thought. Excellent work!
Another great video! I so appreciate the thoroughness and detail you put into these tests along with publishing your code -- it is very helpful indeed. I just bought a pair of "NRF24L01+PA+LNA SMA" with regular length antennas on eBay for my autonomous rover which I want to test using your methodology. I think these most closely resemble your "PA1" module. Anyone can tell me what "LNA" in that product description stands for?
Thank you very much for this great video! So much effort put into it, and in such a great environment, love Japan :) This video was really helpful and inspiring, I decided to order a couple of the shielded PA ones for a project of mine. Thanks!
i love 3d google, i think its opensource 3d buildings which anybody can submit to, new york is a joy to fly around, oh did i mention google earth has a built in flight sim,, a fast jet and a small prop plane, mount st helens is pretty amazing to fly around too....
great comparison! I'm looking into extending the range of the pcb ant version, possibly with a simple wire dipole like on RC Rx's. Hoping to get 100m reliably without an SMA antenna.
Hey hey! thanks for cool video. suggestion, when you show graphs (PPS vs range) in addition to PA2-TX (for example) in legend - I would add a picture of the setup (transmitter with antenna) that would make it easier to follow.
Watched the whole vid start to finish :) Great stuff. I've been trying to use the PCB antenna versions (very cheap on ebay) to communicate across a 2m hallway, with two doors in the way, receiver placed near a boiler and transmitter in a wiring cabinet near a mains distribution board. It sometimes worked but sometimes didn't, although probably due to the fact I was sending 1 packet every 2 seconds and my expectations were for 0% packet loss. Silly expectations, I now see this! So thanks to your vid I'll try to get my hands on some shielded, amplified versions and some short antennas. Thanks!
+Mat Smith That sounds like the type of situation that the PCB modules could still cope with. Assuming you are not running from a tiny battery that you want to last for a long time, I would try just blasting out packets as fast as you can, there is really nothing to be gained by sending so infrequently.
+iforce2d Thanks so much! I'm using 8 AA batteries with a 5V switch mode power supply and a 3.3 linear reg for the NRF. I'll whack out the packets like there are no tomorrows and see how that goes!
At 30:58 you talked about Parallel vs Pointing of the Antenna's. Yes Parallel is best since the radiate out the sides, not the tip! At 35:14-- Yes the shorter antenna is best because the shorter antenna is closer to the freq. that is transmitted.
Yes, and I wanted to see how much difference it makes in reality. Just because the plastic case of the antenna is longer does not mean the active length of the antenna itself is different, it's not the plastic part that does the transmitting :)
You should not be using both ceramic capacitors. Ceramic capacitors reduce high frequency interference from power and you should use a small one like 0.1 uF. For filtering out low frequency noise you should use an electrolytic capacitor at 100 uF. Also regarding 'pointing' antennas you have it backwards - these are not yagi antennas, they are omnidirectional. Your best performance comes when they are both pointing vertically upwards, not perpendicularly at each other.
lol why is both ceramic bad, I've never heard anybody say that. The nRF24L01 datasheet shows an example application using 10nF and 1nF capacitors with 0402 footprint, ie. ceramic. It also says "Mounting a large surface mount capacitor (for example, 4.7µF ceramic) in parallel with the smaller value capacitors is recommended". If you are experiencing better results with some other configuration, maybe you should contact the engineers at NordicSemi and tell them to correct their datasheet. Regarding antenna direction, what exactly did I get backwards? Reception will be best when the antennas are parallel and 'broadside' to each other and that's what my results show. I never claimed otherwise. Being vertical or not is irrelevant.
muh1h1 BTW, speaking of antennas, i managed to build my own little 5.8GHz antennas using old wifi antennas i had laying around. didn't build it out of copper, but an old spring i pulled out of an inkjet years ago (that was the only 0.80mm wire i could find in the house). they actually perform wuite well, and since it is spring steal rather than copper, it is quire durable also! :) best thing about that is the costs though: €0,- :)
***** i am just to cheap for this hobby, thats probably also why i initially subscribed to you with your cheapass quadcopter series :) yesterday i managed to buy 6 brand spanking new 2212 2200KV motors including spinners and screws for about 45€ on ebay :D btw, do you have any recomendations for small ESCs (preferably 12-18A) which are super cheap? the only really cheap ones i could find were 30A, and thats probably way to big (physicaly) for what i am trying to build...
muh1h1 wow, that's a good price for the motors, are they new? I just bought some small ESCs that will arrive soon, can't really say anything to recommend them yet but they were fairly cheap www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=11429&aff=1150185
***** Yep, new :) neat, i just audtioned off these: www.ebay.de/itm/4PCS-2-3S-12AMP-12A-SimonK-firmware-Brushless-ESC-w-BEC-Quadcopter-Multi-copter-/391123561879?pt=LH_DefaultDomain_77&hash=item5b10c7ed97 hope they will be up to the task :) Also yesterday i bought a new KK 2.1.5 from an ebay auction for 20,26€, this is truly a tight budget for a quad :D
An interesting video. Being a person that works with radar systems for a living, I'm wondering whether your two dips in signal are related to range as a time base issue, especially as there appears to be some sort of relationship between the two locations? It takes ~3.333us for a radio wave to propagate 1km, or 300m/us. May be interesting for a repeat test with a different source location to see if the phenomena is terrain or something related to how the signal is sent?
Salam, Wow! you have inspired me to build one. I am currently playing with ESP8266. Not as good as you but I think I can grasp the understanding of Nano+nRF24L+motors. Can I suggest something, could you please try Coanda effect on your rotors to get upthrust. I think cutting ping pong balls to half and then mounting them under the rotors or above may do the trick. I am not sure but I think its a small trick and may prove very power saving if works out.
Kyle Null Short whip on the quad for sure. I will probably use long whip on the transmitter, not because it's any better, but just because I want to have my other short whip for another quad :)
If you really want to get a serious antenna look up "RP-SMA 2.4GHz 25DBi Yagi Wireless WiFi Antenna". A bit overkill for most projects but if range is the game I'd think this would do it. Also had a question. I didn't see in the sketches where you used the PowerUp command? This takes it out of low power mode. Unless I read the purpose of that and it doesn't output anything in PowerDown mode. But also says the output power is programmable. I haven't looked through the code to see if they have a function to change that as well. So it may be that you're not using quite all the power you could be. Just a thought.
This quite an old thread so I'll understand if if there is no answer :-( Brilliant research work on these radios, extraordinarily thorough data gathering - good work mate! I've been playing with them for a while now, up to recently it's been sending information about my solar diversion system around the house so I can see what's happening - just fun. Now I've moved on to a weather station project and I want a bit more range. I had been using the PCB and non-shielded versions and have recently bought some of the shielded versions, mine call themselves AS01-ML01 DP5 V3.2. and, for me, they are not directly compatible with the other versions, in my sketches. Whilst the pcb and non-shielded versions worked, the shielded guys did not - same code - same hardware. I do use the adaptor boards and I haven't, as yet, put any caps on the radio boards. So, as a test, I took your sketches, as a starting point, just changed them a bit so the transmitter was pausing between txs and sending a count and some changing data and the receiver was reporting any records received and serial printing the data that should be changing. Worked great with the pcb and non-shielded versions, not at all with shielded version. My modified receive function: void recvData() { while ( radio.available() ) { radio.read(&data, sizeof(PacketData)); packetsRead++; lastRecvTime = millis(); Serial.print("Got record - packetsRead = "); Serial.print(packetsRead); Serial.print(" lon & lat = "); Serial.print(data.lon); Serial.print(" "); Serial.println(data.lat); } } As a tx-er the shielded one gets stuck and doesn't return from radio.write() call. As a rx-er it passes straight thro' the function above, increasing the packetsRead count and not picking up any data. The pcb and non-shielded versions work fine. Questions: Is the power issue so devastating with the adaptor boards and/or caps, especially when used as a receiver? Are all three of my shielded radios all broke? Are there any mods needed in the sketches and/or hardware to accommodate our powerful shielded friends? As I said before, great work and very useful, Eric, UK
The software side of things should be compatible regardless of the variant (shielded or not etc). The power on VCC should not exceed 3.6v absolute maximum, or 3.0v if you are using 5v on the signal lines (MISO, MOSI, CLK etc). Signal lines should not exceed 5v. Make sure you always have an antenna connected, especially when transmitting. One thing you can try to check if the module is alive at all is the radio.printDetails(). If you set something, (eg. radio.setDataRate(RF24_250KBPS) ) then that setting should be accepted and subsequent output from radio.printDetails() should reflect the change you made. If not, nothing else will work and you either have a dud module or some incorrect wiring.
That's a great idea, so I tried it (thanks for your quick reply, by the way) I've not looked very far into them yet, I will later, but just in case you see anything glaring, here's the three radio.printDetails() from three radios all plugged into the same hardware, running the same sketch. Well in fact the Arduino wasn't changed at all, just powered down and up while the radios were changed. Thanks for your help, I can see some differences need investigating, from a first glance it looks like the default values used by a nrf24l01 and a nrf24l01+ are different. 1.shielded Power amp - non-working for me STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0 RX_ADDR_P0-1 = 0xe3e3e3e3e3 0xe0e0f0f0e0 RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2 TX_ADDR = 0xe3e3e3e3e3 RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00 EN_AA = 0x00 EN_RXADDR = 0x00 RF_CH = 0x04 RF_SETUP = 0x00 CONFIG = 0x00 DYNPD/FEATURE = 0x00 0x00 Data Rate = 1MBPS Model = nRF24L01 CRC Length = Disabled PA Power = PA_MIN 2.Non-shielded power amp - working for me STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xe8e8f0f0e1 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x00 0x20 0x00 0x00 0x00 0x00 EN_AA = 0x00 EN_RXADDR = 0x02 RF_CH = 0x4c RF_SETUP = 0x27 CONFIG = 0x0e DYNPD/FEATURE = 0x00 0x00 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX 3.PCB - working for me STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xe8e8f0f0e1 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x00 0x20 0x00 0x00 0x00 0x00 EN_AA = 0x00 EN_RXADDR = 0x02 RF_CH = 0x4c RF_SETUP = 0x27 CONFIG = 0x0e DYNPD/FEATURE = 0x00 0x00 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX
It's not that the defaults are different, as I said "If you set something, (eg. radio.setDataRate(RF24_250KBPS) ) then that setting should be accepted and subsequent output from radio.printDetails() should reflect the change you made. If not, nothing else will work and you either have a dud module or some incorrect wiring." It looks like none of the settings you made are being respected by the shielded module. In every case this has happened to me it has been due to incorrect connections, eg. usually MISO/MOSI backwards. It can't hurt to try using a cap across the GND/VCC pins, but I think that is more likely a fix for transmission problems, not basic communication with the module.
Thanks again for quick reply, the connections do not change between my tests and this is a receiver test, I might just try a cap tho - maybe... All three of my AS01-etc give the same output, and as you say the data rate has not been accepted, the sketch fragment is: // Set up radio module Serial.begin(57600); printf_begin(); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.setAutoAck(false); radio.printDetails(); radio.openReadingPipe(1,pipeIn); radio.startListening(); I reckon the probability is high that I've got some fake, broken or rejected modules, I'm using library RF24 version=1.3.0 author=TMRh20 Which has always treated me well. Like banging your head against a brick wall, it's great when you stop, and I think I might just do that - stop that is :-) You've been an enormous help, thanks very much. Eric UK
So, last chance saloon - I tried swapping MISO and MOSI, just for fun and it made no difference to the AS01-ML01 , but as you predicted it did make the formally working PCB and non-shielded versions become "faulty" by acting in the same way and refusing to take on any settings. So MISO and MOSI back to where they were, they were correct. Then, as I was about to give up, I came across this thread : github.com/nRF24/RF24/issues/182 and tried a suggestion made there by Nickson Yap: Quote I then roughly compare Maniacbug's library with TMRh20 and changed TMRh20's RF24.cpp line 44 _SPI.setClockDivider(SPI_CLOCK_DIV2); Into _SPI.setClockDivider(SPI_CLOCK_DIV4); Unquote And it worked, the radio.printDetails() then reflected the settings made in the sketch both for the AS01-ML01 and the PCB and non-shielded versions. A test using a a PCB as a transmitter and a AS01-L01 as a receiver worked fine as does a test between an AS01-ML01 as both a transmitter and a receiver. So, all is now well, by changing _DIV2 to _DIV4 on line 44 of RF24.cpp in the TMRh20 library. Thought you'd like to know, and thanks for your help and encouragement. Cheers, Eric
***** What do you suppose all those graphs are? :) These modules don't have a traditional analog RSSI, the best you can do is measure how many packets you are successfully receiving, which at the end of the day is the only thing that matters anyway.
***** The graphs are visual representation of packets versus distance, haha. But I'd like to get numbers instead, it's a little hard to compare by eye. Mind uploading the data u have? Thanks :)
Hi iforce2d, your videos inspired me to build my own quad, and now i am a happy owner since may. i decided to upgrade the RF range, unfortunately i face a spooky problem. this is nRF2401 is with the pigtail cable to SMA antenna. On 2 ProMinis i am running your rangeCheckRx-Tx software, and its working for the PCB Tx-PCB Rx. i switch the Rx to external antenna version its also working fine. ..and no matter what Rx i use, when i attach the external antenna version to the Tx i never get any data packets transferred(cap is soldered to Vcc and GND). i check all the time with radio.printDetails(); to see if it is perfectly initialised, and even in this case i see my settings are set into the RF communication. i have 2x of the external antenna version and the case is the same for both. i was thinking that maybe in Tx mode the high current consumption is the problem, but when i saw your video, you didnot change the circuit besides the nRF changes...can you think of any mistake i made or any further debugs i could do? any help is appreciated :)
+RowleySmith I'm not sure which circuit you're meaning here, but it's not really such a good idea to power the nRF from a pro-mini. In this video and probably (hopefully!) my other videos too, the high power variant of the nRF would be powered by a separate voltage regulator thingy like I showed at 4:50
Great video and great analysis. I'd be interested to know how the height of the transmitter and receiver aerials affected range as typically, for R/C model flight, the Tx aerial is not 4m above the ground, more like 1 m (i.e. about waist height), and the receiver typically much higher (up to 100m). Do you have any data that shows range in that situation, or would you expect it to be roughly equivalent? Thanks, Ian
Very impressive video. As simple as it sounds. I just need to turn on an LED in 4 different locations (inside 4 offices side by side) as a status light for customers waiting. So 1 base unit/Transciever with toggle switch to turn on/off all 4 LEDs and 4 recievers with an LED attached. All powered from a 110v - 5V usb converter. Distance is less than 100 feet. Can you steer me in the right direction of what I would need to make this all work
Really good video....and long hahaha... The shielded one can work as a transceiver? Or just as transmitter or receiver? Thanks for making this videos, they've been really useful to me lately... :D
Knuth Helekivi I'd like to try this again sometime in a better location, maybe I'll have a few more antennas by then too. Will need more than 1.5km for helical and patch!!
I noticed on your most recent videos (Diatone) that you are not using this radio modules. Can you tell us why you changed to another radio solution and what are the pros and cons of both, maybe you can make a comparison video about it.
Luis Cabral Mainly because I wanted to try a more 'normal' build for a change. The flight controller on the Diatone is not multiwii, so I can't make the nRF integrated yet to do telemetry, and I'm stuck for many days about getting that done in the Cleanflight source code: github.com/cleanflight/cleanflight/issues/1013 The pros of the regular receiver is that you can use it with any compatible transmitter, but only 6-8 analog channels, pro of the nRF is that you can program it to send any kind of digital data in both directions, but you need to also build and program the transmitter.
Hi again ! Thanks for this great comparison ! I am interested in working with the GT-24 2.4G NRF24L01, do you have any idea of its range and quality ? I haven't been able to find useful information about it :(
Great work, sir! You created a standard for people to look up to! I already have a pair of amplified modules. Any chance I could shield them myself? I have adhesive aluminum tape made for chimney ducts or something. Could that work? Or has it to be a tin box? Does it need to be grounded?
Cutter Slade Yep, making some shielding yourself should work fine. Never tried it myself so I don't know how effective you can make it or what the best material would be, but somebody commented on one of my earlier videos saying he had made a reasonably effective shield from some kind of potato crisps bag.... iirc.
Interesting, thanks! But can you clarify: when you're not getting the full 308 packets per second, that means the other packets were lost, right? So there's no internal negotiation between the RX and TX to decide a packet rate that still works? I'm thinking that for single-shot signals (as opposed to sending continuous measurements) you need to transmit hundreds of copies of the packet, maybe some thousands, if you want to make sure it gets received.
+renxula It means that there was too much noise for packets to be reliably understood, so yes, I guess you could say they were 'dropped'. No, there is no negotiation between the TX/RX at all because it's a one-way transmission - the TX is a pure transmitter which just sends as fast as it can and never receives anything. This type of transmission is not really suited for single-shot signals. These modules are transceivers though, and can do packet acknowledgement if you change the settings a little, then the TX will know that a packet was received successfully.
This was really interesting video! Thank you. I have a question do you have the wiring diagram you used to wire up the transceiver to the nano with the mini 360 buck??? It looks like you're using the ICSP header pins? And there's no ground connected to the mini 360 buck?? Thanks for your time.
also I have another question, couldn't you use the 3.3v line off of the Nano to control the nRF transceiver? why did you choose to use the Mini Buck??? is there a specific reason to do it with the buck converter?
Question re the sketch, and packet timings. Sorry if this is obvious. For each radio.write you are doing (with 7 bytes being sent), you have that radio.available loop in the receiving sketch. The radio.write is in the loop, so you are pumping out packets with only the analogRead providing timing gaps between packets. If you hypothetically removed those analogReads in the sending sketch, would radio.available return true all the time? Basically speaking, is it just the delay caused by the analogRead that is meaning your receiver can actually determine the difference between the end of one packet and the start of another?
+Mat Smith I think theoretically you could get a tiny bit more packet throughput by removing the analogReads, but that would not mean the receiver always has a packet available. The nRF module still requires time to do its work of sending and managing the packet buffers, and it still takes time to transfer the packet content between the arduino and the nRF, and packets will still be dropped in transit depending on the environment. The other thing is, if you're not going to be modifying the data you send there is really not much point sending it at all :) If you had a lot of free time you could probably arrange things so that the the loop time on both ends was exactly the same, and then if you decreased the sending rate enough so that the nRF could get everything done between sends, and you have an extremely noise-free environment then you could perhaps make it so that the receiver would _almost_ always have a packet available whenever it checked. But for most practical purposes there will be a difference in loop time on the sending and receiving sides, and the receiver will need to check if there is a packet available.
What sort of applications are you using these for. I managed to get 10x for $5 from Aliexpress (I didn't realise it was that many). The ones I have are the PCB antenna model. I found that the were terrible with no antenna but with the 8.1cm ethernet wire attached they were very reliable.
hi there i have a E10-433MSI1w but i have no idea how to get it to work ,are you aware of them and can you show how to get it going pls note they are 1 watt output good for long range and thank you so much for all of your content it is very thorough
Here's another source for shielded nRF24L01 modules. www.electrodragon.com/product/1000-meters-nrf24l01-long-distance-module/ I have a pair but I haven't tested them yet. I've found switching regulators can really interfere with RF signals. It looks like your wires were long enough to keep the regulator away from the transceivers but you might want to test with some linear regulators sometime. Thanks for sharing your results. I found your video very interesting.
I would like to ask you if something changes between shielded chip and others. At the beginning (3:20) of the video you say something like "I think the components are the same". As you do not talk about it again and i am in doubt. It is exactly the same program this chip or one of the other unshielded? Or something change?
Very good job :-) How did you made the Android program and how did you do to make the android device automatically recognize the arduino AND launch that program ?
+Michel GRIGAUT it's all a bit foggy in my memory now, but the library that does the interaction with the arduino also lets the device recognize when the arduino is attached. There may be multiple apps on your device that respond to the arduino being connected, if so you will be given the option to choose one of them as the default to use all the time.
I use a mobius action camera stuck onto my hat for the outside stuff, or my Galaxy S2 phone for still photos. If you're talking about the indoor stuff, I use a webcam (logitech C910 I think). The parts where I'm showing something on my computer is a screengrab of the screen.
I know it super late message :) but nice work. I had a lot of problems with the NRF24L01 modules using simple Arduino Nano and Mini modules. The 3.3V pins from these, can't sustain the NRF modules and until i put a separate power or used an adapter module, i couldn't get it to work as in your videos. One big request: Can you please upload somewhere the code and schema for that receiver thingy that you are using for testing and showing visual data of joysticks? I have the pieces to make one but i don't know the exact pins you used and what code you have to get visual representations of joysticks and received packets. Thank you in advance.
With all my videos, any code that I thought was relevant will be in the description links. If it's not there, then for a video like this one now four years old, I have no idea where the code is sorry. There is no visual data or joysticks in this video, I think maybe you are talking about a different video. For that I used the SSD1306 library from adafruit which lets you draw lines and rectangles. But if you just want to check the values, it's much much easier just to print them on the serial monitor.
@@iforce2d Yes, you are correct. I posted in a different page :) i have a lot of videos from you, opened in multiple tabs. Do you remember how did you connect the LCD together with the NRF24L01 ? You used I2C for display or some software SPI ? Thank you.
Question: on every nrf24 transceiver modul (the black ones) I noticed a short between the GND (outer shielding) and antenna (inner pin) of the SMA connector. Did you noticed the same?
Wow, I've purchased two of these: www.icstation.com/nrf24l01-wireless-transceiver-module-antenna-p-2354.html According to your video their range is even worse than the PCB none antenna ones. How much range, in your opinion, can I get using them both as a Receiver and Transmitter ?
RoyPe'er Their range as a receiver is decent, but yes, as a transmitter it's not much better than the PCB antenna type. Using them both as transmitter and receiver I would expect you could get slightly more range than the PCB-PCB pair, so about 80 meters maybe.
From your tests, do you think that NRF24/PCB ant could act as a reliable RX, along with the nrf24 PA+LNA as TX? It looks pretty reliable out to about 500m? Do you know if the PCB ant ver has enough power for the PA+LNA to pick up telemetry from 500m out?
I have flown my quadcopter to about 200m like that, but I think it probably could have gone further. No, the PCB version will not be able to send anything more than about 40m reliably.
Hello from Denmark. First off all I like ALL your videos. :-) Next Do you know about the ESP8266 module, you can programet it with Arduino and its must more power full than Arduino and have build in Wifi maby that can be used to control a quad copter :-) Yes YOU have me hock on to start building my own TX and a quad copter, thanks for that :-)
+Allan Madsen yes I have seen the ESP8266 modules, they look pretty neat. Ethernet style connections are a bit overkill for applications like this though, and they usually involve latency inducing overheads to get the packets in order, for TCP at least. I wonder if you can do UDP with that module... in any case the nRF does the job just fine and requires no network or handshakes of any kind.
PCB antenna is not great at the best of times. The only thing I can suggest is to put a cap (about 10uf) across the power and ground pins, if you haven't already.
When I go to verify the code it gives an error message, like when I verify the gps code I get a Tiny gps plus does not name a type and the data code gives me the message Error compiling. I have this problem quite a bit not sure what I am doing wrong thought it may have been that I was using a different version of the arduino any help would be appreciated thank you.
+Steven Albright It sounds like you need to add some libraries to your arduino IDE before trying to compile. See this page for some basic first steps in using these radio modules: arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
I've been thinking of this combo: Controller: nrf24l01 + 2W wifi booster + antenna tracking based on packet loss count. Quad: cloverleaf antenna The aim is to get to distances of at least 5km, also for FPV to survey mountain area. I'll need the quad to return to me GPS coordinates and altitude... So on the quad I might have a 5.8g booster for the FPV too. What do you think? Do you think a wifi booster can couple with the nrf24l01?
***** If the two endpoints were not moving, you might actually be able to get 5km with a couple of strongly directional antenna (helical etc, not cloverleaf). Since the quad will of course be moving you can't do that though. So the quad will be carrying a 2W wifi booster? Sounds heavy and power hungry isn't it? You would probably be better off looking into lower frequencies like 1.2Ghz, 433Mhz range for that kind of distance. I think the OpenLRS project does what you want, with modules like this: abusemark.com/store/index.php?main_page=product_info&cPath=5&products_id=43 hmm... reading your post again, you say antenna tracking based on packet count. I don't think that will work if you are using acks or ack payloads, because you would need multiple RF modules on the tracker to sense where the strongest signal is, and they would not both be able to communicate with the quad. If you can send back the GPS location successfully you can just use that to track the quad instead.
***** Great advice! I'm trying to keep with the NRF24L01 coz I'm more familiar interfacing it with Arduino... Also, cloverleaf antennas seem to get larger for lower frequencies... The 2W wifi booster will be at stationary ground, Although I did found one 2.5W booster module 4*3cm that might work for the quad. I might use a stacked biquad antenna for the antenna tracker. Yes, I guess GPS tracking will work well enough. I'm checking out OpenLRS now...
I really like this video because it is nice to know that there are other people who really dive into stuff and learn as much as possible from there experience. You don't give up and always keep looking for other ways to get the job done. And best, you share this information!
Joop Brokking Thanks Joop! The thing about radio waves is you can't see them, makes me always wonder exactly what's going on, and how far to trust the connection :) There is also the important difference between the stated capability of the modules, and what happens in a real situation, is good to know.
Joop Brokking U.K.
Thanks a looooot man!! You did so much real research with these many possibilities there that still impacting someone's project after 6 years! Thanks again.
Great analysis and summarization. Very Interesting to see from the data how the distance/antenna relationship played out. Thanks for doing all the work!!!
You have put in quite a lot of efforts in making this available. This is very useful. Thank you very much!
Amazing .. really amazing. Glad you finished it and didn't give up.
It's really a boring task.
Thanks.
What you call pointing is putting the antenna in a horizontal plane which would direct the signal up and down and side to side and not towards your receiver if the tip is pointing towards the target. Antennas should always be in the same plane for best reception. So pointing is actually the opposite of what it says ;) In the HAM world (and other radio services) sometimes you put an antenna in the opposite plane of the transmitter you are trying to receive if there is excessive noise from other transmitters. This will lesson the noise but reduce the receive strength as well. Excellent review BTW - thanks.
Digger D Right. What I call 'pointing' is deliberately making the reception worse... perhaps I should have mentioned that instead of taking it for granted that viewers would already know that. The point was to see how much worse it gets, to estimate a safe distance to fly an RC model at.
I see, just wanted to clarify that for everyone. Your technical knowledge seems high so I was wondering? ;) Typically the term pointing an antenna means aligning it for best transmission/reception so a bit misleading to the beginners. Again, nice work.
Now-a-days you can learn a lot about which is likely to be the best antenna using the relatively cheap nano-vna. Many antennas are not actually tuned to the frequencies advertised. Long/short/shape/type/orientation probably mean less than the frequency at which it oscillates most efficiently.
Great work thanks for sharing all this. I enjoyed it and I passed it on to several ham radio friends too. I gave up on my CC1101 and now looking at the nRF24L01's.
Look around my channel for some more long range tests after I moved back to New Zealand. 31km using a large yagi at each end, and 35km from a whip to a yagi, on a high-altitude balloon :)
ruclips.net/video/4XRp7pkZgPM/видео.html
ruclips.net/video/o1J64naEEHY/видео.html
Phenomenal work you have done
Every time I see you struggle with the focus I'm reminded of AvE's famous line. :D
which one ?!
Hey, thanks for putting all this videos. Your info is very usefull!! Im actually building a quad with the same radio than you!
Hi, Good Video, nice comparisons between the various types of Pcb and Antenna,s. I would just like to mention one thing with your Attenna,s you would get the best signal when they where both vertical reletive to each other and the worst signal when they are pointed end or tip to tip, to get the very best signal you should use a yagi type Antenna beaming at each other and that would realy increase the range. the vertical whip gives a signal out in a doughnut shape and is also the same on Rx. being a radio ham i have had a lot of dealings with Anteena,s and how they perform. I am hoping to get myself a couple of the modules and will be doing some experimenting with them in the future. your video has spured me on into getting some of them . Thanks for the great effort and keep up the grand work.
All the best
Steve
Liverpool UK
For 1-1.5 km range, I will use a 2.8 dBi omnidirectional linear polarization dipole antenna on my drone, which has an nRF24L01+ PA LNA communication module. Which antenna type would be a more suitable option for tracking the drone on the ground?
Thanks for the fast reply. Your videos are really helping us.
Bravo!!! Good and complet job about Test Range Wifi Radio's... The best method ever I see in video! I hope you have time to do this with another antena! 10k's I like!
thankyou! :)
Brilliant! Very informative. Thank you for posting this!
5 years ago I watched this video and wondering how you did this when I can not even get my modules work longer than 150-200 meters.
Recently I bought an N1201SA, checked my "2.4ghz" antennas that were shipped with these modules and they suck hard.
Their frequency is way off and even on that freq they are extremely shitty.
Thanks for huge and useful work!)
with love from Russia)
Excellent Analysis. Just out of curiosity, in the past it has been my experience that antennas function better with a ground plane attached, While for transmit it normally is optimal to have a plane which is at least 1/4 wave length. In practice I have found that bigger is normally better up to a point. Although even a small ground plane seems to help.
Have you tried taking a metal lid from a soup can, punching a hole in the center, and placing it over the connector and attach it electrically and mechanically at the base of your whip?
The ground plane can also effect the radiation pattern of the signal. Just a thought. Excellent work!
Another great video! I so appreciate the thoroughness and detail you put into these tests along with publishing your code -- it is very helpful indeed. I just bought a pair of "NRF24L01+PA+LNA SMA" with regular length antennas on eBay for my autonomous rover which I want to test using your methodology. I think these most closely resemble your "PA1" module. Anyone can tell me what "LNA" in that product description stands for?
jims408 that would be low noise amplifier
***** Thanks!
Very good research and interesting analysis, will be very useful, thanks
Looks like it could be the mesh fences that are causing the signal drops.
Thank you very much for this great video! So much effort put into it, and in such a great environment, love Japan :)
This video was really helpful and inspiring, I decided to order a couple of the shielded PA ones for a project of mine. Thanks!
i love 3d google, i think its opensource 3d buildings which anybody can submit to, new york is a joy to fly around, oh did i mention google earth has a built in flight sim,, a fast jet and a small prop plane, mount st helens is pretty amazing to fly around too....
Wow. Amazing work! Thank you for sharing this very informative video.
great comparison!
I'm looking into extending the range of the pcb ant version, possibly with a simple wire dipole like on RC Rx's. Hoping to get 100m reliably without an SMA antenna.
Hey hey! thanks for cool video.
suggestion, when you show graphs (PPS vs range) in addition to PA2-TX (for example) in legend - I would add a picture of the setup (transmitter with antenna) that would make it easier to follow.
Amazing work !!!! Bravo ...
Watched the whole vid start to finish :) Great stuff. I've been trying to use the PCB antenna versions (very cheap on ebay) to communicate across a 2m hallway, with two doors in the way, receiver placed near a boiler and transmitter in a wiring cabinet near a mains distribution board. It sometimes worked but sometimes didn't, although probably due to the fact I was sending 1 packet every 2 seconds and my expectations were for 0% packet loss. Silly expectations, I now see this!
So thanks to your vid I'll try to get my hands on some shielded, amplified versions and some short antennas. Thanks!
+Mat Smith That sounds like the type of situation that the PCB modules could still cope with. Assuming you are not running from a tiny battery that you want to last for a long time, I would try just blasting out packets as fast as you can, there is really nothing to be gained by sending so infrequently.
+iforce2d Thanks so much! I'm using 8 AA batteries with a 5V switch mode power supply and a 3.3 linear reg for the NRF. I'll whack out the packets like there are no tomorrows and see how that goes!
At 30:58 you talked about Parallel vs Pointing of the Antenna's. Yes Parallel is best since the radiate out the sides, not the tip! At 35:14-- Yes the shorter antenna is best because the shorter antenna is closer to the freq. that is transmitted.
Yes, and I wanted to see how much difference it makes in reality.
Just because the plastic case of the antenna is longer does not mean the active length of the antenna itself is different, it's not the plastic part that does the transmitting :)
Yes and No.
Great work man! Nice results!
You should not be using both ceramic capacitors. Ceramic capacitors reduce high frequency interference from power and you should use a small one like 0.1 uF. For filtering out low frequency noise you should use an electrolytic capacitor at 100 uF. Also regarding 'pointing' antennas you have it backwards - these are not yagi antennas, they are omnidirectional. Your best performance comes when they are both pointing vertically upwards, not perpendicularly at each other.
lol why is both ceramic bad, I've never heard anybody say that. The nRF24L01 datasheet shows an example application using 10nF and 1nF capacitors with 0402 footprint, ie. ceramic. It also says "Mounting a large surface mount capacitor (for example, 4.7µF ceramic) in parallel with the smaller value capacitors is recommended". If you are experiencing better results with some other configuration, maybe you should contact the engineers at NordicSemi and tell them to correct their datasheet.
Regarding antenna direction, what exactly did I get backwards? Reception will be best when the antennas are parallel and 'broadside' to each other and that's what my results show. I never claimed otherwise. Being vertical or not is irrelevant.
Great video, intresting results!
muh1h1 BTW, speaking of antennas, i managed to build my own little 5.8GHz antennas using old wifi antennas i had laying around. didn't build it out of copper, but an old spring i pulled out of an inkjet years ago (that was the only 0.80mm wire i could find in the house). they actually perform wuite well, and since it is spring steal rather than copper, it is quire durable also! :)
best thing about that is the costs though: €0,- :)
muh1h1 heheh good job, you will do well in the zombie apocalypse :)
***** i am just to cheap for this hobby, thats probably also why i initially subscribed to you with your cheapass quadcopter series :)
yesterday i managed to buy 6 brand spanking new 2212 2200KV motors including spinners and screws for about 45€ on ebay :D
btw, do you have any recomendations for small ESCs (preferably 12-18A) which are super cheap? the only really cheap ones i could find were 30A, and thats probably way to big (physicaly) for what i am trying to build...
muh1h1 wow, that's a good price for the motors, are they new? I just bought some small ESCs that will arrive soon, can't really say anything to recommend them yet but they were fairly cheap www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=11429&aff=1150185
***** Yep, new :)
neat, i just audtioned off these:
www.ebay.de/itm/4PCS-2-3S-12AMP-12A-SimonK-firmware-Brushless-ESC-w-BEC-Quadcopter-Multi-copter-/391123561879?pt=LH_DefaultDomain_77&hash=item5b10c7ed97
hope they will be up to the task :)
Also yesterday i bought a new KK 2.1.5 from an ebay auction for 20,26€, this is truly a tight budget for a quad :D
Wow, Thanks for sharing all those infos!!! Thank you very much
Thanks for doing this. Very helpful.
Very very very useful information, thank you !!!
An interesting video.
Being a person that works with radar systems for a living, I'm wondering whether your two dips in signal are related to range as a time base issue, especially as there appears to be some sort of relationship between the two locations?
It takes ~3.333us for a radio wave to propagate 1km, or 300m/us.
May be interesting for a repeat test with a different source location to see if the phenomena is terrain or something related to how the signal is sent?
Salam,
Wow! you have inspired me to build one. I am currently playing with ESP8266. Not as good as you but I think I can grasp the understanding of Nano+nRF24L+motors.
Can I suggest something, could you please try Coanda effect on your rotors to get upthrust. I think cutting ping pong balls to half and then mounting them under the rotors or above may do the trick. I am not sure but I think its a small trick and may prove very power saving if works out.
Holy shit that's some serious range. Well I'm sold I'll spend my whole $2 on those transceivers.
Great nicely done and documented .. it will help me take decisions.. lot of hardwork.. :)
Very well done
Excellent work! You're going to use the short, straight antenna on the quad, but the 3/4 leaf on the transmitter? Or short on both?
Kyle Null Short whip on the quad for sure. I will probably use long whip on the transmitter, not because it's any better, but just because I want to have my other short whip for another quad :)
If you really want to get a serious antenna look up "RP-SMA 2.4GHz 25DBi Yagi Wireless WiFi Antenna". A bit overkill for most projects but if range is the game I'd think this would do it.
Also had a question. I didn't see in the sketches where you used the PowerUp command? This takes it out of low power mode. Unless I read the purpose of that and it doesn't output anything in PowerDown mode. But also says the output power is programmable. I haven't looked through the code to see if they have a function to change that as well. So it may be that you're not using quite all the power you could be. Just a thought.
Also, consider that your mobile receiver is getting jacked up by other users of the 2.4GHz band. You could be close to a WiFi router?
Yes, the path I rode goes along beside houses about 40m away, most of which probably have a wifi router.
I wish i had your knowledge!
This quite an old thread so I'll understand if if there is no answer :-(
Brilliant research work on these radios, extraordinarily thorough data gathering - good work mate!
I've been playing with them for a while now, up to recently it's been sending information about my solar diversion system around the house so I can see what's happening - just fun. Now I've moved on to a weather station project and I want a bit more range. I had been using the PCB and non-shielded versions and have recently bought some of the shielded versions, mine call themselves AS01-ML01 DP5 V3.2. and, for me, they are not directly compatible with the other versions, in my sketches. Whilst the pcb and non-shielded versions worked, the shielded guys did not - same code - same hardware. I do use the adaptor boards and I haven't, as yet, put any caps on the radio boards.
So, as a test, I took your sketches, as a starting point, just changed them a bit so the transmitter was pausing between txs and sending a count and some changing data and the receiver was reporting any records received and serial printing the data that should be changing. Worked great with the pcb and non-shielded versions, not at all with shielded version.
My modified receive function:
void recvData()
{
while ( radio.available() ) {
radio.read(&data, sizeof(PacketData));
packetsRead++;
lastRecvTime = millis();
Serial.print("Got record - packetsRead = ");
Serial.print(packetsRead);
Serial.print(" lon & lat = ");
Serial.print(data.lon);
Serial.print(" ");
Serial.println(data.lat);
}
}
As a tx-er the shielded one gets stuck and doesn't return from radio.write() call.
As a rx-er it passes straight thro' the function above, increasing the packetsRead count and not picking up any data.
The pcb and non-shielded versions work fine.
Questions:
Is the power issue so devastating with the adaptor boards and/or caps, especially when used as a receiver?
Are all three of my shielded radios all broke?
Are there any mods needed in the sketches and/or hardware to accommodate our powerful shielded friends?
As I said before, great work and very useful,
Eric, UK
The software side of things should be compatible regardless of the variant (shielded or not etc). The power on VCC should not exceed 3.6v absolute maximum, or 3.0v if you are using 5v on the signal lines (MISO, MOSI, CLK etc). Signal lines should not exceed 5v. Make sure you always have an antenna connected, especially when transmitting.
One thing you can try to check if the module is alive at all is the radio.printDetails(). If you set something, (eg. radio.setDataRate(RF24_250KBPS) ) then that setting should be accepted and subsequent output from radio.printDetails() should reflect the change you made. If not, nothing else will work and you either have a dud module or some incorrect wiring.
That's a great idea, so I tried it (thanks for your quick reply, by the way)
I've not looked very far into them yet, I will later, but just in case you see anything glaring, here's the three radio.printDetails() from three radios all plugged into the same hardware, running the same sketch. Well in fact the Arduino wasn't changed at all, just powered down and up while the radios were changed.
Thanks for your help, I can see some differences need investigating, from a first glance it looks like the default values used by a nrf24l01 and a nrf24l01+ are different.
1.shielded Power amp - non-working for me
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0xe0e0f0f0e0
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x00
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x00
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = Disabled
PA Power = PA_MIN
2.Non-shielded power amp - working for me
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xe8e8f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x00 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x02
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
3.PCB - working for me
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xe8e8f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x00 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x02
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
It's not that the defaults are different, as I said "If you set something, (eg. radio.setDataRate(RF24_250KBPS) ) then that setting should be accepted and subsequent output from radio.printDetails() should reflect the change you made. If not, nothing else will work and you either have a dud module or some incorrect wiring."
It looks like none of the settings you made are being respected by the shielded module. In every case this has happened to me it has been due to incorrect connections, eg. usually MISO/MOSI backwards. It can't hurt to try using a cap across the GND/VCC pins, but I think that is more likely a fix for transmission problems, not basic communication with the module.
Thanks again for quick reply, the connections do not change between my tests and this is a receiver test, I might just try a cap tho - maybe...
All three of my AS01-etc give the same output, and as you say the data rate has not been accepted, the sketch fragment is:
// Set up radio module
Serial.begin(57600);
printf_begin();
radio.begin();
radio.setDataRate(RF24_250KBPS);
radio.setAutoAck(false);
radio.printDetails();
radio.openReadingPipe(1,pipeIn);
radio.startListening();
I reckon the probability is high that I've got some fake, broken or rejected modules, I'm using library RF24
version=1.3.0
author=TMRh20
Which has always treated me well.
Like banging your head against a brick wall, it's great when you stop, and I think I might just do that - stop that is :-)
You've been an enormous help, thanks very much.
Eric UK
So, last chance saloon - I tried swapping MISO and MOSI, just for fun and it made no difference to the AS01-ML01 , but as you predicted it did make the formally working PCB and non-shielded versions become "faulty" by acting in the same way and refusing to take on any settings. So MISO and MOSI back to where they were, they were correct.
Then, as I was about to give up, I came across this thread :
github.com/nRF24/RF24/issues/182
and tried a suggestion made there by Nickson Yap:
Quote
I then roughly compare Maniacbug's library with TMRh20 and changed TMRh20's RF24.cpp line 44
_SPI.setClockDivider(SPI_CLOCK_DIV2);
Into
_SPI.setClockDivider(SPI_CLOCK_DIV4);
Unquote
And it worked, the radio.printDetails() then reflected the settings made in the sketch both for the AS01-ML01 and the PCB and non-shielded versions.
A test using a a PCB as a transmitter and a AS01-L01 as a receiver worked fine as does a test between an AS01-ML01 as both a transmitter and a receiver.
So, all is now well, by changing _DIV2 to _DIV4 on line 44 of RF24.cpp in the TMRh20 library.
Thought you'd like to know, and thanks for your help and encouragement.
Cheers,
Eric
It would be nice if you integrate the signal strength over distance, to give a clear view on overall performance xD
***** What do you suppose all those graphs are? :) These modules don't have a traditional analog RSSI, the best you can do is measure how many packets you are successfully receiving, which at the end of the day is the only thing that matters anyway.
***** The graphs are visual representation of packets versus distance, haha.
But I'd like to get numbers instead, it's a little hard to compare by eye.
Mind uploading the data u have? Thanks :)
***** It's linked in the description (the .odc file).
Hi iforce2d,
your videos inspired me to build my own quad, and now i am a happy owner since may. i decided to upgrade the RF range, unfortunately i face a spooky problem. this is nRF2401 is with the pigtail cable to SMA antenna. On 2 ProMinis i am running your rangeCheckRx-Tx software, and its working for the PCB Tx-PCB Rx. i switch the Rx to external antenna version its also working fine.
..and no matter what Rx i use, when i attach the external antenna version to the Tx i never get any data packets transferred(cap is soldered to Vcc and GND). i check all the time with radio.printDetails(); to see if it is perfectly initialised, and even in this case i see my settings are set into the RF communication. i have 2x of the external antenna version and the case is the same for both. i was thinking that maybe in Tx mode the high current consumption is the problem, but when i saw your video, you didnot change the circuit besides the nRF changes...can you think of any mistake i made or any further debugs i could do? any help is appreciated :)
+RowleySmith I'm not sure which circuit you're meaning here, but it's not really such a good idea to power the nRF from a pro-mini. In this video and probably (hopefully!) my other videos too, the high power variant of the nRF would be powered by a separate voltage regulator thingy like I showed at 4:50
Nice, thanks for your effort!
Good video. Tnx for sharing ur experiences.
Great video and great analysis. I'd be interested to know how the height of the transmitter and receiver aerials affected range as typically, for R/C model flight, the Tx aerial is not 4m above the ground, more like 1 m (i.e. about waist height), and the receiver typically much higher (up to 100m). Do you have any data that shows range in that situation, or would you expect it to be roughly equivalent?
Thanks, Ian
Thank you for the video!
Very impressive video. As simple as it sounds. I just need to turn on an LED in 4 different locations (inside 4 offices side by side) as a status light for customers waiting. So 1 base unit/Transciever with toggle switch to turn on/off all 4 LEDs and 4 recievers with an LED attached. All powered from a 110v - 5V usb converter. Distance is less than 100 feet. Can you steer me in the right direction of what I would need to make this all work
+Nick Sebring this might help: ruclips.net/video/eVnyPSAefxU/видео.html
Really good video....and long hahaha...
The shielded one can work as a transceiver? Or just as transmitter or receiver?
Thanks for making this videos, they've been really useful to me lately... :D
David Porras Yes, they all work as transceivers. They all have the same chip inside, just different packaging and antenna types.
Got it, thanks! (Y)
You can use aluminium from a coke to wrap around Nrf24L01 unit.
great explanation though , ut should have given a direct data summary brauh
Hi, can you try more antennas?
Helical antenna, dipole antenna and so on.
There are many interesting antennas
Knuth Helekivi I'd like to try this again sometime in a better location, maybe I'll have a few more antennas by then too. Will need more than 1.5km for helical and patch!!
I noticed on your most recent videos (Diatone) that you are not using this radio modules. Can you tell us why you changed to another radio solution and what are the pros and cons of both, maybe you can make a comparison video about it.
Luis Cabral Mainly because I wanted to try a more 'normal' build for a change. The flight controller on the Diatone is not multiwii, so I can't make the nRF integrated yet to do telemetry, and I'm stuck for many days about getting that done in the Cleanflight source code: github.com/cleanflight/cleanflight/issues/1013
The pros of the regular receiver is that you can use it with any compatible transmitter, but only 6-8 analog channels, pro of the nRF is that you can program it to send any kind of digital data in both directions, but you need to also build and program the transmitter.
***** Thanks for your quick reply.
Did you tried this solution ? - www.open-tx.org/radios.html
BRILLIANT !! thank you
this is amazing! . you help me lot
Useful video
Hi again ! Thanks for this great comparison ! I am interested in working with the GT-24 2.4G NRF24L01, do you have any idea of its range and quality ? I haven't been able to find useful information about it :(
Great work, sir! You created a standard for people to look up to! I already have a pair of amplified modules. Any chance I could shield them myself? I have adhesive aluminum tape made for chimney ducts or something. Could that work? Or has it to be a tin box? Does it need to be grounded?
Cutter Slade Yep, making some shielding yourself should work fine. Never tried it myself so I don't know how effective you can make it or what the best material would be, but somebody commented on one of my earlier videos saying he had made a reasonably effective shield from some kind of potato crisps bag.... iirc.
thank you! really useful information!
make a video on nrf24l01 modules with wifi booster amplifier for extending range
You're in Tokyo ? Man you speak English REALLY well.
That 's what I need. Thanks
Try to not use SMPS for RF communication :P Your 3v power supply seems to be a SMPS..
its really amazing video
Interesting, thanks! But can you clarify: when you're not getting the full 308 packets per second, that means the other packets were lost, right? So there's no internal negotiation between the RX and TX to decide a packet rate that still works? I'm thinking that for single-shot signals (as opposed to sending continuous measurements) you need to transmit hundreds of copies of the packet, maybe some thousands, if you want to make sure it gets received.
+renxula It means that there was too much noise for packets to be reliably understood, so yes, I guess you could say they were 'dropped'. No, there is no negotiation between the TX/RX at all because it's a one-way transmission - the TX is a pure transmitter which just sends as fast as it can and never receives anything. This type of transmission is not really suited for single-shot signals. These modules are transceivers though, and can do packet acknowledgement if you change the settings a little, then the TX will know that a packet was received successfully.
This was really interesting video! Thank you. I have a question do you have the wiring diagram you used to wire up the transceiver to the nano with the mini 360 buck??? It looks like you're using the ICSP header pins? And there's no ground connected to the mini 360 buck?? Thanks for your time.
also I have another question, couldn't you use the 3.3v line off of the Nano to control the nRF transceiver? why did you choose to use the Mini Buck??? is there a specific reason to do it with the buck converter?
Well Done! Thank You.
You're great. Thanks!
nice video very usefully information, thanks for sharing all that can I get the excel spreadsheet with the results?
+Luis GCU it's at the 'sketches' link in the description (file is nrf24L01ComparisonResults.odc)
Question re the sketch, and packet timings. Sorry if this is obvious. For each radio.write you are doing (with 7 bytes being sent), you have that radio.available loop in the receiving sketch. The radio.write is in the loop, so you are pumping out packets with only the analogRead providing timing gaps between packets. If you hypothetically removed those analogReads in the sending sketch, would radio.available return true all the time? Basically speaking, is it just the delay caused by the analogRead that is meaning your receiver can actually determine the difference between the end of one packet and the start of another?
+Mat Smith I think theoretically you could get a tiny bit more packet throughput by removing the analogReads, but that would not mean the receiver always has a packet available. The nRF module still requires time to do its work of sending and managing the packet buffers, and it still takes time to transfer the packet content between the arduino and the nRF, and packets will still be dropped in transit depending on the environment. The other thing is, if you're not going to be modifying the data you send there is really not much point sending it at all :) If you had a lot of free time you could probably arrange things so that the the loop time on both ends was exactly the same, and then if you decreased the sending rate enough so that the nRF could get everything done between sends, and you have an extremely noise-free environment then you could perhaps make it so that the receiver would _almost_ always have a packet available whenever it checked. But for most practical purposes there will be a difference in loop time on the sending and receiving sides, and the receiver will need to check if there is a packet available.
What sort of applications are you using these for. I managed to get 10x for $5 from Aliexpress (I didn't realise it was that many). The ones I have are the PCB antenna model. I found that the were terrible with no antenna but with the 8.1cm ethernet wire attached they were very reliable.
+thehittmann1981 I'm flying quadcopters with them.
hi there i have a E10-433MSI1w but i have no idea how to get it to work ,are you aware of them and can you show how to get it going pls note they are 1 watt output good for long range
and thank you so much for all of your content it is very thorough
thanks for sharing this information :D
What do you think about the PA ones with ceramic antennas, claimed to be 1100m. Wonder how they compare between each other.
Thank you!
Here's another source for shielded nRF24L01 modules.
www.electrodragon.com/product/1000-meters-nrf24l01-long-distance-module/
I have a pair but I haven't tested them yet.
I've found switching regulators can really interfere with RF signals. It looks like your wires were long enough to keep the regulator away from the transceivers but you might want to test with some linear regulators sometime.
Thanks for sharing your results. I found your video very interesting.
I would like to ask you if something changes between shielded chip and others.
At the beginning (3:20) of the video you say something like "I think the components are the same". As you do not talk about it again and i am in doubt.
It is exactly the same program this chip or one of the other unshielded? Or something change?
Hmm, i became curious, is that module NRF24L01P with 100 mW power totally compatible with RF24 library like regular NRF24L01 module or not?
Very good job :-)
How did you made the Android program and how did you do to make the android device automatically recognize the arduino AND launch that program ?
+Michel GRIGAUT
Ahemmmm ! Maybe I should have check your links first...
+Michel GRIGAUT it's all a bit foggy in my memory now, but the library that does the interaction with the arduino also lets the device recognize when the arduino is attached. There may be multiple apps on your device that respond to the arduino being connected, if so you will be given the option to choose one of them as the default to use all the time.
+iforce2d
Thanks a lot :-)
What is the camera model you use to record your videos? It has very nice quality.
I use a mobius action camera stuck onto my hat for the outside stuff, or my Galaxy S2 phone for still photos. If you're talking about the indoor stuff, I use a webcam (logitech C910 I think). The parts where I'm showing something on my computer is a screengrab of the screen.
Hi,
i thought about indoor - Logitech c910
Thak you!
I know it super late message :) but nice work.
I had a lot of problems with the NRF24L01 modules using simple Arduino Nano and Mini modules. The 3.3V pins from these, can't sustain the NRF modules and until i put a separate power or used an adapter module, i couldn't get it to work as in your videos.
One big request: Can you please upload somewhere the code and schema for that receiver thingy that you are using for testing and showing visual data of joysticks?
I have the pieces to make one but i don't know the exact pins you used and what code you have to get visual representations of joysticks and received packets.
Thank you in advance.
With all my videos, any code that I thought was relevant will be in the description links. If it's not there, then for a video like this one now four years old, I have no idea where the code is sorry.
There is no visual data or joysticks in this video, I think maybe you are talking about a different video. For that I used the SSD1306 library from adafruit which lets you draw lines and rectangles. But if you just want to check the values, it's much much easier just to print them on the serial monitor.
@@iforce2d Yes, you are correct. I posted in a different page :) i have a lot of videos from you, opened in multiple tabs.
Do you remember how did you connect the LCD together with the NRF24L01 ? You used I2C for display or some software SPI ? Thank you.
wow, thank you man!
"aand anyone is still watching" :D
Question: on every nrf24 transceiver modul (the black ones) I noticed a short between the
GND (outer shielding) and antenna (inner pin) of the SMA connector. Did
you noticed the same?
Wow, I've purchased two of these:
www.icstation.com/nrf24l01-wireless-transceiver-module-antenna-p-2354.html
According to your video their range is even worse than the PCB none antenna ones. How much range, in your opinion, can I get using them both as a Receiver and Transmitter ?
RoyPe'er Their range as a receiver is decent, but yes, as a transmitter it's not much better than the PCB antenna type. Using them both as transmitter and receiver I would expect you could get slightly more range than the PCB-PCB pair, so about 80 meters maybe.
***** Alright, Thanks.
Is there a way to view the data in a presentable format? Thanks!
From your tests, do you think that NRF24/PCB ant could act as a reliable RX, along with the nrf24 PA+LNA as TX?
It looks pretty reliable out to about 500m? Do you know if the PCB ant ver has enough power for the PA+LNA to pick up telemetry from 500m out?
I have flown my quadcopter to about 200m like that, but I think it probably could have gone further. No, the PCB version will not be able to send anything more than about 40m reliably.
Hello from Denmark.
First off all I like ALL your videos. :-)
Next
Do you know about the ESP8266 module, you can programet it with Arduino and its must more power full than Arduino and have build in Wifi maby that can be used to control a quad copter :-)
Yes YOU have me hock on to start building my own TX and a quad copter, thanks for that :-)
+Allan Madsen yes I have seen the ESP8266 modules, they look pretty neat. Ethernet style connections are a bit overkill for applications like this though, and they usually involve latency inducing overheads to get the packets in order, for TCP at least. I wonder if you can do UDP with that module... in any case the nRF does the job just fine and requires no network or handshakes of any kind.
+iforce2d www.esp8266.com/viewtopic.php?p=16461 :-)
Was just thinking all in one, the Wight,and the more power full cpu and a lot of flash and so one.
how can i print the PPS on my computers serial monitor instead of the android app you made...pls help
Hi! great video!!! im also testing this boards, could you share the config of your modules? i cant get more than 20 meters with PCB antenna!
PCB antenna is not great at the best of times. The only thing I can suggest is to put a cap (about 10uf) across the power and ground pins, if you haven't already.
@@iforce2d ok! thaks a lot! if i use lower baudrate do you think i will get better ranges? thanks!
Awesome. Same me hours of time.... Thanks.
What's the vendor and part number for the Clover-Leaf Ant?
Also what Regulator are you using and what app did you use?
goo.gl/WcX4Qc
goo.gl/HP3Pci
Link to source code is in the video description.
Thanks for the Links!
Can you tell how to setup the nexus7? To read de arduino nano?
nice
Can I ask what version Arduino do you have downloaded I am getting some verification errors when I try to upload the code? Thank you and great videos.
+Steven Albright I think it was 1.0.5, although it should not matter. What do you mean by 'verification' errors?
When I go to verify the code it gives an error message, like when I verify the gps code I get a Tiny gps plus does not name a type and the data code gives me the message Error compiling. I have this problem quite a bit not sure what I am doing wrong thought it may have been that I was using a different version of the arduino any help would be appreciated thank you.
+Steven Albright It sounds like you need to add some libraries to your arduino IDE before trying to compile. See this page for some basic first steps in using these radio modules: arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
Thank you I will try that out.
I've been thinking of this combo:
Controller: nrf24l01 + 2W wifi booster + antenna tracking based on packet loss count.
Quad: cloverleaf antenna
The aim is to get to distances of at least 5km, also for FPV to survey mountain area.
I'll need the quad to return to me GPS coordinates and altitude...
So on the quad I might have a 5.8g booster for the FPV too.
What do you think?
Do you think a wifi booster can couple with the nrf24l01?
***** If the two endpoints were not moving, you might actually be able to get 5km with a couple of strongly directional antenna (helical etc, not cloverleaf). Since the quad will of course be moving you can't do that though. So the quad will be carrying a 2W wifi booster? Sounds heavy and power hungry isn't it? You would probably be better off looking into lower frequencies like 1.2Ghz, 433Mhz range for that kind of distance. I think the OpenLRS project does what you want, with modules like this: abusemark.com/store/index.php?main_page=product_info&cPath=5&products_id=43
hmm... reading your post again, you say antenna tracking based on packet count. I don't think that will work if you are using acks or ack payloads, because you would need multiple RF modules on the tracker to sense where the strongest signal is, and they would not both be able to communicate with the quad. If you can send back the GPS location successfully you can just use that to track the quad instead.
*****
Great advice!
I'm trying to keep with the NRF24L01 coz I'm more familiar interfacing it with Arduino...
Also, cloverleaf antennas seem to get larger for lower frequencies...
The 2W wifi booster will be at stationary ground,
Although I did found one 2.5W booster module 4*3cm that might work for the quad.
I might use a stacked biquad antenna for the antenna tracker.
Yes, I guess GPS tracking will work well enough.
I'm checking out OpenLRS now...
***** If you want the quad to send back GPS coordinates, then you'll need a similarly high-powered booster on the quad too.
@@nicksonyap With what did you get the best result in the range you specified?