You can see them in Components\ConfigServer\include\configServer.h
And you must modify them there (not in Configuration file of application). Or if you wish to modify them via Configuration file, you should change Makefile accordingly (see WSNDemo as an example).
code-by wrote:
1. Can an enddevice send data to another enddevice in network (if yes, it send via coordinator or directly)?
2. Can an router send data to another router in network (if yes, it send via coordinator or directly)?
3. If there coordinator, router and enddevice, and enddevice in range to direct send data to coordinator - does router involved in this transaction or not?
You may send data in any directions. But data to end devices will be send only via router or coordinator (parent of destination end device). Just specify destination address and stack will take care of delivery.
Routing will be involved only if needed. Network layer of stack decides for itself whether to use routing or not. There can be situations when two devices are in direct link distance but the link cost (that calculated by complex rules using RSSI and LQI values) is lower when sending via router. In this case router will be used.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
If I wish to write my self program w/o bitcloud, do I need to implement calculation of RSSI, LQI, think about message path or all this already implemented in RF230?
My project assume that there is one coordinator and 60 enddevices. I need every 2 seconds receive data from them (2 int) and send data back (1 int). What is better: receive data from 60 enddevices, or send data from enddevice 60 to 59, add data from it, then send to 58, ... etc, and finally in coordinator get data about all enddevices from enddevice 1 (and send data back with this method to 1, 2, ...)?
If I wish to write my self program w/o bitcloud, do I need to implement calculation of RSSI, LQI, think about message path or all this already implemented in RF230?
Yes, you should do all this. Actually this is why BitCloud was made :)
Quote:
My project assume that there is one coordinator and 60 enddevices. I need every 2 seconds receive data from them (2 int) and send data back (1 int). What is better: receive data from 60 enddevices, or send data from enddevice 60 to 59, add data from it, then send to 58, ... etc, and finally in coordinator get data about all enddevices from enddevice 1 (and send data back with this method to 1, 2, ...)?
60 end devices sending every 2 seconds + data from coordinator is almost impossible. They all have single medium (air) and there will be no space for all of them. For 60 nodes 10 seconds interval seems reasonable enough. With shorter interval nodes will spend most of the time not sleeping but trying to send data.
Also I am not sure if there will be enough memory on coordinator to handle 60 devices without routers. I would recommend 5-10 routers for 60 devices.
Sending should be done to the destination node (coordinator in this case).
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
If I wish to write my self program w/o bitcloud, do I need to implement calculation of RSSI, LQI, think about message path or all this already implemented in RF230?
Yes, you should do all this. Actually this is why BitCloud was made :)
It would be great to make "BitCloud light" for advanced developrs, who don't need multiple redefinitions and libraries of LEDS, ADC, UART, etc - only data transmission :)
If make my self program w/o using RSSI and LQI, I can't transmit data?
In my project, if I make 1 main coordinator (MC), 6 usual coordinator (UC) for 10 endDevices (ED) - for get/send data, then switch its to enddevices for connect to MC - send/receive data and then switch back to coordinators for theirs 10 ED, and doing every 2 seconds - it will not be big stress? :) or better to add to every UC another Zigbit in role of enddevice connecting by UART and send data to MC?
It would be great to make "BitCloud light" for advanced developrs, who don't need multiple redefinitions and libraries of LEDS, ADC, UART, etc - only data transmission :)
You can use all this right now. But you must be sure not to keep processor for a long period of time (more than 100 us in critical section (with interrupts disables) and more than 10 ms with interrupts enabled). Code for working with hardware (BSP and HAL) is opensource.
But provided API functions already take care of it.
code-by wrote:
If make my self program w/o using RSSI and LQI, I can't transmit data?
You will be able to transmit/receive data from/to device within direct link range. For routing you will have to implement something (reinvent ZigBee :) ). Be aware that creating and implementing routing algorithm requires a lot of experience and (debugging :) ).
code-by wrote:
In my project, if I make 1 main coordinator (MC), 6 usual coordinator (UC) for 10 endDevices (ED) - for get/send data, then switch its to enddevices for connect to MC - send/receive data and then switch back to coordinators for theirs 10 ED, and doing every 2 seconds - it will not be big stress? :) or better to add to every UC another Zigbit in role of enddevice connecting by UART and send data to MC?
First of all in ZigBee there is only one coordinator (device responsible for creating and maintaining network). All other devices are either routers or end devices.
I actually did not understood what you described. But 60 devices sending every 2 seconds is almost impossible. You can make it easier by disabling APS acks, but in this case data transmission will be unreliable (you won't expect any confirmation from other side).
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
6 Coordinators (each with individual network) get data from their 10 nodes (total 60 nodes), then change their role to be Enddevices of network of MainCoordinator and send data to MC, then restore role to be C in their networks.
Now I thinking how to transmit data from/to 60 nodes every 2 seconds... :) its requirement of project...
6 Coordinators (each with individual network) get data from their 10 nodes (total 60 nodes), then change their role to be Enddevices of network of MainCoordinator and send data to MC, then restore role to be C in their networks.
Oh, I got it. As I already mentioned it is impossible to change role dynamically. It seems like hard task. Any way I'd expect a lot of debugging and tuning for performance.
Quote:
Now I thinking how to transmit data from/to 60 nodes every 2 seconds... :) its requirement of project...
Can you describe your project? Do nodes really need to sleep?
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
no, it is no need for nodes to sleep, cause they always powered by AC. I think I full described my project... get data from 60 nodes (2 int) every 2 sec. and send 1 int to each node depend on data from it.
thank
How quick (im mseconds) can an node swtich between different networks?
Node (router or coordinator) is a part of the network. Leaving node from network can somehow affect other nodes in network. So switching between networks is not allowed.
If coordinator leaves network then it will be ruined.
Anyway proper leaving from one network and joining other network can take several seconds.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
So I begin try to make my self program w/o bitcloud :)
I really do not want to mess with parts of code that do not compile. Write simple program to read/write RF registers and see if it is right.
But avoiding BitCloud will not help you at all. Just do the math. All yours frames won't fit into air. Take air frame length (from datasheet), number of frames you want to send and multiply all this.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
Anyway proper leaving from one network and joining other network can take several seconds.
May be conect each of six C's with another Zigbit module (via UART) in role of ED as nodes of another seven network and send all data to main coordinator :) but how much it will cost :roll:
May be conect each of six C's with another Zigbit module (via UART) in role of ED as nodes of another seven network and send all data to main coordinator :) but how much it will cost :roll:
1. ZigBit have only 2 UARTs.
2. If you'll try to send all data via the air again you will face the problem of low throughput.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
How much useful data (bytes) can send or receive node in 1 second?
Depends on amount of other nodes at the same channel and amount of noise and other interference. For 2 nodes (one sending data to other) throughput can be up to 80 kbps (10 kBps).
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
I make my self program that reading registers PART_NUM, VERSION_NUM, MAN_ID :)
If I want for example create 10 different zigbee networks, can they work on same channel but having different IEEE_addr? Can be networks be differents, if they work on same channel, IEEE_addr, but different PAN_ID?
Register 0x2E have bit3 'I_AM_COORD' for setup coordinator, but where to set node type 'router'?
I make my self program that reading registers PART_NUM, VERSION_NUM, MAN_ID :)
Good start!
code-by wrote:
If I want for example create 10 different zigbee networks, can they work on same channel but having different IEEE_addr? Can be networks be differents, if they work on same channel, IEEE_addr, but different PAN_ID?
IEEE_Addr is unique to every device. Network is determined by ExtendedPANID (often equals to IEEE_Addr of coordinator) and ShortPANID. You can have several different networks on the same channel.
code-by wrote:
Register 0x2E have bit3 'I_AM_COORD' for setup coordinator, but where to set node type 'router'?
This is not strictly ZigBee Coordinaror - it is 802.15.4 coordinator, they are different :). And radio-chip knows nothing about ZigBee. This bit only used to set corresponding bit in automatically generated frames.
To support ZigBee roles you need to write all stack (or MAC layer at least).
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
In each meshnetic board there an MAC-address (8 bytes/ 64 bites). It's defined in UID chip. Zigbit OEM modules haven't it. Do I need to set this MAC-address? And for what it coud be used?
Why CS_EXT_PANID is 10 bytes (not 8 like IEEE_addr)?
In each meshnetic board there an MAC-address (8 bytes/ 64 bites). It's defined in UID chip. Zigbit OEM modules haven't it. Do I need to set this MAC-address? And for what it coud be used?
UID-chip can be used to obtain unique 64-bit number. This number can be used as IEEE Addr.
code-by wrote:
Why CS_EXT_PANID is 10 bytes (not 8 like IEEE_addr)?
CS_EXT_PANID is 8 bytes (64 bits) long. If you mean LL on the end - it denotes 'long long' type (L is not valid hexadecimal character).
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
So in what registers I can write 64bits CS_EXT_PANID? PAN_ID only is 16 bits.
In no register.
Seriously, read standard (ZigBee + MAC) and try to understand that there are a lot of things that you need to handle in microprocessor. Chip uses short PANID to filter packets that come from different PAN. There is no need for chip to know extended PAN ID.
ZigBee is not that simple as one may think. BitCloud consumes 100k of code space for a reason.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
ZigBee is not that simple as one may think. BitCloud consumes 100k of code space for a reason.
Ok, but its write for WinAVR compiler, I like to use CodeVision AVR :) and BitCloud links to precompiled libraries that compiler always using when I need, for example, ADC, so I can't insert my ADC IRQ function....
Ok, but its write for WinAVR compiler, I like to use CodeVision AVR :) and BitCloud links to precompiled libraries that compiler always using when I need, for example, ADC, so I can't insert my ADC IRQ function....
OK, but be prepared to spend couple of years writing and debugging ZigBee stack.
Sorry, can't help you in this case. But start with reading IEEE 802.15.4 standard - you will need to implement it anyway.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
I will try to send data w/o zigbee stack for network with 1 coordinator and 6 enddevices. Zigbee stack using for routing and to send data with minimal power consumption. If topology of my network don't change at time and I not need to use router - I think that I don't need to worry about zigbee stack.
Hi! Question about BitCloud & AVRStudio. Need to store some constant data in flash & realize self programming using bootloader (somth like this). Can U help with SPM functions?
What do you mean? At the top of boot.h (as also described in the manual - http://www.nongnu.org/avr-libc/u... "API Usage example") there's a fairly comprehensive demonstratin of how to use the APIs to write a page.
In my own code I then write a large bloc of data a page at a timer using:
void
#ifdef ENABLE_SPM
BOOTLOADER_SECTION
#endif
my_spm_routine(
void
){
uint16_t i;
uint16_t page = 0xFE0; // last 32 pages of 528 bytes (16,896) hold f/w image
uint8_t buf[SPM_PAGESIZE];
uint32_t code_page;
void (* fn_ptr) (void);
uint8_t valid = 1;
cli();
PORTD ^= (1<<LED3);
SPI_enable();
dflash_chip_select();
write_SPI(0xE8); //continuous array read command
#ifdef FLASH_528
write_SPI((page >> 6) & 0x3F); //send page number then byte offset = 0
write_SPI((page &0x3F) << 2);
#else
write_SPI((page >> 7) & 0x07); //send page number then byte offset = 0
write_SPI((page &0x7F) << 1);
#endif
write_SPI(0);
write_SPI( 0 ); //four don't care bytes to start read process
write_SPI( 0 );
write_SPI( 0 );
write_SPI( 0 );
write_SPI( 0xFF ); // gonna check 1st three bytes at start of page FE0 for "CJL" to show code is available
if (SPDR != 'C') {
valid = 0;
}
write_SPI( 0xFF );
if (SPDR != 'J') {
valid = 0;
}
write_SPI( 0xFF );
if (SPDR != 'L') {
valid = 0;
}
if (valid) {
for (code_page=0; code_page<112; code_page++) { // 112 pages of 128 bytes to 1C00
for (i=0; i < SPM_PAGESIZE; i++) {
write_SPI(0xFF) ; // dummy write in order to read a byte
buf[i] = SPDR;
// buf[i] = 0x5F;
}
boot_program_page((code_page * SPM_PAGESIZE), buf);
}
}
dflash_chip_unselect();
SPI_disable();
if (valid) {
// force a reboot into the new code
fn_ptr = (void *) 0;
fn_ptr();
}
sei();
}
(though this is complicated by the fact that I'm reading the data out of an AT45 Dataflash - but the core shows boot_program_page() being used)
488: boot_spm_busy_wait ();
+00000861: B607 IN R0,0x37 In from I/O location
+00000862: FC00 SBRC R0,0 Skip if bit in register cleared
+00000863: CFFD RJMP PC-0x0002 Relative jump
It is possible to send data to all end-devices at once (broadcast) with Bitcloud stack? If yes, what need to be changed in Lowpower demo /Bitcloud v.1.6/
I'm trying to compile blink sample (from BitCloud_ZDK_1_6_0).
From AVR Studio 4, Build / Build, I got the following error :
c:/program files/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: cannot open map file ./list/blink.map: No such file or directory
make: *** [blink.elf] Error 1
Build failed with 1 errors and 0 warnings...
Most of previous compilation steps worked fine (such as Config Server, Board support lib, etc).
But the Application Objects creation / linking doesn't work.
Thanks for the tips.
I created "list" directory within the "blink" one (and additional one, such as objs dir).
This works fine know, having the .map file generation.
I uploaded blink.srec to the module. This works fine as well.
I also played with AT command, from a PC+Zigbit+Hyperterminal (Host) and Remote Nodes. This is also great.
Quick question : I would like to use these AT commands (really straightforward) from the Remote Node, to send data to the Host.
Eg : I need to add my own code(very simple, as this is only grabbing info from GPIO) on top of AT layer code, and then send result to Host, with simple AT commands.
In other, I want to embed AT commands in my own code. Should I re-program everything, based/starting with BitCloud framework, or do we have something simpler ?
I created "list" directory within the "blink" one (and additional one, such as objs dir).
This works fine know, having the .map file generation.
They should be there after unpacking actually.
lyte wrote:
In other, I want to embed AT commands in my own code. Should I re-program everything, based/starting with BitCloud framework, or do we have something simpler ?
SerialNet source code is closed and I am myself not a big fan of SerialNet so I can't help here. Ask tech support if you really curious.
I'd recommend you to study how the other sample applications work and write simple application on top of BitCloud stack.
NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.
You can see them in Components\ConfigServer\include\configServer.h
And you must modify them there (not in Configuration file of application). Or if you wish to modify them via Configuration file, you should change Makefile accordingly (see WSNDemo as an example).
You may send data in any directions. But data to end devices will be send only via router or coordinator (parent of destination end device). Just specify destination address and stack will take care of delivery.
Routing will be involved only if needed. Network layer of stack decides for itself whether to use routing or not. There can be situations when two devices are in direct link distance but the link cost (that calculated by complex rules using RSSI and LQI values) is lower when sending via router. In this case router will be used.
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 wish to write my self program w/o bitcloud, do I need to implement calculation of RSSI, LQI, think about message path or all this already implemented in RF230?
My project assume that there is one coordinator and 60 enddevices. I need every 2 seconds receive data from them (2 int) and send data back (1 int). What is better: receive data from 60 enddevices, or send data from enddevice 60 to 59, add data from it, then send to 58, ... etc, and finally in coordinator get data about all enddevices from enddevice 1 (and send data back with this method to 1, 2, ...)?
- Log in or register to post comments
TopYes, you should do all this. Actually this is why BitCloud was made :)
60 end devices sending every 2 seconds + data from coordinator is almost impossible. They all have single medium (air) and there will be no space for all of them. For 60 nodes 10 seconds interval seems reasonable enough. With shorter interval nodes will spend most of the time not sleeping but trying to send data.
Also I am not sure if there will be enough memory on coordinator to handle 60 devices without routers. I would recommend 5-10 routers for 60 devices.
Sending should be done to the destination node (coordinator in this case).
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
TopWhen I use 8 bit ADC, value of ADC powered by USB was 43 (dec). I change ADC from 8 to 10 bit:
Also I change variables of batterydata and variable for send to coordinator from 8 to 16 bit.
ADC value changed to 171, but I think it is wrong value.
- Log in or register to post comments
TopIt is correct value.
In the first case you get 43/(2**8 ) = 0.167969,
in the second case 171/(2**10) = 0.166992.
Both numbers (0.167969 and 0.166992) are parts of full scale value.
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
TopIt would be great to make "BitCloud light" for advanced developrs, who don't need multiple redefinitions and libraries of LEDS, ADC, UART, etc - only data transmission :)
If make my self program w/o using RSSI and LQI, I can't transmit data?
In my project, if I make 1 main coordinator (MC), 6 usual coordinator (UC) for 10 endDevices (ED) - for get/send data, then switch its to enddevices for connect to MC - send/receive data and then switch back to coordinators for theirs 10 ED, and doing every 2 seconds - it will not be big stress? :) or better to add to every UC another Zigbit in role of enddevice connecting by UART and send data to MC?
- Log in or register to post comments
TopYou can use all this right now. But you must be sure not to keep processor for a long period of time (more than 100 us in critical section (with interrupts disables) and more than 10 ms with interrupts enabled). Code for working with hardware (BSP and HAL) is opensource.
But provided API functions already take care of it.
You will be able to transmit/receive data from/to device within direct link range. For routing you will have to implement something (reinvent ZigBee :) ). Be aware that creating and implementing routing algorithm requires a lot of experience and (debugging :) ).
First of all in ZigBee there is only one coordinator (device responsible for creating and maintaining network). All other devices are either routers or end devices.
I actually did not understood what you described. But 60 devices sending every 2 seconds is almost impossible. You can make it easier by disabling APS acks, but in this case data transmission will be unreliable (you won't expect any confirmation from other side).
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
TopIt is posible to make coordinator of one network (A) every 2 seconds switch to be enddevice in another netw (B) and switch back to coord.?
- Log in or register to post comments
TopNo, it is impossible. Why would you need this?
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
Top6 Coordinators (each with individual network) get data from their 10 nodes (total 60 nodes), then change their role to be Enddevices of network of MainCoordinator and send data to MC, then restore role to be C in their networks.
Now I thinking how to transmit data from/to 60 nodes every 2 seconds... :) its requirement of project...
- Log in or register to post comments
TopOh, I got it. As I already mentioned it is impossible to change role dynamically. It seems like hard task. Any way I'd expect a lot of debugging and tuning for performance.
Can you describe your project? Do nodes really need to sleep?
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, it is no need for nodes to sleep, cause they always powered by AC. I think I full described my project... get data from 60 nodes (2 int) every 2 sec. and send 1 int to each node depend on data from it.
thank
- Log in or register to post comments
TopThen use coordinator + 60 routers. But i still doubt that it is possible to send data so frequently.
Do you need reliable delivery or loss of some packets is acceptable?
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
Topmaximum lost 1 packet of 30-40
- Log in or register to post comments
TopI checked next cases on our test network:
For all cases 1 Coordinator + 60 Routers. Routers were sending 50 bytes of data (standard WSNDemo application).
1) Routers sending data every 2 seconds with APS acknowledgment. Not working + UART on coordinator is starting to be bottleneck.
2) Same thing but 5 seconds: better, but still not applicable for real life.
Recommended sending rate for 60 nodes would start from 15-20 seconds.
Seems like requested data rate is impossible for ZigBee.
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 quick (im mseconds) can an node swtich between different networks?
- Log in or register to post comments
TopSo I begin try to make my self program w/o bitcloud :)
begin with SPI definition & intialization:
it's right?
- Log in or register to post comments
TopNode (router or coordinator) is a part of the network. Leaving node from network can somehow affect other nodes in network. So switching between networks is not allowed.
If coordinator leaves network then it will be ruined.
Anyway proper leaving from one network and joining other network can take several seconds.
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 really do not want to mess with parts of code that do not compile. Write simple program to read/write RF registers and see if it is right.
But avoiding BitCloud will not help you at all. Just do the math. All yours frames won't fit into air. Take air frame length (from datasheet), number of frames you want to send and multiply all this.
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
TopMay be conect each of six C's with another Zigbit module (via UART) in role of ED as nodes of another seven network and send all data to main coordinator :) but how much it will cost :roll:
- Log in or register to post comments
Top1. ZigBit have only 2 UARTs.
2. If you'll try to send all data via the air again you will face the problem of low throughput.
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 much useful data (bytes) can send or receive node in 1 second?
- Log in or register to post comments
TopDepends on amount of other nodes at the same channel and amount of noise and other interference. For 2 nodes (one sending data to other) throughput can be up to 80 kbps (10 kBps).
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 make my self program that reading registers PART_NUM, VERSION_NUM, MAN_ID :)
If I want for example create 10 different zigbee networks, can they work on same channel but having different IEEE_addr? Can be networks be differents, if they work on same channel, IEEE_addr, but different PAN_ID?
Register 0x2E have bit3 'I_AM_COORD' for setup coordinator, but where to set node type 'router'?
- Log in or register to post comments
TopGood start!
IEEE_Addr is unique to every device. Network is determined by ExtendedPANID (often equals to IEEE_Addr of coordinator) and ShortPANID. You can have several different networks on the same channel.
This is not strictly ZigBee Coordinaror - it is 802.15.4 coordinator, they are different :). And radio-chip knows nothing about ZigBee. This bit only used to set corresponding bit in automatically generated frames.
To support ZigBee roles you need to write all stack (or MAC layer at least).
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
TopextPANid is IEEE_Addr (regs. 0x24 - 0x2B)?
What about MAC address on every Meshnetics board?
Coud you give example of ShortAddr, PANid and IEEE_Addr for every device for make network with 3 devices (one of them is coordinator)?
- Log in or register to post comments
TopextPanId is not in registers. RF-Chip contains only values that are needed for automatic frames filtering/ack-ing.
What about them?
Any different combinations of (IEEE_Addr, ShortAddr) and PanId common to them all.
Example:
panid shortaddr extaddr
123 1 1
123 2 2
123 3 3
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
TopIn each meshnetic board there an MAC-address (8 bytes/ 64 bites). It's defined in UID chip. Zigbit OEM modules haven't it. Do I need to set this MAC-address? And for what it coud be used?
Why CS_EXT_PANID is 10 bytes (not 8 like IEEE_addr)?
- Log in or register to post comments
TopUID-chip can be used to obtain unique 64-bit number. This number can be used as IEEE Addr.
CS_EXT_PANID is 8 bytes (64 bits) long. If you mean LL on the end - it denotes 'long long' type (L is not valid hexadecimal character).
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
TopSo in what registers I can write 64bits CS_EXT_PANID? PAN_ID only is 16 bits.
- Log in or register to post comments
TopIn no register.
Seriously, read standard (ZigBee + MAC) and try to understand that there are a lot of things that you need to handle in microprocessor. Chip uses short PANID to filter packets that come from different PAN. There is no need for chip to know extended PAN ID.
ZigBee is not that simple as one may think. BitCloud consumes 100k of code space for a reason.
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, but its write for WinAVR compiler, I like to use CodeVision AVR :) and BitCloud links to precompiled libraries that compiler always using when I need, for example, ADC, so I can't insert my ADC IRQ function....
- Log in or register to post comments
TopOK, but be prepared to spend couple of years writing and debugging ZigBee stack.
Sorry, can't help you in this case. But start with reading IEEE 802.15.4 standard - you will need to implement it anyway.
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
TopHAL and BSP are open-source - insert anything you like. Just be careful.
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 will try to send data w/o zigbee stack for network with 1 coordinator and 6 enddevices. Zigbee stack using for routing and to send data with minimal power consumption. If topology of my network don't change at time and I not need to use router - I think that I don't need to worry about zigbee stack.
- Log in or register to post comments
TopHi! Question about BitCloud & AVRStudio. Need to store some constant data in flash & realize self programming using bootloader (somth like this). Can U help with SPM functions?
- Log in or register to post comments
TopYes.
I presume you have looked at which bit don't you understand?
You are aware of the 10,000 cycle limit I take it? Often (for smaller amounts of data the 100,000 cycle EEPROM is a better place for it)
Cliff
PS Also, did you read the Bootloader FAQ ?
- Log in or register to post comments
TopIn & i didn't find function for store const massive data in RWW section.
P.S. bootloading is secondary objective.
- Log in or register to post comments
TopWhat do you mean? At the top of boot.h (as also described in the manual - http://www.nongnu.org/avr-libc/u... "API Usage example") there's a fairly comprehensive demonstratin of how to use the APIs to write a page.
In my own code I then write a large bloc of data a page at a timer using:
(though this is complicated by the fact that I'm reading the data out of an AT45 Dataflash - but the core shows boot_program_page() being used)
- Log in or register to post comments
TopTried to execute example from boot.h.
Bit isn't clear for all time
- Log in or register to post comments
TopAlexru,
You said on Jul 13, 2009 - 11:06 AM
Do you have any details on when this will be available?
Thanks,
- Ed
- Log in or register to post comments
TopHi!
It is possible to send data to all end-devices at once (broadcast) with Bitcloud stack? If yes, what need to be changed in Lowpower demo /Bitcloud v.1.6/
thanks
- Log in or register to post comments
TopIn Lowpower end devices send data to coordinator.
If you want to send data to all end devices you should send them as usual but to 0xffff short address.
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
Top- Log in or register to post comments
TopActually LowPower now includes data sending from coordinator to end devices.
Look around dataInd() and startSending() functions in coordinator.c.
In sendStep() set apsDataReq.dstAddress.shortAddress = 0xffff; and remove children cycle logic.
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
TopHello,
I'm trying to compile blink sample (from BitCloud_ZDK_1_6_0).
From AVR Studio 4, Build / Build, I got the following error :
c:/program files/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: cannot open map file ./list/blink.map: No such file or directory
make: *** [blink.elf] Error 1
Build failed with 1 errors and 0 warnings...
Most of previous compilation steps worked fine (such as Config Server, Board support lib, etc).
But the Application Objects creation / linking doesn't work.
Any clue ?
Lyte.
- Log in or register to post comments
TopSeems like linker can not access ./list directory. Try to create some file there by hand to check if it is accessible.
You may also try to disable .map file generation. Find the following string in Makefile
and change it to
Also try to build application from command line.
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. thank for help
- Log in or register to post comments
TopHi,
Thanks for the tips.
I created "list" directory within the "blink" one (and additional one, such as objs dir).
This works fine know, having the .map file generation.
I uploaded blink.srec to the module. This works fine as well.
I also played with AT command, from a PC+Zigbit+Hyperterminal (Host) and Remote Nodes. This is also great.
Quick question : I would like to use these AT commands (really straightforward) from the Remote Node, to send data to the Host.
Eg : I need to add my own code(very simple, as this is only grabbing info from GPIO) on top of AT layer code, and then send result to Host, with simple AT commands.
In other, I want to embed AT commands in my own code. Should I re-program everything, based/starting with BitCloud framework, or do we have something simpler ?
Thank’s in advance.
Lyte.
- Log in or register to post comments
TopThey should be there after unpacking actually.
SerialNet source code is closed and I am myself not a big fan of SerialNet so I can't help here. Ask tech support if you really curious.
I'd recommend you to study how the other sample applications work and write simple application on top of BitCloud stack.
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