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.
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,
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.
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?
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
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.
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.
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.
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.
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.
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.
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.
- Log in or register to post comments
TopI 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
- Log in or register to post comments
TopQuote from the source:
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
- Log in or register to post comments
TopOnce you send a message you recived an ack frame. Should there be wait period before sending another message?
Thanks
Regards
DJ
- Log in or register to post comments
TopNo, 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.
- Log in or register to post comments
TopFor 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
- Log in or register to post comments
TopFor 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.
- Log in or register to post comments
TopSorry
Can anything distort or delay the Confirmation function from executing when a frame is sent?
Thanks
Regards
DJ
- Log in or register to post comments
Topyes, I am using different data/
Thanks
Regards
DJ
- Log in or register to post comments
TopWhy 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.
- Log in or register to post comments
TopNo 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
- Log in or register to post comments
TopNo, 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.
- Log in or register to post comments
TopHi 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
- Log in or register to post comments
TopTimers 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.
- Log in or register to post comments
TopThanks, I will look in more detail. But glade to hear stack does not have the issue I was thinking.
Thanks
Regards
DJ
- Log in or register to post comments
Topdoes this stack still provide signal strength between nodes?
Thanks
Regards
DJ
- Log in or register to post comments
TopYes, "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.
- Log in or register to post comments
TopWhats 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
- Log in or register to post comments
TopNo, 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.
- Log in or register to post comments
TopOk, 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
- Log in or register to post comments
TopThere 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.
- Log in or register to post comments
TopWell 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
- Log in or register to post comments
TopNo, 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.
- Log in or register to post comments
TopOnce 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
- Log in or register to post comments
TopThere 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.
- Log in or register to post comments
TopThanks
When is the next version with 64-bit ID going to be released by the way?
Thanks
Regards
DJ
- Log in or register to post comments
TopSupposed 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.
- Log in or register to post comments
TopOk, no problem.
Till then I can just assign my cord to the last 16-bit number from UID chip
Thanks
Regards
DJ
- Log in or register to post comments
TopI 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
- Log in or register to post comments
TopYou 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.
- Log in or register to post comments
TopI got an array inside this function,
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
- Log in or register to post comments
TopI 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.
- Log in or register to post comments
TopHow 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
- Log in or register to post comments
TopYes, 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.
- Log in or register to post comments
TopLike Bitcloud, if I need to switch off RF IC do I still force it to sleep with duration 0?
Thanks
Regards
DJ
- Log in or register to post comments
TopTo 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.
- Log in or register to post comments
TopYes I no that, but I do not want it to wake up again.
Thanks
Regards
DJ
- Log in or register to post comments
TopYou'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.
- Log in or register to post comments
TopThanks
Thanks
Regards
DJ
- Log in or register to post comments
TopGot some samples of RF233, what extra benefits would i notice compared to RF230
Thanks
Regards
DJ
- Log in or register to post comments
TopPrimarily 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.
- Log in or register to post comments
TopGreat, 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
- Log in or register to post comments
TopIt 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.
- Log in or register to post comments
TopAt moment I am using the last 16-bit from the UID
Thanks
Regards
DJ
- Log in or register to post comments
TopIn 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
- Log in or register to post comments
TopYes.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
- Log in or register to post comments
TopIf I remember correct on Bitcloud LQI would change, did it decrease quailty while lightweight does not.
Thanks
Regards
DJ
- Log in or register to post comments
TopBitCloud 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.
- Log in or register to post comments
TopJust 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
- Log in or register to post comments
TopLwMesh 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.
- Log in or register to post comments
TopPages