Short Length Of Wire Turns STM32 Microcontroller Into Good-enough Wireless UART Blaster

Hackaday regular [befinitiv] wrote into the tip line to let us know about a hack you might enjoy, wireless UART output from a bare STM32 microcontroller. Desiring the full printf debugging experience, but constrained both by available space and expense, [befinitiv] was inspired to improvise by a similar hack that used the STM32 to send Morse code over standard FM frequencies.

In this case, [befinitiv]’s solution is both more useful and slightly more legal, as the software uses the 27 MHz ISM band to blast out ASK modulated serial data through a simple wire antenna attached to one of the microcontroller’s pins. The broadcast can then be picked up by an RTL-SDR receiver and interpreted back into a stream of data by GNU Radio.

The software for the STM32 and the GNU Radio Companion graph are both available on Bitbucket. The blog post goes into some detail explaining how the transmitter works and what all the GNU Radio components are doing to claw the serial data back from the ether.

[cover image cc by-sa licensed by Adam Greig, randomskk on Flickr]

22 thoughts on “Short Length Of Wire Turns STM32 Microcontroller Into Good-enough Wireless UART Blaster

  1. Hjmm right up my alley circa mid 1990’s then again 2000 to 2005, thanks :-) Nice idea, if it can go through a comb and do higher pocsag accepted frequencies would be great as I have heaps of those pagers, though pocsag can work at lower just need to change the pager front end RF board. Most of the good Chinese pagers were dual board for that reason. Here’s the frequency spread and info on pocsag on this link https://en.wikipedia.org/wiki/POCSAG

          1. Hi, think you expected to reply to onebiozz instead of me, I’m still looking for suitable minimal hardware not relying on harmonics though as low as 27MHz up to 130 MHz or so, think I have a way around it of sorts but, sidetracked again with other tech stuff or the delights of wimmin and whine – iow pick yer poison ;-)

      1. Thanks, I recall amateur attempts early 2000’s near where I lived few years ago adjacent to light industrial area used ~430MHz Maxon transmitters with various good quality Chinese pagers and Intelpage terminals at89s53 Atmel based qwerty entry terminal for two way comms between homes in built-up areas no more than 500m or so apart. DAPnet looks better resourced as two way in Germany mostly, will be looking at tech issues for minimal hardware. Digital voice (MMdvm) in another market. I’m focusing on one way comms on LCD pagers and also using large stock of wide frequency range pagers for short range data reporting, cheers.

    1. Yes good point, square to sine would be good there, should be able to handle +-4.5KHz FM as long as it’s short range though authorities won’t be concerned such as on farms etc in Australia, we went through that early noughties.
      Btw. Web site search on manufacturer site bit one dimensional… Where is the stm32 cross reference select for guide or the simple table which lists all stm32 devices their packages as well eg with USB and PLL such as suitable to investigate low end transmit short range to legacy pagers, quick pick type array/table select or even package “smallest” :-) etc ?
      There is only this with the x-reference grayed out :-(
      https://www.st.com/content/st_com/en/search.html#q=Stm32%20selector%20guide%20usb-t=products-page=1

    2. pretty sure an RF square wave is guaranteed to have out of band harmonics. i think we’re saved only by the fact that anyone doing that would be too cheap to attach an amplifier, or use an antenna more effective than a small length of haphazardly measured wire.

    3. You are just stupid. Having some fun is fine, but messing with emergency services is REALLY not. Its because people like you that don’t respect anything that hackers and thinkerers have such a bad image.

  2. > Desiring the full printf debugging experience, but constrained both by available space and expense

    The article itself doesn’t mention printf() at all. It’s about replacing a UART with a wireless transmitter. The source code even uses sprintf().

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.