From 9691730be6c41287d295fe7a62639cb6233409a4 Mon Sep 17 00:00:00 2001 From: Frankie Arzu <32604366+frankiearzu@users.noreply.github.com> Date: Tue, 22 Sep 2026 10:20:06 -0400 Subject: [PATCH] Fix to support DSM CH16 (#1179) --- Multiprotocol/DSM_cyrf6936.ino | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Multiprotocol/DSM_cyrf6936.ino b/Multiprotocol/DSM_cyrf6936.ino index fe27b8a4..68b3b197 100644 --- a/Multiprotocol/DSM_cyrf6936.ino +++ b/Multiprotocol/DSM_cyrf6936.ino @@ -102,7 +102,7 @@ static void __attribute__((unused)) DSM_build_bind_packet() if(sub_protocol==DSM_AUTO) packet[11] = 12; else - packet[11] = num_ch; // DX5 DSMR sends 0x48... + packet[11] = min(num_ch,12); // DX5 DSMR sends 0x48... //packet[11] = 3; // DX3R if (sub_protocol==DSMR) @@ -142,7 +142,10 @@ static void __attribute__((unused)) DSM_initialize_bind_phase() static void __attribute__((unused)) DSM_update_channels() { prev_option=option; - num_ch=option & 0x0F; // Remove flags 0x80=max_throw, 0x40=11ms + num_ch=option & 0x0F; // Remove flags 0x80=max_throw, 0x40=11ms, 0x20=Cloned + + if (num_ch==0) // Special case for 16ch, since channels are encoded in lower 4 bits, 0=16 channels + num_ch=16; if(num_ch<3) num_ch=6; // Default to 6 channels if invalid choice...