sixlowapp Ping not working in SAM R21

I tried this once by setting the RPL_MAX_ROUTING_ENTRIE as 6. The application complied but it didn’t start after flashing the image to the board. I will try do more experiments on this with different routing entry values.

Thanks Abdul

Hi Abdul,

Hi,

Thank you. This worked for me. I increased the KERNEL_CONF_STACKSIZE_DEFAULT to 2K to make things works for my application.

I see that we have problems in making rpl_udp application working in SAM R21 due to the RAM limitation. Is there anyway, we can make this work in the platform?

Have you already tried decreasing RPL_MAX_ROUTING_ENTRIES, if that’s possible for your network size?

Cheers, Lotte

Check out my branch named beehive

sure. Thank you.

Thanks Abdul

Hi,

I observed another problem, when using sixlowapp with SAM R21. I have 3 sam r21 boards. I flashed sixlowapp in all the boards. When I start the boards, one of the node freezes but other two nodes can exchange data using nc command. Any of you observed this problem before?

Thanks Abdul

Hi Rane!

Check out my branch named beehive

May I ask which fixes/changes are integrated in this branch? Are you planning to bring them upstream?

Cheers, Oleg

Hi Abdul!

I observed another problem, when using sixlowapp with SAM R21. I have 3 sam r21 boards. I flashed sixlowapp in all the boards. When I start the boards, one of the node freezes but other two nodes can exchange data using nc command. Any of you observed this problem before?

Just yesterday I learned that there is probably a bug in the SPI driver that may cause this problem. Maybe Hauke can tell more about this issue.

Cheers, Oleg

Hi Oleg

The changes in that branch is so massive that I have no clue what have been modified... Some are regular fixes but others are ugly hacks.

Perhaps an PR after rebase could bring some of the fixes to your attention?

I'm truly sorry about my absence of late. I have started in a new engineering job that takes pretty much all my time...

// Rane

Hi Oleg,

Thank you.

Hi Hauke,

Can you please help me in this?

Thanks Abdul

Hi Rane!

The changes in that branch is so massive that I have no clue what have been modified... Some are regular fixes but others are ugly hacks.

Perhaps an PR after rebase could bring some of the fixes to your attention?

In an ideal world, you could try to make a PR for the single fixes. But in case you currently don't have the time for this, a unified PR marked as WIP on a rebased branch could be a good starter indeed. Maybe I or someone else can find some time, trying to create single PRs from your fixes then.

I'm truly sorry about my absence of late. I have started in a new engineering job that takes pretty much all my time...

No need to apologize, we all have to work from time to time. :wink:

Cheers, Oleg

hi,

I fear I can not really help, aside from telling you that I have just taken on the work to fix the radio driver. I hope I will be able to pull request a fixed version next week… Cheers, Hauke

Hi,

Can anybody help me in enabling the wdt sam r21? I tried the following code segment but didn’t enable the WDT. Am I missing anything here?

void start_wdt(void) { WDT->CONFIG.bit.PER = 0xB; WDT->CTRL.bit.WEN = 0; while(WDT->STATUS.bit.SYNCBUSY == 1); WDT->INTENSET.bit.EW = 0; WDT->CTRL.bit.ENABLE = 1; while(WDT->STATUS.bit.SYNCBUSY == 1); }

and in the main loop, I used WDT->CLEAR.bit.CLEAR = 0xA5; to clear the WDT counter.

Thanks Abdul

Hi Abdul,

I haven’t got a concrete answer for you but:

Is the APBA clock for the WDT enabled in the power manager (APBAMASK� register)?

Is the GCLK generic clock selection enabled (CLKCTRL register)?

Best, Peter

Hi,

Thanks for the reply. I changed the code as shown below but still WDT is not enabled.

void start_wdt(void)

{ PM->APBCMASK.reg |= PM_APBAMASK_WDT;

WDT->CTRL.bit.ENABLE = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->CTRL.bit.ALWAYSON = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

GCLK->CLKCTRL.reg = (uint32_t)((GCLK_CLKCTRL_CLKEN | GCLK_CLKCTRL_GEN_GCLK4 | (WDT_GCLK_ID << GCLK_CLKCTRL_ID_Pos))); while (GCLK->STATUS.bit.SYNCBUSY);

WDT->CONFIG.bit.PER = 0x7; WDT->CTRL.bit.WEN = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->INTENSET.bit.EW = 0; WDT->CTRL.bit.ENABLE = 1; while(WDT->STATUS.bit.SYNCBUSY == 1);

return; }

Thanks Abdul

Hi,

There was a bug in my earlier code. The working code is given below.

void start_wdt(void) { printf(“Enabling WDT\n”);

PM->APBAMASK.reg |= PM_APBAMASK_WDT;

GCLK->CLKCTRL.reg = (uint32_t)((GCLK_CLKCTRL_CLKEN | GCLK_CLKCTRL_GEN_GCLK2 | (WDT_GCLK_ID << GCLK_CLKCTRL_ID_Pos))); while (GCLK->STATUS.bit.SYNCBUSY);

WDT->CTRL.bit.ENABLE = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->CTRL.bit.ALWAYSON = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->CTRL.bit.WEN = 0; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->INTENSET.bit.EW = 0;

WDT->CONFIG.bit.PER = 0xB; while(WDT->STATUS.bit.SYNCBUSY == 1);

WDT->CTRL.bit.ENABLE = 1; while(WDT->STATUS.bit.SYNCBUSY == 1);

printf(“WDT started\n”);

return; }

Thanks Abdul