HAMNET-Access-Protocol/HNAP4PlutoSDR

Evaluate behavior in idle mode of basestation

Closed this issue · 2 comments

Evaluate and define behavior in case no client is connected to the basestation for some time.

Currently the basestation modulates pilot tones regardless whether data is transmitted in a slot. Since roughly every second OFDM symbol contains pilot tones, the downlink is active ~50% of the time.

This will cause a high power consumption if amplifiers are used. We can lower the duty cycle in the downlink by adapting it to the way the uplink works. In the uplink, pilot tones are only modulated if the slot is really used for data transmission, otherwise the client stays silent.

TODOs

  • the basestation has to use an additional variable to keep track of which OFDM symbols are used for transmission and in which it can stay silent: dl_symbol_alloc. This variable shall be set when the dlctrl slot is populated (phy_assign_dlctrl_dd)
  • the clients have to use an additional variable to keep track of when they have to receive on an OFDM symbol resolution: dl_symbol_alloc. This variable shall be set during the decoding of the dlctrl slot (phy_ue_proc_dlctrl).
  • The pilot tone definition has to change. Pilot tones are generated via a msequence. We have to reset the msequence for tone generation at the start of every slot, so that every client knows which pilot tones it has to receive.

Related TODOs

  • Pilot tone generation in the uplink is currently very basic (sequence is reset every pilot tone) and should change to the definition of the downlink pilot tone generation. This makes understanding of the whole pilot tone generation easier, since it is similar in UL and DL.
  • the initial gain estimation has to change. Currently, the client transceiver is put to slow_attack mode at system start to roughly estimate the required gain. Since we do not transmit any pilot tones anymore, this estimation will set the gain way too high. Probably should try fast_attack mode and fix this when the sync sequence is found.

Once this is done, the basestation can stay silent when no slot is allocated in the downlink. The downlink will remain active during the broadcasting of the dlctrl slot and the transmission of the sync sequence. This will give a duty cycle of 4%. The dlctrl slot is transmitted every 17ms and contains two OFDM symbols with pilots. These are used by the client to track the phase offset and frequency offset, so that no synchronization issues should arise.

I would say that for a start these changes towards system idling are enough. We could push the idle mode further by disabling the transmission of the dlctrl slot if no client is connected. Then only the sync sequence is sent every 136ms, giving a duty cycle of 0.7%.

Fixed in #20