out of the radio module data sheets, I guess I should learn some radio basics first, but how?
I’ve been trying to search the net for tutorials or something, but I don’t really even know what that sort of
technology is really called. What I think I need is the basic theory and terminology, like ‘noise figure’ or
‘fading margin’.
The point is to learn about the radios, not to get away with it by just downloading a ready-made application
or library. (I did, however, download this: https://github.com/LowPowerLab/RFM69 for reading.)
So does anyone know good links or even googling phrases?
not exactly that difficult
first item
you will probably need to add correct lengths of wire as aerials to improve range, maybe not for 2-3ft(
)
after that essentially its connecting arduino uart to tx, rx to another arduino’s uart
stephen
not exactly that difficult
first item
you will probably need to add correct lengths of wire as aerials to improve range, maybe not for 2-3ft(
)
after that essentially its connecting arduino uart to tx, rx to another arduino’s uart
stephen
after that essentially its connecting arduino uart to tx, rx to another arduino’s uart
I’m planning to make a small (maybe 3 – 6 nodes) network.
And usually the processor interface for those cheap modules seems to be SPI.
But for dongles it’s UART (USB-UART).
FDA + BRF/2 =< 500kHz
FDA = frequency deviation, FSK
BRF = bit rate, FSK
And BRF max = 300kbps.
There are some other modules that works better.
If you need a network maybe you can consider NRF24 based modules.
“FSK, GFSK, MSK, GMSK and OOK modulations”
“Packet engine with CRC-16, AES-128, 66-byte FIFO Built-in temperature sensor”
http://www.hoperf.com/rf_transceiver/mo … M69HW.html
I also ordered CC1101-based modules, but they have not arrived yet ( € 3,32 / piece, US $3.50 / piece).
“The maximum rate of 500kbps, support 2-FSK, GFSK and MSK modulation.”
“Built-in hardware CRC error detection, and address control”
“Separate 64-byte RX and TX data FIFO “
https://www.aliexpress.com/item/2-pcs-C … 0.0.dXdbgJ
And this is the dongle I mentioned earlier. (Not very good idea – it can’t be used for sending binary data.)
https://www.aliexpress.com/item/433Mhz- … 42842.html
Not quite that simple even if cheap.
Oh, and both modules use SPI as the processor interface.
but I had to hack an AVR library to use it, and the result was not pretty;-)
I like nRf905 as it us multi-band, not just 433MHz, but I think it can only transfer 32 bytes at a time, as its intended to communicate with other nRF905 devices using its own protocol.
Ps. They are less than $5 on aliexpress.
I guess RFM96 is enough for now even if, with the on-chip AES, the message can be only 48 bytes
(if address filtering is used – and I intend to use it at some point).
It can also deal with unlimited length messages, but some features are not available then.
Anyway, I seem to be learning a bit by reading the manual over and over, but I guess I’d still
benefit from some theory/practical info.
Another good source for understanding modern RF transceivers can be found in some Semtech RF chip datasheets, such as the SX1232 (http://www.semtech.com/images/datasheet … df#page=18, look at section 3).
https://lowpowerlab.com/forum/rf-range- … es-or-not/
They copied a large part of Semtech’s datasheet, that’s why it looks very similar.
But the section 3 in the Semtech datasheet is really nice to understand how a modern RF transceiver really works by following the data path.
Like SX1231H has restriction Fdev + (BR/2) <= 250 kHz, but for RFM69 it must be less than 500kHz
Also for SX1231H:
Note
no constraint applies to the modulation index of the transmitter, but the frequency deviation must be set between
600 Hz and 200 kHz
and for RFM69 the frequency deviation must exceed 600 Hz.
But the SX1231H data sheet seems to have descriptions that are not there in RFM69 data sheet. ![]()
Like SX1231H has restriction Fdev + (BR/2) <= 250 kHz, but for RFM69 it must be less than 500kHz
Also for SX1231H:
Note
no constraint applies to the modulation index of the transmitter, but the frequency deviation must be set between
600 Hz and 200 kHz
and for RFM69 the frequency deviation must exceed 600 Hz.
But the SX1231H data sheet seems to have descriptions that are not there in RFM69 data sheet. ![]()
Like SX1231H has restriction Fdev + (BR/2) <= 250 kHz, but for RFM69 it must be less than 500kHz
Also for SX1231H:
Note
no constraint applies to the modulation index of the transmitter, but the frequency deviation must be set between
600 Hz and 200 kHz
and for RFM69 the frequency deviation must exceed 600 Hz.
But the SX1231H data sheet seems to have descriptions that are not there in RFM69 data sheet. ![]()
BTW, it looks like other RFM chips are also re-packaged Semtech chips, but those seems to be “accepted” copies, as Semtech is listing Hoperf (RFM69 manufacturer) as one of their FSK parners:
http://www.semtech.com/wireless-rf/wireless-solutions/
http://edge.rit.edu/edge/P09141/public/FSK.pdf
And another one – especially for RFM69 (and maybe for SX1231H too):
https://lowpowerlab.com/forum/rf-range- … ith-rfm69/
https://lowpowerlab.com/forum/rf-range- … es-or-not/
[RogerClark – Thu Mar 16, 2017 9:06 pm] –
nRF905 is another optionbut I had to hack an AVR library to use it, and the result was not pretty;-)
Hi Roger,
can you share the hacked nRF905 code (even if it is not pretty)? I am interested to test it, I have a project to control my home ventilation system which uses a protocol based on this chip.
I replied to the GitHub issue before I saw this.
I will find the code and email it to you ( as admin I can find the email address you registered with)
But I apologise for the quality of the code, as it was just a quick hack to get it to work.
And, as I said on GitHub, that “library” is not really a library, it’s just a collection of functions, so I think I just extracted the functions I needed and put modified versions of them into my own file
But if someone else is in the situation I was when I started this thread, the probably most important things are these:
- 0.5 <= 2*Fdev/BR <= 10 // modulation depth
- Bitrate < 2*RXBW // oversampling rule
- BW = 2*FDEV + BR <==> RXBW >= FDEV + (BR/2) // Carson’s rule
Fdev is the (G)FSK frequency deviaton
BR is the air bit rate
BW is the bandwidth used (actually about 98% of the energy is within BW)
RXBW is the receive filter bandwidth
Note that Fdev and RXBW are one-sided.
In (G)FSK, “1”s and “0”s are sent using different frequency. The other is Fcarrier – Fdev, the other is Fcarrier + Fdev.
Also the RXBW is one-sided. The whole receive band is from Fcarrier – RXBW to Fcarrier + RXBW.
To receive well the BW needs to fit inside the Fcarrier +/- RXBW.

![[Pending Enhancement] RTC values resetting](https://sparklogic.ru/wp-content/uploads/2019/11/nucleo-l476rg-zestaw-startowy-z-mikrokontrolerem-z-rodziny-stm32-stm32l476-90x90.jpg)