433Mhz RF signal decode using Audio + JavaScript

Posted on
  • Just had a thought - I know there are a few things (like Ninja blocks) that will receive 433Mhz radio, but I think pretty much all of them so far use an Arduino or quite a bit of extra hardware...

    As much as I'd like to say 'use Espruino', until I make some more optimisations it's going to struggle to decode several different radio protocols at once, and then once you've done that you'll probably still want to communicate with a PC/server at some point in order to stick everything online.

    What if we just had a 433Mhz receiver and stuck it into a PC using the audio jack? Looks like someone has done this before

    but using Python, and only for his own radio standard.

    What if I just had a Git Repo which used the same kind of code I'd make for the Espruino+Audio comms? We could then make a whole selection of different radio decoders (remote control sockets, LighwaveRF, doorbells, weather stations, electricity meters, oil level monitors, Espruinos, etc) that worked together.

    Maybe later we can run it all on Espruino, but for now I'd just love to be able to put a bunch of really cheap home-made sensors around the house. I already have a PC that runs all the time (as I'd imagine a few of you do), and sticking an RF receiver into the audio jack of it would cost about £5.

    Is anyone interested in working on this? I could come up with a very basic framework that grabbed the audio, converted it to a stream of bit lengths, and then pushed it through some decoders - it'd just be up to you to write decoders for the devices that you have (or make!)...

  • Just to add that there's a node module here for something called RFXCOM but I think that module is just an Arduino in a box - all the decoder logic is presumably closed source.

    Also there is a library for the Pi that appears to be able to use a receiver connected to the Pi's IO directly (via WiringPi). I think someone posted this (or something similar) before, but we thought that it needed an Arduino - it seems it doesn't! Pretty impressive as I really thought this kind of thing would be hard on a Pi.

    It looks like it doesn't decode very much, but it could be another cheap way to get data in.

    So does anyone know of a nice collection of RF decoders (in any language) - in a decent one-decoder-per-file form? Most of the stuff i've seen so far seems to be really nasty... If there isn't something then it seems like a good project - especially as it could just bridge everything to MQTT.

    edit: And after a bit more looking...

    Protocol analyser: http://wiki.nethome.nu/doku.php/analyzer­/start

    List of decoders (in Java): https://github.com/NetHome/Coders/tree/m­aster/src/main/java/nu/nethome/coders/de­coders

    Looks nice. It's Java, is part of http://wiki.nethome.nu/doku.php, and it can also use audio as input: http://wiki.nethome.nu/doku.php/homehw

    Oh well :) It'd be nice to use with Espruino though.

  • I actually had a play with this last night, and I've now got a really nice setup - a 433Mhz receiver, 2 resistors, a USB plug and an audio jack.

    I've also got a webpage that will decode signals from the mains socket remote control and an 'Owl' electricity monitor. When I get it a bit more polished (hopefully with the ability to post data to something like Xively) I'll post it up on GitHub.

    Personally I think it's a really neat solution. Maybe £3 in parts (and no software installation) and you can get all your 433Mhz wireless sensors online - and then maybe you'll decide you want to add some Espruino-based sensors too :)

  • Now online:

    https://github.com/gfwilliams/RadioRecei­ver

    Seems to be doing a pretty good job of reading my OWL electricity monitor - shame it can't be hosted on GitHub right now though (as I don't want to publish my Xively API key!).

    It'd be great if someone wanted to contribute other decoders - I'll have to make an Espruino library and matching decoder at some point, although @DrAzzy has already done half the work with his protocol.

  • Oh neat.

    This will be really handy for my development efforts, for sure. I'm planning to do a bit of work trying to refine my protocol in the near future - things like changing the high/low time for bits, etc, to see if I can improve reliability of the transmission.

  • Very elegant way to do it!

    I was recently researching using a cheap SDR dongle for decoding 433 and came across a tool which specifically does that with various protocol support. Example:

    http://goughlui.com/2013/12/20/rtl-sdr-4­33-92mhz-askook-decoding-of-various-devi­ces-with-rtl_433/

    It also has a feature to analyse unknown protocols.

    As an aside some people have used SDR with GNU Radio to process 433 into audio and use Audacity to view the waveform: http://www.kukk.org/blog/sdr/messing-wit­h-433mhz-equipment/

    Doesn't beat a couple of quids worth of components and a bit of JS in a web browser though!

  • Yes, the SDR dongles look pretty cool. With a bit of work they could probably give you much better reception than the basic eBay dongles too... Probably uses a bit more horsepower to decode though!

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

433Mhz RF signal decode using Audio + JavaScript

Posted by Avatar for Gordon @Gordon

Actions