API Documentation

Radio

class RFM69.Radio(freqBand, nodeID, networkID=100, **kwargs)

RFM69 Radio interface for the Raspberry PI.

An RFM69 module is expected to be connected to the SPI interface of the Raspberry Pi. The class is as a context manager so you can instantiate it using the ‘with’ keyword.

Parameters:
  • freqBand – Frequency band of radio - 315MHz, 868Mhz, 433MHz or 915MHz.

  • nodeID (int) – The node ID of this device.

  • networkID (int) – The network ID

Keyword Arguments:
  • auto_acknowledge (bool) – Automatically send acknowledgements

  • isHighPower (bool) – Is this a high power radio model

  • power (int) – Power level - a percentage in range 10 to 100.

  • use_board_pin_numbers (bool) – Use BOARD (not BCM) pin numbers. Defaults to True.

  • interruptPin (int) – Pin number of interrupt pin. This is a pin index not a GPIO number.

  • resetPin (int) – Pin number of reset pin. This is a pin index not a GPIO number.

  • spiBus (int) – SPI bus number.

  • spiDevice (int) – SPI device number.

  • promiscuousMode (bool) – Listen to all messages not just those addressed to this node ID.

  • enableATC (bool) – Enable ATC mode. Defaults to False.

  • encryptionKey (str) – 16 character encryption key.

  • verbose (bool) – Verbose mode - Activates logging to console.

__init__(freqBand, nodeID, networkID=100, **kwargs)
begin_receive()

Begin listening for packets

broadcast(buff='')

Broadcast a message to network

Parameters:

buff (str) – Message buffer to send

calibrate_radio()

Calibrate the internal RC oscillator for use in wide temperature variations.

See RFM69 datasheet section [4.3.5. RC Timer Accuracy] for more information.

get_frequency_in_Hz()

Get the radio frequency in Hertz

get_packet(block=True, timeout=None)

Gets a single packet (thread-safe)

Parameters:
  • block (bool) – Block until a packet is available

  • timeout (int) – Time to wait if blocking. Set to None to wait forever

Returns:

The oldest packet received if available, or None if no packet is available

Return type:

Packet

get_packets()

Get newly received packets.

Returns:

Returns a list of RFM69.Packet objects.

Return type:

list

has_received_packet()

Check if packet received

Returns:

True if packet has been received

Return type:

bool

listen_mode_send_burst(toAddress, buff)

Send a message to nodes in listen mode as a burst

Parameters:
  • toAddress (int) – Recipient node’s ID

  • buff (str) – Message buffer to send

listen_mode_set_durations(rxDuration, idleDuration)

Set the duty cycle for listen mode

The values used may be slightly different to accomodate what is allowed by the radio. This function returns the actual values used.

Parameters:
  • rxDuration (int) – number of microseconds to be in receive mode

  • idleDuration (int) – number of microseconds to be sleeping

Returns:

the actual (rxDuration, idleDuration) used

Return type:

(int, int)

num_packets()

Returns the number of received packets

Returns:

Number of packets in the received queue

Return type:

int

read_registers()

Get all register values.

Returns:

Register values

Return type:

list

read_temperature(calFactor=0)

Read the temperature of the radios CMOS chip.

Parameters:

calFactor – Additional correction to corrects the slope, rising temp = rising val

Returns:

Temperature in centigrade

Return type:

int

send(toAddress, buff='', **kwargs)

Send a message

Parameters:
  • toAddress (int) – Recipient node’s ID

  • buff (str) – Message buffer to send

Keyword Arguments:
  • attempts (int) – Number of attempts

  • wait (int) – Milliseconds to wait for acknowledgement

  • require_ack (bool) – Require Acknowledgement. If Attempts > 1 this is auto set to True.

Returns:

If acknowledgement received or None is no acknowledgement requested

Return type:

bool

send_ack(toAddress, buff=[])

Send an acknowledgement packet

Parameters:

toAddress (int) – Recipient node’s ID

set_frequency(FRF)

Set the radio frequency

set_frequency_in_Hz(frequency_in_Hz)

Set the radio frequency in Hertz

Parameters:

frequency_in_Hz (int) – Value between 315000000 to 915000000 Hz.

set_network(network_id)

Set the network ID (sync)

Parameters:

network_id (int) – Value between 1 and 254.

set_power_level(percent)

Set the transmit power level

Parameters:

percent (int) – Value between 0 and 100.

sleep()

Put the radio into sleep mode

Packet

class RFM69.Packet(receiver, sender, RSSI, data)

Object to represent received packet. Created internally and returned by radio when getPackets() is called.

Parameters:
  • receiver (int) – Node ID of receiver

  • sender (int) – Node ID of sender

  • RSSI (int) – Received Signal Strength Indicator i.e. the power present in a received radio signal

  • data (list) – Raw transmitted data

__init__(receiver, sender, RSSI, data)
property data_string

Returns the data as a string

to_dict(dateFormat=None)

Returns a dictionary representation of the class data