What we would like to explore in this post is how to efficiently send very small packets of data. For this post, we’ll concentrate on the uplink. Stay tuned for a description of the RPMA downlink in a future post.

First, a bit of background: RPMA is Direct Sequence Spread Spectrum (DSSS) waveform using convolutional channel coding, gold codes for spreading, and a 1 MHz bandwidth. The Time Domain Duplex (TDD) frame structure shown below is used with open loop power control.


As we were conceiving RPMA, we were convinced that scheduling didn’t make sense for Low Power Wide Area (LPWA) networking because of the extreme overhead on small data transactions. But on the other hand, there were no unscheduled DSSS communication systems to serve as an example. The CDMA protocol, for example, required an interaction to schedule the “C” (Walsh Code) for the duration of the voice or data session. We were clearly headed for uncharted territory in this regard.

One approach we considered, but never pursued (for good reason) is that approach that is being developed for 3GPP LPWA. The LTE variants being explored (NB-IoT, LTE-M) seems to be aggregating large multiple data sets to cut down on the number of scheduling transactions which reduces the ratio of scheduling overhead to actual data. The problems with this based on our experience:

  • Bursts of latency sensitive alarms must be handled reliably which stresses instantaneous capacity. The Smart Meter application is just one example where alarm information may be rapidly sent during a large outage.
  • Real time situational awareness is important to many applications. Data must be received in real time so that it’s actionable.
  • The cellular billing structure will be onerous to the customers in order to dissuade applications from small, frequent, transactions.

So, that brings us to the approach we actually did take: Random Phase Multiple Access (RPMA). As will be explained, the key to this protocol is in the “R”, random. By random, we do not mean pseudo-random which is a term typically used in spread spectrum which means a sequence that looks random, but is actually agreed upon by both ends of the link. We mean fully random. There is no need for any coordination between the ends of the link – in other words, no scheduling.

Node Behavior: The RPMA Concept

Let’s start with the node’s role in the RPMA protocol. You will see that none of the steps below require any scheduling coordination between each end of the link:

  1. Acquire Frequency/Timing. The acquisition of frame timing and the exact frequency is derived from the downlink – in particular, the preamble. The proper notion of time and frequency is essential to put the signal in the “window” that the access point is searching.
  2. Select a Random Number of Chips to Delay. This is the essence of the scheme. By basic properties of DSSS (and given that each node is using the same gold code as we’ll see), the way for a node to be demodulated is to arrive at a unique chip offset. Envision throwing a stack of papers at a very long staircase. As long as a piece of paper lands alone on a step – that “message” or PDU will get through.
  3. Transmit “Message”. Perform open loop power control and send the PDU at the pre-determined gold code.
  4. Expect It May Not Get Through. The result is that as long as the sum of the intentional chip delay of each node, plus the number of chips required for propagation results in a unique value (the sheet of paper must land on the step without company), the link can be demodulated. Of those links that do collide from the access point reference, these cannot be demodulated. In a future post, we will discuss the very efficient way that the RPMA Medium Access Layer (MAC) is robust to lose of PDUs.

Access Point: Brute-Force Processing

The coupling of RPMA to a scheme that is capable of efficiently demodulating this waveform is extremely important. Remember, the access point has no knowledge of the intentional delays that the individual nodes are adding, so the only viable strategy is the demodulation of all of the chip arrival hypotheses[1]. In other words, each chip arrival hypothesis must be treated as a conventional modem treats any arriving signal – like a successful demodulation is expected. Each chip hypothesis must be de-spread, de-interleaved, Viterbi decoded, and then checked via a cyclic redundancy check (CRC). The difference of this scheme to a more conventional scheme is that more often than not, the CRC will indicate failure. In a conventional scheme, that usually means that the attempted transmission was received in error. In our system, it usually means that there actually was no attempted transmission that happens to land at that particular chip offset. The identity of each signal is only known after decoding by examining the MAC header, which has the connection identifier (CID). The CID is a unique value assigned during the “join” process. This “blind demodulation” yields protocol efficiency and simplicity for the entire communication system.

The result as shown below is that RPMA is capable of supporting demodulation of typically 1,000+ unscheduled and fully overlapping signals.


One More Wrinkle: Flexible Spreading Factors

We almost have the structure of RPMA done – but not quite. The requirement to optimize power leads to the observation that it is wasteful of battery resources to power a transmitter to operate at the highest spreading factor in all cases. Typically, a far smaller amount of “processing gain” than maximum is required to close the link. The maximum 8192 spreading factor should be reserved only for those few percent of endpoints that may need the full link budget some fraction of the time. We did not want to operate our system at the lowest data rate like Sigfox technology. Operating at the lowest data rate causes more than an order of magnitude longer on time than is required which, in turn, yields an order of magnitude shorter battery life.

One other advantage of minimizing spreading factor and hence, maximizing data rate, is Doppler robustness. For the typical RPMA outdoor mobile devices, the ability for reliable data at vehicle speeds can typically be achieved, only not at edge of cell at the lowest data rate. In the rare instances that the full link budget is required, the RPMA node relies on the acknowledgement scheme to determine that the SDU failed to be received by the access point and the node will retry in the future when it has moved away from edge of cell conditions. This is in stark contrast to:

  • Sigfox technology that always operates at lowest data rate, which results in no robustness to any motion.
  • And, LoRa technology that has no accurate mechanism to understand the maximum data rate that could be withstood.
  • Worse, other existing LPWA approaches do not typically employ an acknowledgement scheme so they do not know if the data failed to get through to the network and whether they need to retry.

The figure below shows the refinement of the frame structure required to implement this important dynamic data rate capability. It’s definitely more complicated as you can see, but the battery life advantage clearly justifies it. The full process then becomes as mapped to the numbers shown in the figure below:

  1. The endpoint will determine as part of the open loop power control process what the minimum spreading factor required to close the link.
  2. Every “message” or PDU is the same number of bytes, so a node that selects a spreading factor that is less than the maximum 8192 has another decision to make: which sub-slot(s) does the node use for its PDU(s).
  3. At this point, the intentional RPMA delay is added from 0 to 2048 chips. The node is free to transmit multiple PDUs in a given frame to rip through all the data that the node may have queued.


Note that the processing requirement of the access point has now become considerably more intense. There must be additional outer loops where multiple spreading factors are attempted: in powers of two from 512 to 8192 and at all possible sub-slots associated with each spreading factor. As a result, the access point does not need to know in advance which spreading factor the node will select because the access point brute-forces its way through all spreading factors, at all sub-slots, and at all chip x 2 arrival hypothesis.

The figure below shows multiple signals from various users at a variety of spreading factors all being received simultaneously by the access point. The result is a simple capacity model: ~1000 PDUs received per frame regardless of:

  • Spreading factor distribution of users
  • Number of PDUs per spreading factor
  • Uplink PDU loss rate


Click here to download our RPMA ebook to get all the nitty gritty details on RPMA.

[1] Actually, the access point must search over all chip x 2 arrival hypothesis. In other words, the search must be in increments of ½ chip. Since the PDUs will generally land at fractional chip offsets, a 2x up sample rate is required to be close enough to the “eye” of the waveform for good performance.