iSkipper
iSkipper copied to clipboard
ESP32 Support
Hey, I've been trying to run the software on ESP32 over the Arduino IDE.
Someone's written a RFM69 Library compatible with it: https://github.com/rrobinet/RFM69X_Library
Upon trying to just replace the library however I'm getting the following errors:
In file included from C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerEmulator.h:4:0,
from C:\Users\user\Desktop\iSkipper-Software-master\iSkipper_Arduino_Sketch\iSkipper_Arduino_Sketch.ino:7:
C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerRadio.h:25:1: error: expected class-name before '{' token
{
In file included from C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerEmulator.h:4:0,
from C:\Users\user\Desktop\iSkipper-Software-master\iSkipper_Arduino_Sketch\iSkipper_Arduino_Sketch.ino:7:
C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerRadio.h:31:18: error: 'virtual bool iClickerRadio::initialize(uint8_t)' marked 'override', but does not override
virtual bool initialize(uint8_t freqBand = RF69_915MHZ) override;
C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerRadio.h:43:18: error: 'virtual void iClickerRadio::recvCallback(uint8_t*, uint8_t)' marked 'override', but does not override
virtual void recvCallback(uint8_t *data, uint8_t numBytes) override; //interrupt callback
In file included from C:\Users\user\Desktop\iSkipper-Software-master\iSkipper_Arduino_Sketch\iSkipper_Arduino_Sketch.ino:7:0:
C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerEmulator.h: In member function 'void iClickerEmulator::dumpRegisters()':
C:\Users\user\Documents\Arduino\libraries\iSkipper/iClickerEmulator.h:116:35: error: 'class iClickerRadio' has no member named 'readAllRegs'
void dumpRegisters() { _radio.readAllRegs(); }
exit status 1 Error compiling for board ESP32 Dev Module.
Any ideas? I'm not sure why these would fail but I thought it might be useful to use that library instead since it looks like it preserves backwards compatibility with AVR and such.
Hi,
The problem is the RFM69 library is not the same as the upstream one from Felix: https://github.com/LowPowerLab/RFM69. It did not support the necessary features, so I had to modify it a bit. The changes are not major, but are substantial enough to make it incompatible as a drop in replacement. I tried to get my changes merged in upstream, but eventually gave up.
The library you found for the ESP32, uses the same interface as Felix's, so it also will have this problem. You can see my fork here: https://github.com/wizard97/BetterRFM69. I bet with minimal effort you can figure out what changes need to be made to make the ESP32 library compatible.
Awesome, that works. If I end up getting it to work I'll set up a pull request to give that option. Thanks!
BTW, does the remote send any data if a base station isn't present? AKA should I be sniffing packets when it's saying "Closed"?
BTW, does the remote send any data if a base station isn't present? AKA should I be sniffing packets when it's saying "Closed"?
If you press a button when the base station is closed, any remote will still try and submit. The remotes will just not get a response back from the base station and fail. You will still capture the results with and without a base station.