Its disappointing if the WiFi hardware has failed within just a couple of months. Is there anything other than a hardware fault that may be preventing WiFi from starting?
I can still run apps, but anything that has functions that depend on the network is limited because of WiFi not being available.
If WiFi has failed, would this be covered under warranty as a manufacturing defect?
Hmm, fair point. I think I will give that a try. I though there was maybe an nmcli command that I could try. Its kind of strange how was running an app then it suddenly lost connectivity. Since then, it no longer reports the WiFi device in Linux.
The board has now been flashed with the latest firmware, but AppLab still complains about there being no network available and there is still no WiFi network interface available in Linux.
Tried that previously, but perhaps worth a go after the firmware being flashed, so gave it another try. The command does not return any error or confirmation but;
arduino@UnoQ2Gb: $ sudo nmcli radio wifi
enabled
arduino@UnoQ2Gb:/$ nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
missing enabled missing enabled
arduino@UnoQ2Gb:/$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
docker0 DOWN 172.17.0.1/16
arduino@UnoQ2Gb:/$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:d8:12:84:83 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
So its enabled apparently, but not appearing as an interface?
I was looking at whether the WiFi module could be replaced - not a trivial task - but it turns out to be some proprietary Qualcomm part that can't be obtained anywhere.
I have submitted a request to customer service via that contact form so am hoping that someone might be in touch tomorrow. Lets see what happens.
In the meantime, is there any way to hook up some other WiFi module such as an ESP and make it accessible to Linux?
I think that would be your best bet for easy Wi-Fi on Linux. If there is built-in support for the USB device in Linux, then it would essentially be a "plug and play" solution. Of course you will need to connect it to the UNO Q using a USB-C hub, and this means you won't have the option of using the UNO Q connected to a standard PC via USB (though you can still use the network connection once you get network communication working again via the dongle)
Something like an ESP32/ESP8266 is a good solution for adding Wi-Fi communication capability to a microcontroller, but it is less ideal for Linux machine. The reason is that you will not be able to use the native networking stack of Linux, but would instead need to use whatever interface is provided by the ESP32/ESP8266 (e.g., the "AT firmware"). This is surely doable, but fairly complex. You may have a bit of a challenge from the start even connecting the module to the GPIO pins on the MPU via the headers on the bottom of the UNO Q board (keep in mind the MPU uses 1.8 V logic level).
Why didn't I think of that! Even with the limitation of having to use the USB-C hub it might still be worth while. As it happens, I have two USB WiFi dongles. One is a TP-Link WN722N with 2.4GHz radio only using an Atheros ath9k driver. The other is a Netgear A6210 dual band. Both work out of the box on my Linux laptop as the drivers have been available in the Intel kernel for some time. Of course the UNO Q is ARM architecture so when I tried them, although lsusb reported the dongles connected, they don't show as network devices. Lsmod just says that the module is not available in the kernel modules directory.
Tomorrow I will try and hook up the UNO Q via Ethernet in the same way and see whether I can get online and find a driver for either device in the Debian repository. Apparently ARM drivers are available for the RPi so there is at least a possibility.
Well, the Ethernet connection from USB hub to the router did pick up a DHCP address from my router and I was able to get online and update the UNO Q.
I also tried installing the firmware for both of the dongles but even after the installation, the devices would not work unfortunately. Generally in Linux on Intel these are plug and play, but not on the UNO Q.
Looking at the journal I see this:
-- Boot 55e582685e80408793e1656895d7318d --
Feb 23 14:59:11 UnoQ2Gb kernel: platform c800000.wifi: Adding to iommu group 6
Feb 23 14:59:16 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: supply vdd-3.3-ch1 not found, using dummy regulator
Feb 23 14:59:18 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: capability req rejected: 119
Feb 23 14:59:18 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: failed to fetch board data for bus=snoc,qmi-board-id=0,qmi-chip-id=0,variant=Thundercomm_RB1 from ath10k/WCN3990/hw1.0/board-2.bin
Feb 23 14:59:18 UnoQ2Gb NetworkManager[521]: <info> [1771858758.9004] Loaded device plugin: NMWifiFactory (/usr/lib/aarch64-linux-gnu/NetworkManager/1.52.1/libnm-device-plugin-wifi.so)
Feb 23 14:59:18 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: failed to fetch board-2.bin or board.bin from ath10k/WCN3990/hw1.0
not if it's a relation to the flash size the bin is for..
size might be the same but contents could vary..
i've never updated my board, only ever used it in sbc mode and my dongle has Ethernet..
Feb 23 14:59:18 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: capability req rejected: 119
Feb 23 14:59:18 UnoQ2Gb kernel: ath10k_snoc c800000.wifi: failed to fetch board data for bus=snoc,qmi-board-id=0,qmi-chip-id=0,variant=Thundercomm_RB1 from ath10k/WCN3990/hw1.0/board-2.bin
When comparing to my board: bus=snoc,qmi-board-id=ff,qmi-chip-id=140,
So basically the driver is not able to retrieve correct IDs info from the WiFi chip and then fails to locate corresponding firmware/config in the board-2.bin file.
This may indicate a hardware issue or a faulty board. If nothing out of the ordinary was done on your side, maybe you should reach out to Arduino or the board reseller for support or replacement.
No, nothing out of the ordinary. It was running an app that was showing something on the matrix and had a web page accessible via WiFi but it suddenly just lost comms. A restart didn't fix it.
That second line does indeed seem to suggest that the board is unable to identify and communicate with the WiFi chip. I initially thought that this was because the voltage error meant that the board had lost power, but you have explained that. It therefore has to be some other reason and a hardware issue would certainly be one explanation.
I have actually been in contact with Arduino support as advised by @ptillisch in post #7. I hope to have an update on that soon.
UPDATE: Arduino have kindly offered to replace my board. Just waiting for the "logistics team" to contact me with the shipping details. Much appreciated.