summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2024-09-21 16:16:13 +0200
committerLouis Burda <quent.burda@gmail.com>2024-09-21 16:16:13 +0200
commit98ca9169f2518796ef62bba55f2e58623d076b37 (patch)
treee982e614ea5774c2a2959758a16f934e97b3c269 /firmware
parentcce1d1606b87f572cfe5bb7b740d30d416685b2c (diff)
downloaddesk-andon-98ca9169f2518796ef62bba55f2e58623d076b37.tar.gz
desk-andon-98ca9169f2518796ef62bba55f2e58623d076b37.zip
Add v-cut separated dual usb board
Diffstat (limited to 'firmware')
-rwxr-xr-xfirmware/setup.sh2
m---------firmware/src/components/esp32-ssd13060
-rw-r--r--firmware/src/dependencies.lock10
-rw-r--r--firmware/src/main/CMakeLists.txt5
-rw-r--r--firmware/src/main/hello_world_main.c21
-rw-r--r--firmware/src/main/idf_component.yml16
-rw-r--r--firmware/src/main/main.c52
7 files changed, 82 insertions, 24 deletions
diff --git a/firmware/setup.sh b/firmware/setup.sh
index 5b6379a..490d87e 100755
--- a/firmware/setup.sh
+++ b/firmware/setup.sh
@@ -6,7 +6,7 @@ deactivate || true
export IDF_TOOLS_PATH="$PWD/idf-tools"
pushd esp-idf
-./install.sh
+./install.sh esp32c3
. ./export.sh
idf_tools.py install-python-env
popd
diff --git a/firmware/src/components/esp32-ssd1306 b/firmware/src/components/esp32-ssd1306
new file mode 160000
+Subproject b94130e71b44c4b60f396f611b9e73d48cdd3e9
diff --git a/firmware/src/dependencies.lock b/firmware/src/dependencies.lock
new file mode 100644
index 0000000..946bddb
--- /dev/null
+++ b/firmware/src/dependencies.lock
@@ -0,0 +1,10 @@
+dependencies:
+ idf:
+ source:
+ type: idf
+ version: 5.3.0
+direct_dependencies:
+- idf
+manifest_hash: e44bf68eca6b7b264ddae08cd014cd3294c0473230381b6d6f88ed18ec879038
+target: esp32c3
+version: 2.0.0
diff --git a/firmware/src/main/CMakeLists.txt b/firmware/src/main/CMakeLists.txt
index 07686dc..55218ea 100644
--- a/firmware/src/main/CMakeLists.txt
+++ b/firmware/src/main/CMakeLists.txt
@@ -1,2 +1,3 @@
-idf_component_register(SRCS "hello_world_main.c"
- INCLUDE_DIRS "")
+idf_component_register(SRCS "main.c"
+ INCLUDE_DIRS ""
+ REQUIRES "esp32-ssd1306")
diff --git a/firmware/src/main/hello_world_main.c b/firmware/src/main/hello_world_main.c
deleted file mode 100644
index 2305439..0000000
--- a/firmware/src/main/hello_world_main.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "freertos/FreeRTOS.h"
-#include "freertos/task.h"
-#include "driver/gpio.h"
-#include "hal/gpio_types.h"
-
-#include <stdio.h>
-
-void app_main(void)
-{
- gpio_reset_pin(5);
- gpio_set_direction(5, GPIO_MODE_OUTPUT_OD);
- int i = 0;
- while (1) {
- printf("Hello world! %i\n", ++i);
- fflush(stdout);
- gpio_set_level(5, 1);
- vTaskDelay(1000 / portTICK_PERIOD_MS);
- gpio_set_level(5, 0);
- vTaskDelay(1000 / portTICK_PERIOD_MS);
- }
-}
diff --git a/firmware/src/main/idf_component.yml b/firmware/src/main/idf_component.yml
new file mode 100644
index 0000000..f17b35f
--- /dev/null
+++ b/firmware/src/main/idf_component.yml
@@ -0,0 +1,16 @@
+## IDF Component Manager Manifest File
+dependencies:
+ ## Required IDF version
+ idf:
+ version: ">=4.1.0"
+ # # Put list of dependencies here
+ # # For components maintained by Espressif:
+ # component: "~1.0.0"
+ # # For 3rd party components:
+ # username/component: ">=1.0.0,<2.0.0"
+ # username2/component2:
+ # version: "~1.0.0"
+ # # For transient dependencies `public` flag can be set.
+ # # `public` flag doesn't have an effect dependencies of the `main` component.
+ # # All dependencies of `main` are public by default.
+ # public: true
diff --git a/firmware/src/main/main.c b/firmware/src/main/main.c
new file mode 100644
index 0000000..034c844
--- /dev/null
+++ b/firmware/src/main/main.c
@@ -0,0 +1,52 @@
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "driver/gpio.h"
+#include "hal/gpio_types.h"
+#include "ssd1306.h"
+
+#include <stdio.h>
+
+enum Lane {
+ RED,
+ ORANGE,
+ GREEN,
+ BLUE,
+ WHITE,
+ SPEAKER,
+ PIN_COUNT
+};
+
+const static int ANDON_PINS[PIN_COUNT] = { 10, 3, 7, 6, 5, 4 };
+
+void app_main(void)
+{
+ SSD1306_t display;
+ int i, tick = 0;
+
+ ssd1306_init(&display);
+ ssd1306_clear_screen(&display, false);
+ ssd1306_display_text(&display, 0, "testing", 7, false);
+
+ for (i = 0; i < PIN_COUNT; i++) {
+ gpio_reset_pin(ANDON_PINS[i]);
+ gpio_set_level(ANDON_PINS[i], 1);
+ gpio_set_direction(ANDON_PINS[i], GPIO_MODE_OUTPUT_OD);
+ }
+
+ while (1) {
+ printf("Tick %i\n", ++tick);
+ fflush(stdout);
+ for (i = 0; i < PIN_COUNT; i++) {
+ gpio_set_level(ANDON_PINS[i], 0);
+ vTaskDelay(1000 / portTICK_PERIOD_MS);
+ gpio_set_level(ANDON_PINS[i], 1);
+ }
+ // for (i = 0; i < PIN_COUNT; i++) {
+ // gpio_set_level(ANDON_PINS[i], 0);
+ // }
+ // vTaskDelay(1000 / portTICK_PERIOD_MS);
+ // for (i = 0; i < PIN_COUNT; i++) {
+ // gpio_set_level(ANDON_PINS[i], 1);
+ // }
+ }
+}