The LC-3000(PA) serial 2.4GHz RF Multi-To-Multi (M2M) UART module is a new module release by INHAOS, It’s combined a high performance and low power Cortex-M0 processor and 2.4G RF SOC, provide user a very easy way to implement 2.4G RF communication via simple UART programming.

Step 1: Summary

Easy Connection is a wireless communication product series released by INHAOS, It contains a number of RF products which can be connected to each other, this product series has the following features:

Easy to use: The product is a circuit module , users only need to connect the power and ports to make it work, do not need any experience in RF design, programming like a wired connection to achieve RF communications

Powerful and flexible: Provided both UART communication interfaces and direct IO control mode, user can be select the appropriate modules depending on the application. in some cases without additional processors directly implement the necessary function.

Low cost: Based on the mature technology, optimized hardware design, to achieve the best price.

The LC-3000(PA) serial 2.4GHz RF Multi-To-Multi (M2M) UART module is a new module release by INHAOS, It’s combined a high performance and low power Cortex-M0 processor and 2.4G RF SOC, provide user a very easy way to implement 2.4G RF communication via simple UART programming.

Inorder to help users to quickly use LC3000, we released the LC-3000 Debugger tool. To use this tool, you will need :

After the UC-2102 attached to the USB port , the PC will assigned a “COMx” port number to the UC-2102 , remember the port number , and select suitable port number and baud rate in the drop box. And then click “Open” to open the comm port.

This mode allow Master and Slave use difference baud rate, after your MCU change the baud and sent data the LC-3000 , the LC-3000 will auto apply the new baud rate , which means in M2M mode , user do not need to setup baud rate for LC-3000. P2P Mode: This mode is work in transparent mode , the Slave end’s baud rate will be auto follow the Master’s baud , and user need to set the LC-3000’s baud rate to same as the MCU’s baud rate, and user need to ensure both Master and Slave MCU have same baud rate.

2: Broadcast Mode :

ONLY AVAILABLE FOR MASTER , Check this box , all data will be sent in Broadcast mode , in this mode , all paired slave can be received the data , Broadcast data is signle direction , only be issued by the Master, all the paired Slave device can receive broadcast data.

The Broadcast mode will work combind with "Broadcast Time" parameter , because Broadcast is signle direction work , for ensure all target can be receive the data , Master will continuing transmits the broadcast signal, until the following two conditions are satisfied at least one of:

1, Broadcast Time is up , the Broadcast time can be set by command "=913" , the units is mS , and the range can be setup in 1000 to 65535 mS.

2, Valid communication data comeing form UART RXD, the Broadcast will break if MCU sent valid data to the LC-3000.

3: Auto Reply Mode :

Since the communication is Bidirectional operation except the broadcast mode , for each communication packet , transmitter will wait the ACK form the receiver , otherwise the transmitter will be resend the packet until get ACK or resend timeout. In debugger, if check this option , the debugger will auto reply a ACK to the transmitter once the LC-3000 received valid data.

4: RF Send Data :

The LC-3000 data format need to follow below format:

=<Other side's UID>:

Where:

“=”: Fixed head: ASCII character

: The last byte of target device’ UID , each LC-3000 have it’s own UID , it total 4 bytes, the last byte is Local ID and other 3 bytes is Address ID , the UID has pre-programmed in the factory and marked on the label , also user can be modify the UID by command “=900” and “=901”.

Write down other side’s UID here, the debugger can be combined valid address and data into a packets sent to the LC-3000.

About the UID:

Each device have it’s own UID

The UID has pre-programmed in factory

User can be modify the UID by command “=0x90” and “=0x91”

The Master can be store max 126 Slave’s ID , and the Slave can be store max 126 Master’s ID

The UID can be removed by command “=906” and “=907”

The device are Identify each other by Local UID (The last byte of UID) , so in a same network the last byte of UID can not repeat , if this things happen please use “=90” to change a new ID

User modify the UID , have to note below:

in a same network , the last byte of UID (Local ID) can not repeat.

For All device , the UID can not repeat.

The range of Local ID is 0 ~ 125 , other number may cause unexpected error

6: User’s Data :

Write here, the debugger can be combined valid address and data into a packets sent to the LC-3000.

7: Communication Log :

All sent and received data will be log here.

8: Command Area :

user can be use all command here. For LC-3000, user can be sent configuration command to LC-3000 to setup apposite status, to sent configuration command, user need to pull-low the “CON/PAIR” pin and then sent command, in the debugger , user can be press and hold the button on CB-LC-2000 , then sent the configuration command.

Send Configuration Command:

S1: press and hold the CFG/PAIR button

S2: Send Configuration command within 3sec

S3: Released the button

Step 3: Command List

Write Loc Id:

If you want change you Loc ID, use this button. It will execute “=900” command.

Write Address Id:

If you want change your Address ID , user this button , it will execute “901” cmd.  Set Work Mode: The LC-3000 have 3 power mode:

“0: Full Speed Mode”, in this mode , the module will stay in receive mode in the normal, this mode have least communication latency and highest speed, but max power consumption.

“1: Power Save Mode”, in this mode , the module will stay in sleep mode and will be wake up to receive data each 1 sec , LC-3000 in accordance about 1:10 wake up and sleep ratio to work to ensure that the premise of communication as much as possible to save power consumption. In this mode , if MCU sent data to the module , the module will be wake-up immediate without any delay.

“2: Sleep Mode”, in this mode , the module will stay in Sleep mode , and only can wake-up when receive data form MCU. That means if you set LC-3000 to this mode , it may can not receive data form RF , it only used data sent application but least power consumption.

Set Upgrade Mode:

ONLY AVAILABLE FOR MASTER, The LC-3000 have a very important feature is can remote upload sketch through Arduino IDE , this command is used to sent the other side to entry Upgrade mode . since the LC-3000 M2M mode is not transparent transmission , so this command will switch the Master and target slave into P2P mode , and then sent uploading data through Arduino IDE. Some time the other side is stay in power save mode, it will can not receive the command and response immediately, so here you can set a timeout (Unit: S) , for example 10S , the Master will stay in Upgrade mode for 10sec and continued sent command to Slave , if the Slave still no response till to time up , the Master will give up and back to M2M mode. If the Slave entry Upgrade mode , it will be exit Upgrade mode by below ways:

Upload sketch succeed , the Slave will pull low the DTR pin to reset the MCU.

The Master and Slave are disconnected , after few mill second the Slave will exit upgrade mode.

Please Note, in Upgrade mode , the LC-3000 Master and Slave will work in P2P mode , the baud rate is depended on the P2P Baudrage setting , normally Arduino UNO R3 ‘s upload baud rate is 115200bps , so if you are using LC-3000 with the UNO , please ensure the P2P baudrate is set to 115200bps.

Set P2P Baudrate:

LC-3000 support M2M mode and P2P mode, for M2M mode , user do not need to setup the baud rate , the LC-3000 will auto detect MCU’s baud rate and apply it. But for P2P mode , the LC-3000 must set same baud rate as the Master MCU , and the LC-3000 Slave will follow the Master’s baud rate , so the MCU in Slave side have to set same baud rate also. How to decide LC-3000(PA) baud rate:

The “P2P baudrate” is default 9600bps , if you are using LC-3000 with Arduino UNO and will be remote uploading sketch , please set P2P baud rate to 115200bps.

Set Default Baudrate:

In M2M mode , the LC-3000 will detect MCU’s UART baud rate and auto apply the baud rate , but this method is rely on MCU send data to LC-3000 through UART , in some case if MCU never sent data the LC-3000 , the LC-3000 can not detect the baudrate and apply it , if other side send data through RF , the LC-3000 will send data to MCU with the “Default Baudrate”. The “Default baudrate” is default 9600bps ,if your MCU is not work on 9600bps , please set LC-3000 ‘s baud rate to same as your MCU UART baud rate.

Set Broadcast Time:

In Broadcast mode , the data is single direction transmission , and some target device is in power save mode , it will not receive the broadcast data on time . to ensure all target device will receive broadcast data , you can set a broadcast time , in the time , the Master will be continuous transmission the broadcast data , until the time out or valid UART data coming from the MCU. The “Broadcast” is a very useful function , if you want to sent data to to multi device and hope they can receive data on time , try this function , please note set enough “Broadcast Time” if you use this function. The default setting is 1000mS.

Set TX Time:

To ensure the communication , once the transmitter sent data to the receive , it need the receiver reply a “ACK” , if did not get the ACK data , the transmitter will be resend the packet , until get ACK or TX time is out. Set TX time value to bigger will increase the stability of communication, but it will be appropriate to reduce communication efficiency. The default setting of TX Time is 10000mS. User’s MCU code must note , reply ACK to other side ASAP after got data packet , otherwise the LC-3000 may sent an ERROR to other side if Assert Timeout is occurred.

Set Assert Max Time:

Receiver got data packet form other side , it will sent data to MCU through UART immediately , MCU get the data, must sent a “ACK” to the LC-3000 , then LC-3000 reply ACK to the transmitter. This is a whole communication process. The whole communication process as below:

S1: Transmitter (can be either Master and Slave) MCU sent data packet to LC-3000.

The Assert Max Time is functioned between S5 and S6, if LC-3000 sent data to MCU , but MCU did not reply, after Assert Time is out , the RX’s LC-3000 will be reply an ERROR to TX’s LC-3000 , then TX’s MCU will know this transmission is failed.

If the MCU is slow, or large amount of data processing, it can increase the Assert Time value. The default value is: 1000mS , which means MCU must reply ACK within 1000mS after received data form LC-3000.

Clear Device List:

Press this button to clear all paired device.

Clear one device:

Press this button to clear specified device.

Save Device to List:

user can be add device by two ways:

By Pairing operation : Press CFG/PAIR button and hold over 3sec , the device will entry Pairing operation , after paired , the other side’s UID will write into local device list.

Save Device to List by command: Except the pairing operation , user can be direct write device into list , please note , Master only can write slave in to it’s list and Slave is also , they will be communication only both Master and Slave write to the list each other .

Set priority:

Since the LC-3000 working on Multi to Multi mode, there may be communication conflict between multiple devices , the important device can be set to a higher priority, in order to ensure communication.

Here have 4-level’s priority setting , 0 is highest and 3 is lowest, the default is 2.

Get Device List Changed Count:

This command return the device list changed count, and its value range: "00000"~"65535". Each time when the device list changed the DEV_LIST_CHANGE_COUNT will increase one. By query the DEV_LIST_CHANGE_COUNT, the APP can clearly know whether the device list has been modified or not.

Get Device List Mask:

Get the device list mask of LC-3000. The DEV_MASK consists of 16 bytes hex string and each bit of them mapping to one device of the device list. If the bit is set, indicates the corresponding device in the device list is valid; otherwise, the device info is invalid.

Get Device from List:

Read one device info from device list. ENABLE indicates whether the device is valid or not. ENABLE=0, the device info is invalid; ENABLE=1, the device info is valid.

Step 4: Selection Guide

Easy Connection Selection Guide:

S1: According to actual application, estimate the number of communication terminals, One master can be connected max 126 Slave and one Slave can be connected max 126 Masters.

S2: Depending on the application field, select the RF power, LC-3000 and LC-3000PA can be communication to each other , the reference distance reference left picture. Note: The communication distance is depend on the environment, climate, installation etc, so the above distance just for reference , it's tested at open air environment, and in real applications there are some differences.

S3: If the communication distance is not enough, user can be very easy to extend range by combined LC-2000 and LC-3000. Please refer below picture.