User Tools

Site Tools


digispark:tutorials:pronrf

This is an old revision of the document!


This page is a work in progress.

Progress on reverse engineering the Pro nRF Shield so far:

Pins:

Sketchs:

You'll need two Digispark Pros with nRF modules to execute these sketches. Select one Digispark to be the sender and load this code:

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

RF24 radio(9,12);
const int LED = 1;

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The role of the current running sketch
role_e role = role_pong_back;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT);
  
  digitalWrite(LED, LOW);
  radio.begin();
  radio.setRetries(15, 15);
  radio.openWritingPipe(pipes[1]);
  digitalWrite(LED, HIGH);
}

void loop() {
  unsigned long value = 2000;
  bool ok = radio.write(&value, sizeof(unsigned long));
  
  if(ok) {
    digitalWrite(LED, LOW);
    delay(2000);
    digitalWrite(LED, HIGH);
  }
}

The other Digispark should be the receiver. Upload this code:

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

RF24 radio(9,12);
const int LED = 1;

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The role of the current running sketch
role_e role = role_pong_back;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT);
  
  digitalWrite(LED, LOW);
  radio.begin();
  radio.setRetries(15, 15);
  radio.openReadingPipe(1, pipes[1]);
  radio.startListening();
  digitalWrite(LED, HIGH);
}

void loop() {
  if(radio.available()) {
    unsigned long value;
    bool done = false;
    while(!done) {
      done = radio.read(&value, sizeof(unsigned long));
      delay(20);
    }
    
    digitalWrite(LED, LOW);
    delay(1000);
    digitalWrite(LED, HIGH);
  }
}

Now, when both units are powered up the LEDs on both should start blinking. If either is unplugged then the LED on the other will revert to solid on.

digispark/tutorials/pronrf.1416888073.txt.gz · Last modified: 2014/11/24 20:01 by netguy204