Teensy 4.1 - Adafruit Airlift Featherwing Co-Processor FTP Server not opening Port 21

the esp32 is updated only over Serrial0 pins. so RX/TX connection is required. io 0 LOW at boot signals to bootloader the it should wait for upload. the board has pull-up on io 0 for normal boot to application (sketch).

the WiFiNINA libray communicates with nina firmware over SPI and 3 other pins (io 0 as heartbeat, ready pin and WiFi/BLE selection pin). Arduino doesn't make a shield for WiFiNINA. they only make boards with NINA on board and plenty of unused pins on the main MCU and NINA to make all these connections.
 
Just tried doing the same thing with the featherwing coprocessor board and it failed to enter boot again... Getting ready to pass the baton to Kurt and others to get working
 
Just tried doing the same thing with the featherwing coprocessor board and it failed to enter boot again... Getting ready to pass the baton to Kurt and others to get working

Curious, was your FTDI 3.3v or 5v? I did mine with 5v version
 
@KurtE, mjs513 -From what I am seeing in Adafruits instructions for reflashing the Airlift Featherwing, you should be able to use a Teensy to upload the new firmware to the Airlift. If I am reading there instructions right...

Here is the link:
https://learn.adafruit.com/adafruit-airlift-featherwing-esp32-wifi-co-processor-featherwing/upgrade-external-esp32-airlift-firmware

Eventually it will instruct you to go to the 'External AirLift Breakout' section where there is a serial to USB pass through sketch you can run to make the Teensy act as a FTDI. On the Airlift you have to solder 3 jumpers together on the bottom side of the board. They also show the jumpers for two other Airlift boards. That's about all the further I got with it before family duty called:)

Edit: The sketch is showing the Teensy connections as well. Also it is showing pin 8 being used for NeoPixel. Is that just a cute name for an LED as an indicator of activity? Honestly, seen the word but don't know what it is...
 
Last edited:
@wwatson, that was where I started... Their sketch did not work for me, likewise several other attempts... But as I mentioned the FTDI cable did work. After setting the state of GPIO0 and Busy.

Have not done much with it since then. \

I left in their Neopixel code as was not using that pin anyway... They are also known by names like: WS2812B
And they have RGB leds in them some others are RGBW (extra white), and you can have many of them controlled by one IO pin. Most of the Adafruit Feather boards as well as others
are setup with one. I have played some with different configurations of them. I think all of the newer Adafruit boards Feather have one on them...
 
@wwatson
That was what I had been using along with soldering the 3 jumpers but had no luck. Even with the workaroung to use USB to serial isn't working for me. So if you figure it out let me know
 
Thanks guy's. I have a FTDI device that is breadboard friendly I bought when playing with the propeller device from Parallax. I'll try that...
 
Yes I used a 5v FTDI cable: probably this one: https://www.sparkfun.com/products/9718
I do have others around as well. I got lucky... So far I don't think @mjs513 has. Again mine is the breakout board so a little different in that I have it all running with jumper wires and I don't have to solder the connections on the bottom as these simply run out to breadboard pins. My guess under the covers they are the same. They simply added those solder jumpers as to not always tie up the IO pins like the Serial1 pins
 
@KurtE - I soooo feel your pain. It took me 3 weeks and 3 Airlift Featherwings before I was able to get ESPTool.py to talk to the board. I don't know if I was doing something to kill the board or what but... I finally got it to load. Their description of putting the board into bootloader mode by pressing the reset button twice never worked for me. I spent a day or 2 going down the FTDI route since that is my prefered way to make a serial connection but it never was able to communicate with the Airlift. When I received the 3rd board, I just soldered the 3 jumpers on the bottom and plugged it into the doubler board based on this instruction. I have the Teensy plugged into a Adafruit Teensy adapter board that reroutes all the pins to be compatible with the Airlift. At that point, I loaded the SerialPassthrough sketch and made the required changes for pin assignments and then ESPTool.py was able to load the firmware.
 
@jhall0326 - @KurtE - @wwatson

Well got some good news and bad news.

Tried a T3.5 and no life what so ever with using the sketch. Switched to a T3.2 and got something different on the Serial monitor showing it got into boot mode kind of:
Code:
rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
cip,I0xkv0_:0d0,_:0_:0_:0oD ckiaxf8n
d30,:ax70n0l:000l5t006ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
cip,I0k_v0_:0d0,_:0_:0_:0oD ci
axf8n
d30,:ax70n0l:00l52t006ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
cip,I0xkv0_:0d0,_:0_:0_:0oD ckiaxf8n
d30,:ax70n0l:000l5t006ets Jul 29 2019 12:21:46
this just keeps repeating over and over. And if I try the esptool at least I get something
Code:
A fatal error occurred: Failed to connect to Espressif device: Invalid head of packet (0x65): Possible serial noise or corruption.

But now very late and time for sleep I think. If anyone has any suggestions please feel free.
 
Well I think I finally got the thing into boot mode:

Code:
rst:0x1 (POWERON_RESET),boot:0x2 (DOWNLOAD_BOOT(UART0/UARS___)anooo

but still can not update via esptool :(
 
@mjs513 - I have not got even close to what have done. Adafruit's instructions are nothing more than confusing. You really do not know what combinations of instructions to use. I think if you were using one of there boards things updating WiFiNINI would probably work. But I don't have any of them. Looking at there SerialESPPassthrough.ino shows:
Code:
  pinMode(SPIWIFI_SS, OUTPUT);
  pinMode(ESP32_GPIO0, OUTPUT);
  pinMode(ESP32_RESETN, OUTPUT);

But I don't see SPIWIFI_SS being used anywhere as an output in the sketch:confused:

I think the key is in this code:
Code:
  // manually put the ESP32 in upload mode
  digitalWrite(ESP32_GPIO0, LOW);

  digitalWrite(ESP32_RESETN, LOW);
  delay(100);
  digitalWrite(ESP32_RESETN, HIGH);
  pixel.setPixelColor(0, 20, 20, 0); pixel.show();
  delay(100);
}

This actually resembles the way you put the ESP8266 in to upload mode. Then you just had to manipulate two buttons to do so. That was even tricky:)
Frustrating, Done rambling...
 
@wwatson
Yep not an easy sketch to go through. There is a board test for teensy jaunt have to go through the list. What I did after soldering the three jumpers of the airlift was to change the gpio0 pin from -1 to 10. The when I ran the sketch it finally got the board into what I think is the correct boot mode. That’s as far as I got. Adafruit has answered z as nh of our questions yet so who knows. Doesn’t appear to be anyone interested in the issue
 
@wwatson
Yep not an easy sketch to go through. There is a board test for teensy jaunt have to go through the list. What I did after soldering the three jumpers of the airlift was to change the gpio0 pin from -1 to 10. The when I ran the sketch it finally got the board into what I think is the correct boot mode. That’s as far as I got. Adafruit has answered z as nh of our questions yet so who knows. Doesn’t appear to be anyone interested in the issue

Well, I think maybe I'll start with the ESP32 sequence for putting it into upload mode. Then use a FTDI and bypass the Teensy passthrough with buttons or something. Need to research it:) The Teensy is so much easier to use that way...
 
ESP32 can work well, when it does, but it is not a PJRC Teensy when it comes to general utility.

When it doesn't ... ??? ... if you get a backtrace there is a decoder for that.

The FeatherWing doesn't look to have an onboard Serial chip of any sort - so it is serial FTDI or nothing?

Working with an Espressif S2 device - FTDI worked using the latest RC1 board dev code for ESP32 - it went to USB upload easily, which is cool - but the WROOM is before USB works. So without an onboard USB chip - the FTDI has to work.

Before new PICO Dual core units (without S2's USB chip) - the ESP8266 was programmed through a Teensy - but it took bang of the right bits to work to enter program mode and pass the upload. The ESP8266 would fail without enough current/power to let the MCU burn itself, ran extra GND/POWER wires (one or both?) on breadboard and voila - it worked. Given the Featherwing has a USB cable for power, that shouldn't be an issue.

With the S2 chip the FTDI lines here seem to be GND/3.3V/SCL/SDA pins - what that maps to in espressif land ???

Bummer AdaF not providing useable code or feedback. PICO and S2 here of no direct help, unless by accident? Especially not having one here to see, or any idea what the code base in use is.

Watching ALL PINS on LEDS with PICO D4 - some 3 pins do cycle during upload? Any chance they are the SPI pins under PULLUPs, or other shared pins across the 'feather boards'? Perhaps disconnect the Teensy during programming?
 
I wonder why do you have problems to flash the AirLift? The shield needs to put a solder blob on the bridges at io 0 and RX/TX, but then with io 0 wired to ground the esp32 should go into flashing mode at every reset. For usb-to-ttl-serial an FTDI or an Arduino with SerialPassthrough sketch at 115200 baud should work.
 
I wonder why do you have problems to flash the AirLift? The shield needs to put a solder blob on the bridges at io 0 and RX/TX, but then with io 0 wired to ground the esp32 should go into flashing mode at every reset. For usb-to-ttl-serial an FTDI or an Arduino with SerialPassthrough sketch at 115200 baud should work.

Agreed but its not flashing. I did see on the adafruit forum that other people had a similar issue. And yes I did check the connections after I put the blobs on the both of the airlift
 
does
Code:
esptool.py read_mac
work?

Assuming thats after running the sketch and the answer is no. Its hanging on connecting:
Code:
esptool.py v3.3
Found 1 serial ports
Serial port COM9
Connecting......................................
COM9 failed to connect: Failed to connect to Espressif device: Packet content transfer stopped (received 7 bytes)
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

A fatal error occurred: Could not connect to an Espressif device on any of the 1 available serial ports.

On boot I see this in serial
Code:
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x3 (D
 
so you use the SerialPassthrough sketch? do you use the basic SerialPassthrough sketch or the SerialNINAPassthrough sketch?
I guess the AriLift shield doesn't fit on a Teensy so you connected them with jumper wires. I recommend for flashing to wire only RX, TX, 3.3V and gnd to Teensy, wire io 0 to gnd and use the basic example SerialPassthrough sketch modified to 115200 baud.
 
so you use the SerialPassthrough sketch? do you use the basic SerialPassthrough sketch or the SerialNINAPassthrough sketch?
I guess the AriLift shield doesn't fit on a Teensy so you connected them with jumper wires. I recommend for flashing to wire only RX, TX, 3.3V and gnd to Teensy, wire io 0 to gnd and use the basic example SerialPassthrough sketch modified to 115200 baud.

Tried both and neither worked unfortunately.

Adafruit has a teensy 3 to feather adapter that I have been using. Tried using a FTDI as well but that had issues as well but can try one more time for the heck of it
 
Good Morning @mjs513 and All:

I thought I would try it again to see if my first success of updating the firmware with FTDI cable was a fluke/lucky or if I could repeat it again.


I succeeded :D
Code:
C:\Users\kurte\Downloads>esptool.py --port COM61 --before no_reset --baud 115200 write_flash 0 NINA_W102-1.7.4.bin
esptool.py v3.3
Serial port COM61
WARNING: Pre-connection option "no_reset" was selected. Connection may fail if the chip is not in bootloader or flasher stub mode.
Connecting.....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: a4:cf:12:61:95:60
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x0011afff...
Compressed 1159168 bytes to 633594...
Wrote 1159168 bytes (633594 compressed) at 0x00000000 in 56.5 seconds (effective 164.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Hookup - using an FTDI 5V cable. (It has FTDI 5V) marked on the USB cable where it plugs into computer/hub...

GND GND
+5v VIN
TX RX
RX TX
GPT0 to GND

Then I plugged into USB hub and turned the power on...

Then command worked.... Did nothing with the Reset pin.
Wonder if was important to have the GPT0 pin connected to GND before power to module... maybe?
 
Wonder if was important to have the GPT0 pin connected to GND before power to module.
yes. that starts the 'flashing mode'

what is the source of the bin? I think AirLift requires a specialized build
 
Ok hooked it all up again but now getting something slightly different,
Code:
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x7D): Possible serial noise or corruption.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

Will touch up the soldering a bit later and se what happens
 
Back
Top