17#ifndef M5_UNIT_UNIFIED_INFRARED_WIRING_HPP
18#define M5_UNIT_UNIFIED_INFRARED_WIRING_HPP
20#include <wiring/m5_unit_unified_wiring.hpp>
28#if defined(__M5UNIFIED_HPP__)
41inline bool addHatPIR(UnitUnified& units, Component&
unit)
44 switch (M5.getBoard()) {
45 case m5::board_t::board_M5StickC:
46 case m5::board_t::board_M5StickCPlus:
47 case m5::board_t::board_M5StickCPlus2:
48 case m5::board_t::board_M5StackCoreInk:
51 case m5::board_t::board_M5StickS3:
54 case m5::board_t::board_ArduinoNessoN1:
58 M5_LIB_LOGE(
"wiring: addHatPIR unsupported board=0x%02x", (
int)M5.getBoard());
61 M5_LIB_LOGI(
"wiring: addHatPIR board=0x%02x in=%d", (
int)M5.getBoard(), in);
62 return units.add(
unit,
static_cast<int8_t
>(in),
static_cast<int8_t
>(-1));
72inline int8_t builtinIrTxPin()
74 switch (M5.getBoard()) {
75 case m5::board_t::board_M5StickC:
76 case m5::board_t::board_M5StickCPlus:
77 case m5::board_t::board_ArduinoNessoN1:
79 case m5::board_t::board_M5StickCPlus2:
81 case m5::board_t::board_M5StickS3:
83 case m5::board_t::board_M5AtomLite:
84 case m5::board_t::board_M5AtomMatrix:
85 case m5::board_t::board_M5AtomU:
86 case m5::board_t::board_M5AtomS3U:
88 case m5::board_t::board_M5AtomS3:
89 case m5::board_t::board_M5AtomS3Lite:
90 case m5::board_t::board_M5Capsule:
92 case m5::board_t::board_M5AtomS3R:
93 case m5::board_t::board_M5AtomVoiceS3R:
95 case m5::board_t::board_M5NanoC6:
96 case m5::board_t::board_M5NanoH2:
98 case m5::board_t::board_M5Cardputer:
99 case m5::board_t::board_M5CardputerADV:
110inline int8_t builtinIrRxPin()
112 switch (M5.getBoard()) {
113 case m5::board_t::board_M5StickS3:
128inline bool addBuiltinIrTx(UnitUnified& units, Component&
unit)
130 const int8_t tx = builtinIrTxPin();
132 M5_LIB_LOGE(
"wiring: no built-in IR TX on board=0x%02x", (
int)M5.getBoard());
135 if (M5.getBoard() == m5::board_t::board_M5StickS3) {
136 M5.Power.setExtOutput(
true);
138 M5_LIB_LOGI(
"wiring: addBuiltinIrTx tx=%d", tx);
139 return units.add(
unit,
static_cast<int8_t
>(-1), tx);
153inline bool addBuiltinIrRx(UnitUnified& units, UnitIR&
unit)
155 const int8_t rx = builtinIrRxPin();
157 M5_LIB_LOGE(
"wiring: no built-in IR RX on board=0x%02x", (
int)M5.getBoard());
160 if (M5.getBoard() == m5::board_t::board_M5StickS3) {
162 M5.Power.setExtOutput(
true);
163 auto cfg =
unit.config();
164 cfg.rx_pull = gpio::RxPull::Up;
167 M5_LIB_LOGI(
"wiring: addBuiltinIrRx rx=%d", rx);
168 return units.add(
unit, rx,
static_cast<int8_t
>(-1));
Top level namespace of M5Stack.
IR remote control unit (TX + RX) for M5UnitUnified.