Arduino Wifi Shield Firmware compilation


I just receive my Wifi Shield and I would like to compile the firmware. So, I open the solution in AtmelStudio 6 ( - Service Pack 1). But, when I compile it, I receive this error : 'fw_read_cb' undeclared (first use in this function), main.c, 418,1,wifiHD, Also, and it potentially related, all libraries in libraries folder are missing: _ucr2_hd_spi_standalone_v2.1.1 _ucr2_hd_wl_standalone_v2.1.1 newlib_addons-at32ucr2-speed_opt

Thanks for your help, Pascal


Just to let you know in case of others want to compile the firmware with Atmel Studio 6, I finally found a way to fix it by a comparison between AVR32 Studio Project definition and Atmel Studio Project definition, so :

  • Add "DATAFLASH=1" symbol in project properties "GNU C Compiler"
  • Fix libraries link for lib_ucr2_hd_spi_v2.7.0.a, lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a and libnewlib_addons-at32ucr2-speed_opt.a

Ask me if you need the fixed wifiHD.cproj file,


Dear Sir,

When I add DATAFLASH=1, I should add it to defined symbols or to the Undefined symbols?

When modifying libraries, do i need to delete the already the mentioned libraries? What about the path of the libraries, how to modify it? I'm new to Atmel studio!

Do you recommend to install AVR studio instead of Atmel studio? if yes, what version do you recommend?

Waiting for your kind reply.

best wishes.

On the properties for the project, look at the Toolchain tab, in the "GNU C Compiler" section, and add DATAFLASH=1 to the "Symbols" list.

Then in the "GNU Linker" section , take a look at the "Libraries" list - you will probably see three libraries specified. You need to look at the Library Paths listed below these libraries, and validate that the libraries exist. In my case, the library names were different. (Later version)

Remove entries for non-existent libraries, and add entries for the correct libs.

Don't forget to set your configuration to "Release" (as opposed to Debug) if you intend to actually flash the firmware onto the Shield.


Thanks for the reply. I have changed the libraries settings according to your advice (with some changes accordingly).

I'm Trying to modify the firm ware to read an entire packet ( or segment) since I need the information in the header. I have modified the firm ware to at first read a small fixed string stored in the modified firmware. I built it without any error. When I flashed it, the shield error (red) led turned on continuously, and the shield did not work .

It may be the configuration as you mentioned ( must be release).

But, please what is the difference between release, debug, and debug 512 ??

Also, If you have any documentation about the SPI driver, I would be grateful.

I was track macros and functions of the firmware to understand communication procedure between Arduino and UC3 but it was not easy job. I'm now have a general idea about the driver work, but I need details.

Briefly; Can I add new commands to the firmware??