Croduino NOVA upload fails with espcomm_send_command warnings

Customer:

I just got a Croduino NOVA and cannot upload a program. I’ve followed all the instructions from your website.

Sketch uses 219,479 bytes (21%) of program storage space. Maximum is 1,044,464 bytes.

Global variables use 31,172 bytes (38%) of dynamic memory, leaving 50,748 bytes for local variables. Maximum is 81,920 bytes.

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08

warning: espcomm_sync failed

error: espcomm_open failed

error: espcomm_upload_mem failed

Originally submitted via email support on 23 April 2016. Migrated to the forum for community visibility.

Soldered Support:

Which version of Arduino do you have? Which version of esptool (the software you download via boards manager)?

Are you using at least a USB 2.0 port on your computer?

Original message (Croatian)

koju verziju Arduina imate? Koja verzija esptoola-a(onaj software kojega skidate preko boards manager)?
Koristite li barem USB 2.0. port na računalu?

Customer:

In Board Manager I installed “esp8266 by ESP8266 Community version 2.2.0”. I’m not sure if that’s the esptool version.

Original message (Croatian)

sorry

u Board Manageru sam instalirao

“esp8266 by ESP8266 Community version 2.2.0”

neznam jeli to verzija esptool-a

Soldered Support:

Do you have a resistor between 4.7k and 10k? Connect it between GPIO0 and GND while the board is powered. Then try uploading. Does it work?

Original message (Croatian)

imate li nekakav otpornik između 4.7k i 10k? Stavite ga između pina GPIO0 i gnd, sve to dok je pločica upaljena. Probajte sada upload. Je li radi?

Customer:

I figured out the GPIO0 to GND connection a few days ago and it helped. I’m a bit confused though. I’ve worked with generic ESP8266 modules from eBay before, and with those you had to connect GPIO0 and GND for every upload. With the NOVA it seems like you only needed to do it the first time?

The push buttons - one is reset, the other is GPIO0 and GND? I’ll let you know if I run into any other problems as I work with the board.

Original message (Croatian)

mislio sam se javit i ranije…sorry nije bilo vremena… … gpio0 i gnd sam skuzio jos prije par dana, pomoglo je… jedino sam malo zbunjen :slight_smile: obziriom da sam i prije radio sa ‘generic’ esp8266 modulima (ebay cca 2eura) kod kojih se za svaki upload mora spojit gpio0 i gnd, kod ‘nove’ se čini da je to trebalo samo prvi puta ??? push buttoni, jedan je reset, drugi??? gpio0 i gnd??? trenutno sam malo u gužvi pa kad se stignem dalje zabavlja sa pločicom, javim se ako bude problema. naručio san nešto sitno headera [name removed] Peternel TELNET d.o.o. Istarska 36 [address removed]

Soldered Support:

It seems you had an issue with our board because normally you shouldn’t need to manually place a pull-down on GPIO0 - it’s already on the board. You don’t need to change any connections manually because there’s an auto-reset circuit. You can see it here: Croduino-NOVA-Eagle-Files/v1.0/Croduino Nova Schematic.pdf at master · SolderedElectronics/Croduino-NOVA-Eagle-Files · GitHub

The push buttons: one is RST, the other is GPIO0, both connect to GND, but GPIO0 is disabled - there’s no connection to the push button so it’s completely non-functional. In version v1.1 (available in about 10 days) it will be functional. We had to disable it to make the board work correctly.

Original message (Croatian)

čini se da imate neki problemčić s našom pločicom jer inače ne bi trebali stavljati pull-down na GPIO0 - on već stoji na pločici. Ne morate ga ručno mijenjati nikakve konekcije jer postoji auto-reset circuit. Možete ga ovdje vidjeti: Croduino-NOVA-Eagle-Files/v1.0/Croduino Nova Schematic.pdf at master · SolderedElectronics/Croduino-NOVA-Eagle-Files · GitHub
Pushbttoni, jedan je rst, drugi GPIO0, oba se spajaju s gnd-om, ali GPIO0 je disable-an, ne postoji vod do pushbuttona pa je potpuno beskoristan :slight_smile: na verziji v1.1(u prodaji za oko 10ak dana) će biti funkcionalan. Morali smo ga onemogućiti da bi pločica ispravno radila.
Nadam se da ste u međuvremenu čuli se s kolegom i riješili onu drugu narudžbu :slight_smile:
Javite ako još negdje zapnete!

Customer:

I have a suggestion. If you’re already making something and have a spare button on the board, put it on some other GPIO?

I’m going to use the ESP8266 in two wireless modes:

  1. ‘working’ mode = DHCP client
  2. ‘config’ mode = AP mode (for configuring SSID, user, password)

With that spare button it would be easier to switch it into config mode.

Original message (Croatian)

Ako moze jedan prijedlog…

Ako već nešto radiš i imaš ‘višak’ button na pločici stavi ga na neki

drugi GPIO?

ja ću esp8266 koristi u obadva wireless ‘moda’…

  1. ‘radni :)’ mod = DHCP client

  2. ‘config’ mod = AP mode ( za konfiguraciju SSID, user, pass )

Sa tim buttonom viška bi ga bilo lakse ‘baciti’ u config mod

[name removed]

Soldered Support:

The GPIO0 push button isn’t completely non-functional - it can be used to manually switch between bootloader and run mode. It’s interesting though. Can you use the GPIO0 push button for that? GPIO0 is sampled at boot.

Original message (Croatian)

nije da je kompletno beskoristan GPIO0 pushbutton, može se koristiti za ručno prebacivanje između bootloader i run mode-a.
Da, zanimljivo. Jel možete iskoristit GPIO0 pushbutton za to? Stanje GPIO0 se gleda pri boot-u.

Customer:

I don’t understand what bootloader and run mode mean. My idea is:

  1. Press button
  2. Power up the board
    3a. Read digitalRead and send to ADMIN in wireless AP mode
    3b. If button is not pressed, go into ‘working’ mode

Can this work with what you said about “the GPIO0 pushbutton can be used to manually switch between bootloader and run mode”?

I also have a rather silly question. I don’t actually know how to name the individual GPIO pins. This is copy/pasted from the internet for a board I worked with once:

/* WEMOS D1 PINS MAPPING !!!!!!*/
static const uint8_t LED_BUILTIN = 2;
static const uint8_t BUILTIN_LED = 2;
static const uint8_t D0 = 16;
static const uint8_t D1 = 5;
static const uint8_t D2 = 4;
static const uint8_t D3 = 0;
static const uint8_t D4 = 2;
static const uint8_t D5 = 14;
static const uint8_t D6 = 12;
static const uint8_t D7 = 13;
static const uint8_t D8 = 15;
static const uint8_t RX = 3;
static const uint8_t TX = 1;

When you say GPIO0, what does that mean? What do I write in the code?

Original message (Croatian)

"nije da je kompletno beskoristan GPIO0 pushbutton, može se koristiti za

ručno prebacivanje između bootloader i run mode-a."

ovo ti baš ne kontam :frowning: šta bootloader / šta run mode :))

ideja je

  1. pritisnuti button

  2. napojiti ploćicu

3a. pročitati digitalread i poslati u ADMIN! :slight_smile: wireless ap mode

3b. ako nije pritisnut button idemo u ‘radni’ mode

moze li to proci obzirom na "nije da je kompletno beskoristan GPIO0

pushbutton, može se koristiti za ručno prebacivanje između bootloader i

run mode-a."

Imam ti ja jedno puno gluplje pitanje :slight_smile:

ja ti ustvari uopće neznam kako se ‘zovu’ pojedini GPIO pinovi…

ovo je copy/paste sa neta za pločicu za koju sam imao prilike jedanput

nešta odraditi

/* WEMOS D1 PINS MAPPING !!!

static const uint8_t LED_BUILTIN = 2;

static const uint8_t BUILTIN_LED = 2;

static const uint8_t D0 = 16;

static const uint8_t D1 = 5;

static const uint8_t D2 = 4;

static const uint8_t D3 = 0;

static const uint8_t D4 = 2;

static const uint8_t D5 = 14;

static const uint8_t D6 = 12;

static const uint8_t D7 = 13;

static const uint8_t D8 = 15;

static const uint8_t RX = 3;

static const uint8_t TX = 1;

*/

kad ti kažeš npr: GPIO0??? šta to znaći??? šta pisati u code-u???

sorry, nemoj nikom reci da sam ovo pitao :smiley:

ajd pozdrav

[name removed]

Soldered Support:

It can work. Just add a small delay at the beginning of your code so you have time from restarting the board to your if statement. If you press GPIO0 during restart, it will go into bootloader mode.

There are no silly questions, don’t worry. The pin numbers are marked at the edge of the board, so use them as they are marked. You don’t need to add a “D” before the number. So if you want the pin marked #13 on the board, a variable for it would be: int mojPin = 13;

Original message (Croatian)

Može proći,
stavite samo mali delay na početku koda – tj da imate vremena od restartiranja pločice do Vašeg if-a u kodu. Jer, ako pristisnete GPIO0 pri restartiranju pločice, odete u bootload mod s njom.
Nema glupih pitanja, bez brige :slight_smile: Brojevi pinova su označeni krajem njih, tako da ih kao takve koristite. Nije potrebno stavljati na “D” krajem broja pina. Tako da, ako želite pin označen #13 ma pločici, nekakava varijabla za njega glasi: int mojPin = 13;