Search Results
5/21/2025, 1:54:32 AM
Hi,
I built an AES encrypted LoRa (Long Range <1 GHz) chat.
It uses 128-bit ECB mode for encryption. As hardware I used a Raspberry Pico 2W, a 3,5" TFT Resistive Touch Display ILI9488 (SPI for Touch and Display), a SX1262 LoRa Node Module by Waveshare (SPI, supports half-duplex only) and a Pico Dual Expander Board by Waveshare. You can find everything I mentioned here on Google.
I use VS Code with PlatformIO extension. As C++ libraries I use RadioLib (unofficially has integrated support for AES), TFT_eSPI and the LCDWiki touch library (because I tested other touch libraries and they don't work). The encryption key can be changed by typing “/CHANGEKEY <key>” or disabled by only typing “/CHANGEKEY”.
This is the Pinout I was using for the touchscreen (since for some reason SPI didn't work on the same bus sharing with the LoRa module; I needed a separate bus for touchscreen, display // LoRa module):
#define TFT_MISO 16 // SD0/MISO
#define TFT_MOSI 19 // SDI/MOSI
#define TFT_SCLK 18 // SCK
#define TFT_CS 17 // CS
#define TFT_DC 22 // D/C
#define TFT_RST 21 // RESET
#define TFT_BL 13 // Backlight, HIGH=on
#define TOUCH_CLK 6
#define TOUCH_CS 4
#define TOUCH_DIN 7
#define TOUCH_OUT 8
#define TOUCH_IRQ 5
It was a fun project to see what I can build. One of my friends said "specific" people might be interested in this since when powered off there's no chat storage and there's encryption but this was not my intention to build this, I always had a fascination for data that can be transferred wirelessly. :-)
Ask me anything.
I built an AES encrypted LoRa (Long Range <1 GHz) chat.
It uses 128-bit ECB mode for encryption. As hardware I used a Raspberry Pico 2W, a 3,5" TFT Resistive Touch Display ILI9488 (SPI for Touch and Display), a SX1262 LoRa Node Module by Waveshare (SPI, supports half-duplex only) and a Pico Dual Expander Board by Waveshare. You can find everything I mentioned here on Google.
I use VS Code with PlatformIO extension. As C++ libraries I use RadioLib (unofficially has integrated support for AES), TFT_eSPI and the LCDWiki touch library (because I tested other touch libraries and they don't work). The encryption key can be changed by typing “/CHANGEKEY <key>” or disabled by only typing “/CHANGEKEY”.
This is the Pinout I was using for the touchscreen (since for some reason SPI didn't work on the same bus sharing with the LoRa module; I needed a separate bus for touchscreen, display // LoRa module):
#define TFT_MISO 16 // SD0/MISO
#define TFT_MOSI 19 // SDI/MOSI
#define TFT_SCLK 18 // SCK
#define TFT_CS 17 // CS
#define TFT_DC 22 // D/C
#define TFT_RST 21 // RESET
#define TFT_BL 13 // Backlight, HIGH=on
#define TOUCH_CLK 6
#define TOUCH_CS 4
#define TOUCH_DIN 7
#define TOUCH_OUT 8
#define TOUCH_IRQ 5
It was a fun project to see what I can build. One of my friends said "specific" people might be interested in this since when powered off there's no chat storage and there's encryption but this was not my intention to build this, I always had a fascination for data that can be transferred wirelessly. :-)
Ask me anything.
Page 1