Rust library for using Infrared hardware decoders (For example a Vishay TSOP* decoder),

enabling remote control support for embedded project

Infrared

Rust library for using Infrared hardware decoders (For example a Vishay TSOP* decoder), enabling remote control support for embedded project.

This library aims for to be useful with the any MCU hal that implements the embedded-hal traits, and at the same time provide functionality for using it with more efficient implementation such as input capture, and be useful in host applications (such as Blipper).

Supported protocols

  • The NEC Protocol and the Samsung variant of it
  • Philips Rc5
  • Philips Rc6
  • "Samsung BluRay Player protocol". Please let know if you know what it really is called :)
  • Denon 48 bit protocol

Examples

  • The infrared-examples repo contains various examples for receiving and transmitting infrared with the blue pill board

Tested with

  • Tested with bluepill board
  • Vishay TSOP382 IR receiver
  • Various ir leds
  • NEC Generic "Special for MP3" and Samsung remotes
  • Rc6 tested with a Philips Bluray player remote
  • Rc5 tested with a Marantz CD player remote

References

  • https://www.sbprojects.net/knowledge/ir/nec.php
  • https://www.vishay.com/docs/82491/tsop382.pdf

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

  • MIT license (LICENSE-MIT or #404)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Issues

Collection of the latest Issues

LU15W1R7H

LU15W1R7H

15

First off, thanks for this crate!

I'm trying to decode a signal of a generic "Car MP3" remote, which apparently uses the NEC protocol. When using the NecDebug protocol type, I always get the same bits for every button I press. Am I doing something wrong?

I always get NecCommand { addr: 0, cmd: 0, repeat: true } or respectively NecDebugCmd { bits: 0 } for every button on my remote.

On rare occasions I also get a non-zero cmd, but it seems random.

Here is a condensed version of my code

I'm using a raspberry pi pico with the rp_pico board crate.

TheNeikos

TheNeikos

AVR
1

Heya! First of all, thank you a lot for making this crate.

I am currently trying to test it out on my atmega328p (The metro mini from adafruit) and have an issue with the whole thing freezing when I try to build a receiver.

I have the following setup:

And it never progresses past that point. I have a small suspicion that this might be due to 328p's pointer width of 16, and thus having a maximum usize of just 2^16-1 which is way smaller than even the 'default' resolution of 1_000_000.

I am not sure how to verify whether it is panicking/aborting or not, but looking through the code one can find places like this: https://github.com/jkristell/infrared/blob/master/src/protocol/utils.rs#L39 where a default type of 'usize' is inferred but that gets truncated to 0 probably which would then divide by 0.

Throughout the crate 1_000_000 is used, with usize as types, a quick and dirty 'search and replace' fixed that issue I had (but I did not get my HX1838 to be detected yet).

jkristell

jkristell

0

Set up devices to do automated testing with blipper

jkristell

jkristell

0

Repeats needs to be added to the Command trait and the RemoteControl trait and implemented properly for the protocol Commands.

  • Nec: Repeats have a special encoding
  • Rc5 and Rc6 A bit is toggled in the command to signal repeat

Some remotes and devices seems to expect commands to always be sent with repeats.

Information - Updated May 06, 2022

Stars: 37
Forks: 4
Issues: 10

CDRS is looking for maintainers

CDRS is Apache Cassandra driver written in pure Rust

CDRS is looking for maintainers
Http

371

A push parser for the HTTP 1

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2

A push parser for the HTTP 1

The arkworks ecosystem consist of Rust libraries for designing and working with zero knowledge succinct...

This library is released under the MIT License and the Apache v2 License (see License)

The arkworks ecosystem consist of Rust libraries for designing and working with zero knowledge succinct...

Say Hello To DataBend The Open Source Cloud Warehouse for Everyone

Databend is inspired by apache-arrow and allows you to scale your cloud warehousing, using off the shelf open source stacks & the ultra fast processing speeds you come to expect from say Bigquery

Say Hello To DataBend The Open Source Cloud Warehouse for Everyone

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

This project is duel-licensed under both the Apache licenses, so feel free to use either at your discretion

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

This project is duel-licensed under both the Apache licenses, so feel free to use either at your discretion

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀
Facebook Instagram Twitter GitHub Dribbble
Privacy