I am trying to decode the IR signals from a remote. I'm using an Arduino Pro Micro, and a TSOP38238 IR receiver.

I found out that the remote uses the Nokia32(RCMM) protocol, and I have been able to partially decode it using cyborg5/IRLib (specifically this one: rcmm.ino). I tweaked the values of the example using the LIRC file corresponding to my remote, mainly the absolute error tolerance (Freebox_V5.lircd.conf).

Compared to other remotes I tried (with different protocols) the RCMM algorithm doesn't manage to decode the signal every time. Around 40% of the time when I press a button I got an "Unknown type received" output from the decoder.

The following is three outputs (for the same button) of the algorithm for a successful decoding and below two other outputs corresponding to two failures. Could anyone tell me what could be done to increase the success of the decoding algorithm?


Decoded RCMM: Value:2400A601 (32 bits)
Raw samples(36): Gap:63264
  Head: m410  s290
0:m160 s290 1:m160 s590      2:m210 s390    3:m210 s240      
4:m210 s240 5:m210 s240      6:m210 s240    7:m210 s240      
8:m210 s540 9:m210 s590      10:m210 s390   11:m210 s590         
12:m160 s290    13:m160 s290         14:m160 s240   15:m210 s440         

Mark  min:160    max:210
Space min:240    max:590

Failure 1

Unknown type received. Ignoring.
Decoded Unknown(0): Value:0 (0 bits)
Raw samples(36): Gap:3148
  Head: m410  s290
0:m160 s240 1:m210 s590      2:m210 s390    3:m210 s240      
4:m210 s240 5:m210 s240      6:m160 s290    7:m160 s290      
8:m160 s590 9:m210 s590      10:m160 s440   11:m210 s590         
12:m160 s240    13:m210 s240         14:m210 s240   15:m210 s390         

Mark  min:160    max:210
Space min:240    max:590

Failure 2

Unknown type received. Ignoring.
Decoded Unknown(0): Value:0 (0 bits)
Raw samples(32): Gap:27904
  Head: m410  s290
0:m160 s290 1:m160 s590      2:m160 s490    3:m160 s240      
4:m210 s240 5:m160 s290      6:m160 s290    7:m160 s290      
8:m160 s290 9:m160 s590      10:m160 s490   11:m160 s590         
12:m160 s1190   13:m160 s440         14:m160
Mark  min:160    max:210
Space min:240    max:1190
  • Are all three of those for the same button?
    – Majenko
    Dec 16, 2015 at 15:11
  • yes, my bad I edited the text to be more clear
    – Duom
    Dec 16, 2015 at 15:13
  • I can see where the third one went wrong (not why, only where so far), but just correlating them all together at the moment in a spreadsheet. Manually decoding :)
    – Majenko
    Dec 16, 2015 at 15:14
  • the timings are left unchanged from the original file (github.com/cyborg5/IRLib/blob/master/examples/rcmm/rcmm.ino line 35). The tolerance line 60 is set to 100.
    – Duom
    Dec 16, 2015 at 15:25
  • The problem is very much with the timing. I don't yet know whether that is the reception timing or the transmission timing, but there are some big errors in the numbers.
    – Majenko
    Dec 16, 2015 at 15:33

1 Answer 1


I'm unable to provide a complete answer yet but my research so far into a similar quest to use a similar remote can at least answer why you are getting two values for the same button on the remote. This is by design: the Nokia-32 RCMM protocol of this remote uses toggling codes that flip between one value and another on alternating presses of the same button.

My quest and the challenges of decoding this remote are documented in this thread: https://github.com/bengtmartensson/harctoolboxbundle/issues/97 where I discover that my IR remote uses Nokia 32 protocol but with mark and space timings slightly different from what most Arduino libraries are programmed for requiring a tweak to the signal in order to enable other libraries to decode it successfully.

Further information here: http://www.avsforum.com/forum/93-remote-control-area/1517341-theater-master-mx-500-remote-won-t-learn-bell-fibe-remote-any-help.html#post24345872 where we learn:

it is different from most IR signals, because it has 4 different off durations, denoting zero, one, two , or three, while traditionally IR protocols have used just two off durations signifying zero or one.

  • Could you please highlight the most important parts of the websites you've linked? If at one point those links break this answer will be unfortunately useless and we'd like to avoid that.
    – Avamander
    Feb 7, 2016 at 17:18
  • done... an upvote would be encouraging
    – BartmanEH
    Feb 7, 2016 at 19:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.