0

I have a course challenge. It involves calculating an FFT of an audio signal of 2 combined frequencies (up to 20KHz) then sending it over LoRa through to a fixed receiver. There will be an interferer. Spreading factor is fixed. Grading is based on power consumed by the transmitter and time between start of calculation and receiving an acknowledgement from the receiver. The exact degree of each grading is not unknown.

We may modify any parameters, such as antenna, baud / bitrate, etc, FFT calculation, compression.

I have a strategy for compressing the values in single bits. Is this possible:

The receiver will receive a bit to start counting, and at that point, it will start counting on its internal clock. Once the transmitters internal clock = x * 100 nanoseconds, where x refers to the value being sent and 100 nanoseconds is the likely accuracy of a GPS signal, it will send a 1 bit. The receiver, having felt x * 100 nanoseconds delay, will decode this message as having the value x.

The benefit will be sending 1 bit vs 16 bits of information will use less power on the radio module, but the waiting could be a penalty for time and static / dynamic waste due to leakage + counting nanoseconds on the accumulator.

I recognize LoRa had a minimum required packet size, but given a required spreading factor of 7 and likely redundancy to deal with an interferer, is this a worthwhile scheme?

Note: The transmitter and receiver are two copies of the same hardware microcontroller.

  • wait, is one of the constraints of the challenge "you must use LoRa"? Otherwise, you'll certainly not win based on speed over a mere 10m... or even power. LoRa's use case is a completely different one, and the power you'll need to transmit one bit is far more than you'd need to send 20 bits using something that uses the fact that the receiver is but 10m away. – Marcus Müller Oct 06 '18 at 08:49
  • Also, compared to short range transmissions, keeping two GPS receivers running uses a lot of power (compare how long your phone can run logged into the network, where it regularly has to send data, with GPS on and off: GPS is really pretty power hungry). – Marcus Müller Oct 06 '18 at 08:52
  • 3
    Generally, the method you're describing has a name: it's pulse-position modulation. And you really don't need GPS for that, anyway. But it's not a data compression; on the contrary, it's energy-wise a suboptimal choice. I could write a rather lengthy answer, but I'd need to know a lot more about the actual challenge you're facing, including all constraints. – Marcus Müller Oct 06 '18 at 08:54
  • (oh, and while it's possible to make a LoRa transmitter transmit at a specific point in time, you'll have a pretty hard time evaluating that time with just a LoRa receiver attached to a microcontroller! How would the microcontroller know the exact time the reception happened? It typically only gets data bits from the LoRa module, over a link that is far slower than your 1/100 ns = 10 MHz!) – Marcus Müller Oct 06 '18 at 08:56
  • So, there's just too many things that just don't add up in your question; I'm afraid I can't answer without you giving much more background on the whole issue, sorry. – Marcus Müller Oct 06 '18 at 08:56
  • Hello, apologies for the unclear description. We are required to use a LoRa transmitter and a LoRa receiver. We are calculating FFT and sending 2 peak values. The spreading factor is fixed, but otherwise, we can do anything we want. There will also be an interferere. One requirement is that we send a timestamp for when we started the FFT. My idea was I send the time stamp, calculate FFT, and use the time in between and eventually send a single bit to indicate each of the values. – Joseph Liba Oct 06 '18 at 09:10
  • yeah, but how is that compression, then? You're still sending the same amount of bits, you just don't pack it into transmit packets, you pack them (at least partially) into the delay; you're not getting any faster that way (the time you waited not sending anything could've been used to simply send the data). Also, does LoRa even allow you to send single bits? – Marcus Müller Oct 06 '18 at 09:24
  • LoRa has (as a long range standard) a long interleaver and a Channel Code (Hamming, IIRC), so you can't send "a single bit"; I think a typical LoRa message has to be at least 32 bit plus headers. If I'm right with that, you can fit your whole payload into the shortest possible LoRa packet (which means your scheme has no advantage whatsoever). – Marcus Müller Oct 06 '18 at 09:24
  • Plus, it's super unclear to me where your FFT comes in – you do an FFT of what to do what? Please, describe your system and its requirements and constraints in your question by editing the question. – Marcus Müller Oct 06 '18 at 09:25
  • My mistake for using the incorrect terminology. It's not compression, but rather an idea I had since my suspection was that the radio module would consume more power than a time counter, so I could potentially tradeoff time for less power. I'll update the question. – Joseph Liba Oct 06 '18 at 09:26

2 Answers2

3

I think you are taking the wrong approach. Take some time to look at the overhead of a LoRa packet. It contains addressing, checksums, handshaking, etc. It is a large enough overhead that sending one bit vs two bytes results in almost no time or power difference. So unless you are allowed to alter the complete LoRa stack, your timing scheme will not score well.

Focus on your FFT routine efficiency and give serious consideration to high gain antennas. The antennas will mitigate the interferer and allow you to reduce your transmitter power. The transmitter power will likely turn out to be the largest part of your power budget. As an example, a 10 dB improvement in system antenna gain would allow you to reduce the transmit power by a factor of 10. Many LoRa kits use negative dBi antennas so this type of gain is easily attained with modest Yagi style antennas.

Also take at look at the LoRa devices themselves for power management opportunities like turning off GPS, sleeping subsystems until needed, etc.

Glenn W9IQ
  • 18,578
  • 1
  • 22
  • 54
2

The modulation you’re describing seems akin to ultra wide band or pulse position modulation. It won’t be possible with Lora wan devices. They only use Lora, and you’re trying to change up the modulation to something else.