I am working on a project using Arduino Uno R4 Wifi, my phone and Arduino Cloud. Up to two weeks ago, I had a working prototype. But as of recently, I am unable to connect by Arduino board to the IoT Cloud. I tried the following:
Removing and adding the device from the thing, updating and double checking the wireless connection credentials.
Removing and adding the Arduino board from devices in IoT Cloud.
Trying to update the firmware using Arduino IDE - also failed.
Verifying and reuploading the code after resetting the board.
Buying a new Arduino Uno R4 Wifi board, also adding, removing and re-adding the device from the Arduino IoT Cloud.
Rebooting the computer.
Uninstalling the Arduino Create Agent, rebooting the computer, reinstalling the agent.
I suspect it is a driver issue: the Arduino Create Agent * tries * to download drivers, but I think it might not do so properly. Can I update these drivers manually?
Please add a forum reply here that provides a detailed explanation of what you mean by this, including:
What did you do?
What were the results you expected from doing that thing?
What were the results you observed that did not match your expectations?
Make sure to include the full and exact text of any error or warning messages you might have encountered.
I think it might be a "red herring". I also experience this problem of Arduino Create Agent producing redundant "Installing drivers" dialogs, even though the Arduino Cloud IoT features are working just fine for me. So I think it is only an annoyance, but without any impact on the functionality of Arduino Cloud.
If the drivers were missing, this would only result in the symptom of the board not producing a port, or uploads to the board failing. It would not affect the board's ability to connect to Arduino Cloud as a Thing via the network.
The Arduino Cloud developers are tracking the bug of the redundant driver dialogs here:
If you have a GitHub account, you can subscribe to that thread to get notifications of any new developments related to this subject:
Until then, please just click the "Yes" button on the "Installing drivers" dialogs when they appear. If you end up in a situation where a large number of the dialogs have accumulated, you can clear all of them at once by closing Arduino Create Agent and then starting it again.
What I tried to do: use the prototype that I built, and that worked two weeks ago. For that, I need my phone and the Arduino board to connect to the Arduino IoT Cloud. Phone is not an issue, correctly displays as online/offline in correspondence to the use of the Arduino IoT Remote app. The board, an Arduino Uno R4 Wifi, was previously added as a device and was able to connect through Wifi on several local networks. So it was an existing thing that I wanted to use again, but could not because the Arduino board can't connect to the server.
Things I did to try to get the Arduino board to connect (same as list above):
Removing and adding the device from the thing, updating and double checking the wireless connection credentials. All appears to be correct, but do not show the board as "online".
Removing and adding the Arduino board from devices in IoT Cloud. Until yesterday, this appears to be correct, but now I get the error mentioned in the point below.
Trying to update the firmware using Arduino IDE - also failed.
Verifying and reuploading the code after resetting the board using a USB-c data cable. At first, the reupload worked, now I get the "firmware update" error mentioned before.
Buying a new Arduino Uno R4 Wifi board, also adding, removing and re-adding the device from the Arduino IoT Cloud. I figured the Wifi module might have broken somehow, so I wanted to rule out hardware failure. Since the new board gives the same frameware update error, it was not the case.
Rebooting the computer, hoping that it would resolve issues in the Arduino Create Agent.
Uninstalling the Arduino Create Agent, rebooting the computer, reinstalling the agent.
To clarify, I use two of the same Arduino's: Leia and Padme. Leia is the one I used before and used to work perfectly. I updated the firmware when first using it, no trouble there. Using a cable, I can still verify and upload code, but it can not run the program since the board is not online.
Hi @ptillisch,
Today I tried again. Unfortunately the issues still persist. Do you have any suggestions what I could try next?
Looking forward to hearing from you.
Great work on finding a solution to the firmware update problem!
Try this:
Connect your UNO R4 WiFi board to your computer with the USB cable.
Open the Thing in Arduino Cloud.
Click the "Sketch" tab at the top of the page.
The Thing sketch will open in the editor.
Click the magnifying glass icon (Open Serial Monitor) on the Thing sketch editor toolbar.
A new browser window will open. This window will display debug output that is printed by the Thing sketch running on the UNO R4 WiFi board.
Press and release the button marked "RESET" on the UNO R4 WiFi. ⓘ This step is performed to cause the Thing program to restart so that you will be able to see any output it prints at the start of the program execution.
Now watch the browser window. Hopefully the output you see there will give some clue about why the Thing is in an "Offline" state.
Thank you for your debugging tips! I went through the steps. So using the serial monitor, it appears that the WiFi varies (status 0 (idle?) during most attempts, 3 (connected?) at others), but it does connect to my local network ("Old Toby"). If I switch to using a battery, the WiFi remains in this idle state and therefore can not connect to Arduino Cloud. But when I attempt to open the serial monitor when using the Over-the-Air setup, I get a new error (see image). So could it be an issue in providing the info that Arduino Cloud needs to connect with the WiFi module?
I get the new error only with one board, not the other.
You correctly inferred the meanings of the WiFi.status() return values :
I don't think it is possible to use Serial Monitor with an OTA port. You should connect the board to the computer with the USB cable when you want to use Serial Monitor.
You might be able to use an alternative communication mechanism (perhaps the "Messenger" widget) in cases where you have the need to get debugging information from the board through the network. But of course that is contingent on the program being functional enough to achieve such communication.
If it helps you, today I faced the same issue with a whole class of students.... We managed to upload code to the Arduinos by doing it through the IDE Editor (by dowloading the sketch through the full editor).
I'm not convinced it was the same issue as the one described by @nathalie23 though. @nathalie23 is reporting a problem with the runtime network communication between a board running an Arduino Cloud Thing sketch and the Arduino Cloud IoT server.
You seem to be reporting a problem with uploading to the boards, which is completely different from the problem @nathalie23 is having. I would be happy to investigate the problem you experienced, but I'd need you to provide more details.
Hi Ptillisch! Thank you for your feedback. I am afraid that the alternative communication methods are not working, given that I can't seem to establish a wireless connection despite the right codes in the serial monitor. Both boards remain marked as "offline", even with the cable plugged in. Do you have any other ideas?
That is indeed the "catch 22" when trying to troubleshoot network-related problems.
When all else fails, you can resort to the primitive method of adding code to blink an LED in order to communicate the program state.
So that I can be sure I understand the situation, I'm going to ask you to post the output that is printed to the Arduino Cloud Serial Monitor tool by your sketch.
This procedure is not intended to solve the problem. The purpose is to gather more information.
Connect the board used for the Device of the Thing to your computer with a USB cable.
Wait for the message on the editor toolbar to change from "No associated device found" to showing the board is connected.
Click the icon on the editor toolbar that looks like a magnifying glass ("Open Serial Monitor").
A Serial Monitor window will open.
Wait for your sketch to finish printing all the startup information.
Press the Ctrl+A keyboard shortcut (Command+A for macOS users).
This will select all the text in the Serial Monitor window.
Press the Ctrl+C keyboard shortcut (Command+C for macOS users).
This will copy the selected text to the clipboard.
Open a forum reply here by clicking the "Reply" button.
Click the <CODE/> icon on the post composer toolbar.
This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
This will paste the compilation output into the code block.
Move the cursor outside of the code block markup before you add any additional text to your reply.
Unfortunately, yes, it did show up in the setup screen as offline. Only afterwards it showed up as online on the device monitor page.
ETA: my code actuates a servo motor. If it was connected over Wifi, it would have actuated the servo immediately, moving to default position. It did not actuate during this test.