Logging and LED initialization sequence
This commit is contained in:
@@ -29,8 +29,13 @@
|
|||||||
#define RGBLED_R GPIO_NUM_4 // A3 red
|
#define RGBLED_R GPIO_NUM_4 // A3 red
|
||||||
#define RGBLED_G GPIO_NUM_13 // A6 green
|
#define RGBLED_G GPIO_NUM_13 // A6 green
|
||||||
#define RGBLED_B GPIO_NUM_14 // A7 blue
|
#define RGBLED_B GPIO_NUM_14 // A7 blue
|
||||||
|
|
||||||
#define LED_USER GPIO_NUM_48 // internal red user led
|
#define LED_USER GPIO_NUM_48 // internal red user led
|
||||||
|
|
||||||
|
#define LED_IR GPIO_NUM_46 // intername rgb led on strapping pins
|
||||||
|
#define LED_IG GPIO_NUM_0
|
||||||
|
#define LED_IB GPIO_NUM_45
|
||||||
|
|
||||||
// CAN bus for NMEA2000 connection
|
// CAN bus for NMEA2000 connection
|
||||||
#define CAN_RX GPIO_NUM_18 // D9
|
#define CAN_RX GPIO_NUM_18 // D9
|
||||||
#define CAN_TX GPIO_NUM_21 // D10
|
#define CAN_TX GPIO_NUM_21 // D10
|
||||||
|
|||||||
@@ -27,10 +27,16 @@ extra_scripts =
|
|||||||
post:extra_post.py
|
post:extra_post.py
|
||||||
lib_ldf_mode = chain
|
lib_ldf_mode = chain
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
# monitor_raw = yes
|
||||||
build_flags =
|
build_flags =
|
||||||
-D PIO_ENV_BUILD=$PIOENV
|
-DPIO_ENV_BUILD=$PIOENV
|
||||||
-DBOARD_HAS_PSRAM
|
-DBOARD_HAS_PSRAM
|
||||||
-DARDUINO_USB_CDC_ON_BOOT=1
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||||
|
-DCORE_DEBUG_LEVEL=4 # Max. possible loglevel: 0=None, 1=Error, 2=Warning, 3=Info, 4=Debug, 5=Verbose
|
||||||
|
-DCONFIG_LOG_TX_BUF_SIZE=4096
|
||||||
|
-std=gnu++17
|
||||||
|
build_unflags =
|
||||||
|
-std=gnu++11
|
||||||
|
|
||||||
[env:esp32-s3-nano]
|
[env:esp32-s3-nano]
|
||||||
build_type = release # debug | release
|
build_type = release # debug | release
|
||||||
|
|||||||
117
src/main.cpp
117
src/main.cpp
@@ -12,6 +12,9 @@
|
|||||||
#include "Nmea2kTwai.h"
|
#include "Nmea2kTwai.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
static const char* TAG = "main.cpp";
|
||||||
|
|
||||||
Preferences preferences; // persistent storage for configuration
|
Preferences preferences; // persistent storage for configuration
|
||||||
|
|
||||||
class EmbeddedFile;
|
class EmbeddedFile;
|
||||||
@@ -60,8 +63,8 @@ bool rgb_g = false;
|
|||||||
bool rgb_b = false;
|
bool rgb_b = false;
|
||||||
|
|
||||||
char destination = 'A'; // A | B | C
|
char destination = 'A'; // A | B | C
|
||||||
uint8_t led_brightness = 128; // analog pin: 0 .. 255
|
uint8_t led_brightness = 16; // analog pin: 0 .. 255
|
||||||
uint8_t rgp_brightness = 128;
|
uint8_t rgb_brightness = 64;
|
||||||
|
|
||||||
uint buzzerpower = 50; // TBD make use of this
|
uint buzzerpower = 50; // TBD make use of this
|
||||||
|
|
||||||
@@ -119,18 +122,26 @@ void wifi_init_softap()
|
|||||||
void setup() {
|
void setup() {
|
||||||
|
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
delay(500);
|
while (!Serial) delay(10);
|
||||||
Serial.println("Starting...");
|
delay(200);
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Test logging: %d", 100);
|
// Arduino ESP32 logging
|
||||||
|
esp_log_level_set("*", ESP_LOG_INFO);
|
||||||
|
esp_log_level_set("default", ESP_LOG_INFO);
|
||||||
|
esp_log_level_set("wifi", ESP_LOG_INFO);
|
||||||
|
esp_log_level_set("esp_timer", ESP_LOG_INFO);
|
||||||
|
esp_log_level_set("spi_flash", ESP_LOG_INFO);
|
||||||
|
esp_log_level_set("arduino", ESP_LOG_INFO);
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "Starting ...");
|
||||||
|
|
||||||
|
// N2K basics
|
||||||
nodeid = N2K_DEFAULT_NODEID;
|
nodeid = N2K_DEFAULT_NODEID;
|
||||||
Serial.print("N2K default node id=");
|
ESP_LOGI(TAG, "N2K default node is %d", nodeid);
|
||||||
Serial.println(nodeid);
|
|
||||||
|
|
||||||
preferences.begin("nvs", false);
|
preferences.begin("nvs", false);
|
||||||
nodeid = preferences.getInt("LastNodeId", N2K_DEFAULT_NODEID);
|
nodeid = preferences.getInt("LastNodeId", N2K_DEFAULT_NODEID);
|
||||||
preferences.end();
|
preferences.end();
|
||||||
|
ESP_LOGI(TAG, "N2K node id set to %d from preferences", nodeid);
|
||||||
|
|
||||||
// Setup webserver
|
// Setup webserver
|
||||||
WiFi.persistent(false);
|
WiFi.persistent(false);
|
||||||
@@ -156,6 +167,18 @@ void setup() {
|
|||||||
send_embedded_file(it->first, request);
|
send_embedded_file(it->first, request);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// WIP: API
|
||||||
|
/*
|
||||||
|
server.on("/api/status", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||||
|
StaticJsonDocument<100> doc;
|
||||||
|
doc["temp"] = 22.3;
|
||||||
|
doc["ip"] = WiFi.localIP().toString();
|
||||||
|
String out;
|
||||||
|
serializeJson(doc, out);
|
||||||
|
request->send(200, "application/json", out);
|
||||||
|
}); */
|
||||||
|
// TODO POST vom Client entgegennehmen
|
||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
// NMEA2000 configuration
|
// NMEA2000 configuration
|
||||||
@@ -189,6 +212,7 @@ void setup() {
|
|||||||
digitalWrite(LED_USER, LOW);
|
digitalWrite(LED_USER, LOW);
|
||||||
|
|
||||||
// Buzzer
|
// Buzzer
|
||||||
|
/*
|
||||||
ledcSetup(LEDC_CHANNEL, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT);
|
ledcSetup(LEDC_CHANNEL, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT);
|
||||||
ledcAttachPin(BUZZER, LEDC_CHANNEL);
|
ledcAttachPin(BUZZER, LEDC_CHANNEL);
|
||||||
// Test tone while booting
|
// Test tone while booting
|
||||||
@@ -198,30 +222,65 @@ void setup() {
|
|||||||
delay(750);
|
delay(750);
|
||||||
ledcWriteTone(BUZZER, 0); // Buzzer off
|
ledcWriteTone(BUZZER, 0); // Buzzer off
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Startup sequence: test all led and short beep buzzer
|
||||||
|
|
||||||
// Init onbard RGB LED
|
// Init onbard RGB LED
|
||||||
// TODO
|
// inverted mode:
|
||||||
|
pinMode(LED_IR, OUTPUT);
|
||||||
|
pinMode(LED_IG, OUTPUT);
|
||||||
|
pinMode(LED_IB, OUTPUT);
|
||||||
|
digitalWrite(LED_IR, LOW);
|
||||||
|
digitalWrite(LED_IG, HIGH);
|
||||||
|
digitalWrite(LED_IB, HIGH);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(LED_IR, HIGH);
|
||||||
|
digitalWrite(LED_IG, LOW);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(LED_IG, HIGH);
|
||||||
|
digitalWrite(LED_IB, LOW);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(LED_IB, HIGH);
|
||||||
|
|
||||||
// destination leds
|
// destination leds
|
||||||
pinMode(LED_A, OUTPUT);
|
pinMode(LED_A, OUTPUT);
|
||||||
pinMode(LED_B, OUTPUT);
|
pinMode(LED_B, OUTPUT);
|
||||||
pinMode(LED_C, OUTPUT);
|
pinMode(LED_C, OUTPUT);
|
||||||
|
analogWrite(LED_A, 0);
|
||||||
//digitalWrite(LED_A, HIGH);
|
delay(250);
|
||||||
//digitalWrite(LED_B, LOW);
|
// test every led
|
||||||
//digitalWrite(LED_C, LOW);
|
|
||||||
analogWrite(LED_A, led_brightness);
|
analogWrite(LED_A, led_brightness);
|
||||||
analogWrite(LED_B, 0);
|
analogWrite(LED_B, 0);
|
||||||
analogWrite(LED_C, 0);
|
analogWrite(LED_C, 0);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(LED_A, 0);
|
||||||
|
analogWrite(LED_B, led_brightness);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(LED_B, 0);
|
||||||
|
analogWrite(LED_C, led_brightness);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(LED_C, 0);
|
||||||
|
// select dst A finally
|
||||||
|
analogWrite(LED_A, led_brightness);
|
||||||
|
delay(500);
|
||||||
|
|
||||||
// enclosure rgb led
|
// enclosure rgb led
|
||||||
pinMode(RGBLED_R, OUTPUT);
|
pinMode(RGBLED_R, OUTPUT);
|
||||||
pinMode(RGBLED_G, OUTPUT);
|
pinMode(RGBLED_G, OUTPUT);
|
||||||
pinMode(RGBLED_B, OUTPUT);
|
pinMode(RGBLED_B, OUTPUT);
|
||||||
// common anode so we need high here to switch off!
|
// common anode so we need high here to switch off!
|
||||||
digitalWrite(RGBLED_R, HIGH);
|
analogWrite(RGBLED_R, 255 - rgb_brightness);
|
||||||
digitalWrite(RGBLED_G, HIGH);
|
analogWrite(RGBLED_G, 255);
|
||||||
digitalWrite(RGBLED_B, HIGH);
|
analogWrite(RGBLED_B, 255);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(RGBLED_R, 255);
|
||||||
|
analogWrite(RGBLED_G, 255 - rgb_brightness);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(RGBLED_G, 255);
|
||||||
|
analogWrite(RGBLED_B, 255 - rgb_brightness);
|
||||||
|
delay(500);
|
||||||
|
analogWrite(RGBLED_B, 255);
|
||||||
|
|
||||||
// I²C
|
// I²C
|
||||||
Serial.print("SHT31_LIB_VERSION: ");
|
Serial.print("SHT31_LIB_VERSION: ");
|
||||||
@@ -246,10 +305,10 @@ void loop() {
|
|||||||
button = 1;
|
button = 1;
|
||||||
if (rgb_r) {
|
if (rgb_r) {
|
||||||
rgb_r = false;
|
rgb_r = false;
|
||||||
digitalWrite(RGBLED_R, HIGH);
|
analogWrite(RGBLED_R, 255);
|
||||||
} else {
|
} else {
|
||||||
rgb_r = true;
|
rgb_r = true;
|
||||||
digitalWrite(RGBLED_R, LOW);
|
analogWrite(RGBLED_R, 255 - rgb_brightness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (digitalRead(KEY_2) == LOW) {
|
if (digitalRead(KEY_2) == LOW) {
|
||||||
@@ -257,10 +316,10 @@ void loop() {
|
|||||||
button += 2;
|
button += 2;
|
||||||
if (rgb_g) {
|
if (rgb_g) {
|
||||||
rgb_g = false;
|
rgb_g = false;
|
||||||
digitalWrite(RGBLED_G, HIGH);
|
analogWrite(RGBLED_G, 255);
|
||||||
} else {
|
} else {
|
||||||
rgb_g = true;
|
rgb_g = true;
|
||||||
digitalWrite(RGBLED_G, LOW);
|
analogWrite(RGBLED_G, 255 - rgb_brightness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (digitalRead(KEY_3) == LOW) {
|
if (digitalRead(KEY_3) == LOW) {
|
||||||
@@ -268,10 +327,10 @@ void loop() {
|
|||||||
button += 4;
|
button += 4;
|
||||||
if (rgb_b) {
|
if (rgb_b) {
|
||||||
rgb_b = false;
|
rgb_b = false;
|
||||||
digitalWrite(RGBLED_B, HIGH);
|
analogWrite(RGBLED_B, 255);
|
||||||
} else {
|
} else {
|
||||||
rgb_b = true;
|
rgb_b = true;
|
||||||
digitalWrite(RGBLED_B, LOW);
|
analogWrite(RGBLED_B, 255 - rgb_brightness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,17 +362,19 @@ void loop() {
|
|||||||
|
|
||||||
if (destination == 'A') {
|
if (destination == 'A') {
|
||||||
destination = 'B';
|
destination = 'B';
|
||||||
digitalWrite(LED_A, LOW);
|
analogWrite(LED_A, 0);
|
||||||
digitalWrite(LED_B, HIGH);
|
analogWrite(LED_B, led_brightness);
|
||||||
} else if (destination == 'B') {
|
} else if (destination == 'B') {
|
||||||
destination = 'C';
|
destination = 'C';
|
||||||
digitalWrite(LED_B, LOW);
|
analogWrite(LED_B, 0);
|
||||||
digitalWrite(LED_C, HIGH);
|
analogWrite(LED_C, led_brightness);
|
||||||
} else {
|
} else {
|
||||||
destination = 'A';
|
destination = 'A';
|
||||||
digitalWrite(LED_C, LOW);
|
analogWrite(LED_C, 0);
|
||||||
digitalWrite(LED_A, HIGH);
|
analogWrite(LED_A, led_brightness);
|
||||||
}
|
}
|
||||||
|
Serial.print("Destination=");
|
||||||
|
Serial.println(destination);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
digitalWrite(LED_USER, HIGH); // Turn LED on
|
digitalWrite(LED_USER, HIGH); // Turn LED on
|
||||||
|
|||||||
Reference in New Issue
Block a user