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. Troubleshooting
  3. Ethernet gateway compile error

Ethernet gateway compile error

Scheduled Pinned Locked Moved Troubleshooting
10 Posts 6 Posters 4.6k Views 5 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.
  • Marek BělušaM Offline
    Marek BělušaM Offline
    Marek Běluša
    wrote on last edited by Marek Běluša
    #1

    Hi, could you please help me solv this error? I try compile GatewayW5100.ino from offical site and Arduino IDE show this error:
    In file included from C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:23:0,

                 from C:\Users\M\Documents\Arduino\libraries\MySensors-master/MySensors.h:261,
    
                 from C:\Users\M\Desktop\GatewayW5100\GatewayW5100.ino:116:
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:34:31: error: 'SPI_MODE0' was not declared in this scope

    #define MY_RF24_SPI_DATA_MODE SPI_MODE0

                               ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:76: note: in expansion of macro 'MY_RF24_SPI_DATA_MODE'

    SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                            ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:97: error: template argument 4 is invalid

    SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                                                 ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:103: error: invalid type in declaration before ';' token

    SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                                                       ^
    

    In file included from C:\Users\M\Documents\Arduino\libraries\MySensors-master/MySensors.h:261:0,

                 from C:\Users\M\Desktop\GatewayW5100\GatewayW5100.ino:116:
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp: In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)':

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:44:24: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

    uint8_t status = _SPI.transfer( cmd );

                        ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:47:18: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

    status = _SPI.transfer( NOP );
    
                  ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:49:24: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

    } else status = _SPI.transfer(*current++);

                        ^
    

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp: In function 'bool RF24_initialize()':

    C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:261:7: error: request for member 'begin' in '_SPI', which is of non-class type 'int'

    _SPI.begin();

       ^
    

    exit status 1
    Nastala chyba při kompilaci u desky Arduino Nano.Thanks.

    Boots33B 1 Reply Last reply
    0
    • Marek BělušaM Marek Běluša

      Hi, could you please help me solv this error? I try compile GatewayW5100.ino from offical site and Arduino IDE show this error:
      In file included from C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:23:0,

                   from C:\Users\M\Documents\Arduino\libraries\MySensors-master/MySensors.h:261,
      
                   from C:\Users\M\Desktop\GatewayW5100\GatewayW5100.ino:116:
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:34:31: error: 'SPI_MODE0' was not declared in this scope

      #define MY_RF24_SPI_DATA_MODE SPI_MODE0

                                 ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:76: note: in expansion of macro 'MY_RF24_SPI_DATA_MODE'

      SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                              ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:97: error: template argument 4 is invalid

      SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                                                   ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.h:38:103: error: invalid type in declaration before ';' token

      SoftSPI<MY_SOFT_SPI_MISO_PIN, MY_SOFT_SPI_MOSI_PIN, MY_SOFT_SPI_SCK_PIN, MY_RF24_SPI_DATA_MODE> _SPI;

                                                                                                         ^
      

      In file included from C:\Users\M\Documents\Arduino\libraries\MySensors-master/MySensors.h:261:0,

                   from C:\Users\M\Desktop\GatewayW5100\GatewayW5100.ino:116:
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp: In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)':

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:44:24: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

      uint8_t status = _SPI.transfer( cmd );

                          ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:47:18: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

      status = _SPI.transfer( NOP );
      
                    ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:49:24: error: request for member 'transfer' in '_SPI', which is of non-class type 'int'

      } else status = _SPI.transfer(*current++);

                          ^
      

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp: In function 'bool RF24_initialize()':

      C:\Users\M\Documents\Arduino\libraries\MySensors-master/drivers/RF24/RF24.cpp:261:7: error: request for member 'begin' in '_SPI', which is of non-class type 'int'

      _SPI.begin();

         ^
      

      exit status 1
      Nastala chyba při kompilaci u desky Arduino Nano.Thanks.

      Boots33B Offline
      Boots33B Offline
      Boots33
      Hero Member
      wrote on last edited by
      #2

      @Marek-Běluša You do not appear to have installed the MySensors library correctly. Delete the MySensors-master folder in your libraries folder and re-install . Use the method shown here

      1 Reply Last reply
      1
      • Sander StolkS Offline
        Sander StolkS Offline
        Sander Stolk
        wrote on last edited by
        #3

        I've got the same error but the thing missing is incluse spi.h somewhere below...

        1 Reply Last reply
        0
        • mfalkviddM Offline
          mfalkviddM Offline
          mfalkvidd
          Mod
          wrote on last edited by mfalkvidd
          #4

          Thanks for reporting this.

          The build pages currently use the development branch of MySensors, and therefore require the development version of the MySensors library. I understand that this is confusing and I'll discuss with the core team.

          In the meanwhile, either:

          • use MySensors 2.0 with the sketches from master (example: https://github.com/mysensors/MySensors/blob/master/examples/GatewayW5100/GatewayW5100.ino )

          OR

          • use MySensors development branch from github with the sketches from the build pages/development branch on github

          Sorry for the confusion.

          1 Reply Last reply
          1
          • mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #5

            Two build pages (ethernet gateway and battery powered sensors) used the development version of sketches, instead of the master version. I have updated them now.

            1 Reply Last reply
            3
            • miljumeM Offline
              miljumeM Offline
              miljume
              wrote on last edited by
              #6

              Hello

              I have used the version on the build page for ethernet gateway and used the last version of RF24 library for maniacbug together with Mysensors 2.0 library

              But I still get a bunch of these errors when compiling

              MySensors.h:261: In file included from
              EthernetGateway.ino:115: from
               
              RF24.cpp: 25:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t MY_RF24_BASE_ADDR[MY_RF24_ADDR_WIDTH] = { MY_RF24_BASE_RADIO_ID }
               
              RF24.cpp: 26:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t MY_RF24_NODE_ADDRESS = AUTO
               
              RF24.cpp: 28:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_csn(bool level) {
               
              RF24.cpp: 32:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_ce(bool level) {
               
              RF24.cpp: 36:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_spiMultiByteTransfer(uint8_t cmd, uint8_t* buf, uint8_t len, bool aReadMode) {
               
              RF24.cpp: 60:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_spiByteTransfer(uint8_t cmd) {
               
              RF24.cpp: 64:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_RAW_readByteRegister(uint8_t cmd) {
               
              RF24.cpp: 70:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_RAW_writeByteRegister(uint8_t cmd, uint8_t value) {
               
              RF24.cpp: 75:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_flushRX(void) {
               
              RF24.cpp: 80:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_flushTX(void) {
               
              RF24.cpp: 85:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_getStatus(void) {
               
              RF24.cpp: 89:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setChannel(uint8_t channel) {
               
              RF24.cpp: 93:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setRetries(uint8_t retransmitDelay, uint8_t retransmitCount) {
               
              RF24.cpp: 97:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setAddressWidth(uint8_t width) {
               
              RF24.cpp: 101:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setRFSetup(uint8_t RFsetup) {
               
              RF24.cpp: 105:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setFeature(uint8_t feature) {
               
              RF24.cpp: 109:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setPipe(uint8_t pipe) {
               
              RF24.cpp: 113:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setAutoACK(uint8_t pipe) {
               
              RF24.cpp: 117:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setDynamicPayload(uint8_t pipe) {
               
              RF24.cpp: 121:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setRFConfiguration(uint8_t configuration) {
               
              RF24.cpp: 125:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setPipeAddress(uint8_t pipe, uint8_t* address, uint8_t width) {
               
              RF24.cpp: 129:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setPipeLSB(uint8_t pipe, uint8_t LSB) {
               
              RF24.cpp: 133:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setStatus(uint8_t status) {
               
              RF24.cpp: 136:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_enableFeatures(void) {
               
              RF24.cpp: 140:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_openWritingPipe(uint8_t recipient) {
               
              RF24.cpp: 147:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_startListening(void) {
               
              RF24.cpp: 157:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_stopListening(void) {
               
              RF24.cpp: 167:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_powerDown(void) {
               
              RF24.cpp: 173:1: error: 'LOCAL' does not name a type
                 LOCAL bool RF24_sendMessage( uint8_t recipient, const void* buf, uint8_t len ) {
               
              RF24.cpp: 208:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_getDynamicPayloadSize(void) {
               
              RF24.cpp: 220:1: error: 'LOCAL' does not name a type
                 LOCAL bool RF24_isDataAvailable() {
               
              RF24.cpp: 226:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_readMessage( void* buf) {
               
              RF24.cpp: 235:1: error: 'LOCAL' does not name a type
                 LOCAL void RF24_setNodeAddress(uint8_t address) {
               
              RF24.cpp: 245:1: error: 'LOCAL' does not name a type
                 LOCAL uint8_t RF24_getNodeID(void) {
               
              RF24.cpp: 249:1: error: 'LOCAL' does not name a type
                 LOCAL bool RF24_sanityCheck(void) {
               
              RF24.cpp: 256:1: error: 'LOCAL' does not name a type
                 LOCAL bool RF24_initialize(void) {
               
              MyTransportNRF24.cpp:22: In file included from
              MySensors.h:262: from
              EthernetGateway.ino:115: from
               
              RF24.h: In function void setup()
               
              RF24.h: 121:6: error: redefinition of 'void setup()
                 void setup()
               
              RF24.cpp:23: In file included from
              MySensors.h:261: from
              EthernetGateway.ino:115: from
              RF24.h:121: note  void setup() previously defined here
                 void setup()
               
              MyTransportNRF24.cpp:22: In file included from
              MySensors.h:262: from
              EthernetGateway.ino:115: from
               
              RF24.h: In function void loop()
               
              RF24.h: 125:6: error: redefinition of 'void loop()
                 void loop() {
               
              RF24.cpp:23: In file included from
              MySensors.h:261: from
              EthernetGateway.ino:115: from
              RF24.h:125: note  void loop() previously defined here
                 void loop() {
               
              MySensors.h:262: In file included from
              EthernetGateway.ino:115: from
               
              MyTransportNRF24.cpp: In function bool transportInit()
               
              MyTransportNRF24.cpp: 44:25: error: 'RF24_initialize' was not declared in this scope
                 return RF24_initialize()
               
              MyTransportNRF24.cpp: In function void transportSetAddress(uint8_t)
               
              MyTransportNRF24.cpp: 48:29: error: 'RF24_setNodeAddress' was not declared in this scope
                 RF24_setNodeAddress(address)
               
              MyTransportNRF24.cpp: 49:22: error: 'RF24_startListening' was not declared in this scope
                 RF24_startListening()
               
              MyTransportNRF24.cpp: In function uint8_t transportGetAddress()
               
              MyTransportNRF24.cpp: 53:24: error: 'RF24_getNodeID' was not declared in this scope
                 return RF24_getNodeID()
               
              MyTransportNRF24.cpp: In function bool transportSend(uint8_t, const void*, uint8_t)
               
              MyTransportNRF24.cpp: 67:56: error: 'RF24_sendMessage' was not declared in this scope
                 bool status = RF24_sendMessage( recipient, data, len )
               
              MyTransportNRF24.cpp: In function bool transportAvailable()
               
              MyTransportNRF24.cpp: 74:36: error: 'RF24_isDataAvailable' was not declared in this scope
                 bool avail = RF24_isDataAvailable()
               
              MyTransportNRF24.cpp: In function bool transportSanityCheck()
               
              MyTransportNRF24.cpp: 79:26: error: 'RF24_sanityCheck' was not declared in this scope
                 return RF24_sanityCheck()
               
              MyTransportNRF24.cpp: In function uint8_t transportReceive(void*)
               
              MyTransportNRF24.cpp: 83:37: error: 'RF24_readMessage' was not declared in this scope
                 uint8_t len = RF24_readMessage(data)
               
              MyTransportNRF24.cpp: In function void transportPowerDown()
               
              MyTransportNRF24.cpp: 94:17: error: 'RF24_powerDown' was not declared in this scope
                 RF24_powerDown()
               
              MySensors.h:288: In file included from
              EthernetGateway.ino:115: from
               
              MySensorsCore.cpp: In function void _process()
               
              MySensorsCore.cpp: 39:15: error: 'ledsProcess' was not declared in this scope
                 ledsProcess()
               
              MySensorsCore.cpp: In function void _infiniteLoop()
               
              MySensorsCore.cpp: 62:16: error: 'ledsProcess' was not declared in this scope
                 ledsProcess()
               
              MySensorsCore.cpp: In function void _begin()
               
              MySensorsCore.cpp: 79:12: error: 'ledsInit' was not declared in this scope
                 ledsInit()
               
              EthernetGateway.ino: In function void setup()
               
              EthernetGateway.ino: 121:6: error: redefinition of 'void setup()
                 void setup()
               
              RF24.cpp:23: In file included from
              MySensors.h:261: from
              EthernetGateway.ino:115: from
              RF24.h:121: note  void setup() previously defined here
                 void setup()
               
              EthernetGateway.ino: In function void loop()
               
              EthernetGateway.ino: 125:6: error: redefinition of 'void loop()
                 void loop() {
               
              RF24.cpp:23: In file included from
              MySensors.h:261: from
              EthernetGateway.ino:115: from
              RF24.h:125: note  void loop() previously defined here
                 void loop() {
              Error compiling project sources
              

              Anyone that can tell me why?

              Regards,
              Mikael

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

                @miljume

                Why would you put the RF24 library in the mix?

                The MySensors library has everything needed bundled for communication over the NRF24L01 radio.

                1 Reply Last reply
                0
                • miljumeM Offline
                  miljumeM Offline
                  miljume
                  wrote on last edited by
                  #8

                  I only used the code that is written here: https://www.mysensors.org/build/ethernet_gateway. Have not changed anything at all

                  Could it be that I have a mixup between old and new library files from Mysensors (i.e. old mysensors.h)?

                  I didn't find a description on how to upgrade the library files for Mysensors so it might be that I did someting wrong

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

                    You can either use the Library Manager to install MySensors 2.0 or download the development (2.1.0.beta) branch from github if you want the latest bugfixes and features.

                    1 Reply Last reply
                    0
                    • miljumeM Offline
                      miljumeM Offline
                      miljume
                      wrote on last edited by
                      #10

                      Thank's!

                      I downloaded the development version of the library and installed, seems to work fine and compiles without errors (except from the MY_LEDS_BLINKING_FEATURE which I removed)

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      16

                      Online

                      12.0k

                      Users

                      11.2k

                      Topics

                      113.4k

                      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