I installed the lirc library and I tried to use it, I need this for a project
sudo mode2 -d/dev/lirc0 Using driver default on device /dev/lirc0 Trying device: /dev/lirc0 Please use the --raw option to access the device directly instead through the abstraction layer
If I use with –raw
Using raw access on device /dev/lirc0 Problems: this device is not a LIRC kernel device (it does not support LIRC_GET_REC_MODE ioctl). This is not necessarily a problem, but mode2 will not work. If you are using the --raw option you might try using without it and select a driver instead. Otherwise, try using lircd + irw to view the decoded data - this might very well work even if mode2 doesn't.
I am new to the PI world, I don’t know where the problem is. The receiver? The circuit? Pins? Please help !
CONTEXT: I just want to record some IR signals so I can use them after. This is the circuit I used : https://www.hackster.io/austin-stanton/creating-a-raspberry-pi-universal-remote-with-lirc-2fd581
I just want to record some IR signals so I can use them for a project.
I used the remote to send IR codes by pressing buttons by hand
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, ^, v, <, >, OK
and used Win 10 RealTerm to read the signals from UART interfaced IR receiver.
Now I have set up a test rig for looking at the IR signal generated by the mini remote controller. I press button Digit a and found the UART IR transciver geats the serial (9600, 8n1) byte of 0x00ff16. The scope displaced the raw signal which I guess is part of the NEC 38kHz signal for three hex digits 0x00, 0xff, 0x16. I guess I an use Rpi GPIO pin 17 to read this signal to convert to 0x00ff16, and decoded to mini remote controller button Digit 1.
Now I have put aside the UART IR transceiver, and only test the module in the middle of the setup. This guy gives raw output for mini remote controller button Digit 1. Next is to connect its output to GPIO pin 17 and use LIRC to print on the console “pules, space, pulse space, …”
*I installed LIRC and tested remote controller OK (Reference 29, Appendix G below). Mode 2 command display the pulse space data OK:*
$ sudo mode2 -d /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0 Using device: /dev/lirc0
Running as regular user pi
pulse 600 …
/ to continue, …
(1) Update 2019sep12hkt1258
Now I have found in my junk box the IR transceiver kit I bought for hacking my HDMI switch box. I guess the remote is the IR transmitter, the black little guy is the IR receiver, and the clear LED is status LED. I need to search the user guide. I bought the kit from TaoBo which usually does not bother to include and user guide. So I need to search PiHut and Hobby Electronics, …
(2) Update 2019sep12hkt1509
Now I am reading the Vishay TSOP1838 IR Receiver DataSheet and made a summary.
(3) Update 2019sep12hkt1604
Now I am using the remote to repeatedly sending button numbere 1 to the receiver, and use scope to display the repeat number 1 signal.
And I am studying the NEC IR protocol to see if my cheapie remote and indeed sending NEC codes.
(5) Update 2019sep12hke2243
Now I am thinking of using the following module to test the IR emitter.
Now that I have more or less understand the NEC 38kHz encoding protocol, and also tested OK the 838 receiver, using the remote to manually generate the IR signals, next step is to look at the IR LED. I am studying Vishay’s TSAL6200 940nM IR LED which I think is the most popular. I made a summary below. By the way, it took me some 10 minutes to understand funny looking Fig 9, Intensity vs Angle.
(6) Update 2019sep13hkt2111
Remote Button Number 1 Signal Waveform Display
(7) Update 2019sep13hkt2210
I am testing the UART interfaced IR emitter and received. The remote sends out signal by a stupid human finger pressing Button Number 1. UART then Rx receives the signal below. I need to check if it means any thing.
(8) Update 2019sep14hkt1420
Now I am using the RealTerm terminal emulator (Ref 27) to read the NEC encoded IR signals sent by the manual remote controller, and received by the UART controlled IR receiver.
/ to continue, …
(2) LIRC – Wikipedia
***Materials*** (1) Raspberry Pi 2 (2) 940nm IR LED 40deg - 40 degree viewing angle. Bright and tuned to 940nm wavelength. (3) 38khz IR Receiver - Receives IR signals at remote control frequencies (4) PN2222 Transistor - Transistor to help drive IR LED (5) 10k Ohm resistor - Resistor that goes between RPI GPIO and the PN2222 transistor ***Installation*** sudo apt-get install lirc Add to your /etc/modules file by entering the command below: sudo cat >> /etc/modules <<EOF lirc_dev lirc_rpi gpio_in_pin=23 gpio_out_pin=22 sudo cat > /etc/lirc/hardware.conf <<EOF # /etc/lirc/hardware.conf # Arguments which will be used when launching lircd LIRCD_ARGS="--uinput" # Don't start lircmd even if there seems to be a good config file # START_LIRCMD=false # Don't start irexec, even if a good config file seems to exist. # START_IREXEC=false # Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="default" # usually /dev/lirc0 is the correct setting for systems using udev DEVICE="/dev/lirc0" MODULES="lirc_rpi" # Default configuration files for your hardware if any LIRCD_CONF="" LIRCMD_CONF="" ######################################################## EOF Edit your /boot/config.txt by entering the command below: cat >> /boot/config.txt <<EOF dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=22 EOF Now restart lircd so it picks up these changes: sudo /etc/init.d/lirc stop sudo /etc/init.d/lirc start ***Testing the IR Receiver*** Testing the IR receiver is relatively straightforward. Run these two commands to stop lircd and start outputting raw data from the IR receiver: sudo /etc/init.d/lirc stop mode2 -d /dev/lirc0 Point a remote control at your IR receiver and press some buttons. You should see something like this: space 16300 pulse 95 space 28794 pulse 80 space 19395 pulse 83 space 402351 pulse 135 space 7085 pulse 85 space 2903 If you don’t, something is probably incorrectly configured. Triple check that you’ve connected everything properly and haven’t crossed any wires. I highly recommend referring to the schematics I linked to above. There is also some trouble shooting advice in the RaspberryPi Forum thread I linked to above. Finally - you may want to do this in a dark room. I found that my desk lamp and overhead light would cause the IR receiver to think it was receiving valid signals. ***Testing the IR LED*** You’re going to need to either find an existing LIRC config file for your remote control or use your IR receiver to generate a new LIRC config file(find existing remote profiles here). In my case, I created a new LIRC config file. To do this, read the documentation on the irrecord application that comes with LIRC. When using irrecord it will ask you to name the buttons you’re programming as you program them. Be sure to run irrecord --list-namespace to see the valid names before you begin. Here were the commands that I ran to generate a remote configuration file: # Stop lirc to free up /dev/lirc0 sudo /etc/init.d/lirc stop # Create a new remote control configuration file (using /dev/lirc0) and save the output to ~/lircd.conf irrecord -d /dev/lirc0 ~/lircd.conf # Make a backup of the original lircd.conf file sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd_original.conf # Copy over your new configuration file sudo cp ~/lircd.conf /etc/lirc/lircd.conf # Start up lirc again sudo /etc/init.d/lirc start Once you’ve completed a remote configuration file and saved/added it to /etc/lirc/lircd.conf you can try testing the IR LED. We’ll be using the irsend application that comes with LIRC to facilitate sending commands. You’ll definitely want to check out the documentation to learn more about the options irsend has. Here are the commands I ran to test my IR LED (using the “Roku” remote configuration file I created): # List all of the commands that LIRC knows for 'Roku' irsend LIST Roku "" # Send the KEY_POWER command once irsend SEND_ONCE Roku KEY_POWER # Send the KEY_VOLUMEDOWN command once irsend SEND_ONCE Roku KEY_VOLUMEDOWN I tested that this was working by pointing the IR led at my Roku receiver and testing whether I could turn it on and press enter. sudo cat > /etc/lirc/hardware.conf <<EOF # /etc/lirc/hardware.conf # Arguments which will be used when launching lircd LIRCD_ARGS="--uinput" # Don't start lircmd even if there seems to be a good config file # START_LIRCMD=false # Don't start irexec, even if a good config file seems to exist. # START_IREXEC=false # Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="default" # usually /dev/lirc0 is the correct setting for systems using udev DEVICE="/dev/lirc0" MODULES="lirc_rpi" # Default configuration files for your hardware if any LIRCD_CONF="" LIRCMD_CONF="" EOF
(B) LIRC – Wikipedia
LIRC (Linux Infrared Remote Control) is an open source package that allows users to receive and send infrared signals with a Linux-based computer system. With LIRC and an IR receiver the user can control their computer with almost any infrared remote control (e.g. a TV remote control). The user may for instance control DVD or music playback with their remote control.
What is LIRC?
LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls.
Recent linux kernels makes it possible to use some IR remote controls as regular input devices. Sometimes this makes LIRC redundant.
However, LIRC offers more flexibility and functionality and is still the right tool in a lot of scenarios. The most important part of LIRC is the lircd daemon which decodes IR signals received by the device drivers and provides the information on a socket. It also accepts commands for IR signals to be sent if the hardware supports this.
The user space applications allows you to control your computer with your remote control. You can send X11 events to applications, start programs and much more on just one button press.
The possible applications are obvious: Infra-red mouse, remote control for your TV tuner card or CD-ROM, shutdown by remote, program your VCR and/or satellite tuner with your computer, etc.
Using lirc on Raspberry Pie is quite popular these days.
Supported remote controls
There are some config files for remote controls at the remotes database. This is about 2500 devices and counting. These devices should work with the general drivers or (if it lacks timing info) the driver used to create them.
If you can’t find your remote control here it does not mean that your remote control is not supported. It’s just that there is no config file for it yet.
All remote controls that are supported by learning remote controls i.e., almost any, should also work with LIRC.
Supported capture devices
Besides a remote control you also need a capture device to read the data from the remote.
Former versions focused on home-brew capture hardware connected to the serial or parallel port. Descriptions how to build such hardware can be found here. Current versions of LIRC also support a broad range of other hardware.
As a starter, you can use the kernel built-in support for many USB dongles and similar. Besides this LIRC supports basically any conceivable way to capture your data including serial devices, parallel ports, sound input etc. You can see the complete list in the left pane.
A cheap and easy to use Infra Red remote and Receiver module. 17 Buttons provides great flexibility to control devices within a range of up to 8m
Battery:CR2025 Button batteries (supplied)
Transmission Distance: up to 8m (depending on the surrounding environment,
Sensitivity of receiver Effective
Angle: 60° Static Current: 3~5uA,
Dynamic Current: 3~5mA
Supply Voltage 2.7V – 5.5V
Remote size: 8.5 x 4 x 0.65cm (3.3 x 1.6 x 0.25inch) (L x W x H)
Sensor uses HX1838, high sensitivity
Operating voltage 5V Digital output
VCC 3.3V-5V voltage
Can direct connected 3V3/5V microcontroller I/O port has 10K pull-up resistor
The original purpose of this program has been to check operation of home-brew LIRC receiver hardware and
to see the IR waveform of the remote controller without an expensive oscilloscope
. Over time, mode2 has evolved to a generic tool to check what kind of output the kernel makes available for lirc.
Mode2 will simply print pulse and space lengths
to stdout for drivers supporting LIRC_MODE_MODE2. For drivers supporting LIRC_MODE_LIRCCODE such as TV-cards and the irman driver writes the decoded, integer values.
From version 0.9.4, mode2 can also list the devices available for a given driver.
This requires enumeration support which is available in most but not all drivers.
When given the correct driver Mode2 should always work. Without a driver, the —
should always work for /dev/lirc* devices. At the time of writing, USB devices also works in most cases. However, since it is tricky to get the path to the usb device, such ones are normally best accessed using a driver.
Not all drivers requires a device.
Updated: Last change: Jan 2017
IrDA was popular on PDAs, laptops and some desktops from the late 1990s through the early 2000s. However, it has been displaced by other wireless technologies such as Wi-Fi and Bluetooth, favored because they don’t need a direct line of sight and can therefore support hardware like mice and keyboards.
It is still used in some environments where interference makes radio-based wireless technologies unusable.
(G) Installing LIRC on Rpi4B raspbian 10 buster OK
LIRC Installation Notes Rpi4B Raspbian 10 buster tlfong01 2019sep17hkt1617 Reference: LIRC Installation Notes – user1200233 StackOverflow 2019aug11 https://stackoverflow.com/questions/57437261/setup-ir-remote-control-using-lirc-for-the-raspberry-pi-rpi pi@raspberrypi:~ $ date Sun 15 Sep 2019 12:36:45 PM HKT pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.19.58-v7l+ #1245 SMP Fri Jul 12 17:31:45 BST 2019 armv7l GNU/Linux pi@raspberrypi:~ $ sudo apt-get update ... pi@raspberrypi:~ $ sudo apt-get install lirc ... dpkg: error processing package lirc (--configure): installed lirc package post-installation script subprocess returned error exit status 1 Errors were encountered while processing: lirc E: Sub-process /usr/bin/dpkg returned an error code (1) pi@raspberrypi:~ $ Step 2 Edit /etc/lirc/lirc_options.conf ... # ************************************************** # Before - tlfong01 2019sep15hkt1245 # driver = devinput # device = auto # After - tlfong01 2019sep15hkt1246 driver = default device = /dev/lirc0 # ************************************************** Step 4 /boot/config.txt # **************************************************************************** # Before tlfong01 2019sep15hkt1255 # Uncomment this to enable the lirc-rpi module #dtoverlay=lirc-rpi # After tlfong01 2019sep15hkt1255 dtoverlay=gpio-ir,gpio_pin=17 #dtoverlay=gpio-ir-tx,gpio_pin=18 # **************************************************************************** Step 5 - Reboot pi@raspberrypi:~ $ date Sun 15 Sep 2019 01:03:31 PM HKT pi@raspberrypi:~ $ sudo reboot now Step 6 - Test remote controller pi@raspberrypi:~ $ sudo systemctl stop lircd.service Warning: Stopping lircd.service, but it can still be activated by: lircd.socket pi@raspberrypi:~ $ sudo mode2 -d /dev/lirc0 Using driver default on device /dev/lirc0 Trying device: /dev/lirc0 Using device: /dev/lirc0 Running as regular user pi space 16777215 pulse 8936 space 4383 pulse 600 space 512 pulse 600 space 511 pulse 602 space 512 pulse 633 space 478 pulse 631 space 480 pulse 370 pulse 128827 space 13678819 space 766560 pulse 8821 space 4455 pulse 567 space 569 pulse 541 space 544 pulse 541 space 568 pulse 542 space 570 pulse 563 space 544 pulse 542 space 568 pulse 541 space 570 pulse 540 space 570 pulse 540 space 1657 pulse 567 space 1632 pulse 567 space 1633 pulse 539 space 1658 pulse 541 space 28920 pulse 8849 space 4427 pulse 542 space 569 pulse 566 space 543 pulse 544 space 566 pulse 568 space 541 pulse 542 space 568 pulse 543 space 568 pulse 543 space 568 pulse 541 space 570 pulse 539 space 1659 pulse 542 space 1665 pulse 547 space 1664 pulse 536 space 1660 pulse 540 space 1666 pulse 542 space 1662 pulse 536 space 1660 pulse 563 space 1636 pulse 564 space 544 pulse 564 space 1643 pulse 560 space 1638 pulse 559 space 544 pulse 542 space 1656 pulse 542 space 570 pulse 540 space 572 pulse 540 space 566 pulse 543 space 1660 pulse 537 space 572 pulse 538 space 570 pulse 556 space 1645 pulse 535 space 568 pulse 540 space 1658 pulse 541 space 1657 pulse 541 space 1658 pulse 541 pulse 130091 space 9590140 space 977218 pulse 8823 space 4456 pulse 541 space 571 pulse 539 space 595 pulse 515 space 594 pulse 515 space 571 pulse 564 space 545 pulse 540 space 568 pulse 542 space 568 pulse 541 space 569 pulse 541 space 1661 pulse 539 space 1656 pulse 543 space 1656 pulse 542 space 1656 pulse 543 space 1661 pulse 538 space 1658 pulse 540 space 1659 pulse 540 space 1663 pulse 536 space 569 pulse 540 space 1657 pulse 540 space 1660 pulse 564 space 544 pulse 541 space 1657 pulse 541 space 569 pulse 540 space 569 pulse 541 space 567 pulse 542 space 1659 pulse 539 space 570 pulse 541 space 593 pulse 516 space 1657 pulse 540 space 595 pulse 513 space 1663 pulse 562 space 1678 pulse 495 space 1656 pulse 540 space 39340 pulse 8814 space 2225 pulse 538 pulse 125213 Press Ctrl-C to exit .END