[Oberon] FPGA - nRF24L01 `RPI Net' server

Jörg joerg.straube at iaeth.ch
Wed May 30 07:24:39 CEST 2018


Hi Thomas

In ideal conditions without any retransmits Net.SendFiles would need 1.5 seconds to transmit your NRF.Mod (6158 bytes)

As you need about four times as long, there must be many retransmits going on under the hood.
Did you move the channel out of the way of possible Wifi in your environment?
Try setting the channel to something bigger than 86 —> WriteReg1(RFCH, 86);

Did you reduce the power level? As I assume the distance between your rPi and your Oberon board is roughly 1 meter, try set the power level to -18 dBm. —> WriteReg1(RFSETUP, 0);

Jörg

> Am 27.05.2018 um 11:01 schrieb Tomas Kral <thomas.kral at email.cz>:
> 
> On Fri, 25 May 2018 22:05:46 +0200
> Tomas Kral <thomas.kral at email.cz> wrote:
> 
>> I will look in the Ch.10 and try to time some of the
>> protocol parts, as suggested.
> 
> I really need to reread Ch.10, but as `happy go lucky', I changed a few
> loop timings, and now I got:
> 
> NRF.Mod sending   6158   6  
> NRF.Mod receiving   6158   6
> 
> Which is 1KB/s transfer rate, is it good? Can we in theory get
> even better?
> 
> In SCC.Mod, I added these timings,
> Wait = 50; Wait0 = 5; Wait1 = 1000;
> 
> SubSnd uses Wait0,
> ReceiveHead uses Wait1,
> SendPacket uses Wait.
> 
> Conversely on RPI, 
> I use delay(WAIT/*=50*/) for subsnd();
> 
> I have also extended delay/retry Oberon side
> WriteReg1(4, 0*010H + 15); (*SETUP_RETR delay + retry count*)
> 
> While on RPI, best I got for
> radio.setRetries(10,15);
> 
> On RPI side, I use for file access
> k = fread(&buf, 1, PAK_SIZE, f);
> k = fwrite(&rx.dat, 1, head1.len, f);
> as I initially thought that fputc(), fgetc() perform slower in loops. 
> 
> 
> -- 
> Tomas Kral <thomas.kral at email.cz>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon



More information about the Oberon mailing list