2
\$\begingroup\$

How do I receive data with my stm32f4 board with a classic 433 Mhz receiver?

Arduino and Raspberry have their libraries to do such a thing. Do I have to implement it myself? If yes, how do I do that? My guess is to start a timer at 433 Mhz and read the value from the data pin in the interrupt method.

\$\endgroup\$
  • \$\begingroup\$ You won't run a STM32 timer at 433MHz, that's for sure. But that's OK, the output from the receiver will be relatively low bandwidth. What you have to do to decode it depends on how the transmitter encoded it, so that's the first place to look. \$\endgroup\$ – Brian Drummond Nov 23 '15 at 10:47
  • \$\begingroup\$ AM or FM transmission? \$\endgroup\$ – Andy aka Nov 23 '15 at 14:14
3
\$\begingroup\$

The classic 433MHz receiver modules that are commonly available for low prices online are designed to detect amplitude modulation of a 433MHz carrier frequency. The output of the receiver will be a waveform that is the detected modulation envelope of the received signal. The bandwidth of the modulation envelope of these systems is typically 1000 to 2000 Hz. As such you will be able to receive the data at on the order of 500 to 1000 baud (bits per second) if some type of reliable modulation such as Manchester encoding is used.

I have implemented transmitter and receiver technology using these low cost modules on microcontrollers using Manchester Encoding at a 1KHz clocking rate and achieved reliable 500 bits/second transmissions over distances up to about 350 feet line of sight in an open office building. The transmitter algorithm uses a periodic 1 msec rate interrupt to run a state machine to toggle an output pin to the transmitter module. The receiver module connects to an MCU that has an interrupt capability to generate an interrupt on either the rising or falling edge of the modulation envelope signal. In the MCU interrupt routine a timer is always started to measure the time duration to the next interrupt. The next interrupt processes the pulse width of the previous interrupt and then runs through a decoding state machine to pull actual incoming data out of the Manchester data stream.

\$\endgroup\$
  • \$\begingroup\$ I think Michael's answer here (electronics.stackexchange.com/questions/173170/…) is also good information to understanding stuff. \$\endgroup\$ – Andy aka Nov 23 '15 at 11:51
  • \$\begingroup\$ Thanks @Andyaka - I vaguely remembered having posted about my 433MHz experience at a prior time. \$\endgroup\$ – Michael Karas Nov 23 '15 at 16:02
  • \$\begingroup\$ Wow, more complicated than I first thought. I guess I have to do some researches, thank you! \$\endgroup\$ – user3463958 Nov 24 '15 at 7:53
  • \$\begingroup\$ On the other hand -> Is there no simple way to connect such a receiver to a stm32 without digging too deep in theory? \$\endgroup\$ – user3463958 Nov 24 '15 at 8:06

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.