Skip to content

Commit 30e3e84

Browse files
author
Pascal Langer
committed
LOLI: RX config
1 parent 8338104 commit 30e3e84

File tree

5 files changed

+55
-21
lines changed

5 files changed

+55
-21
lines changed

Lua_scripts/MultiChan.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,4 @@
180180
79,0,WFLY2,RF20x,0,CH5,CH6,CH7,CH8,CH9,CH10
181181
80,0,E016Hv2,E016Hv2,1,TakLan,EmStop,Flip,Calib,HLess,RTH
182182
81,0,E010r5,E010r5,1,Flip,LED,CALIB,HLess,RTH,UNK
183-
82,0,LOLI,0,CH5,CH6,CH7,CH8
183+
82,0,LOLI,0,CH5,CH6,CH7,CH8,1SwSePpPw,2SwSePw,3SwSe,4SwSe,5SwSeSb,6SwSe,7SwSePw,8SwSe

Multiprotocol/LOLI_nrf24l01.ino

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ static void __attribute__((unused)) LOLI_init()
5757
#define LOLI_FLAG_SW2 0x40
5858
#define LOLI_FLAG_SW1 0x80
5959

60+
#ifdef LOLI_NRF24L01_INO
61+
uint8_t LOLI_P1, LOLI_P2;
62+
#endif
63+
6064
static void __attribute__((unused)) LOLI_send_packet()
6165
{
6266
if(IS_BIND_IN_PROGRESS)
@@ -68,12 +72,38 @@ static void __attribute__((unused)) LOLI_send_packet()
6872
}
6973
else
7074
{
71-
if(LOLI_SerialRX)
72-
{// RX config
75+
//Check RX config
76+
uint8_t P1=0;
77+
uint8_t P2=0;
78+
//ch1: PWM/PPM
79+
if(Channel_data[CH1+8] > CHANNEL_MAX_COMMAND)
80+
P1|=LOLI_FLAG_PWM1;
81+
else if(Channel_data[CH1+8] > CHANNEL_SWITCH)
82+
P1|=LOLI_FLAG_PPM;
83+
//ch2: PWM
84+
if(Channel_data[CH2+8] > CHANNEL_MAX_COMMAND)
85+
P1|=LOLI_FLAG_PWM2;
86+
//ch5: SBUS
87+
if(Channel_data[CH7+8] > CHANNEL_SWITCH)
88+
P1|=LOLI_FLAG_SBUS;
89+
//ch7: PWM
90+
if(Channel_data[CH7+8] > CHANNEL_MAX_COMMAND)
91+
P1|=LOLI_FLAG_PWM7;
92+
93+
//switches
94+
for(uint8_t i=0;i<8;i++)
95+
if(Channel_data[i+8]<CHANNEL_MIN_COMMAND)
96+
P2 |= 1 << (7-i);
97+
98+
if(LOLI_P1!=P1 || LOLI_P2!=P2)
99+
flags=10;
100+
if(flags)
101+
{// Send RX config since P1 or P2 have changed
102+
LOLI_P1=P1;LOLI_P2=P2;
73103
packet[0] = 0xa2;
74104
packet[1] = LOLI_P1; // CH1:LOLI_FLAG_PPM || LOLI_FLAG_PWM1, CH2:LOLI_FLAG_PWM2, CH5:LOLI_FLAG_SBUS, CH7:LOLI_FLAG_PWM7
75105
packet[2] = LOLI_P2; // CHx switch bit(8-x)=1
76-
LOLI_SerialRX=false;
106+
flags--;
77107
}
78108
else
79109
{// Normal packet
@@ -191,6 +221,8 @@ uint16_t LOLI_callback()
191221
NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70);
192222
NRF24L01_FlushRx();
193223
packet_count = 0;
224+
//defaut RX config with servo outputs
225+
LOLI_P1=0;LOLI_P2=0;flags=10;
194226
phase++;
195227

196228
case LOLI_DATA1:
@@ -206,8 +238,12 @@ uint16_t LOLI_callback()
206238
debugln("");
207239
#endif
208240
RX_RSSI = packet[0]<<1;
209-
v_lipo1 = (packet[1] << 8) | packet[2];
210-
v_lipo2 = (packet[3] << 8) | packet[4];
241+
uint16_t val=((packet[1] << 8) | packet[2])/10;
242+
if(val > 255) val=255;
243+
v_lipo1 = val;
244+
val=((packet[3] << 8) | packet[4])/10;
245+
if(val > 255) val=255;
246+
v_lipo2 = val;
211247
telemetry_link = 1;
212248
telemetry_counter++; // TX LQI counter
213249
if(telemetry_lost)

Multiprotocol/Multiprotocol.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define VERSION_MAJOR 1
2020
#define VERSION_MINOR 3
2121
#define VERSION_REVISION 2
22-
#define VERSION_PATCH_LEVEL 00
22+
#define VERSION_PATCH_LEVEL 1
2323

2424
//******************
2525
// Protocols

Multiprotocol/Multiprotocol.ino

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,6 @@ uint8_t packet_in[TELEMETRY_BUFFER_SIZE];//telemetry receiving packets
263263
bool DSM_SerialRX=false;
264264
#endif
265265
#endif // TELEMETRY
266-
#ifdef LOLI_NRF24L01_INO
267-
bool LOLI_SerialRX=false;
268-
uint8_t LOLI_P1=0, LOLI_P2=0;
269-
#endif
270266

271267
// Callback
272268
typedef uint16_t (*void_function_t) (void);//pointer to a function with no parameters which return an uint16_t integer
@@ -2074,14 +2070,6 @@ void update_serial_data()
20742070
DSM_SerialRX=true;
20752071
}
20762072
#endif
2077-
#ifdef LOLI_NRF24L01_INO
2078-
if(protocol==PROTO_LOLI && rx_len==27+2)
2079-
{//Protocol waiting for 2 bytes
2080-
LOLI_SerialRX=true;
2081-
LOLI_P1=rx_ok_buff[27];
2082-
LOLI_P2=rx_ok_buff[28];
2083-
}
2084-
#endif
20852073
}
20862074

20872075
RX_DONOTUPDATE_off;

Protocols_Details.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,15 +1290,25 @@ LOLI3 receivers: https://github.com/wooddoor/Loli3
12901290

12911291
Failsafe supported. Once failsafe values for the 8 channels have been configured in Custom mode, wait for the RX to learn them, then set Failsafe to Receiver.
12921292

1293-
Telemetry supported: RX RSSI, TX LQI (percentage of received telemetry packets), A1 and A2.
1293+
Telemetry supported: RX RSSI, TX LQI (percentage of received telemetry packets), A1 and A2 with a Ratio=25.5 and Offset=0.
12941294

12951295
Extended limits supported.
12961296

12971297
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
12981298
---|---|---|---|---|---|---|---
12991299
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
13001300

1301-
Assigning functions to outputs is not supported yet.
1301+
Features:
1302+
Config on | For channel | Switch | Servo | PPM | SBUS | PWM
1303+
----|-----|-------|----|------|---|------
1304+
CH9 | CH1 | -100% | 0% | +50% | - | +100%
1305+
CH10| CH2 | -100% | 0% | - | - | -
1306+
CH11| CH3 | -100% | 0% | - | - | -
1307+
CH12| CH4 | -100% | 0% | - | - | -
1308+
CH13| CH5 | -100% | 0% | - | +50% | +100%
1309+
CH14| CH6 | -100% | 0% | | - | -
1310+
CH15| CH7 | -100% | 0% | - | - | +100%
1311+
CH16| CH8 | -100% | 0% | - | - | -
13021312

13031313
## MJXQ - *18*
13041314
Autobind protocol

0 commit comments

Comments
 (0)