RFM69 breakout with MKR1000

I want to connect an RFM69 breakout board to a MKR1000 as follows:

  • - pin 8 - I/MOSI
  • - pin 9 - C/SCK
  • - pin 10 - O/MISO
  • - pin 2 - S/NSS
  • - pin 1 - 0/DIO0
  • If I were to use the Arduino library referenced in the Sparkfun hookup guide, would it simply be a matter of editing the defines RF69_IRQ_PIN and RF69_IRQ_NUM in RFM69.h, using the number returned by digitalPinToInterrupt(1) for the latter? Thanks!

    I guess I should also ask the larger question since I’m new to robotics: would the RFM69 breakout be suitable for intra-robot communication? I’m building a robot with a head that can rotate 360 degrees using a stepper. I’m thinking of putting some simple actuators and/or sensors on the head (and a MKR Zero + LiPo), but the central microcontroller (a MKR1000) is on the body. Has anyone used wireless to connect two parts of a robot that are inconvenient to hardwire? Or is there a better solution to this kind of problem?

    Hi jameslo and thanks for your question.

    We’ve not tried the RFM69 on a MKR1000 so I’m not sure it would work with our stock code and library. If it doesn’t, you may need to do a little bit of modifying to get it working.

    That being said, if you’re only needing to get a few signals from the fixed portion of your robot to a rotating part, a lower tech solution like some [slip rings might be a lot easier to work with. You wouldn’t need to do any programming at all for those and the rotating porting of your robot could spin all day and the slip rings wouldn’t care a bit.

    Wireless would be fun but it’s more complex to implement and the simpler solution usually is a lot more reliable.](https://www.sparkfun.com/products/13064)

    Thanks for letting me know about those slip rings, but I’d have to rebuild my robot head in order to use one. Even if I hadn’t directly driven the head turntable (the motor is right in the middle), the bearing I used is only 1/2" in diameter–not even wide enough for the slip ring’s body. Everything’s made of off-the-shelf Actobotics parts, so it would take a little extra planning and custom metal work to use these slip rings. But it’s good to know they’re available for the future.

    I’m reporting back with my experience in case it’s helpful to someone. I’ve gotten the example code in the hookup guide to run on a MKR 1000, MKR ZERO, and a Due. If you want to use non-standard pins for S/NSS and 0/DIO0, you just need to pass them to the RFM69 constructor, e.g.

    RFM69 radio(2, 1);
    

    assigns pins 2 and 1 to S/NSS and 0/DIO0 respectively. Just make sure that the pin you assign for 0/DIO0 can support external interrupts on your particular processor.

    Disregard what I wrote in my initial post about changing some #defines. I was looking at the version of the library in Sparkfun’s repository, the one that contains the example code, and that version is out of date. Use the Arduino IDE to find and install the latest version of the LowPowerLab library.

    There are a few extra considerations when using a Due. First of all, the SPI signals only show up on the 6 pin male header on the middle of the board, not on any of the edge female headers despite what at least one pinout diagram indicates. Secondly, using pin 1 for DIO0 interferes with the programming port and causes a “Send auto-baud/No device found” error when you try to upload your sketch. I switched to pin 3.