Description
Moved from arduino/Arduino#4797
Hello,
I'm working with the Arduino 101 (Curie) board and WiFi101 shield. I've been unsuccessful in getting even the ScanNetworks example to work. I can run the firmware detection example (it meets the firmware requirements), but execution freezes if I do anything more than that.
This might be similar to [#4545]
Observations
If I call Serial.begin, the first call to WiFiClass::scanNetworks() ultimately results in the board freezing. I observe no SPI traffic in my logic analyzer. If, however, I don't call Serial.begin, I continue to observe SPI traffic at intervals suggesting the sample is executing (scanning for networks).
I dug into the WiFi driver code and found the following. I copied the m2m_hif.c's hif_send() function (called it hif_send2() ), and updated m2m_wifi.c's m2m_wifi_request_scan() function to call hif_send2() instead of hif_send(). I then added a return statement just before completing the packet transfer:
...
reg = dma_addr << 2;
reg |= (1 << 1);
// return 0; <-- Doesn't freeze if I uncomment this.
ret = nm_write_reg(WIFI_HOST_RCV_CTRL_3, reg); <-- Freezes if I let this line execute.
if(M2M_SUCCESS != ret) goto ERR1;
...With the return I get no real results, as I'd expect, but the sketch continues to execute. I know it's not that line that causes the issue, but at this point, I'm unfamiliar with the driver as a whole, and don't know what what executes next. I'll keep digging.
Configurations I've tried
Windows 7 x64 USB2 and Windows 7 x64 USB3 (two different computers; applied the fix for USB 3)
Arduino IDE 1.6.8
Intel Curie Board Libraries 1.0.4 and 1.0.5
WiFi 101 libraries 0.7.0, 0.8.0, and 0.9.0All combinations of the following devices:
Arduino 101 boards:
AE6642SQ55200CR
AE6642SQ55201MYWifi101 Shields:
Neither of the 2 had serial numbers as far as I could tell. They were purchased and arrived within the last two weeks.Any help would be appreciated. Please let me know if I can provide any additional information.