Infrared on the M5StickC+ and UIFlow, is it me or?

  • Hi all,

    I am generally coding with VSCode / PIO in C but with a M5StickC+ hanging around I wanted to develop an idea with a small battery powered device to replace some of my tools
    The idea is to run multiple programs on the stickc to do various things like measuring distance, send IR codes, identify IR from any remote control etc...
    In fact I have already built a small project with an arduino and an IR receiver (KY-022 module) few years ago able to recognise a big amount of IR standards (NEC, SAMSUNG, etc...) and their HEX/DEC code using an easy library found on the is working like a charm and I have been able to recognise the standard use for all the remote controls I have tested so far.

    Well long story short I'd like to replace it because it is bulky, 9V battery powered, using old fashion LCD display etc...
    This was the opportunity for me to start looking at UIFlow.

    I could get ready quite fast and I guess I understand now most of the features.
    However I have been VERY VERY disappointed by the limited (to say the least) features....
    I know the Stickc+ only has a Tx IR, not Rx but still, this is a joke, only limited to NEC standard and that's it? or I am missing something.

    Anyway I purchased the IR Remote module from M5Stack and same joke, on the IR Rx you can only acknowledge a signal has been received...and it is not working with any remote I have tried (not a range issue, I was 10cm from the module) possibility to change from NEC either....
    This module is totally least with the default UIFlow

    Now I am trying to come back to my trusty KY-022 plugged on StickC+ GPIO but I need external libraries.

    I understand you can load external files on the stickc+ memory and load them with Execute module.
    Then I guess I should create some Custom blocks to include the code from the lib and extend the IR functionalities?

    Do you think this is the right way to do it in UIFlow, does someone have any experience with external micropython IR libraries in UIFLow?

    Thanks a lot!

  • Hi Eric,

    I feel your IR pain, did you get any further with a solution? It would appear that the IR codes I want to use are possibly NEC extended (not standard because the first 2 bytes/16 bits are 0x00F7). The documentation on how to use IR(NEC) [] address data [] block in UIFlow is poor. I was going to try the IR module, but I'm questioning that decision based on your post above.

    Basically, I just want to replay a number of IR commands, learned from remote or taken from book, and transmit them from M5StickC and/or Atom. Any help gratefully appreciated.

  • Hi Gavin,

    I moved on to some other projects and did not have time to come back to this one yet (even though I would really like to achieve something with IR + M5StickC+).
    I found a 3rd party IR library on the internet but it was quite a challenge to integrate it to the M5 in progress but not much time at the moment.
    I'll keep you posted as I resume my work on this.

  • @gavin67890 in case you're still interested, I have resumed my work on the M5StickC plus and the KY-022 IR receiver.
    So far I am able to load the external IR library and use the REPL to scan and get information about my IR remote buttons.

    Means that it works and I can now code the UI stuff !

  • @erich could you share some of your IR code? I would like to send the IR commands so
    my disabled brother-in-law can get the weather channel on TV.

    I've been coding to the ESP32 devices and have an extensive capability for MQTT messaging, support of numerous HAT's, the ATOM Socket, driving stepper motor, OTA updates and BLE.

    But I've never done any of the IR work. It seems if I can get the right codes it would be easy
    to send a message (via MQTT) to trigger doing just that (even from a motion sensor or QR code).

    I assume I need to receive the IR first, and then play them back.
    Any help would be appreciated.