Skip to content

JerboaBurrow/PICO_W_DISCORD_IMAGE_MESSAGE

Repository files navigation

Send an image as a message to a Discord webhook from Pi Pico W.

Output

image

Usage

  • Get a Raspberry Pi Pico W (£5.40)
  • Install the sdk https://github.com/raspberrypi/pico-sdk
  • Setup a Discord server and add a Webhook to it
  • ./build.sh -p YOUR_WIFI_PASS -s YOUR_SSID -w YOUR_WEBHOOK -i YOUR_PNG_IN_BASE64
  • Copy the uf2 as normal to your Pico W.

Note that YOUR_WEBHOOK should be everything after the api/webhook path @ discord.com, i.e. discord.com/api/webhooks/YOUR_WEBHOOK.

Important

YOUR_WIFI_PASS, YOUR_SSID, and YOUR_WEBHOOK will all be stored in plaintext on the device.

Important

Depending on the size of your image the settings in include/lwipopts.h (MEM_SIZE) and include/mbedtls_config.h (MBEDTLS_SSL_OUT_CONTENT_LEN) will need to be adjusted. The current values are good enough for the 64x82 colour 7.6 kB PNG encoded as the default base64 string. This gives about a 8145 length POST body (CF MBEDTLS_SSL_OUT_CONTENT_LEN).

In Linux you may view status messages using,

minicom -D /dev/ttyACM0

TLS

The public root certificate from discord.com is checked, you can find it by e.g.,

openssl s_client -connect discord.com:443 -servername discord.com -showcerts

this is the one used which will go out of date in 2028,

 2 s:C = US, O = Google Trust Services LLC, CN = GTS Root R4
   i:C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
   a:PKEY: id-ecPublicKey, 384 (bit); sigalg: RSA-SHA256
   v:NotBefore: Nov 15 03:43:21 2023 GMT; NotAfter: Jan 28 00:00:42 2028 GMT
-----BEGIN CERTIFICATE-----
MIIDejCCAmKgAwIBAgIQf+UwvzMTQ77dghYQST2KGzANBgkqhkiG9w0BAQsFADBX
MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIzMTEx
NTAzNDMyMVoXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT
GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFI0
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE83Rzp2iLYK5DuDXFgTB7S0md+8Fhzube
Rr1r1WEYNa5A3XP3iZEwWus87oV8okB2O6nGuEfYKueSkWpz6bFyOZ8pn6KY019e
WIZlD6GEZQbR3IvJx3PIjGov5cSr0R2Ko4H/MIH8MA4GA1UdDwEB/wQEAwIBhjAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAd
BgNVHQ4EFgQUgEzW63T/STaj1dj8tT7FavCUHYwwHwYDVR0jBBgwFoAUYHtmGkUN
l8qJUC99BM00qP/8/UswNgYIKwYBBQUHAQEEKjAoMCYGCCsGAQUFBzAChhpodHRw
Oi8vaS5wa2kuZ29vZy9nc3IxLmNydDAtBgNVHR8EJjAkMCKgIKAehhxodHRwOi8v
Yy5wa2kuZ29vZy9yL2dzcjEuY3JsMBMGA1UdIAQMMAowCAYGZ4EMAQIBMA0GCSqG
SIb3DQEBCwUAA4IBAQAYQrsPBtYDh5bjP2OBDwmkoWhIDDkic574y04tfzHpn+cJ
odI2D4SseesQ6bDrarZ7C30ddLibZatoKiws3UL9xnELz4ct92vID24FfVbiI1hY
+SW6FoVHkNeWIP0GCbaM4C6uVdF5dTUsMVs/ZbzNnIdCp5Gxmx5ejvEau8otR/Cs
kGN+hr/W5GvT1tMBjgWKZ1i4//emhA1JG1BbPzoLJQvyEotc03lXjTaCzv8mEbep
8RqZ7a2CPsgRbuvTPBwcOMBBmuFeU88+FSBX6+7iP0il8b4Z0QFqIwwMHfs/L6K1
vepuoxtGzi4CZ68zJpiq1UvSqTbFJjtbD4seiMHl
-----END CERTIFICATE-----

About

Send an image message to a Discord webhook over tls on Pi Pico W

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors