Porting Radiohead RFM95/96/98W library to MySensors



  • Hello all,

    I know that there were a few old threads about people are trying to port Radiohead library to MySesnors.
    https://forum.mysensors.org/topic/285/porting-mysensors-to-work-with-the-radiohead-library/252
    https://forum.mysensors.org/topic/3826/radiohead/5
    https://forum.mysensors.org/topic/3692/my-simple-sniffer-dongle/4

    I am currently looking at RFM95W transceiver. This is a long range transceiver from HopeRF and it is not compatible with RFM69.

    These files were copied into /drivers/RFM95
    0_1467460398339_RadioHead.zip

    I have created MyTransportRFM95.cpp under /core/

    MyTransportRFM95.cpp (I commented the lines I am working on now):

    /**
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     */
    
    #include "MyConfig.h"
    #include "MyTransport.h"
    #include <stdint.h>
    #include "drivers/RFM95/RH_RF95.h"
    
    RH_RF95 rf95(MY_RFM95_SPI_CS, RFM95_INT_PIN);
    uint8_t _address;
    
    bool transportInit() {
    	// Start up the radio library (_address will be set later by the MySensors library)
    	if (_rf95.init()) {
    
    rf95.setFrequency(MY_RFM95_FREQUENCY);
    rf95.setTxPower(MY_RFM_POWER, false); 
    
    
    //		#ifdef MY_RFM95_ENABLE_ENCRYPTION
    //			uint8_t _psk[16];
    //			hwReadConfigBlock((void*)_psk, //(void*)//EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
    //			_rf95.encrypt((const char*)_psk);
    //			memset(_psk, 0, 16); // Make sure it is purged //from memory when set
    //		#endif
    //		return true;
    //	}
    //	return false;
    }
    
    //void transportSetAddress(uint8_t address) {
    //	_address = address;
    //	_rf95.setAddress(address);
    //}
    
    //uint8_t transportGetAddress() {
    //	return _address;
    //}
    
    bool transportSend(const uint8_t* data, uint8_t len) {
    	return _rf95.send(data,len);
    }
    
    bool transportAvailable() {
        uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
        uint8_t len = sizeof(buf);
        _rf95.available();
    }
    
    boot transportReceive(unint8_t* buf, unit8_t* len) {
    	  _rf95.waitPacketSent();	
    return _rf95.recv(buf, len);	
    // TO BE IMPLEMENTED - CHECK IF ACK WORKS
    }	
    
    void transportPowerDown() {
    	_rf95.sleep();
    }
    
    

    I had to add the following to MyConfig.h:

    /**********************************
    *  RFM95 Driver Defaults
    ***********************************/
    
    /**
     * @def MY_RFM95_FREQUENCY
     * @brief RFM69 frequency to use (434.0 for 433MHz, 868.0 for 868MHz or 915.0 for 915MHz).
     *
     * This must match the hardware version of the RFM95 radio.
     */
    #ifndef MY_RFM95_FREQUENCY
    #define MY_RFM95_FREQUENCY   433.0
    #endif
    /**
     * @def MY_RFM95_POWER
     * @brief RFM95 Power. The default transmitter power is 13dBm, using PA_BOOST. If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then you can set transmitter powers from 5 to 23 dBm:
     */
    #ifndef MY_RFM95_POWER
    #define MY_RFM95_POWER     23
    #endif
    
    /**
     * @def MY_RFM95_NETWORKID
     * @brief RFM95 Network ID. Use the same for all nodes that will talk to each other.
     */
    #ifndef MY_RFM95_NETWORKID
    #define MY_RFM95_NETWORKID     100
    #endif
    
    /**
     * @def MY_RF95_INT_PIN
     * @brief RF95 INT pin.
     */
    #ifndef MY_RF95_INT_PIN
    #define MY_RF95_INT_PIN RF95_INT_PIN
    #endif
    
    /**
     * @def MY_RF95_SPI_CS
     * @brief RF95 SPI chip select pin.
     */
    #ifndef MY_RF95_SPI_CS
    #define MY_RF95_SPI_CS RF95_SPI_CS
    #endif
    
    /**
     * @def MY_RF95_RST
     * @brief RF95 IRQ pin number.
     */
    #ifndef MY_RF95_RST
    #define MY_RF95_RST MY_RF95_RST
    #endif
    
    // Enables RFM95 encryption (all nodes and gateway must have this enabled, and all must be personalized with the same AES key)
    //#define MY_RFM95_ENABLE_ENCRYPTION
    
    
    

    I currently cannot understand how to address it to a particular node and was not able to find examples. Any ideas please?

    @scalz May be you can share what you have please?


  • Hardware Contributor

    @alexsh1
    does it compile like this? because you can't use the radiohead lib as is..unfortunately! it needs some refactoring..
    As sharing poc means support..I'm sorry, i have not so much time for helping for the moment, so I prefer to stay local for the moment. i would like to take a bit of time to finish multiple cool thing i am working on, then i will share 😉
    could be soon, i prefer not saying..



  • @scalz I understand - it does take a lot of time to complete a project. You are effectively re-writing a library. I would probably have to leave it as well as I have 4-5 project to be completed.

    I have not tried compiling yet and there is no point in trying - I'm stuck on setAddress and getAddress. This means that the GW will be screaming to all nodes rather than to a specific one.

    If the library requires refactoring then this is beyond my abilities I'm afraid.



  • For now as I expected, I have got a lot of compiling errors:

    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::maxMessageLength()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/RFM95/RH_RF95.cpp:273: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::sleep()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::RH_RF95(unsigned char, unsigned char, RHGenericSPI&)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::RH_RF95(unsigned char, unsigned char, RHGenericSPI&)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::validateRxBuf()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::clearRxBuf()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::recv(unsigned char*, unsigned char*)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::printRegisters()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setFrequency(float)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setModeIdle()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::handleInterrupt()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::isr0()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::_deviceForInterrupt'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::isr1()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::isr2()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setModeRx()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::available()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setModeTx()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::send(unsigned char const*, unsigned char)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setTxPower(signed char, bool)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setModemRegisters(RH_RF95::ModemConfig const*)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setModemConfig(RH_RF95::ModemConfigChoice)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::setPreambleLength(unsigned int)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::init()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\libraries\RadioHead\RH_RF95.cpp.o: In function `RH_RF95::maxMessageLength()':
    
    C:\Users\Alex\Documents\Arduino\libraries\RadioHead/RH_RF95.cpp:273: multiple definition of `RH_RF95::_interruptCount'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o:C:\Users\Alex\Documents\Arduino\libraries\MySensors/core/MyHwATMega328.cpp:28: first defined here
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportInit()':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:65: undefined reference to `RFM69::initialize(unsigned char, unsigned char, unsigned char)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportSetAddress(unsigned char)':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::setAddress(unsigned char)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportSend(unsigned char, void const*, unsigned char)':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::sendWithRetry(unsigned char, void const*, unsigned char, unsigned char, unsigned char)'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportAvailable(unsigned char*)':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::TARGETID'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::receiveDone()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportReceive(void*)':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::DATALEN'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::DATA'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::DATA'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::TARGETID'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:74: undefined reference to `RFM69::ACKRequested()'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:76: undefined reference to `RFM69::sendACK(void const*, unsigned char)'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:76: undefined reference to `RFM69::DATALEN'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `transportPowerDown()':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/ATSHA204/sha256.cpp:76: undefined reference to `RFM69::sleep()'
    
    C:\Users\Alex\AppData\Local\Temp\builda48d38f42caede56591e0131dd831bf8.tmp\sketch\LightLuxSensor.ino.cpp.o: In function `RFM69':
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/RFM69/RFM69.h:94: undefined reference to `vtable for RFM69'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/RFM69/RFM69.h:94: undefined reference to `vtable for RFM69'
    
    C:\Users\Alex\Documents\Arduino\libraries\MySensors/drivers/RFM69/RFM69.h:98: undefined reference to `RFM69::_mode'
    
    collect2.exe: error: ld returned 1 exit status
    

    There is a lot of work to be done on Radiohead lib 😟


  • Hardware Contributor

    @alexsh1
    yep, it's better to be rewrited as archi is a bit different.
    same thing multiple projects on my side. i'll try to do my best 🙂



  • @scalz I manage to narrow it down only to "drivers/ATSHA204" compile issues, which is signing.


 

430
Online

7.9k
Users

8.8k
Topics

93.8k
Posts