jgromes / RadioLib

Universal wireless communication library for embedded devices
https://jgromes.github.io/RadioLib/
MIT License
1.54k stars 384 forks source link

Request for an Interrupt based PingPong example for SX126x modules #260

Closed PacciK closed 3 years ago

PacciK commented 3 years ago

Hello @jgromes I am experimenting with two Ebyte E22-900M30S modules which use the SX1262 chip + PA, on an ESP32 platform I have tried your examples supplied for this chip, and they work well - both non-interrupt and the interrupt based ones.

Now I am looking at building a fully interrupt based half duplex system, but am struggling. Therefore I started researching...

I've had a look at this discussion where the author describes he has built a working full interrupt based on an ESP8266 + SX1278 scenario. This gave me some ideas to chase for this module i have on my bench.

Translating this to the SX1262, it seems the SX126x library does not have the "getIRQFlags()" function but a seemingly similar function "getIrqStatus()" , which is a private function. Therefore, I've (cautiously) enabled "GODMODE" to allow me to use "getIrqStatus()" in the example mentioned in the discussion post above.

However Arduino IDE is not even compiling the code because it is complaining about enableInterrupt not being declared in the "enableInterrupt = true;" line, which is found towards the middle part of the loop() structure. Therefore that example seems to have errors or else, has not been copied from a working example.....

To cut a long story short, it would be super nice if You could add a fully interrupt based, ping-pong example, where one module sends a counter update, and the other module receives it, adds one value to the counter, and sends it back to the other module, starting a chain. This example would serve a multitude of teaching / testing purposes .

Thanks Jan !!

PS. on the Ebyte module I am using a mosfet tied to DIO2 to invert the drive for the RX switch, which Idea I got from another post referring to what seems like a nice trick circulating on the FossaSat forum- LINK

Thanks again for such a wonderful library !

jgromes commented 3 years ago

add a fully interrupt based, ping-pong example

I'll see if I can add that, not sure when will I get to it, but seems it would be useful.

However Arduino IDE is not even compiling the code

I haven't tried to run that sketch, but you're right that enableInterrupt seems undefined in there.

on the Ebyte module I am using a mosfet tied to DIO2 to invert the drive for the RX switch

I have a design that does the same using two NPNs, though the second one just drives an LED to clearly show the antenna switch status: https://github.com/jgromes/ESP32-1W-GroundStation/blob/master/doc/sch.pdf Also the link points to Meshtastic forums, not to FOSSA, I'm not sure if that's what you meant to post.

PacciK commented 3 years ago

Hi Jan ! Thanks for your quick reply and for the link to your GroundStation project.

Yes my link points to a meshtastic discussion, which then references to a schematic ( around 9 posts up from the bottom ) which then mentions a FOSSA forum ( which I've tried to search for, but perhaps Mr.Google does not know about....)

jgromes commented 3 years ago

It's probably from the Telegram channel then, or rahter what used to be FOSSASAT-1 Community telegram and is now the tiny.gs project.

PacciK commented 3 years ago

any update, @jgromes Thank You !

jgromes commented 3 years ago

Sorry, there's been zero progress on this on my end, I've been unfortunately quite busy.

jgromes commented 3 years ago

Example added in recent commit.