Atmel Lightweight Mesh stack

Go To Last Post
566 posts / 0 new

Pages

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It is not necessary. Application timer will just "freeze" for the duration of sleep. Once device is awake, it will keep on counting.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am not sure if this a bug or it is meant to happen.
If the same application timer is called while it is still running would that reset it back to 0 ?

As it seems it ignore it and still keeps on incrmenting till you stop the timer.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote from the source:

void SYS_TimerStart(SYS_Timer_t *timer)
{
  if (!SYS_TimerStarted(timer))
    placeTimer(timer);
}

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Once you send a message you recived an ack frame. Should there be wait period before sending another message?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No, you don't have to wait for anything. You can send as fast as connection allows.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For some reason my AVR seems to lock up, must be some error in my code.

If I have two seperate NWK_DataReq_t and end points associated to it, do I need to wait for one transmision to end before sending another one?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For each NWK_DataReq_t structure you need to wait until confirmation callback is called before using it again.

Two separate NWK_DataReq_t structures can be used at the same time without problems.

Note that data pointer in the request must point to different buffers for different requests as well.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry

Can anything distort or delay the Confirmation function from executing when a frame is sent?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

yes, I am using different data/

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why would you need to delay it?

Can you show your code?

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No I don't need to delay it. But as my AVR is hanging after some hours and I am thinking what can cause that....

By doing something, e.g. Firing a app timmer handler at the same time when I am sending a frame or getting a confirmation , could that cause any hanging issues?

Does not happen all the time but have notices few times,

Worst case, I can just add a watch dog timer.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No, if you use all APIs correctly, they can be used in any combination. There are no additional restrictions.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Alex

I got a slight issue …

At start up I need to reset certain external device.

I have used the application timers to do this . I first call one particular timer , which sets certain GPIO pin, this will call another timer 100ms later that provides power by enable the DC-DC and after 1 seconds another timer will switch of the DC-DC.

While this is progressing, my application progress onto sending some data via a data request, and at this stage my device hangs.

I solved this issue by just waiting for my external device to finish being rest before progressing.

Is it know that a timer interrupt cause issue problem in the data request function?

The original demo has a blinking LED, which causes no problem at all.

The only difference I am doing is calling another timer inside a the invoked timers handler, and maybe the setup for the next timer could be disrupting the data request process?

Can this be possible?

If so, worst case scenario I can stop all timers that call other timer after a certain duration when every I am TX a message.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Timers can not cause any problems with the radio communication. At any point in time there are 3 to 5 timers running inside the stack.

There is probably something wrong with the application logic. Share the code, if you can, I'll take a look.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks, I will look in more detail. But glade to hear stack does not have the issue I was thinking.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

does this stack still provide signal strength between nodes?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, "lqi" and "rssi" fields in the NWK_DataInd_t structure.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Whats happens if two devices have same network ID and SAME address but different security? Would that give them a unique network in a way?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No, they will just step on each other and receive each other frames. They will obviously drop them, since they won't be able to decrypt them properly.

It will also screw up the routing.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, I need to give each Cord a unique I'd or Freq. Worst case I can get users to add this information.

But it would be nice to choose a net address that is unique to any other network close.

Is there anyway of finding out if another network with same 16-bit address is be used.

With bitcloud I used the cords 64-bit UId. As network add as well.

Thanks

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There will be a commissioning service in the next release that will allow something like this.

The only way to find other networks right now is to write this yourself, but it is sort of involved process.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well I will give it some thought.

Is it possible some how to make the 16-bit net address to a 64-bit?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No, it is not easily possible.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Once a confirmation arrives for a message that has been TX, how soon can you re send another message. Is there a safe priod time. In my confirmation process I have a timer and a flag to re enable transmission for a another message to be sent. I think this is what is causing my hang up at times.

If I am correct you must total come out of confirmation process before sending another message?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There is no need to wait. As soon as confirmation handler is called, you may use NWK_DataReq_t structure again for the new request.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks

When is the next version with 64-bit ID going to be released by the way?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Supposed to be by the end of the year, but that also depends on my load with other projects.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, no problem.

Till then I can just assign my cord to the last 16-bit number from UID chip

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have set my wsn demo as a Cord. I can see message being TX from UART. But when I send bytes back I do not see interupt ISR(USARTx_RX_vect)being fired?

Do I need to do anything extra to enable this as this is not default part of this example

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You should see received bytes in HAL_UartBytesReceived(). USARTx_RX_vect should be called as well, but that's way too low level. It should just work, no need for additional configuration.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I got an array inside this function,

void HAL_UartBytesReceived(uint16_t bytes)
{
  for (uint16_t i = 0; i < bytes; i++)
  {
    
	tft_cmd[message_uart_counter]=HAL_UartReadByte();

	message_uart_counter++;
  }
 //   HAL_LedToggle(2);
}

I can recive the bytes, but when every I pause the ICE2, I notice the value of element 0 keeps changing in the array buffer. Keeps change between fe to ff.

I guess I could add some dummy bytes, but am woundering was is causing this. Can it be my pause without call a break point effect variable values.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have no idea, it might be something in your UART connection, for example.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How did bitcloud assign a short address to each node, was it random as well. I am using RF230,can I achieve random assignment.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, it is random plus it is checking a list of all addresses known to he assigning node (but not all addresses in the network). There is also address conflict resolution mechanism in place.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Like Bitcloud, if I need to switch off RF IC do I still force it to sleep with duration 0?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

To put transceiver to sleep use NWK_SleepReq(). See how it is used in WSNDemo.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes I no that, but I do not want it to wake up again.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You've asked if you can put the radio to sleep. NWK_SleepReq() does this and it does not wake up by itself.

If you need to put MCU to sleep, then you'll have to change HAL_Sleep() to do what you need or write your own sleep function.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Got some samples of RF233, what extra benefits would i notice compared to RF230

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Primarily reduced power consumption, especially if you enable all PRC features, better interrupts scheme, high data rate modes. There are also some problems in RF230 (not B) that affect ZigBee, but not LwMesh.

Most of the benefits are not that noticeable and most of them simplify programming, but don't affect over-the-air performance (it must stay IEEE compliant after all).

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Great, I will get a RF233 solder on a new board and then start changing the code in phy to get it working.

Any futher update on the 64-bit addressing introduction?

Thanks

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It is not 64 bit addresses, it is a way to assign unique 16 bit addresses using 64 bit UIDs. All communications will still happen over 16 bit addresses.

No updates, it is likely to roll over to the next year.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

At moment I am using the last 16-bit from the UID

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In regards to signal.

LQI seems to be always 255

But RSSI keeps changing.

Am I correct in saying quailty will remain same even with low signal strength?

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If I remember correct on Bitcloud LQI would change, did it decrease quailty while lightweight does not.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

BitCloud returns weighted mix of LQI and RSSI. LwMesh returns values as reported by the chip.

If you move nodes far enough, LQI will change in LwMesh as well.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just made a new RF board with RF 233 instead of RF230.

I can connected it to my main board, switched on WSNMonitor to see what I see.

And to my surprise I saw my node connect to the Network.

Should this be expected?

I was expecting to see the node not appearing on WSNMonitor until I made all necessary code changes.

Thanks

Regards

DJ

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

LwMesh uses pretty basic set of features and registers. I would not think that 230 and 233 will be compatible, but 231 and 233 should be compatible for sure. Nice to know that 230 and 233 are compatible as well.

You will get additional benefits, like lower power modes, by adding support for 233, of course.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

Pages