Jump to content
Flirc Forums

Search the Community

Showing results for 'SendIR command'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Flirc forums
    • Skip
    • Raspberry Pi Cases
    • Flirc USB
    • Flirc USB Gen1
    • Jeff Probe

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Interests

  1. Some further information on this. Recreation steps Run the following bash script (Linux) i=0; while true; do flirc_util sendir --ik=28000 --repeat=1 --csv=0,8953,4415,539,539,568,508,566,510,500,576,569,503,538,542,565,508,569,507,534,541,533,541,568,508,561,515,568,1628,501,576,566,506,538,539,537,1659,569,508,566,510,589,485,536,1663,569,504,538,538,567,509,567,510,566,1630,566,1631,501,1693,504,576,534,1659,569,1628,569,1629,569; echo $i; i=$((i+1)); done Whilst this script is running, use a remote that you have previously programmed into Flirc and repeatedly press one of the remote buttons repeatedly as quickly as possible (not held down). Within about 10-20 iterations of the bash script, you will eventually get this error message: [E] lib/libtransport/hid.c hid_recv_packet(217): Wrong response length = 0 [E] lib/libtransport/hid.c hid_recv_packet(218): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout Error getting version device disconnected, can't run command I'd say this normally takes around 10-20seconds for me. Once this has happened, Flirc is unresponsive. Following calls to flirc_util result in: [E] lib/libtransport/hid.c hid_send_packet(150): hidapi: Connection timed out [E] util/flirc_util/src/cmds/ir_transmit.c sendir(260): Error: could not transmit data You will see errors like this in the dmesg output: [Sat Sep 21 11:09:01 2024] usb 1-1.4: usbfs: USBDEVFS_CONTROL failed cmd arp-scan rqt 128 rq 6 len 40 ret -110 [Sat Sep 21 11:09:07 2024] usb 1-1.4: usbfs: USBDEVFS_CONTROL failed cmd arp-scan rqt 128 rq 6 len 40 ret -110 I've also seen this error: [Thu Sep 19 20:47:07 2024] usb 1-1.4: device descriptor read/64, error -110 Once Flirc has got into this state, it needs to be power cycled to start working again. @jason Can I provide any further information to help diagnose this?
  2. It wont be faster. The reason it's slow, is it needs to 'open' the device every time it calls sendir. You can use the dll to create an app that leaves it open so you can send it messages? What are you trying to do?
  3. Thanks for the answer. I use flirc_util.exe with the parameter sendir --raw=, and it works. However, I wanted to try calling the functionality via the DLL, as it might work faster. Unfortunately, I couldn't find useful information or examples on how to work with libflirc.dll in the package available at https://github.com/flirc/sdk.
  4. I successfully control XIAOMI TV A 2025 with Skip 1s and Flirc USB. The problem is only the command "ON and OFF"! Maybe we could get a device, "IR receiver and Bluetooth transmitter" just for the desired command!
  5. Did you find a solution to this issue? I'm having the same problem: FLIRC works as expected, until I use a "sendIR" command. Once I use a "sendir" command, I can keep sending IR commands but the FLIRC won't *receive* any more IR commands until I unplug and replug the FLIRC.
  6. The command line program flirc_util.exe doesn't work on windows 11: C:\Program Files (x86)\Flirc>flirc_util.exe version 3.26.5 [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'ir_state' [E] lib/libtransport/hid.c hid_recv_packet(167): hid_recv_packet: wrong report id [E] lib/libtransport/hid.c hid_recv_packet(168): hidapi: (null) [E] lib/libtransport/transport.c _recv_packet(126): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(201): recv timeout [E] lib/libtransport/hid.c hid_recv_packet(167): hid_recv_packet: wrong report id [E] lib/libtransport/hid.c hid_recv_packet(168): hidapi: (null) [E] lib/libtransport/transport.c _recv_packet(126): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(201): recv timeout FW Version: v1.9.61-1-g4b35b71 [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'getversion' [E] lib/libflirc/firmware/fw_4.0.c fl_ver4_header_peek(50): invalid address you idiot [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'getversion' [E] lib/libflirc/firmware/fw_4.0.c fl_ver4_header_peek(50): invalid address you idiot [E] lib/libtransport/hid.c hid_recv_packet(167): hid_recv_packet: wrong report id [E] lib/libtransport/hid.c hid_recv_packet(168): hidapi: (null) [E] lib/libtransport/transport.c _recv_packet(126): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(201): recv timeout [E] lib/libflirc/firmware/fw_4.0.c fl_ver4_header_peek(50): invalid address you idiot [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'ir_state' [E] lib/libflirc/firmware/fw_4.0.c fl_ver4_header_peek(50): invalid address you idiot [E] lib/libtransport/hid.c hid_recv_packet(167): hid_recv_packet: wrong report id [E] lib/libtransport/hid.c hid_recv_packet(168): hidapi: (null) [E] lib/libtransport/transport.c _recv_packet(126): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(201): recv timeout [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'h_peek' [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'h_peek' Hash: 0x00000001 The GUI seems to work (v3.26.5) and gen 2 flirc firmware v4.9.61
  7. While waiting for my remote to ship, I figured I'd go ahead and set up my activities ahead of time in the software. (The software is very straightforward and nice to use, BTW.) Everything is all set except for one thing, mentioned in the title. The "Back" button is missing for the Roku Streambar device (the only Roku device in the list of audio devices). As that's one of my most used buttons, I'm hoping you can add it to the command list for the Streambar? (I know the process for adding a device now, but not one specific command to a device already in the database.) If it helps, I have an old Roku 2 media device I don't use anymore, and tried out the Back button on its remote - it worked fine on the Streambar. And I saw that the Roku 2 in your database does have the Back button in the list of commands. So I imagine you can just copy the code for that into the Streambar's list of commands? Let me know if you'll be able to get that added when you can. Thanks in advance.
  8. No, I have not been able to reproduce this. I jam the button on my remote or press and hold it and can't get it to lock up or throw an error. Please make sure you are on the latest, here is mine: 3.27.16 FW Version: v4.10.5 SKU: Flirc 2.0 [dori] Branch: release Config: release Hash: 0xF7261C8C If that doesn't help, the only thing I can think of is using the alternate interface. I ship a tool called irtools that uses a separate USB interface, try that. Same command arguments, just replace the command. Ships on all platforms. irtools sendir --ik=28000 --repeat=1 --csv=0,8953,4415,539,539,568,508,566,510,500,576,569,503,538,542,565,508,569,507,534,541,533,541,568,508,561,515,568,1628,501,576,566,506,538,539,537,1659,569,508,566,510,589,485,536,1663,569,504,538,538,567,509,567,510,566,1630,566,1631,501,1693,504576,534,1659,569,1628,569,1629,569;
  9. Hey, I'm seeing a failed unit test with a brand new unit I bought off amazon. Tried on both windows and linux machines, same issue. What is this Marlin FW? Is there some new 4.10.16 firmware released? Firmware upgrades or downgrades also fail as the wrong version. Anyone have any ideas? Thank you! Unit test: flirc_util.exe $ unit_test [E] lib/libtransport/hid.c hid_recv_packet(223): Wrong report exp: 1 != 5 [E] lib/libtransport/hid.c hid_recv_packet(224): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout Self test not supported [E] lib/libtransport/transport.c _dev_send_cmd(225): Wrong response: 'getversion' != 'format' [E] lib/libtransport/hid.c hid_recv_packet(223): Wrong report exp: 1 != 5 [E] lib/libtransport/hid.c hid_recv_packet(224): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout [E] lib/libflirc/firmware/fw_4.9.c fl_ver4_set_record_api(109): command error [E] lib/libtransport/hid.c hid_recv_packet(223): Wrong report exp: 5 != 1 [E] lib/libtransport/hid.c hid_recv_packet(224): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout [E] lib/libtransport/transport.c _dev_send_cmd(225): Wrong response: 'getversion' != 'ir_state' [E] lib/libflirc/firmware/fw_4.2.c _fl_unit_test(132): error recording test0 Flirc Not Okay [E] lib/libtransport/transport.c _dev_send_cmd(225): Wrong response: 'getversion' != 'format'
  10. Hi @jason Thanks for your continued efforts on this. I am not 100% sure it's working on the raspberry pi - please see the output below it all looks successful however the IR signal is not transmitted. Also from a usability perspective it would be great if you could have the raw signal as an input for the transmission using irtools rather than having to decode and then add commas into the before issuing a send command. Something like: irtools sendir --raw="..." --repeat=1 pi@raspberrypi:~ $ irtools decode --raw="+9071 -4425 +638 -456 +639 -456 +639 -451 +644 -451 +643 -452 +643 -452 +639 -456 +638 -456 +639 -1584 +643 -1584 +643 -1579 +643 -1584 +643 -1585 +638 -1585 +643 -1584 +639 -1584 +643 -452 +643 -451 +639 -1584 +643 -1584 +643 -452 +639 -456 +664 -430 +639 -452 +643 -1584 +639 -1584 +643 -452 +643 -451 +643 -1585 +638 -1584 +669 -1559 +638 -1585 +643" [V] main(121): Command: irtools [V] main(125): running pre-command function 0 [D] list_devs(254): --------------------------------------------------------- [D] list_devs(255): -----------------------Device List----------------------- [D] list_devs(256): --------------------------------------------------------- [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw0 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 0 [D] list_devs(274): Usage Page: 65280 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 1 [D] list_devs(275): Usage: 6 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 12 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 1 [D] list_devs(275): Usage: 128 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 12 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw2 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 2 [D] list_devs(274): Usage Page: 65280 [D] list_devs(275): Usage: 1 [D] list_devs(281): --------------------------------------------------------- [D] hid_find(229): Device Used type: 20a0 0006 path: /dev/hidraw2 serial_number: E7A3ABA25050323431202020FF101122 [D] hid_find(231): Manufacturer: flirc.tv [D] hid_find(232): Product: flirc [D] hid_find(233): Release: 200 [D] hid_find(234): Interface: 2 [D] hid_find(235): Usage Page: 65280 [D] hid_find(236): Usage: 1 [V] hid_dev_open(311): Manufacturer String: flirc.tv [V] hid_dev_open(316): Product String: flirc [V] hid_dev_open(321): Serial Number String: E7A3ABA25050323431202020FF101122 [V] hid_dev_open(322): [V] hid_send_packet(79): Report ID: 2 [V] hid_send_packet(80): Report len: 33 00: 02 75 73 62 5f 69 66 00 00 00 00 00 00 01 00 00 .usb_if......... 10: 00 01 04 f5 00 bc 47 9f ff c8 3b 01 00 c8 47 9f ......G...;...G. 20: ff . [V] hid_send_packet(91): hid_write = 33 [V] hid_recv_packet(144): Report ID: 1 [V] hid_recv_packet(145): Report len: 33 [V] hid_recv_packet(155): retval = 33 00: 01 75 73 62 5f 69 66 00 00 00 00 00 00 00 00 00 .usb_if......... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 . found it [V] lib/libcmds/cmds.c run_cmds(251): running command: decode [V] lib/libcmds/cmds.c cmd_getopt(223): opt: --raw=+9071 -4425 +638 -456 +639 -456 +639 -451 +644 -451 +643 -452 +643 -452 +639 -456 +638 -456 +639 -1584 +643 -1584 +643 -1579 +643 -1584 +643 -1585 +638 -1585 +643 -1584 +639 -1584 +643 -452 +643 -451 +639 -1584 +643 -1584 +643 -452 +639 -456 +664 -430 +639 -452 +643 -1584 +639 -1584 +643 -452 +643 -451 +643 -1585 +638 -1584 +669 -1559 +638 -1585 +643, carg = 1 +9071 -4425 +638 -456 +639 -456 +639 -451 +644 -451 +643 -452 +643 -452 +639 -456 +638 -456 +639 -1584 +643 -1584 +643 -1579 +643 -1584 +643 -1585 +638 -1585 +643 -1584 +639 -1584 +643 -452 +643 -451 +639 -1584 +643 -1584 +643 -452 +639 -456 +664 -430 +639 -452 +643 -1584 +639 -1584 +643 -452 +643 -451 +643 -1585 +638 -1584 +669 -1559 +638 -1585 +643 [V] analyze_edge(66): removing decoder: rc5 8182 > 2000 [V] analyze_edge(66): removing decoder: mce 6407 > 2000 [V] analyze_edge(66): removing decoder: xmp 8861 > 2000 [V] analyze_edge(66): removing decoder: ortek 7151 > 2000 [V] analyze_edge(66): removing decoder: sharp 7223 > 2000 [V] analyze_edge(66): removing decoder: sony 6671 > 2000 [V] analyze_edge(66): removing decoder: denon 8807 > 2000 [V] analyze_edge(66): removing decoder: flirc 4171 > 2000 [V] analyze_edge(66): removing decoder: nokia 8659 > 2000 [V] analyze_edge(66): removing decoder: TDC 8756 > 2000 [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] finish_nec(72): nec [V] ir_decode(74): handler match: NEC [V] ir_nec_bytes_to_scancode(72): NEC Scancode: 0x0030 [V] ir_nec_decode(122): Device: 0x00 ~Device: 0xFF Command: 0x30 ~Command: 0xCF ScanCode: 0x00FF30CF :: FLIRC :: NEC - scancode: 0x00FF30CF 0000 006D 0022 0002 015C 00AA 0018 0011 0018 0011 0018 0011 0018 0011 0018 0011 0018 0011 0018 0011 0018 0011 0018 003C 0018 003C 0018 003C 0018 003C 0018 003C 0018 003C 0018 003C 0018 003C 0018 0011 0018 0011 0018 003C 0018 003C 0018 0011 0018 0011 0019 0010 0018 0011 0018 003C 0018 003C 0018 0011 0018 0011 0018 003C 0018 003C 0019 003B 0018 003C 0018 05F1 0156 0056 0015 0E4A [V] DecodeIR(5900): NEC Device: 0x00 SubDevice: 0xFFFFFFFF OBC: 0xFFFFFFFFFFFFFFFFFFFFFFFF000000CF MISC: no repeat ERROR: :: DECODEIR :: NEC - scancode: 0x00CF D:0x0000 S:0xFFFFFFFF [V] analyze_edge(66): removing decoder: rc5 8182 > 2000 [V] analyze_edge(66): removing decoder: mce 6407 > 2000 [V] analyze_edge(66): removing decoder: xmp 8861 > 2000 [V] analyze_edge(66): removing decoder: ortek 7151 > 2000 [V] analyze_edge(66): removing decoder: sharp 7223 > 2000 [V] analyze_edge(66): removing decoder: sony 6671 > 2000 [V] analyze_edge(66): removing decoder: denon 8807 > 2000 [V] analyze_edge(66): removing decoder: flirc 4171 > 2000 [V] analyze_edge(66): removing decoder: nokia 8659 > 2000 [V] analyze_edge(66): removing decoder: TDC 8756 > 2000 [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] get_closest_proto(40): list entry: NEC [V] get_closest_proto(46): choosing: NEC [V] finish_nec(72): nec [V] ir_decode(74): handler match: NEC [V] ir_nec_bytes_to_scancode(72): NEC Scancode: 0x0030 [V] ir_nec_decode(122): Device: 0x00 ~Device: 0xFF Command: 0x30 ~Command: 0xCF ScanCode: 0x00FF30CF :: FLIRC :: NEC - scancode: 0x00FF30CF :: ARDUINO :: NEC - scancode: 0x00FF30CF {32} ++++ [V] main(153): running post-command function 0 [V] flirc_deinit(89): closing serial device pi@raspberrypi:~ $ irtools sendir --pattern="0000,006D,0022,0002,015C,00AA,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,0011,0018,0011,0018,003C,0018,003C,0018,0011,0018,0011,0019,0010,0018,0011,0018,003C,0018,003C,0018,0011,0018,0011,0018,003C,0018,003C,0019,003B,0018,003C,0018,05F1,0156,0056,0015,0E4A" --repeat=1 [V] main(121): Command: irtools [V] main(125): running pre-command function 0 [D] list_devs(254): --------------------------------------------------------- [D] list_devs(255): -----------------------Device List----------------------- [D] list_devs(256): --------------------------------------------------------- [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw0 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 0 [D] list_devs(274): Usage Page: 65280 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 1 [D] list_devs(275): Usage: 6 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 12 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 1 [D] list_devs(275): Usage: 128 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw1 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 1 [D] list_devs(274): Usage Page: 12 [D] list_devs(275): Usage: 1 [D] list_devs(267): Device Found type: 20a0 0006 path: /dev/hidraw2 serial_number: E7A3ABA25050323431202020FF101122 [D] list_devs(269): [D] list_devs(270): Manufacturer: flirc.tv [D] list_devs(271): Product: flirc [D] list_devs(272): Release: 200 [D] list_devs(273): Interface: 2 [D] list_devs(274): Usage Page: 65280 [D] list_devs(275): Usage: 1 [D] list_devs(281): --------------------------------------------------------- [D] hid_find(229): Device Used type: 20a0 0006 path: /dev/hidraw2 serial_number: E7A3ABA25050323431202020FF101122 [D] hid_find(231): Manufacturer: flirc.tv [D] hid_find(232): Product: flirc [D] hid_find(233): Release: 200 [D] hid_find(234): Interface: 2 [D] hid_find(235): Usage Page: 65280 [D] hid_find(236): Usage: 1 [V] hid_dev_open(311): Manufacturer String: flirc.tv [V] hid_dev_open(316): Product String: flirc [V] hid_dev_open(321): Serial Number String: E7A3ABA25050323431202020FF101122 [V] hid_dev_open(322): [V] hid_send_packet(79): Report ID: 2 [V] hid_send_packet(80): Report len: 33 00: 02 75 73 62 5f 69 66 00 00 00 00 00 00 01 00 00 .usb_if......... 10: 00 01 54 d6 01 1c 46 c1 ff c8 3b 01 00 28 46 c1 ..T...F...;..(F. 20: ff . [V] hid_send_packet(91): hid_write = 33 [V] hid_recv_packet(144): Report ID: 1 [V] hid_recv_packet(145): Report len: 33 [V] hid_recv_packet(155): retval = 33 00: 01 75 73 62 5f 69 66 00 00 00 00 00 00 00 00 00 .usb_if......... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 . found it [V] lib/libcmds/cmds.c run_cmds(251): running command: sendir [V] lib/libcmds/cmds.c cmd_getopt(223): opt: --pattern=0000,006D,0022,0002,015C,00AA,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,0011,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,003C,0018,0011,0018,0011,0018,003C,0018,003C,0018,0011,0018,0011,0019,0010,0018,0011,0018,003C,0018,003C,0018,0011,0018,0011,0018,003C,0018,003C,0019,003B,0018,003C,0018,05F1,0156,0056,0015,0E4A, carg = 1 [V] lib/libcmds/cmds.c cmd_getopt(223): opt: --repeat=1, carg = 2 [V] hid_send_packet(79): Report ID: 2 [V] hid_send_packet(80): Report len: 33 00: 02 67 65 74 76 65 72 73 69 6f 6e 00 00 c8 19 d7 .getversion..... 10: f7 d0 06 01 00 00 00 00 00 94 1b d7 f7 00 00 00 ................ 20: 00 . [V] hid_send_packet(91): hid_write = 33 [V] hid_recv_packet(144): Report ID: 1 [V] hid_recv_packet(145): Report len: 33 [V] hid_recv_packet(155): retval = 33 00: 01 67 65 74 76 65 72 73 69 6f 6e 00 00 04 00 09 .getversion..... 10: 00 07 00 b8 3e e2 1d 72 65 6c 65 61 73 65 00 00 ....>..release.. 20: 00 . [E] fl_version_compare(281): Flirc iospirit found version: 4.9.7 0x1DE23EB8 [release] [D] csv_to_buf(44): number of commas in string: 75 [V] hid_send_packet(79): Report ID: 6 [V] hid_send_packet(80): Report len: 65 Transmitting IR Pattern...00: 06 69 72 74 72 61 6e 73 65 74 00 00 00 4a 00 00 .irtranset...J.. 10: 00 01 89 45 df d0 de d3 f7 00 10 05 00 90 61 01 ...E..........a. 20: 00 a8 18 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 10 d7 f7 fc 45 c1 ff d0 08 9e f7 f4 44 c1 ......E.......D. 40: ff . [V] hid_send_packet(91): hid_write = 65 [V] hid_recv_packet(144): Report ID: 5 [V] hid_recv_packet(145): Report len: 65 [V] hid_recv_packet(155): retval = 65 00: 05 69 72 74 72 61 6e 73 65 74 00 00 00 00 00 00 .irtranset...... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 . 00: 00 00 06 00 16 00 02 00 0f 00 00 00 12 00 0b 00 ................ 10: 12 00 0b 00 12 00 0b 00 12 00 0b 00 12 00 0b 00 ................ 20: 12 00 0b 00 12 00 0b 00 12 00 0b 00 12 00 03 00 ................ 30: 12 00 03 00 .... [V] hid_send_packet(79): Report ID: 6 [V] hid_send_packet(80): Report len: 65 00: 06 69 72 74 72 61 6e 73 72 61 77 00 00 00 00 06 .irtransraw..... 10: 00 16 00 02 00 0f 00 00 00 12 00 0b 00 12 00 0b ................ 20: 00 12 00 0b 00 12 00 0b 00 12 00 0b 00 12 00 0b ................ 30: 00 12 00 0b 00 12 00 0b 00 12 00 03 00 12 00 03 ................ 40: 00 . [V] hid_send_packet(91): hid_write = 65 [V] hid_recv_packet(144): Report ID: 5 [V] hid_recv_packet(145): Report len: 65 [V] hid_recv_packet(155): retval = 65 00: 05 69 72 74 72 61 6e 73 72 61 77 00 00 00 00 00 .irtransraw..... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 . 00: 12 00 03 00 12 00 03 00 12 00 03 00 12 00 03 00 ................ 10: 12 00 03 00 12 00 03 00 12 00 0b 00 12 00 0b 00 ................ 20: 12 00 03 00 12 00 03 00 12 00 0b 00 12 00 0b 00 ................ 30: 13 00 0a 00 .... [V] hid_send_packet(79): Report ID: 6 [V] hid_send_packet(80): Report len: 65 00: 06 69 72 74 72 61 6e 73 72 61 77 00 00 12 00 03 .irtransraw..... 10: 00 12 00 03 00 12 00 03 00 12 00 03 00 12 00 03 ................ 20: 00 12 00 03 00 12 00 0b 00 12 00 0b 00 12 00 03 ................ 30: 00 12 00 03 00 12 00 0b 00 12 00 0b 00 13 00 0a ................ 40: 00 . [V] hid_send_packet(91): hid_write = 65 [V] hid_recv_packet(144): Report ID: 5 [V] hid_recv_packet(145): Report len: 65 [V] hid_recv_packet(155): retval = 65 00: 05 69 72 74 72 61 6e 73 72 61 77 00 00 00 00 00 .irtransraw..... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 . 00: 12 00 0b 00 12 00 03 00 12 00 03 00 12 00 0b 00 ................ 10: 12 00 0b 00 12 00 03 00 12 00 03 00 13 00 03 00 ................ 20: 12 00 03 00 12 00 05 00 9c 00 38 00 ..........8. [V] hid_send_packet(79): Report ID: 6 [V] hid_send_packet(80): Report len: 65 00: 06 69 72 74 72 61 6e 73 72 61 77 00 00 12 00 0b .irtransraw..... 10: 00 12 00 03 00 12 00 03 00 12 00 0b 00 12 00 0b ................ 20: 00 12 00 03 00 12 00 03 00 13 00 03 00 12 00 03 ................ 30: 00 12 00 05 00 9c 00 38 00 00 00 00 00 00 00 00 .......8........ 40: 00 . [V] hid_send_packet(91): hid_write = 65 [V] hid_recv_packet(144): Report ID: 5 [V] hid_recv_packet(145): Report len: 65 [V] hid_recv_packet(155): retval = 65 00: 05 69 72 74 72 61 6e 73 72 61 77 00 00 00 00 00 .irtransraw..... 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 . Done! [V] main(153): running post-command function 0 [V] flirc_deinit(89): closing serial device pi@raspberrypi:~ $
  11. Unfortunately the documentation and support is rather lacking on this feature possibly due to lack of dev cycles anyway here is a "how to" of the " SendIR waveform function" from latest git as of feb 8 2021 on Ubuntu 20 x64: ( this guide assumes basic Linux know how, and may be invalidated over time due to updates to git) Side note: There exists other devices I bought like USB-UIRT which do a better job but have their own issues, flirc however I find a little easier to capture IR waveforms so has some uses the issue is the transceiver its not going to work unless your literally sitting the usb unit in front of the device you want to control. Objective: What is Send IR, its a way to remotely send Infrared signals directly outbound, as opposed to what Flirc was designed for which is mainly inbound device control. 1. You will need Ubuntu 20 or equivalent 2. You will need V2 of the Flirc Steps: a. install flirc using the known methods namely: Debian [64], Redhat [64bit], or Raspberry Pi Debian curl apt.flirc.tv/install.sh | sudo bash b. get git, sudo apt install git c. Make a directory and install and compile the sdk Commands from your home directory: cd ~ mkdir buildsdk cd buildsdk git clone https://github.com/flirc/sdk.git cd sdk cd cli sudo apt-get install libusb-1.0-0-dev libreadline-dev libhidapi-dev make all now your tool will be compiled in: ~/buildsdk/sdk/cli/buildresults/Linux_x86_64/x86_64_linux_gnu_gcc_10/flirc_util/debug/ And it is called flirc_util (latest version from git) d. Capture IR command signal Open the traditional Flic setup and control tool, my tool which was installed in step (a) is Flirc v3.25.3 it says connected as my flirc is inserted in the computer, if you cannot find it refer to installation again in step (a). open the app, goto File, drop down: click device log, click on the checkmark (x) Enable IR debugging. This will record all IR signals being sent to the flirc you will need this to create your IR commands. So Example: Mon. Feb. 8 2021 01:51:26 Flirc GUI Version v3.25.3 Operating System: Linux *** Device Disconnected *** *** Device Connected *** So lets say I want to record the power off, power on button for my heater; When I press power on/off button while pointed towards the flirc the waveform command is, captured and immediately shows up in the debugging window as: 0,9073,4414,618,1595,622,470,618,469,649,443,618,470,622,465,623,469,622,466,622,470,617,1596,622,1595,622,1595,618,1595,622,1595,622,1595,622,1594,618,1599,618,1594,622,470,618,1595,626,465,622,466,622,469,618,470,622,470,617,470,621,1595,618,469,622,1595,621,1595,622,1591,622,1595,622 Now you have successfully captured the IR signal. e. Send IR command signal in step C, you created the flirc_util from git so, Point the USB flirc at whatever device you want to control in my case heater now from command prompt goto ~/buildsdk/sdk/cli/buildresults/Linux_x86_64/x86_64_linux_gnu_gcc_10/flirc_util/debug/ and run this command: flirc_util sendir 0,9073,4414,618,1595,622,470,618,469,649,443,618,470,622,465,623,469,622,466,622,470,617,1596,622,1595,622,1595,618,1595,622,1595,622,1595,622,1594,618,1599,618,1594,622,470,618,1595,626,465,622,466,622,469,618,470,622,470,617,470,621,1595,618,469,622,1595,621,1595,622,1591,622,1595,622 Now in my case the heater if turned on turns off, and if the heater is off turns on, You have successfully transmitted the IR signal by the computer. Main use cases would be remote ( ie not even home) control of appliances and some robotics applications. Where you can remote into your computer from away and run scripts to control things, I guess use your imagination. Good luck
  12. I just received my Flirc Gen 2, and so far it's been a breeze to set up. I'm using the full keyboard option to control the audio output of a Raspberry Pi, using alsamixer commands... "Q"= left channel+, "Z"= left channel-, "E"= right channel+, "C" right channel-, "B"= balance equal, "W"= volume+, and "X"= volume-. But I also want to map the mute button... that requires an actual command: "amixer -D hw:CARD=audioinjector set 'Output Mixer Line Bypass' toggle". Is this possible?
  13. Same. And I get issues with self_test with this 4.10.6 FW that came with my device flirc_util unit_test [E] lib/libtransport/transport.c _dev_send_cmd(225): Wrong response: 'getversion' != 'format' [E] lib/libtransport/transport.c _dev_send_cmd(225): Wrong response: 'getversion' != 'record' [E] lib/libflirc/firmware/fw_4.9.c fl_ver4_set_record_api(109): command error [E] lib/libtransport/hid.c hid_recv_packet(217): Wrong response length = 33 [E] lib/libtransport/hid.c hid_recv_packet(218): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout [E] lib/libtransport/hid.c hid_recv_packet(223): Wrong report exp: 1 != 5 [E] lib/libtransport/hid.c hid_recv_packet(224): hidapi: Success [E] lib/libtransport/transport.c _recv_packet(127): _recv_packet: recv packet error = -1 [E] lib/libtransport/transport.c _dev_send_cmd(202): recv timeout [E] lib/libflirc/firmware/fw_4.2.c _fl_unit_test(132): error recording test0 Flirc Not Okay
  14. I see the same result with flirc_util 3.27.15+ and the following Flirc 2.0 USB firmwares: v4.9.6 v4.10.5 The workaround is to transform the "raw" codes into CSV, this can be done with the following command (Linux): raw="+9014 -4405 +535 ..... <rest of raw string>" csv=$(echo 0"$raw" | sed 's/ \?[+-]/,/g') flirc_util sendir --raw="$csv" Note the prefixed '0'.
  15. I'm trying to set up play/pause for a Nvidia Shield Pro (2019) with my Harmony 650. Play/pause is one button on the Shield, but two buttons on the Harmony remote. I could just use the play or pause button, but it's not a clean solution and confusing for other people using the remote. How can I do this?
  16. This is really crazy. Does this happen every time? I don’t see anything in dmesg. Can you do a flirc_utility device log before this happens and after it happens. I may need to send you some special firmware to get more logs. The only way a device can lose its memory is if it’s sent a special command. Or memory gets corrupted, and the way that happens is if something writes to memory… But it would also say in the device log if it found corrupt memory. Are you doing anything custom like running the utility in the background or as a startup script, etc?
  17. A little follow up. I have since upgraded to version 3.27.3. It seems that the repeat part of the sendir functionality does not work reliably. I erroneously claimed in my first post that the IR signal is not being sent under certain conditions but that was an observation based on the (non)response from the IR controlled device. I have since found a slightly more reliable (but still far from ideal) detection method: by capturing the output IR signal of the Flirc's transmitter with the Flirc's receiver (inside a Flirc unit the transmitter and the receiver are physically very close to one another so the receiver picks up the transmitter's signal). By using IR receiver logging functionality I can see that in reality the IR signal is sent, but usually not the correct one. In fact different length IR signals are being sent when using the same sendir command if the number of repeats is > 0 (note that when --repeat is omitted, sendir defaults to 1 repeat): Batch 'test.cmd': @echo off for /l %%a in (1,1,4) do ( flirc_util.exe device_log --ir >nul flirc_util.exe sendir --pronto="0000 006d 0022 0002 0156 00ab 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 05d8 0156 0055 0015 0e48" --repeat=2 >nul flirc_util.exe device_log ) Output: C:\Program Files (x86)\Flirc>test -36681 +8925 -4389 +585 -1588 +585 -1596 +555 -1609 +585 -471 +580 -472 +585 -471 +581 -471 +585 -1587 +585 -472 +580 -472 +585 -1587 +585 -1587 +559 -1614 +554 -1622 +559 -1605 +559 -497 +585 -471 +581 -471 +585 -1588 +559 -493 +585 -1587 +585 -4 72 +554 -498 +592 -1580 +585 -1587 +9478 -4368 +585 -9940 +8954 -2126 +585 -2761 +8928 -4387 +585 -1587 +585 -1591 +585 -1583 +585 -471 +559 -493 +585 -471 +559 -493 +585 -1587 +585 -471 +585 -467 +585 -1587 +584 -1588 +585 -1587 +585 -1587 +585 -1588 +585 -471 +581 -471 +585 -472 +580 -1588 +584 -492 +565 -1587 +559 -4 93 +585 -472 +554 -1618 +554 -1618 +554 -1614 +559 -502 +585 -1582 +585 -472 +58 0 -1587 +8930 -4370 +585 -9625 +8951 -2130 +585 -2776 +8927 -4394 +554 -1614 +559 -1627 +524 -1636 +585 -471 +555 -498 +585 -467 +585 -472 +554 -1614 +559 -498 +559 -493 +585 -1588 +585 -1587 +585 -1587 +586 -1596 +555 -1605 +559 -498 +585 -467 +585 -471 +559 -1613 +559 -493 +585 -1588 +585 -4 71 +555 -497 +600 -1573 +585 -1587 +9476 -4368 +585 -9949 +8954 -2130 +585 -2721 +8928 -4392 +584 -1588 +585 -1587 +585 -1587 +585 -471 +580 -472 +585 -471 +580 -472 +585 -1587 +585 -467 +585 -471 +585 -1587 +585 -1587 +585 -1587 +585 -1587 +559 -1614 +558 -498 +558 -493 +559 -493 +585 -1587 +585 -489 +541 -1613 +559 -4 93 +585 -471 +559 -1614 +554 -1614 +9476 -4370 +585 -9927 +8956 -2125 +585
  18. Hello I have been setting up my Flirc Skip remote & while most of the buttons work fine, I’ve noticed that long-press commands aren’t being recognized properly. For example; I tried mapping a long press for volume control and input switching, but the remote only registers a single press instead of holding the command. This happens across multiple devices, so I don’t think it’s just an issue with my TV or receiver. I have checked the Flirc software settings; ensured the firmware is up to date, and even tried reprogramming the buttons with different delay settings, but no luck. Some users mention adjusting IR repeat settings or modifying the key mapping manually, but I’m not sure where to start troubleshooting. Could this be a firmware limitation / is there a workaround to get long-press functionality working consistently? Checked Has anyone else experienced this? Are there specific Salesforce Admin settings in the Flirc configuration tool that can fix this issue? Any help or suggestions would be greatly appreciated! Thank you !!
  19. @jason Just to clarify, the loop is running on the host computer, driving the Flirc sendir process.
  20. Hello, I'm trying to replicate my AC remote using Flirc. I did it a few months ago, but I can't seem to get it back. I captured this log using Flirc GUI: Firmware Version: v4.9.61 SKU: Flirc 2.0 [dori] Git Hash: 0x4b35b711 <3>record_hash(473): hash exists -40481 +8834 -4157 +509 -1534 +510 -494 +509 -493 +507 -495 +508 -1536 +509 -494 +509 -493 +509 -494 +508 -495 +509 -493 +535 -469 +508 -495 +506 -495 +510 -493 +507 -496 +508 -496 +508 -1534 +509 -495 +522 -480 +507 -496 +508 -494 +508 -495 +509 -494 +509 -493 +508 -1534 +509 -494 +508 -495 +507 -495 +508 I'm trying to replicate this command using flirc_util, but I can't get it to work: flirc_util.exe sendir --raw="-40481 +8834 -4157 +509 -1534 +510 -494 +509 -493 +507 -495 +508 -1536 +509 -494 +509 -493 +509 -494 +508 -495 +509 -493 +535 -469 +508 -495 +506 -495 +510 -493 +507 -496 +508 -496 +508 -1534 +509 -495 +522 -480 +507 -496 +508 -494 +508 -495 +509 -494 +509 -493 +508 -1534 +509 -494 +508 -495 +507 -495 +508" [W] lib/libcmds/cmds.c handle_longopt(182): `sendir' doesn not take '--raw' option Error: must specify an option flirc_util.exe sendir --pronto="-40481 +8834 -4157 +509 -1534 +510 -494 +509 -493 +507 -495 +508 -1536 +509 -494 +509 -493 +509 -494 +508 -495 +509 -493 +535 -469 +508 -495 +506 -495 +510 -493 +507 -496 +508 -496 +508 -1534 +509 -495 +522 -480 +507 -496 +508 -494 +508 -495 +509 -494 +509 -493 +508 -1534 +509 -494 +508 -495 +507 -495 +508" Transmitting IR Pattern... (but doesn't work) flirc_util.exe sendir --pronto="0,40481,8834,4157,509,1534,510,494,509,493,507,495,508,1536,509,494,509,493,509,494,508,495,509,493,535,469,508,495,506,495,510,493,507,496,508,496,508,1534,509,495,522,480,507,496,508,494,508,495,509,494,509,493,508,1534,509,494,508,495,507,495,508" [E] lib/libtransport/transport.c _dev_send_cmd(223): Wrong response: 'ir_state' Error getting version device disconnected, can't run command ¿Any idea? Thanks!
  21. Oops, I think I messed up. I forgot to include the "unit test" at the end of the command. I will have to re-run it when I get home tonight. Sorry about that Jason!
  22. Until and unless someone responds with a better solution, I found a workaround. After using irtools to "sendir", use the command "flirc_util.exe normal" and it somehow "resets" the FLIRC so it can once again receive commands. whew!
  23. Hi! I've been happy Flirc user, at least until now. After last firmware and Flirc app update on my Windows 11 HTPC, Flirc works only until I use irtools.exe with sendir command. After using it, Flirc shows as connected in the app, but can't read any IR codes. This can be fixed by unplugging and replugging Flirc into USB port, but only until I use irtools again. This is debug output with a few button presses when Flirc doesn't work: po aug 7 2023 20:55:31 Flirc GUI Version v3.27.3 Operating System: Windows -24513000 -510000 -595000 -803000 -620000 -518000 -370000 -43000 This is output ater replugging Flirc when it starts working: po aug 7 2023 20:56:11 Flirc GUI Version v3.27.3 Operating System: Windows *** Device Disconnected *** *** Device Connected *** Firmware Version: v4.9.7 SKU: Flirc 2.0 [dori] Git Hash: 0x1de23eb8 <1>malloc_addblock(49): Heap Block: 0x20001AA4 - 0x20003BFF (8k) -13389000 +9101 -4406 +635 -474 +579 -500 +637 -450 +631 -474 +578 -504 +635 -448 +635 -492 +591 -1590 +635 -474 +608 -474 +605 -478 +634 -1595 +630 -1595 +608 -474 +635 -1595 +608 -1595 +634 -1590 +635 -447 +635 -474 +609 -473 +646 -1583 +609 -473 +635 -448 +634 -474 +604 -474 +635 -1594 +608 -1594 +635 -1594 +634 -448 +635 -1589 +635 -1594 +609 -1594 +634 -1804000 +9096 -4406 +634 -474 +609 -474 +604 -478 +635 -452 +630 -474 +605 -477 +635 -452 +605 -1616 +634 -452 +631 -473 +605 -478 +635 -1594 +604 -1603 +626 -474 +635 -1572 +630 -1594 +635 -452 +630 -474 +604 -509 +604 -447 +635 -1589 +635 -452 +630 -474 +583 -499 +635 -1594 +579 -1625 +634 -1590 +635 -1594 +579 -504 +635 -1594 +604 -1603 +626 -1594 +635 -1155000 +9100 -4403 +635 -452 +631 -474 +609 -473 +635 -448 +635 -473 +579 -504 +635 -448 +661 -1564 +635 -452 +631 -473 +583 -500 +635 -1594 +579 -1624 +631 -474 +608 -1595 +635 -1594 +635 -448 +635 -474 +604 -474 +635 -448 +635 -1594 +635 -1594 +609 -1591 +634 -474 +609 -1594 +635 -1595 +635 -1590 +609 -1594 +635 -474 +609 -474 +635 -448 +634 -1591 +609 -2326000 +9098 -4406 +605 -477 +635 -452 +631 -473 +631 -454 +633 -452 +630 -469 +609 -474 +634 -1594 +579 -504 +635 -447 +635 -469 +609 -1594 +635 -1594 +634 -448 +635 -1589 +635 -1594 +609 -473 +635 -1594 +578 -1624 +635 -1590 +635 -452 +630 -474 +604 -478 +635 -452 +630 -1594 +635 -447 +631 -473 +579 -504 +635 -1594 +612 -1590 +630 -1595 +634 -1595 +604 I am 90% positive it stopped working after upgrade, but can't be 100% sure because before the upgrade I was using flirc_utils.exe instead of irtools.exe Please help me with this issue. Thanks!
  24. Dean White

    Bricked 1s?

    Hi there, I fear I have a bricked 1s. I connected my 1s to may MacBook pro in order to update a command (mute). Synced OK as far as I could tell. After that the 1s sends no commands to any devices: I just get a red ring on the control pad. I completely deleted the device and tried to start from scratch: same result. None of the devices are receiving any commands when I test from the remote OR when I test from within the app (using the "test device" function within the wizard: Devices "Edit Activity"). The red ring concerns me as it reminds me of the Red Ring Of Death from xbox days. Is there a "Master Reset" option anywhere? It seems the 1S is not sending any commands of any type. Thank you Dean W
  25. This is upsetting and I'm sorry to hear about it. Can we do a quick test. Close the GUI, and then fire up command prompt, and do the following: "C:\Program Files (x86)\Flirc\flirc util.exe" unit test What is the result?
×
×
  • Create New...