adafruit / adafruit/Adafruit_CircuitPython_IRRemote

Add feature to encode and decode MakeCode's infrared pulses

Open
#26 8 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
29
Forks
31
PR merge metrics
No merged PRs in 30d

Description

MakeCode has its own IR protocol/encoding for sending a list of one or more 16 bit unsigned numbers. To allow MakeCode devices to communicate with CircuitPython it would be useful to implement this niche protocol. CircuitPython users may also like to use it.

The protocol is described by @mmoskal on https://makecode.com/blog/timing-adventures-in-infrared but the actual implementation in https://github.com/microsoft/pxt-common-packages/blob/master/libs/pulse/pulse.cpp _differs slightly_, the start of frame being obviously different, for example.

I think this would be best implemented in a separate file so it is only `import`'ed by those that wish to use it to avoid memory bloat.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the MakeCode timing-adventures article and the linked pxt-common-packages/libs/pulse/pulse.cpp implementation, comparing their framing and encoding details. Implement the protocol in a separate importable module, covering encoding and decoding lists of 16-bit unsigned values; done means MakeCode and CircuitPython devices can exchange these pulses without forcing users to import it unnecessarily.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.