Arduino Infrared (IR) and Radio libraries timer conflict

We use two Uno's:

Board1 = Radio(sender+receiver) + IR(sender)
Board2 = Radio(sender+receiver) + IR(receiver)

Both libraries (IRremote and RH_ASK) use timers to send/receive. Initially they used the same timer - so sketches obviously didn't upload. Then we customized libraries to force them to use different timers - that solved upload failures, but invoked the following new issue:

Radio Driver (RH_ASK) requires init() function to prepare itself and start working.

When we do init() on Board1 (it has IR sender), and then send IR signal - is sends wrong IR data. If we do not init() Radio - IR sends correct data all right.

Board2 (with IR receiver) receives IR data correct - regardless of Radio driver on Board2 being inited or not inited.

If this is unsolvable - let it be :slight_smile: but any idea is welcome.

  • all used libraries and libraries with customized TIMERs can be found in attachment

IRremote_TIMER1.zip (13.4 KB)

IRremote_TIMER2.zip (13.4 KB)

RadioHead.zip (9.22 KB)

RH_ASK.zip (12.2 KB)

RH_ASK_TIMER1.zip (12.2 KB)

RH_ASK_TIMER2.zip (12.2 KB)

RHGenericDriver.zip (4.64 KB)

wiring.zip (1.97 KB)

Most likely a conflict with the timers of both libraries. IRremote uses timers to receive signals & send(PWM).

Why not try IRLib, it is a lot more configurable out of the box & good documentation.

Sorry, not feeling up to looking thru so much code.