This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1310: star network topology

Part Number: CC1310

Hello, I want to implement a star network topology. one receiver receives signals from multiple transmitters.

The question is: How many transmitters could I have?

How can I know the transmitter which the message come from?

  • You can use TI 15.4 Stack collector and sensor examples which supports up to 50 sensor nodes if you use CC1310. If you use CC1312 or CC1352 as collector, it can support more than 50. In TI 15.4 Stack, each node has its own node ID when it joins collector and you can use node ID to send message.
  • What do you mean exactly by "more than 50"? How much more?
    I've got a project in which it may be a need to be implemented about 100 sensor nodes.
    Any suggestion?

    Thanks!
  • I don’t know what the exact maximum sensors CC13x2 can support but you can try to change CONFIG_MAX_DEVICES define to see how large it can be.
  • Isn't there a way to implement only the phy layer to receive everything from a receiver? Couldn't then I use as many transmitters as I want? Of course there is other parameters I need to consider like collision avoidance, software addressing etc...

    Could this theory work?

  • You can off course implement everything from scratch yourself and in theory the radio can receive from as many nodes as you want to (given that they are not sending at the same time), but at some point you will be limited by the CC1310s RAM and flash size.

    Siri
  • Is there any example of how to implement a basic rf communication using only the physical layer? I don't want to implement any networking feature. I want receiver to be transparent. Sends through its UART everything that receives in the air. Can with this technique to use as many transmitters as I want?
    Of course they would be collision avoidance algorithm.
    Also what is the maximum distance between transmitter and receiver in line of sight?
  • I suppose you can use easy link examples at to do your application. As for line of sight RF distance, it will depends on your RF HW design and what SW data rate uses. You can test this with different configuration by yourself with two LAUNCHXL-CC1310.

  • For range estimations, please see:

    e2e.ti.com/.../375556

    Siri
  • I saw in rfEasyLinkRx example that there is a define RFEASYLINKRX_ADDR_FILTER. I suppose if I remove this definition my receiver could receive everything from the air, right? My goal is to forward the packets through UART to implement my own gateway...

    Also I see that the dstAddr is 64bit length. If my receiver does not apply any addressing and does not consume any more RAM for further data processing, I could have 2^64 different transmitters nearby. Is that right?

    Is there any more embedded way to make dstAddr unique for every transmitter? I could change it every time I flash a chip but this could cause mistake.

  • Yes. Or set the address to broadcast (0xAA)
  • I would recommend that you take a look at the rfPacketRX and rfPacketTx examples instead. The simply send a packet of the following format:

    Preamble - Sync - Length byte - Payload - CRC

    You can easily modify the CMD_PROP_RX and CMD_PROP_TX to use the length byte or to use fixed packet length, to disable/enable CRC etc.

    If no filtering is enabled (address, length, CRC), the receiver will receive all packets that has the correct sync word.

    For address, you can use the IEEE 802 15.4 MAC Address.

    Siri
  • I found easylink examples much easier.

    What's the difference between two examples?

    The difficult part now is to find a way to setup the addresses automatically.

  • The difference is that the rfPacketRX and rfPacketTX examples uses the radio API commands directly (CMD_PROP_RX/TX) while EasyLink is an abstraction layer written so that you do not need to figure out all the details of the radio API commands. As long as Easylink fits your application, go with that. My point was that if you need to do a lot of modification to packet format etc. the radio API commands are more flexible (but maybe harder to use).
    See this post for how to read the address:

    e2e.ti.com/.../2446493

    Siri
  • I don't need so many modifications. My only issue is to find a way to make a gateway that was able to catch everything from its environment. I will forward everything in the UART and in transmitters side I'll put some other examples together like adc or on onee-wire interface and that's it.

    Regarding addressing, I suppose that I have to write each transmitter address manually in its software because I want each transmitter to get unique address. Isn't this address the 64bit dstaddr field?

    Am I missing something here?

  • It could be that this post: e2e.ti.com/.../637212 could be relevant