Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Feature Requests
  3. Please add a guide for how to connect use the RFM69(H)W

Please add a guide for how to connect use the RFM69(H)W

Scheduled Pinned Locked Moved Feature Requests
16 Posts 5 Posters 8.3k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • carlierdC Offline
    carlierdC Offline
    carlierd
    wrote on last edited by
    #6

    Hello,

    I think I can do it but not before end of February ...

    David.

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by hek
      #7

      Moteino should work out of the box with the dev-branch. Think it defaults to its pin-wiring.

      Not sure about the Moteino-mega though. Haven't got that one.

      alexsh1A 1 Reply Last reply
      0
      • L Offline
        L Offline
        lafleur
        wrote on last edited by
        #8

        The fix for the long term, is radio abstraction...

        ie: radio = rfm69c, or radio = rfm69w, or radio = rfm69hw, or radio = nRF24 or radio = xyz

        with some layer of abstraction for radio options like the ones below...

        radio.set_freq= 912650000 ( this could imply the band also)
        radio.set_band= 915MHZ
        radio.set_channel = 72

        #define MY_RFM69HW true
        #define MY_RFM69_FREQUENCY RF69_915MHZ
        #define RFM69_FREQUENCY 912650000
        #define RFM69_NETWORKID 120
        #define RF69_SPI_CS 10
        #define RF69_IRQ_PIN 2
        #define RF69_IRQ_NUM 0

        all items like this should be abstracted to the radio level...

        for now, it would be nice to have a guide for using each type of radio, with documentation on all known options...

        (By the way, MY_RFM69_FREQUENCY should be MY_RFM69_BAND, as it selects the freq band the radio is in, not its exact frequency)

        Thanks... my two bits...

        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by hek
          #9

          @lafleur
          PRs against dev-branch is welcome.

          1 Reply Last reply
          0
          • hekH hek

            Moteino should work out of the box with the dev-branch. Think it defaults to its pin-wiring.

            Not sure about the Moteino-mega though. Haven't got that one.

            alexsh1A Offline
            alexsh1A Offline
            alexsh1
            wrote on last edited by
            #10

            @hek the pins on Moteino-Mega do not correspond:

            D2 - DIO0
            D4 - NSS
            D5 - MOSI
            D6 - MISO
            D7 - SCK

            Where do I change the softSPI settings please for RFM69(H)W? It is not in MyConfig.h for rfm69?

            1 Reply Last reply
            0
            • L Offline
              L Offline
              lafleur
              wrote on last edited by lafleur
              #11

              The SPI connections are hardware SPI in the chip, not a softSPI.. (may work, but I have not tested)

              If you look at the data sheet and schematics for the Mega, you see that the SPI pins are very well documented.....

              http://lowpowerlab.com/blog/2014/08/09/moteinomega-available-now/

              https://github.com/LowPowerLab/Moteino/blob/master/MEGA/MoteinoMEGA_Schematic.pdf

              Pins 7-6--5-4 are the four standard SPI pins, SCK, MISO, MOSI, SS, pin D2 is use as the interrupt from DIO0 on the radio... Look at the schematic and you see the correct pin-out from the radio to the processor... You will note the swap in MISO and MOSI pins. In on the CPU is out on the radio.. ect...
              CPU RFM69
              4 NSS
              5 MOSI
              6 MISO
              7 SCK
              2 DIO0

              In my main code I use these defines... not in the config.h file... ( you could put them there also)
              I'm using ver 2.0 code base, NOT 1.4 or 1.5

              #ifdef __AVR_ATmega1284P__        // use for Moteino Mega Note: LED on Mega are 1 = on, 0 = off
              // MoteinoMEGA
              #define MY_RF69_SPI_CS            4
              #define MY_RF69_IRQ_PIN           2
              #define MY_RF69_IRQ_NUM           2
              #define MY_DEFAULT_TX_LED_PIN     15   // the PCB, on board LED
              #define MY_DEFAULT_ERR_LED_PIN    7
              #define MY_DEFAULT_RX_LED_PIN     6
              #else
              
              // Moteino 
              #define MY_RF69_SPI_CS            10
              #define MY_RF69_IRQ_PIN           2
              #define MY_RF69_IRQ_NUM           0
              #define MY_DEFAULT_TX_LED_PIN     9   // 4 on sensor 2a PCB as LED3 (9 == on Moteino)
              #define MY_DEFAULT_ERR_LED_PIN    6   // 6 on sensor 2a PCB as Err
              #define MY_DEFAULT_RX_LED_PIN     7   // 7 on sensor 2a PCB as Rx
              #endif
              
              
              alexsh1A 1 Reply Last reply
              0
              • L lafleur

                The SPI connections are hardware SPI in the chip, not a softSPI.. (may work, but I have not tested)

                If you look at the data sheet and schematics for the Mega, you see that the SPI pins are very well documented.....

                http://lowpowerlab.com/blog/2014/08/09/moteinomega-available-now/

                https://github.com/LowPowerLab/Moteino/blob/master/MEGA/MoteinoMEGA_Schematic.pdf

                Pins 7-6--5-4 are the four standard SPI pins, SCK, MISO, MOSI, SS, pin D2 is use as the interrupt from DIO0 on the radio... Look at the schematic and you see the correct pin-out from the radio to the processor... You will note the swap in MISO and MOSI pins. In on the CPU is out on the radio.. ect...
                CPU RFM69
                4 NSS
                5 MOSI
                6 MISO
                7 SCK
                2 DIO0

                In my main code I use these defines... not in the config.h file... ( you could put them there also)
                I'm using ver 2.0 code base, NOT 1.4 or 1.5

                #ifdef __AVR_ATmega1284P__        // use for Moteino Mega Note: LED on Mega are 1 = on, 0 = off
                // MoteinoMEGA
                #define MY_RF69_SPI_CS            4
                #define MY_RF69_IRQ_PIN           2
                #define MY_RF69_IRQ_NUM           2
                #define MY_DEFAULT_TX_LED_PIN     15   // the PCB, on board LED
                #define MY_DEFAULT_ERR_LED_PIN    7
                #define MY_DEFAULT_RX_LED_PIN     6
                #else
                
                // Moteino 
                #define MY_RF69_SPI_CS            10
                #define MY_RF69_IRQ_PIN           2
                #define MY_RF69_IRQ_NUM           0
                #define MY_DEFAULT_TX_LED_PIN     9   // 4 on sensor 2a PCB as LED3 (9 == on Moteino)
                #define MY_DEFAULT_ERR_LED_PIN    6   // 6 on sensor 2a PCB as Err
                #define MY_DEFAULT_RX_LED_PIN     7   // 7 on sensor 2a PCB as Rx
                #endif
                
                
                alexsh1A Offline
                alexsh1A Offline
                alexsh1
                wrote on last edited by alexsh1
                #12

                @lafleur Thanks. Yes I did look at the schematics of Mega.
                Looking at your post above, where do you define MISO, MOSI and SCK please? I can see you defined MY_RF69_SPI_CS, MY_RF69_IRQ_PIN MY_RF69_IRQ_NUM only

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  lafleur
                  wrote on last edited by
                  #13

                  The pins for the SPI device is supplied by the SPI support library for the CPU device that you are using in the Arduino IDE library

                  alexsh1A 1 Reply Last reply
                  0
                  • L lafleur

                    The pins for the SPI device is supplied by the SPI support library for the CPU device that you are using in the Arduino IDE library

                    alexsh1A Offline
                    alexsh1A Offline
                    alexsh1
                    wrote on last edited by
                    #14

                    @lafleur OK, but there is no such thing as soft SPI for this module?

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lafleur
                      wrote on last edited by
                      #15

                      There might be, do a search for: "arduino software spi"

                      Almost all chip supported by the Arduino IDE have one or more hardware SPI channels, each can be shared with multiple SPI devices connected to it with proper selection of the device CS line...

                      So the need for a software SPI is rare...

                      Good Luck...

                      1 Reply Last reply
                      0
                      • alexsh1A Offline
                        alexsh1A Offline
                        alexsh1
                        wrote on last edited by
                        #16

                        @hek I can confirm that Moteino Mega USB (and I think Moteino Mega as well) works out of the box:

                        Starting sensor (RRNNA-, 2.0.0-beta)
                        Radio init successful.
                        find parent
                        send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
                        find parent
                        send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
                        Init complete, id=255, parent=255, distance=255
                        find parent
                        send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
                        
                        1 Reply Last reply
                        2
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        29

                        Online

                        11.7k

                        Users

                        11.2k

                        Topics

                        113.1k

                        Posts


                        Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • MySensors
                        • OpenHardware.io
                        • Categories
                        • Recent
                        • Tags
                        • Popular