WINC1500 Demo -- White Flag
I am giving up on the Harmony/WINC1500. I have been using the latest Harmony/MPLABX/XC32 tools and the Curiosity PIC32 MZ EF development board with the WIFI 7 Click board to develop a WINC1500 driver for the Harmony superloop as an option to replace the FreeRTOS app (labeled a "driver" in Harmony).
I discovered a number of roadblocks that make me want to move on to something with more potential to be useful. Following is a list of some of the problems I encountered.
1. As I stated in an earlier post, I could not get the only WINC1500/Curiosity PIC32 MZ EF demo to work. I asked if anyone (forum people or Microchip) could get the demo app to work. No one has responded. Meanwhile, I tried the demo app in "socket mode" and received a lot of compile errors. I only changed one option in the MHC from "Run WiFi driver in Ethernet Mode" to "Run WiFi driver in Socket Mode". It appears (to me) that this demo app has not been tested before being added to the Harmony distro, so if I wanted to continue I would have to debug the demo looking at dynamic spi and gpio signals. I don't have the diagnostic tools to do this. This is why I buy dev kits and use Harmony tools so I can concentrate on the application. Furthermore, there is no software manual or datasheet that describes the low-level calls to the Cortus chip. The Atmel document is not sufficient to determine what registers are being called and why. Finally, after plowing through "code by committee" and "goto" statements (really!), IMHO, this is not the way to program embedded systems. Sorry, I am old school.
2. The Curiosity board does contain an MRF24W wifi chip and the demo app does work with that device. However, Microchip tells us that this device should not be used for new designs. I agree. The software for that device is included as a library in Harmony (not source code), so debugging inside the library routines is impossible. Furthermore, I could find no datasheet or software manual that describes the commands or logic that is contained in the MRF24W demo app. This is unacceptable, so using the MRF24W driver is out (for me).
3. This brings me to the question of the need for a wifi driver to be integrated with the Harmony TCP/IP stack. If the separate wifi chip does all the MAC/PHY/IP stuff, then maybe a simple localhost TCP link between the wifi network interface and the Harmony stack might be all that is needed. Does anyone have any thoughts on why a wifi module in the Harmony TCP/IP stack is needed?
4. I was looking at the available wifi click boards (there are 7) and it appears many of them use older or obsolete wifi chips. However, there are 3 possibilities for current products: WiFi-NINA (NINA-W132 chip), the WiFi 4 click (uses the SPWF013A chip), the WiFi ESP click (uses the ESP-WROOM-02). All of these use a UART interface to the host CPU and the latter two use a simpler AT-command set to control the device. Again, IMHO, this is a cleaner software design than the WINC1500. Does anyone in the forum have any experience with any of these 3 wifi chips? I think I will buy one of these and see how it can work with Harmony.