test_ssd1306.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include <Arduino.h>
  2. #include <BLEDevice.h>
  3. #include <BLEServer.h>
  4. #include <BLEUtils.h>
  5. #include <BLE2902.h>
  6. #include <Wire.h>
  7. #include <U8g2lib.h>
  8. // OLED Display Configuration - Alternative SSD1306 mode
  9. #define OLED_SDA 21
  10. #define OLED_SCL 22
  11. #define OLED_RST 16
  12. #define OLED_ADDR 0x3C
  13. // BLE Configuration
  14. #define SERVICE_UUID "12345678-1234-1234-1234-123456789abc"
  15. #define BATTERY_CHAR_UUID "87654321-4321-4321-4321-cba987654321"
  16. #define SPEED_CHAR_UUID "11111111-2222-3333-4444-555555555555"
  17. #define DEVICE_NAME "mirror-hud"
  18. // Try SSD1306 compatibility mode (comment out SSD1309 line above and use this)
  19. U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, OLED_RST, OLED_SCL, OLED_SDA);
  20. // Other variables and classes remain the same...
  21. bool dataReceived = false;
  22. float batteryLevel = 0.0;
  23. float speed = 0.0;
  24. void initDisplay() {
  25. Serial.println("=== TRYING SSD1306 MODE ===");
  26. Wire.begin(OLED_SDA, OLED_SCL);
  27. // Manual reset
  28. pinMode(OLED_RST, OUTPUT);
  29. digitalWrite(OLED_RST, LOW);
  30. delay(100);
  31. digitalWrite(OLED_RST, HIGH);
  32. delay(100);
  33. u8g2.begin();
  34. u8g2.clearBuffer();
  35. u8g2.setFont(u8g2_font_ncenB18_tr);
  36. u8g2.drawStr(15, 35, "tangerine");
  37. u8g2.sendBuffer();
  38. Serial.println("SSD1306 mode display initialized");
  39. }
  40. // Minimal main functions for testing
  41. void setup() {
  42. Serial.begin(115200);
  43. delay(1000);
  44. Serial.println("Starting OLED test...");
  45. initDisplay();
  46. }
  47. void loop() {
  48. delay(1000);
  49. }