Added more verbose serial logging for debug

This commit is contained in:
Dionysus 2024-05-26 19:27:12 -04:00
parent 56186e4e33
commit 74f3d443b9
Signed by: acidvegas
GPG Key ID: EF4B922DB85DC9DE
2 changed files with 25 additions and 9 deletions

View File

@ -35,7 +35,10 @@ A compiled "release" will be done once I finish somoe fo the basic features, but
5. Flash the device: `esptool.py --chip esp32-s3 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000 firmware.bin`
6. Press the RST *(reset)* button ont he device.
###### Debugging over Serial
# Connecting to WiFi
The device will scan for WiFi networks on boot. Once the list is displayed, you can scroll up and down the list with the "u" key for UP and the "d" key for down.
# Debugging over Serial
1. Install screen: `apt-get install screen` *(or whatever package manager you use)*
2. `screen /dev/ttyAMC0 9600`
@ -55,6 +58,7 @@ A compiled "release" will be done once I finish somoe fo the basic features, but
- [ ] XBM icons for status bar items
- [ ] Allow specifying the IRC server, port, TLS, nick, etc...
- [ ] Screensaver
- [X] Serial debug logs
###### Applications
- [X] IRC Client

View File

@ -70,6 +70,10 @@ struct WiFiNetwork {
std::vector<WiFiNetwork> wifiNetworks;
int selectedNetworkIndex = 0;
void debugPrint(String message) {
Serial.println(message);
}
void setup() {
Serial.begin(115200);
Serial.println("Booting device...");
@ -81,10 +85,13 @@ void setup() {
digitalWrite(TFT_BL, HIGH); // Turn on the backlight initially
Wire.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
tft.begin();
tft.setRotation(1);
tft.invertDisplay(1);
Serial.println("TFT initialized");
displayXBM();
delay(3000);
displayCenteredText("SCANNING WIFI");
@ -176,6 +183,7 @@ int renderFormattedMessage(String message, int cursorY, int lineHeight, bool hig
}
void turnOffScreen() {
Serial.println("Screen turned off");
tft.writecommand(TFT_DISPOFF); // Turn off display
tft.writecommand(TFT_SLPIN); // Put display into sleep mode
digitalWrite(TFT_BL, LOW); // Turn off the backlight (Assuming TFT_BL is the backlight pin)
@ -183,6 +191,7 @@ void turnOffScreen() {
}
void turnOnScreen() {
Serial.println("Screen turned on");
digitalWrite(TFT_BL, HIGH); // Turn on the backlight (Assuming TFT_BL is the backlight pin)
tft.writecommand(TFT_SLPOUT); // Wake up display from sleep mode
tft.writecommand(TFT_DISPON); // Turn on display
@ -382,9 +391,8 @@ void loop() {
}
}
bool connectToIRC() {
Serial.println("Connecting to IRC...");
if (useSSL) {
client.setInsecure();
return client.connect(server, port);
@ -396,6 +404,7 @@ bool connectToIRC() {
void connectToWiFi() {
WiFi.begin(ssid.c_str(), password.c_str());
Serial.println("Connecting to WiFi...");
int attempts = 0;
while (WiFi.status() != WL_CONNECTED && attempts < 10) { // Try to connect for up to 10 seconds
delay(500);
@ -403,6 +412,7 @@ void connectToWiFi() {
attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Connected to WiFi network: " + ssid);
displayCenteredText("CONNECTED TO " + ssid);
delay(1000);
updateTimeFromNTP();
@ -414,7 +424,7 @@ void connectToWiFi() {
void sendIRC(String command) {
if (client.println(command))
Serial.println(">>> " + command);
Serial.println("IRC: >>> " + command);
else
Serial.println("Failed to send: " + command);
}
@ -423,7 +433,7 @@ void handleIRC() {
while (client.available()) {
String line = client.readStringUntil('\n');
line.trim();
Serial.println(line);
Serial.println("IRC: " + line);
int firstSpace = line.indexOf(' ');
int secondSpace = line.indexOf(' ', firstSpace + 1);
@ -445,7 +455,7 @@ void handleIRC() {
sendIRC(pingResponse);
} else {
parseAndDisplay(line);
lastActivityTime = millis();
lastActivityTime = millis(); // Reset activity timer
}
}
}
@ -527,9 +537,6 @@ void handleKeyboardInput(char key) {
}
}
void sendRawCommand(String command) {
if (client.connected()) {
sendIRC(command);
@ -649,7 +656,10 @@ void updateSelectedNetwork(int delta) {
}
void scanWiFiNetworks() {
Serial.println("Scanning for WiFi networks...");
int n = WiFi.scanNetworks();
Serial.print("Total number of networks found: ");
Serial.println(n);
for (int i = 0; i < n && i < 100; i++) {
WiFiNetwork net;
net.index = i + 1;
@ -731,6 +741,7 @@ void handleWiFiSelection(char key) {
}
void updateStatusBar() {
Serial.println("Updating status bar...");
uint16_t darkerGrey = tft.color565(25, 25, 25);
tft.fillRect(0, 0, SCREEN_WIDTH, STATUS_BAR_HEIGHT, darkerGrey);
@ -799,6 +810,7 @@ uint16_t getColorFromPercentage(int rssi) {
}
void updateTimeFromNTP() {
Serial.println("Syncing time with NTP server...");
configTime(-5 * 3600, 0, "pool.ntp.org", "time.nist.gov");
for (int i = 0; i < 10; ++i) { // Try up to 10 times