I can download PNG using makeImageRequest("https://serverl/png.png"...) but I'd like to not save any file on server.
I can generate PNG in server's memory, but how to return it? I've tried many things but always got 404.
I can download PNG using makeImageRequest("https://serverl/png.png"...) but I'd like to not save any file on server.
I can generate PNG in server's memory, but how to return it? I've tried many things but always got 404.
Could it be the SSL certificates you use with https? Garmin device can be a bit picky, aren't they also tied to a specific IP address?
What if you use a hard coded IP and not something from duck dns…
Look into http traffic! Some servers add something into response and it' accepted by web browser but not by garmin proxy.
makeImageRequest only accepts response that contains only bytes from image…
Could it be the SSL certificates you use with https? Garmin device can be a bit picky, aren't they also tied to a specific IP address?
What if you use a hard coded IP and not something from duck dns?
The SSL/https are all managed in google cloud so I don't believe it's the fault from the google cloud service. If it is I should see some TLS handshake error in the log. For duckdns on my own server it is the free Let's Encrypt and the SSL is valid (at least seen from the browser).
But excellent suggestion. I just tried with http and IP address on my server hosted at by home, instead of using duckdns.org domain, and it works! So it looks more like Garmin's server can't resolve my duckdns.org domain, plus some of the google cloud domains.
Understand that a browser as well as the sim are different than a real device with GCM acting as a proxy
On a real device you only want to use http if the server is on your phone (localhost or 127.0.0.1)
Yes I am aware of this. I am using http://127.0.0.1 to access the server in the companion app on the phone, but for makeImageRequest() unfortunately I have to deploy part of functionality originally in the companion app to a publicly accessibly URL for GCM and garmin image processing server to access, hence why I went through all this anyway.
Look into http traffic! Some servers add something into response and it' accepted by web browser but not by garmin proxy.
makeImageRequest only accepts response that contains only bytes from image.
I've also reported bug that 404 is always returned independent of real error #.
I just tried with another free dynamic DNS provider (changeip.com) and tied my IP to it. Garmin still gives me 404. I'm using http only. I'm starting to think maybe most dynamic DNS domains are blacklisted by Garmin? I can only use IP address for it to reach my server hosted at my home.
I tested dynamic DNS without any problem but it was always https.
404 in your case may mean no https.
Put on the same server service to return json and use makewebreq and you will see a real error from the communicatio module.
Did this ever get figured out? I'm getting 404 as well, but server is reporting that it returned 200 on the first try. The second try the code is -400 but the server still says 200, the third try is -400 but the server doesn't show any access. Three tries and the code gives up. I'm using makeWebRequest on the same server and it works OK, so I can rule a few things out. I can see the picture in a browser, so the image seems to be OK. I tried it with no headers just sending the jpeg file raw but that didn't work either. Does anyone have a working sample they can share?
I made a few changes, maybe it's an improvement? Now I almost consistently get 404 errors, except occasionally I get
Error: Out Of Memory Error Details: failed inside handle_image_callback
This is on a Fenix 7X sim, the image file is less than 4k, so is memory really a problem?