First off, this is my first microcontroller project, so apologies if I’m misunderstanding anything or if this should go in a platform-specific section.
I’m hoping to code a simple Gemini protocol server to run on my Cardputer through uLisp. I’m trying to figure out how viable the project is, and it seems like it’s manageable, but I’m running into a couple of issues that I’m trying to understand. I think they’re fixable problems, but they appear to need some changes to the .ino file used to flash, and since I’m not used to working with the constraints of microcontrollers, I figured I should do some research and, if that doesn’t work, ask some people who know better than me.
By default, (wifi-server) starts listening on port 80, but Gemini specifies port 1965. Having tracked this back through the Arduino libraries WiFi.h, WiFiServer.h, and a couple others, I can’t see any real reason this is fixed. It just opens a generic TCP port, nothing specific to the port it’s running on. I also can’t see anything in the ESP32-S3FN8 datasheet that suggests there’s any sort of limit on ports. Is there any reason I shouldn’t just change the default port to whatever I need?
I also need to use TLS because the Gemini protocol specification requires it, and this chip does have support for it built-in. I’ve managed to find the library for it, so if I managed to figure out how to access it through the Arduino IDE so I can #include it, how reasonable would it be to include? Compilation claims the sketch uses 36% of program storage space, plus 73% of dynamic memory for global variables, so space constraints might be relevant, but it seems feasible so far. I could maybe try to do something in uLisp to add the functionality, but it seems much easier to use the preexisting library if I can tap into it.
Thanks for any advice. Even if you don’t know for sure, if you know any resources that might help me figure it out, they would be appreciated.