Skip to content

throwing additional minimal hardware at the https-slow-on-picow problem #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ams1 opened this issue Oct 11, 2023 · 3 comments
Open

Comments

@ams1
Copy link

ams1 commented Oct 11, 2023

Hi @ide ,

GREAT initiative, GREAT write-up - I adhere 100%. THANK YOU for pushing this!

Have you considered adding a cryptographic coprocessor to the pico W to offload these TLS operations?

I'm NOT sure if/how this would work, but I'm currently looking into this, and found something maybe similar.
espressif/esp-idf#8286

I would love to do fast HTTPS on the PICO W without buying/soldering additional things, but yeah... it doesn't seem to work.

Also I'm open to other directions to solve this problem with the pico-W.

@ide
Copy link
Owner

ide commented Oct 11, 2023

I haven't pursued this HTTPS server other than opening adafruit/circuitpython#7657 on the CircuitPython repo. Using a regular Pi running Linux is a more practical way to run an HTTPS server for my use case (personal project, no size constraints, plugged into a wall socket) and I've shared this repo with others who might be more motivated to get HTTPS working on the Pico.

Using hardware-based encryption could be fast enough. This link benchmarked ciphers like various AES modes in software and hardware on a different Cortex-M0+ processor and found a 10-20x speed-up.

@ams1
Copy link
Author

ams1 commented Oct 11, 2023

IMO you've done a TON - I really appreciate it!

True, for us techies, a regular Pi is almost ubiquitous, but when "deploying" a web-app at non-techie locations... it helps having a ~$10 option 😄.

I'll let you know if I make progress on this - or you can of course close this issue.

@bablokb
Copy link

bablokb commented Feb 3, 2025

You might want to take a look at https://github.com/bablokb/circuitpython-esp32at. This is an api-compatible implementation of a wifi co-processor using ESP32-AT. It not only offloads TLS, but the complete wifi-stack. I have found it on-par with the Pico-W in many respects (but this is more due to the poor performance of the Pico-W).

I never tested an encrypted SSL-server though, but it should be possible. This would need a custom AT-firmware with your own certificates, but building custom AT-firmwares is simple and well documented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants