Home

Awesome

About 433Utils

433Utils is a collection of code and documentation designed to assist you in the connection and usage of RF 433MHz transmit and receive modules to/with your Arduino and Rapberry Pi.

It consists of two main sections- Arduino sketches and Raspberry Pi command line utilities. You'll find those in appropriately named folders.

Despite the name, 433Utils also works with 315MHz transmit and receive modules (tested).

Requirements

  1. An Arduino (two is ideal)
  2. A Raspberry Pi
  3. The git commandline tool, on both your Arduino IDE machine and your RPi
  4. RF 433MHz modules; a transmitter and receiver
  5. A Ninja Block and account

Installation

Arduino_Sketches

Place the Sketches in your normal Arduino Sketches location. Install any required libraries:

  1. Servo motor library (Should be included in the Arduino IDE)
  2. Arduino rc_switch library

RPi_utils

From your RPi, clone this archive:

  1. git clone --recursive git://github.com/ninjablocks/433Utils.git (recursive ensure that the rc-switch submodule gets populated which is needed by RPi_utils)

  2. cd 433Utils/RPi_utils

  3. (As per the original rc_switch distribution) Follow the instructions to install the wiringpi library. After that you can compile the example programs by executing make.

Usage

send

sudo ./send systemCode unitCode command

This command is unaltered from the original rc_switch distribution.

codesend

sudo ./codesend decimalcode

This command uses a single Ninja Blocks compatible decimal code. Sniff out codes using the RF_Sniffer.ino Arduino sketch, included in this distribution.

You can use codesend to control the wireless servo on your Arduino. (The sketch is Servo_Receive_Demo.ino)

I've implemented the most bare-bones of controls here. Try:

sudo ./codesend 500000 # to move the servo up

sudo ./codesend 500001 # to move the servo down

sudo ./codesend 500002 # to move the servo left

sudo ./codesend 500003 # to move the servo right

sudo ./codesend 500004 # to move the servo home

Issues

Due to limitiations in the implementation of interrupt-driven routines in the underlying RCSwitch library, it is currently not possible to use both the send and receive functionality within the one program.