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

That's why I gave up on it. I think the fastest I could get was about 300kps. Would be interesting to see if it can be sped up...
 
That fix above appears to be a duplication of the fix already in WiFiClientGeneric.cpp, however I'll apply it to my code and see what happens. I would like to see faster WiFi speeds than 200KB/s (ie 1.6Mb/s) as I need to be shifting some quite big files and I'll be running on a battery, I realise that 8mb/s is the upper limit but it would be nice to do better than 1.6. The transfer speeds I'm seeing (with the necessary 250ms delay) is way way less than 1.6Mb/s. Also, the comment:
// The fix is considered as kludge, and the correct place to fix is in ServerDrv::sendData()
in WiFiClientGeneric.cpp dates back to may 2022, I wondered if a propper fix had been implemneted in the meantime?
 
wwatson
That's why I gave up on it. I think the fastest I could get was about 300kps. Would be interesting to see if it can be sped up...
So do you know of an alternative WiFi solution for the Teensy that actually works?

FYI I found version 1.8.15-1 of WiFiNINA_generic by @khoil-prog here: https://github.com/khoih-prog/WiFiNINA_Generic/releases/tag/v1.8.15-1. Sadly it contains several fundamental programming logic errors (in WiFiServer_Generic.cpp) and after fixing some of the more obvious ones it's clear that the code is no better than any of the previous versions in so far as it seems incapable of coping with large data transfers.

Still hoping someone can reproduce my issues and confirm that I'm not going mad!
 
wwatson
So do you know of an alternative WiFi solution for the Teensy that actually works?

FYI I found version 1.8.15-1 of WiFiNINA_generic by @khoil-prog here: https://github.com/khoih-prog/WiFiNINA_Generic/releases/tag/v1.8.15-1. Sadly it contains several fundamental programming logic errors (in WiFiServer_Generic.cpp) and after fixing some of the more obvious ones it's clear that the code is no better than any of the previous versions in so far as it seems incapable of coping with large data transfers.

Still hoping someone can reproduce my issues and confirm that I'm not going mad!

We did have the AirLift working with Teensy. If you go through this long thread you will see that we had to make a lot of changes. We were using the Serial Pass Through. I do have all of the libraries that we tested and modified. SOMEWHERE!!! I'll have to start digging. @mjs513 was also involved and testing. I know I have a lot of this up on GitHub as well but not sure if it was updated. A lot of it might be outdated by now. It will probably be this weekend before I can hunt down everything...
 
We did have the AirLift working with Teensy.
My reading was that yes it worked but only fairly slowly. In my case the best data rate I can get whilst guaranteeing that a 2MB file makes it through in one piece is ~40s/MB (25KB/s) - way too slow for my application. I'll continue to poke around in the code looking ways to speed it up. Thanks again for taking an interest.
 
These observations were all made using a Samsung/Android/Chrome client. I've now tried an x86/ubuntu/firefox client with apparently more variable results. The overall transfer speed is pretty much entirely governed by how often a retry (with its associated 300ms delay) in WiFiClient::write() is required. I've seen overall speeds as high as 225KB/s and as low as 23KB/s, it seems completely random - now I'm wondering if has to do with the local RF environment, perhaps some sort of collision back-off mechanism gone wrong? Whatever it is, it's in the AirLift firmware.
 
Last edited:
Histogram of results from 289 runs of 2MB transfers showing KB/s (x) vs frequency of occurrance (y)
Mean: 82 KB/s, but a few samples seen at > 400KB/s. Theoretical max: 1MB/s Histogram_Histogram.png
 
Histogram of results from 289 runs of 2MB transfers showing KB/s (x) vs frequency of occurrance (y)
Mean: 82 KB/s, but a few samples seen at > 400KB/s. Theoretical max: 1MB/sView attachment 31040

Can you tell me what sketch you are using to test with. If its the sketch in your previous post it does not seem to be working for me. Yet if I run some of the example sketches from WiFiNina or WifiNina-geneic they all work?
 
Thanks for responding... Can I refer you to this thread: https://forum.pjrc.com/threads/72669-Airlift-Wifi-simple-web-server-problem in which I present a sketch based on the AP_SimpleWebServer example that tries to transfer a 2MB jpg instead of just two lines of text. And yes, all the example sketches do work, but none of them attempt to transfer a "large" (> 1MB) file, when I do that I run into these horrible problems. It would be great if someone could reproduce my "large-file" issues. I have since done a lot more work on the WiFiNINA_Generic sources and made some progress in reliability but seemingly at the cost of a madly variable, random even, average data-rate (for a 2MB file) from <30KB/s to over 400KB/s on subsequent runs of the code. Thanks again for your interest, I'm really struggling with this.
 
Thanks for responding... Can I refer you to this thread: https://forum.pjrc.com/threads/72669-Airlift-Wifi-simple-web-server-problem in which I present a sketch based on the AP_SimpleWebServer example that tries to transfer a 2MB jpg instead of just two lines of text. And yes, all the example sketches do work, but none of them attempt to transfer a "large" (> 1MB) file, when I do that I run into these horrible problems. It would be great if someone could reproduce my "large-file" issues. I have since done a lot more work on the WiFiNINA_Generic sources and made some progress in reliability but seemingly at the cost of a madly variable, random even, average data-rate (for a 2MB file) from <30KB/s to over 400KB/s on subsequent runs of the code. Thanks again for your interest, I'm really struggling with this.

Don;t think I am going to be able to confirm this - I tried connecting with firefox/IE/chrome on Windows 10 and Firefox/chrome on a android phone and could not connect to the ap server. Tried with a airlift featherwing and the coprocessor like you have. Might be something with my router setup
 
Thanks for trying. If you've time for some more tests pls try the AP_SimpleWebServer example sketch - that should certainly work, also do you have the Airlift's GP0 pin connected? This is not optional for server applications. I have mine connected to Teensy's GPIO40, be sure to add this to the setPins() call if you're using Adafruit's Nina library or to add:
Code:
#define NINA_GPIO0  	40
#define NINA_GPIOIRQ	NINA_GPIO0
to WiFiNINA_Pinout_Generic.h if you're using the NINA_generic library.
Failing that you may need to update your Airlift's NINA firmware, I can guide you through that if you need it.
Thanks again for your time.
 
I finally gave up with ESP32-Airlift, I beleive it (actually its NINA code) to be fundamentally flawed. I found that Adafruit's ATWINC1500 based module works perfectly, at least in my application, with the good old WiFi101 library. I can get reliable data rates of over 800KB/s and no random connection drops, compared to 10s of KB/s with Airlift.
 
Back
Top