Hello,
did you already communicated with me about this issue? That Rpi enclosure seems bit familiar to me.
Today I tested one option. We still have a TX boost margin in SPIRIT1 radio. Default TX power is 10 dBm, but you can set it to 11.6 dBm. It is not much but it’s free and just FW update.I think that you need update only the code in the remote node, not the dongle.
You can edit file sdk/bcl/src/bc_spirit1.c and add SpiritRadioSetPALeveldBm calling that sets maximal TX value. I’ve added this loop:
for(int i = 0; i < 8; i++)
{
SpiritRadioSetPALeveldBm(i, POWER_DBM);
}
So the function looks like this:
bool bc_spirit1_init(void)
{
if (_bc_spirit1.initialized_semaphore > 0)
{
_bc_spirit1.initialized_semaphore++;
return true;
}
memset(&_bc_spirit1, 0, sizeof(_bc_spirit1));
SpiritRadioSetXtalFrequency(XTAL_FREQUENCY);
SpiritSpiInit();
/* Spirit ON */
SpiritEnterShutdown();
SpiritExitShutdown();
SpiritManagementWaExtraCurrent();
/* Spirit IRQ config */
SpiritGpioInit(&xGpioIRQ);
/* Spirit Radio config */
if (SpiritRadioInit(&xRadioInit) != 0)
{
bc_spirit1_hal_shutdown_high();
bc_spirit1_hal_deinit_spi();
bc_spirit1_hal_deinit_gpio();
return false;
}
/* Spirit Packet config */
SpiritPktBasicInit(&xBasicInit);
SpiritPktBasicAddressesInit(&xAddressInit);
for(int i = 0; i < 8; i++)
{
SpiritRadioSetPALeveldBm(i, POWER_DBM);
}
_bc_spirit1.desired_state = BC_SPIRIT1_STATE_SLEEP;
_bc_spirit1.task_id = bc_scheduler_register(_bc_spirit1_task, NULL, 0);
_bc_spirit1.initialized_semaphore++;
return true;
}
I’ve tried to test measure TX power but I do not have proper RF equipment and my SDR sucks. But I did tested peak power consumption during transmission with uCurrent and osciloscope and I was able to see changes in peak current when I set TX power to -12 dBm (340 mA peak) to default 10 dBm (450 mA peak) to improved 11.6 dBm (470 mA peak).
Other ideas to improve signal quality could be to try to put the dongle to some USB extension coord or put it further from the window. The windows have metal frame and also metalic glass which could interfere with antenna when closer. But I’m really not an RF expert.
Another solution could be using newer version of Spirit1 module with u.Fl connector and external antenna. We still did not managed to put it in the shop, but if you are interested we can swap that for a fee.
Some info is in this thread