Can't compile samples from BitCloud (ZigBee) with WinAVR

Go To Last Post
986 posts / 0 new

Pages

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

code-by wrote:
What is default values for these variables?

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.

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

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, ...)?

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

code-by wrote:
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.

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

When I use 8 bit ADC, value of ADC powered by USB was 43 (dec). I change ADC from 8 to 10 bit:

adcParam.resolution = RESOLUTION_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.

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

code-by wrote:
ADC value changed to 171, but I think it is wrong value.

It 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.

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

alexru wrote:
code-by wrote:
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?

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

code-by wrote:

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.

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

It 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.?

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

code-by wrote:
It 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.?

No, 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.

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

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...

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

code-by wrote:
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.

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

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

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

code-by wrote:
no, it is no need for nodes to sleep, cause they always powered by AC.

Then use coordinator + 60 routers. But i still doubt that it is possible to send data so frequently.

Quote:

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

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.

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

maximum lost 1 packet of 30-40

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

I 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.

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

How quick (im mseconds) can an node swtich between different networks?

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

So I begin try to make my self program w/o bitcloud :)

begin with SPI definition & intialization:

//CPU clock 4MHz

//SPI
#define DDR_SS   DDRB.0  //Slave Select - SEL 
#define DDR_MOSI DDRB.2  //Master Out - Slave In 
#define DDR_MISO DDRB.3  //Master In - Slave Out 
#define DDR_SCLK DDRB.1  //SPI Clock

//GPIO
#define RF230_IRQ        PINE.5 
#define DDR_RF230_IRQ    DDRE.5 
#define RF230_SLP_TR     PORTB.4 
#define DDR_RF230_SLP_TR DDRB.4 
#define RF230_RESET      PORTA.7 
#define DDR_RF230_RESET  DDRA.7

// SPI Type: Master
// SPI Clock Rate: 1000,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;

//init SPI:
DDR_MOSI = 1;
DDR_MISO = 0;
DDR_SCLK = 1;
DDR_SS = 1;

it's right?

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

code-by wrote:
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.

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

code-by wrote:
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.

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

alexru wrote:
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:

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

code-by wrote:
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.

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

How much useful data (bytes) can send or receive node in 1 second?

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

code-by wrote:
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.

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

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'?

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

code-by wrote:
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.

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

extPANid 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)?

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

code-by wrote:
extPANid is IEEE_Addr (regs. 0x24 - 0x2B)?

extPanId is not in registers. RF-Chip contains only values that are needed for automatic frames filtering/ack-ing.

code-by wrote:

What about MAC address on every Meshnetics board?

What about them?

code-by wrote:

Coud you give example of ShortAddr, PANid and IEEE_Addr for every device for make network with 3 devices (one of them is coordinator)?

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.

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

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)?

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

code-by wrote:
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.

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

So in what registers I can write 64bits CS_EXT_PANID? PAN_ID only is 16 bits.

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

code-by wrote:
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.

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

alexru wrote:
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....

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

code-by wrote:

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.

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

code-by wrote:
so I can't insert my ADC IRQ function....

HAL 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.

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

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.

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

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?

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

Quote:

Can U help with SPM functions?

Yes.

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 ?

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

In & i didn't find function for store const massive data in RWW section.

P.S. bootloading is secondary objective.

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

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)

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

Tried to execute example from boot.h.

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

Bit isn't clear for all time

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

Alexru,
You said on Jul 13, 2009 - 11:06 AM

alexru wrote:

Also new release of BitCloud is coming soon and it should have demo of coordinator sending data to end-device.

Do you have any details on when this will be available?
Thanks,
- Ed

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

Hi!

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

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

In 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.

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

alexru wrote:
code-by wrote:

Also new release of BitCloud is coming soon and it should have demo of coordinator sending data to end-device.

in what example of bitcloud 1.6 I can find this?

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

code-by wrote:
in what example of bitcloud 1.6 I can find this?

Actually 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.

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

Hello,

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.

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

lyte wrote:
Any clue ?

Seems 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

LINKER_FLAGS = -Xlinker -Map=$(APP_PATH)/list/$(PROJNAME).map -Wl,--gc-sections

and change it to

LINKER_FLAGS = -Wl,--gc-sections

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.

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

ok. thank for help

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

Hi,

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.

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

lyte wrote:
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.

Pages