Arduino UNO WiFi Dev Ed Two Issues

Ok so I have been working with these units now for 96 hours - so I am a beginner.

I have 3 Arduino UNO WiFi Dev Ed Devices attached to my laptop (Windows 7 64) on port COM4, 5, 6 and all devices are on 192.168.1.0 wireless network which is on wireless router DHCP.

1.) Unit ONE is "stuck" in the ESP B\L. The LED is dim and it doesn't do anything when you upload a sketch.

I've tried : Reset, Firmware Update, Unplug/Replug device, change port, change board to NodeMCU or ESP8266, download and re-install IDE, reboot Laptop, uninstall & re-install device drivers ; nothing seems to bring it out of that stage. Error when uploading says "espcomm_upload_mem failed". When trying to do a firmware update it says : "Can't Communicate with Programmer". I have checked out most tutorials and guides but I was unable to use any of them to fix this.

What did I do ? See what guide I ran (attached) that caused unit ONE to do what it does now.

2.) Unit TWO has an issue with Ciao ; When trying to use it, it will print Garbage ASCII characters ; Mainly a diamond and a ? , sometimes a U. The Serial printout doesn't work then ; nothing is displayed.

I've tried : The same things as with unit ONE. However, this unit still works if you just run a Sketch with it... like to switch on LED pin13 or simple Serial.println()

What did I do ? On unit TWO I ran a the Ciao Sketch (attached) and after that it printed out those weird characters.

Any help would be extremely highly appreciated :slight_smile:

thingspeak02_LED.ino (1.03 KB)

Document.doc (127 KB)

How's unit three treating you?

cyberion1985:
it will print Garbage ASCII characters ; Mainly a diamond and a ? , sometimes a U.

Where is it printing the garbage to?

Hi pert. Thanks for your response.

Unit 3 I have left alone. Don't want to ruin it as well. I ran the "guide" (in original post now attached) only on ONE. On TWO I only ran the Ciao and because both approaches basically had side effects, I simply didn't run them on unit 3. I cannot test with THREE because I don't have it at the moment. I don't want to expose 3 to things that might make it inoperable :frowning:


It runs the garbage on the Wifi Console (screenshot attached)

Ok I've isolated the issue...

The garbled text / weird characters always come up when I use "Ciao" or "Wifi".
Here are two examples :

WORKING : Serial output

#include <UnoWiFiDevEd.h>

void setup() 
{
  Serial.begin(9600);
}
void loop()
{
  Serial.println("Testing...");
  delay(5000);
}

NOT WORKING : No Serial output and weird characters on Wifi Console

#include <UnoWiFiDevEd.h>

void setup() 
{
  Serial.begin(9600);
  Ciao.begin();
  
}
void loop()
{
  Serial.println("Testing...");
  delay(5000);
}

What I have done up to now :

1.) Re-installed Arduino IDE (deleted all folders relevant before reinstalling)
2.) Re-download library for Arduino Uno Wifi Dev Ed

Sounds like Ciao is configuring the serial port at a different speed then (probably because it's using it for something - I have no idea what Ciao is)

I'll bet if you did this instead, serial would work, but Ciao would not.

void setup()
{
Ciao.begin();
Serial.begin(9600);

}

Unit 1 may have hardware issue.

Thanks @DrAzzy.

Nope. Serial doesn't work when I do that. As soon as I add Ciao, Serial will not output anything, regardless which one I begin first in setup

This also doesn't work :o

#include <UnoWiFiDevEd.h>

void setup()
{
  Serial.begin(9600);
  Wifi.begin();
}
void loop()
{
  Serial.println("Testing...");
  delay(5000);
}

Some information that might be useful.
From http://www.arduino.org/products/boards/arduino-uno-wifi:

On the Arduino Uno Wi-Fi there’s a SC16IS750IBS IO Expander Single UART with I2C-bus/SPI interface that allows the communication between AtMega 16u2, AtMega 328p and the ESP8266EX.


(I find that diagram to be very unhelpful)
So if I understand correctly, the SC16IS750IBS has to switch communication between the ATmega328P and the ESP8266 or the ATmega16U2 (and from there to your computer). If it's not doing that correctly it would definitely explain the problem with Serial.prints. What I don't understand is what this WiFi console thing is. I guess it's like Serial Monitor except the communication is happening over WiFi?

Thanks @pert.

I guess so too. It's on the Arduino Web Portal. The output there looks just like the debug log output text.

This trouble started when I ran the basic Ciao sketch examples... I had no idea that a simple sketch can **** up everything so much. It makes no sense to me.

Idk much about electronics or machine code, but maybe something modified the WiFi firmware ? As in the thing that reads/writes from Wifi somehow got corrupt. Something that DOESN'T reset or clear when a firmware update is done, or a reset or a new sketch upload ?

Would be nice if there was a "restore to factory" on there that is initiated by a sketch that basically clears and resets everything to factory default, including ANY configuration done to ANYTHING on the device.

Or a feature where I can CLONE EVERYTHING from a working Arduino to these broken ones...

Or a special page on the Arduino Web Portal where this FULL reset can be initiated.

What would you say about an EEPROM clear ? :o

1.) I read that the default sketch can be used but you can't really say when it is actually done ? Yes, in the example sketch it makes the LED go on, but...

2.) Also, instead of writing "0" , someone advised using "-1" ?

also, EEPROM.end(); or EEPROM.commit(); should (must) be added. Now, commit doesn't seem to work, but with end the Sketch passes verification.

Clearing the EEPROM would only help if there's something in there that's causing the problem, which I doubt, but I have no experience with this hardware.

EEPROM.end() just gives you the size of the EEPROM on the ATmega328P in bytes. EEPROM.commit() is only for use when directly programming an ESP8266. You need to understand that the microcontroller you're programming when you upload a sketch to your board is the ATmega328P. It's just using the ESP8266 as a WiFi adapter. Unless you do a firmware update on the ESP8266 you won't be programming the ESP8266 at all so information you find specific to the ESP8266 Arduino core such as this EEPROM.commit() thing is not relevant.

my uno wifi is like your fist one

try Uno WiFi Serial1 library and read the library docs and Wiki on GitHub.

and do not touch the board from bottom. use the plastic bottom cover.