author
1Instructables13,233Views6CommentsSerbia
The company's core competencies are in embedded system programming, Android platform programming, development and implementation of complex embedded systems.

Achievements

10K+ Views Earned a bronze medal
  • How to Use the Nordic NRF905 Transceiver With a Raspberry Pi

    Hello,Unfortunately, the nRF905 chip is quite limited when it comes to configurability and reading the raw data is not possible. I'm guessing this is what you mean by "I just need to read a signal".Poking around with configuration parameters and hoping to catch something does not really work great with RF. You either need to know what to expect, or you need a more sophisticated receiver which would be able to give you the raw data, which you can then analyze and use the results to configure a simple receiver.Even if you would know what the sensor transmits, it might still not be possible to configure the nRF905 chip to receive data from it, e.g. different data rate, modulation, channel bandwidth...

    Hello,Unfortunately, the nRF905 chip is quite limited when it comes to configurability and reading the raw data is not possible. I'm guessing this is what you mean by "I just need to read a signal".Poking around with configuration parameters and hoping to catch something does not really work great with RF. You either need to know what to expect, or you need a more sophisticated receiver which would be able to give you the raw data, which you can then analyze and use the results to configure a simple receiver.Even if you would know what the sensor transmits, it might still not be possible to configure the nRF905 chip to receive data from it, e.g. different data rate, modulation, channel bandwidth...

    Hey witali, please see the answer above :)

    View Instructable »
  • How to use the Nordic nRF905 Transceiver with a Raspberry Pi

    Hi witali! Sorry for the late reply.In order for a packet to be detected, it needs to have an easily distinguishable structure. Most RF chips do this by first transmitting a 0101010101... sequence, followed by what is usually called address bytes or a sync word, then the actual payload (32 bytes) and finally a checksum.On the transmitting side, these address bytes are set with the TX address in this chip.On the receiving side, the chip initially listens for the 0101010101... sequence, followed by the RX address. When such a sequence is detected, whatever follows is then treated as the payload and verified against the checksum. If all of this succeeds, a DR (data ready) interrupt is signalled by the nRF905 chip so that the host (Raspberry Pi in our case) can read out the payload from the...

    see more »

    Hi witali! Sorry for the late reply.In order for a packet to be detected, it needs to have an easily distinguishable structure. Most RF chips do this by first transmitting a 0101010101... sequence, followed by what is usually called address bytes or a sync word, then the actual payload (32 bytes) and finally a checksum.On the transmitting side, these address bytes are set with the TX address in this chip.On the receiving side, the chip initially listens for the 0101010101... sequence, followed by the RX address. When such a sequence is detected, whatever follows is then treated as the payload and verified against the checksum. If all of this succeeds, a DR (data ready) interrupt is signalled by the nRF905 chip so that the host (Raspberry Pi in our case) can read out the payload from the buffer.In order for the two devices to be able to communicate, these address bytes need to match. At least TX on the 1st device with RX on the 2nd and vice versa.If you have a very simple network (e.g. only 2 devices) and don't want to complicate your life, you can set both TX and RX addresses on all devices to be the same. This could become problematic in a larger network, because every device would receive everything. In order to avoid this, you can group devices by matching TX and RX address pairs.The inline resistor is just a safety. The DR pin is an output from the nRF905 and, depending on what exactly you have done before loading the driver, your GPIO on the Raspberry Pi side could also act as an output (most GPIOs act as inputs when the Raspberry Pi is powered on, unless you reconfigure them). If both sides act as outputs and they are set to different levels (one to 0V, the other to 3.3V), the energy produced by the current flowing between them would need to go somewhere. With the resistor in place, it would get converted to thermal energy. Without the resistor, there is a chance that one of the outputs would burn out.One more thing to check is whether the crystal on your PTR8000+ module is also 16.000MHz. If not, the line `nrf905_spi_w_config(spi, 9, 0xDF);` in the code is wrong and would need to be changed.Also, the antenna might be made for a different frequency range than the one you are trying to use (433MHz, 868MHz and 915MHz are common, depending on where you live).Some debug info is available if you execute `dmesg` (or `dmesg --follow` if you want to show all new messages as they arrive). If you need more output, you are free to add `pr_*` or `dev_*` calls yourself.Good luck :)

    View Instructable »
  • How to use the Nordic nRF905 Transceiver with a Raspberry Pi

    Hello tWilhelmWeiter. Can you describe how you are sending and receiving?

    View Instructable »
    • How to use the Nordic nRF905 Transceiver with a Raspberry Pi
      1,201 views
      27 favorites
      4 comments
  • How to use the Nordic nRF905 Transceiver with a Raspberry Pi

    It can indeed be turned into a spy toy. The beauty of this project is that the applications are vast. We can't wait to see what people will use this for :)

    Hey DonnH1. Thanks for taking an interest in this project :)The range depends on the range of the antennas, as well as the quality of the signal that your project would require. You can always just attach a stronger antenna since the module uses a standard SMA connector. Our tests between a pair of these with the antenna that comes with the module were done at a range of about 4-5 meters and we experienced no packet loss.

    View Instructable »