Skip to content

Commit

Permalink
Add support for additional board types (#246)
Browse files Browse the repository at this point in the history
- **New Features**
- Introduced support for additional board types (ESP32, ESP8266, STM32,
MKR1000) in the Arduino compilation workflow.
- Added a new environment configuration for the ESP32 platform in the
project settings.
- Created JSON representations for circuit diagrams of both ESP32 and
Arduino Uno projects.

- **Improvements**
- Enhanced the LCD display configuration and temperature measurement
logic in the RTOS example.
- Streamlined text rendering in the CharacterDisplayRenderer, improving
performance and clarity.

- **Bug Fixes**
- Refined cursor handling in the MenuScreen to ensure accurate
navigation.
- Adjusted expected outputs in test cases for menu navigation to reflect
accurate behavior.

- **Documentation**
	- Updated configuration files to improve clarity and maintainability.
  • Loading branch information
forntoh authored Oct 20, 2024
2 parents 8e79749 + fcf0f1c commit a701a69
Show file tree
Hide file tree
Showing 14 changed files with 731 additions and 161 deletions.
205 changes: 205 additions & 0 deletions .diagrams/esp32.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
{
"version": 1,
"author": "Thomas Forntoh",
"editor": "wokwi",
"parts": [
{
"type": "wokwi-breadboard-half",
"id": "bb2",
"top": 226.5,
"left": 80.1,
"rotate": 90,
"attrs": {}
},
{
"type": "wokwi-breadboard-mini",
"id": "bb1",
"top": 440.2,
"left": 439.2,
"attrs": {}
},
{
"type": "wokwi-lcd1602",
"id": "lcd1",
"top": 16,
"left": 140,
"attrs": { "pins": "i2c" }
},
{
"type": "wokwi-ky-040",
"id": "encoder1",
"top": 41.4,
"left": 433.3,
"rotate": 90,
"attrs": {}
},
{
"type": "wokwi-pushbutton",
"id": "btn1",
"top": 198.2,
"left": 489.6,
"attrs": { "color": "blue", "label": "Up" }
},
{
"type": "wokwi-pushbutton",
"id": "btn2",
"top": 332.6,
"left": 489.6,
"attrs": { "color": "blue", "label": "Down" }
},
{
"type": "wokwi-pushbutton",
"id": "btn3",
"top": 265.4,
"left": 489.6,
"attrs": { "color": "green", "label": "Enter" }
},
{
"type": "wokwi-pushbutton",
"id": "btn4",
"top": 332.6,
"left": 576,
"attrs": { "color": "red", "label": "Back" }
},
{
"type": "wokwi-pushbutton",
"id": "btn5",
"top": 265.4,
"left": 403.2,
"attrs": { "color": "blue", "label": "Left" }
},
{
"type": "wokwi-pushbutton",
"id": "btn6",
"top": 265.4,
"left": 576,
"attrs": { "color": "blue", "label": "Right" }
},
{
"type": "board-ssd1306",
"id": "oled1",
"top": 22.34,
"left": -28.57,
"attrs": { "i2cAddress": "0x3c" }
},
{
"type": "board-esp32-devkit-c-v4",
"id": "esp",
"top": 245.29,
"left": -53.03,
"attrs": {}
},
{
"type": "wokwi-pushbutton",
"id": "btn7",
"top": 332.6,
"left": 403.2,
"attrs": { "color": "yellow", "label": "BKSP" }
}
],
"connections": [
["esp:TX", "$serialMonitor:RX", "", []],
["esp:RX", "$serialMonitor:TX", "", []],
["bb2:2t.a", "encoder1:CLK", "purple", ["h67.2", "v-38.4", "h144"]],
["bb2:3t.a", "encoder1:DT", "magenta", ["h76.8", "v-38.4", "h124.8"]],
["bb2:4t.a", "encoder1:SW", "cyan", ["h86.4", "v-38.4", "h105.6"]],
["bb2:tp.4", "encoder1:VCC", "red", ["h57.3", "v-36.8", "h86.4"]],
["encoder1:GND", "bb2:tn.5", "black", ["v67.2", "h-77.6", "v36.8"]],
["lcd1:GND", "bb2:bn.1", "black", ["h-9.6", "v153.6", "h17.9"]],
["lcd1:VCC", "bb2:bp.2", "red", ["h-19.2", "v152.1"]],
["lcd1:SDA", "bb2:21b.j", "violet", ["h-28.8", "v0.2"]],
["lcd1:SCL", "bb2:22b.j", "blue", ["h-38.4", "v67.5"]],
[
"oled1:SDA",
"bb2:21b.i",
"violet",
["v-9.6", "h-76.73", "v96", "h134.4", "v278.4"]
],
[
"oled1:SCL",
"bb2:22b.i",
"blue",
["v-19.2", "h-76.5", "v115.2", "h134.4", "v278.4"]
],
[
"oled1:VCC",
"bb2:bp.3",
"red",
["v-28.8", "h-76.65", "v134.4", "h134.4", "v86.4"]
],
[
"oled1:GND",
"bb2:bn.4",
"black",
["v-38.4", "h-76.8", "v153.6", "h134.4", "v86.4"]
],
["bb2:tn.25", "bb2:bn.25", "black", ["h0"]],
["bb2:tp.24", "bb2:bp.24", "red", ["h0"]],
["bb2:2t.e", "bb2:2b.f", "purple", ["h0"]],
["bb2:3t.e", "bb2:3b.f", "magenta", ["h0"]],
["bb2:4t.e", "bb2:4b.f", "cyan", ["h0"]],
["bb2:3b.j", "esp:3", "green", ["h-259.2", "v9.6"]],
["bb2:6b.j", "esp:6", "green", ["h-288", "v96"]],
["bb2:7b.j", "esp:7", "green", ["h-297.6", "v96"]],
["bb2:8b.j", "esp:8", "green", ["h-307.2", "v96"]],
["bb2:9b.j", "esp:9", "green", ["h-316.8", "v115.2", "h174.35"]],
["bb2:10b.j", "esp:10", "green", ["h-326.4", "v96"]],
["bb2:11b.j", "esp:11", "green", ["h-336", "v96"]],
["bb2:21b.h", "esp:20", "green", ["h-134.4", "v57.6"]],
["esp:3V3", "bb2:bp.23", "red", ["h-9.6", "v201.6", "h172.8", "v-30.4"]],
[
"bb2:bn.24",
"esp:GND.1",
"black",
["h-37.1", "v30.4", "h-182.4", "v-90.71"]
],
["bb2:22b.h", "esp:22", "blue", ["h-134.4", "v-9.6"]],
["bb2:21b.h", "esp:21", "violet", ["h-144", "v-57.6"]],
["btn2:2.l", "bb1:2t.a", "green", ["h-9.6", "v67.4", "h-19.2"]],
["btn3:2.l", "bb1:3t.a", "green", ["h-9.6", "v134.6", "h-9.6"]],
["btn4:2.l", "bb1:4t.a", "green", ["h-9.6", "v67.4", "h-86.4"]],
["btn5:2.l", "bb1:5t.a", "green", ["h-9.6", "v134.6", "h96"]],
["btn6:2.r", "bb1:6t.a", "green", ["h9.8", "v134.6", "h-9.6"]],
["btn7:2.l", "bb1:7t.a", "green", ["h-19.2", "v67.4", "h124.8"]],
["btn1:2.l", "bb1:1t.a", "green", ["h-9.6", "v201.8", "h-28.8"]],
["btn1:1.r", "bb1:17t.a", "black", ["v0", "h105.8", "v240"]],
["btn6:1.r", "bb1:17t.b", "black", ["h19.4", "v182.4"]],
["btn4:1.r", "bb1:17t.c", "black", ["h19.4", "v124.8"]],
["btn2:1.r", "bb1:17t.d", "black", ["h9.8", "v-19.2", "h96", "v153.6"]],
["btn3:1.r", "bb1:17t.e", "black", ["h9.8", "v-19.2", "h96", "v230.4"]],
[
"btn5:1.r",
"bb1:17b.f",
"black",
["h9.8", "v-19.2", "h76.8", "v-9.6", "h105.6", "v268.8"]
],
["bb1:17t.e", "bb1:17b.f", "black", ["v0"]],
[
"btn7:1.r",
"bb1:17b.g",
"black",
["v0", "h9.8", "v76.8", "h182.4", "v105.6"]
],
["bb1:1t.e", "bb1:1b.f", "green", ["v0"]],
["bb1:2t.e", "bb1:2b.f", "green", ["v0"]],
["bb1:3t.e", "bb1:3b.f", "green", ["v0"]],
["bb1:4t.e", "bb1:4b.f", "green", ["v0"]],
["bb1:5t.e", "bb1:5b.f", "green", ["v0"]],
["bb1:6t.e", "bb1:6b.f", "green", ["v0"]],
["bb1:7t.e", "bb1:7b.f", "green", ["v0"]],
["bb1:17b.j", "bb2:tn.25", "black", ["v19.2", "h-278.4"]],
["bb1:5b.j", "esp:16", "green", ["v0", "h-432", "v-172.8"]],
["bb1:6b.j", "esp:17", "green", ["v0", "h-441.6", "v-192"]],
["bb1:7b.j", "esp:5", "green", ["v0", "h-451.2", "v-201.6"]],
["bb1:1b.j", "esp:15", "green", ["v0", "h-393.6", "v-134.4"]],
["esp:2", "bb1:2b.j", "green", ["h9.87", "v148.31"]],
["esp:0", "bb1:3b.j", "green", ["h9.87", "v157.91"]],
["esp:4", "bb1:4b.j", "green", ["h9.87", "v167.51"]],
["esp:CLK", "bb2:25b.j", "purple", ["h48.27", "v-5.29"]],
["bb2:2t.d", "bb2:25t.d", "purple", ["h0"]],
["bb2:25t.e", "bb2:25b.f", "purple", ["h0"]],
["esp:18", "bb2:4b.h", "cyan", ["h0"]],
["esp:19", "bb2:3b.i", "magenta", ["h0"]]
],
"dependencies": {}
}
192 changes: 192 additions & 0 deletions .diagrams/uno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
{
"version": 1,
"author": "Thomas Forntoh",
"editor": "wokwi",
"parts": [
{
"type": "wokwi-breadboard-half",
"id": "bb2",
"top": 226.5,
"left": 80.1,
"rotate": 90,
"attrs": {}
},
{
"type": "wokwi-breadboard-mini",
"id": "bb1",
"top": 440.2,
"left": 439.2,
"attrs": {}
},
{
"type": "wokwi-lcd1602",
"id": "lcd1",
"top": 16,
"left": 140,
"attrs": { "pins": "i2c" }
},
{
"type": "wokwi-ky-040",
"id": "encoder1",
"top": 41.4,
"left": 433.3,
"rotate": 90,
"attrs": {}
},
{
"type": "wokwi-pushbutton",
"id": "btn1",
"top": 198.2,
"left": 489.6,
"attrs": { "color": "blue", "label": "Up" }
},
{
"type": "wokwi-pushbutton",
"id": "btn2",
"top": 332.6,
"left": 489.6,
"attrs": { "color": "blue", "label": "Down" }
},
{
"type": "wokwi-pushbutton",
"id": "btn3",
"top": 265.4,
"left": 489.6,
"attrs": { "color": "green", "label": "Enter" }
},
{
"type": "wokwi-pushbutton",
"id": "btn4",
"top": 332.6,
"left": 576,
"attrs": { "color": "red", "label": "Back" }
},
{
"type": "wokwi-pushbutton",
"id": "btn5",
"top": 265.4,
"left": 403.2,
"attrs": { "color": "blue", "label": "Left" }
},
{
"type": "wokwi-pushbutton",
"id": "btn6",
"top": 265.4,
"left": 576,
"attrs": { "color": "blue", "label": "Right" }
},
{
"type": "board-ssd1306",
"id": "oled1",
"top": 22.34,
"left": -28.57,
"attrs": { "i2cAddress": "0x3c" }
},
{
"type": "wokwi-pushbutton",
"id": "btn7",
"top": 332.6,
"left": 403.2,
"attrs": { "color": "yellow", "label": "BKSP" }
},
{
"type": "wokwi-arduino-uno",
"id": "uno",
"top": 256.2,
"left": -200.2,
"rotate": 90,
"attrs": {}
}
],
"connections": [
["bb2:2t.a", "encoder1:CLK", "purple", ["h67.2", "v-38.4", "h144"]],
["bb2:3t.a", "encoder1:DT", "magenta", ["h76.8", "v-38.4", "h124.8"]],
["bb2:4t.a", "encoder1:SW", "cyan", ["h86.4", "v-38.4", "h105.6"]],
["bb2:tp.4", "encoder1:VCC", "red", ["h57.3", "v-36.8", "h86.4"]],
["encoder1:GND", "bb2:tn.5", "black", ["v67.2", "h-77.6", "v36.8"]],
["lcd1:GND", "bb2:bn.1", "black", ["h-9.6", "v153.6", "h17.9"]],
["lcd1:VCC", "bb2:bp.2", "red", ["h-19.2", "v152.1"]],
["lcd1:SDA", "bb2:21b.j", "violet", ["h-28.8", "v0.2"]],
["lcd1:SCL", "bb2:22b.j", "blue", ["h-38.4", "v67.5"]],
[
"oled1:SDA",
"bb2:21b.i",
"violet",
["v-9.6", "h-76.73", "v96", "h134.4", "v278.4"]
],
[
"oled1:SCL",
"bb2:22b.i",
"blue",
["v-19.2", "h-76.5", "v115.2", "h134.4", "v278.4"]
],
[
"oled1:VCC",
"bb2:bp.3",
"red",
["v-28.8", "h-76.65", "v134.4", "h134.4", "v86.4"]
],
[
"oled1:GND",
"bb2:bn.4",
"black",
["v-38.4", "h-76.8", "v153.6", "h134.4", "v86.4"]
],
["bb2:tn.25", "bb2:bn.25", "black", ["h0"]],
["bb2:tp.24", "bb2:bp.24", "red", ["h0"]],
["bb2:2t.e", "bb2:2b.f", "purple", ["h0"]],
["bb2:3t.e", "bb2:3b.f", "magenta", ["h0"]],
["bb2:4t.e", "bb2:4b.f", "cyan", ["h0"]],
["btn2:2.l", "bb1:2t.a", "green", ["h-9.6", "v67.4", "h-19.2"]],
["btn3:2.l", "bb1:3t.a", "green", ["h-9.6", "v134.6", "h-9.6"]],
["btn4:2.l", "bb1:4t.a", "green", ["h-9.6", "v67.4", "h-86.4"]],
["btn5:2.l", "bb1:5t.a", "green", ["h-9.6", "v134.6", "h96"]],
["btn6:2.r", "bb1:6t.a", "green", ["h9.8", "v134.6", "h-9.6"]],
["btn7:2.l", "bb1:7t.a", "green", ["h-19.2", "v67.4", "h124.8"]],
["btn1:2.l", "bb1:1t.a", "green", ["h-9.6", "v201.8", "h-28.8"]],
["btn1:1.r", "bb1:17t.a", "black", ["v0", "h105.8", "v240"]],
["btn6:1.r", "bb1:17t.b", "black", ["h19.4", "v182.4"]],
["btn4:1.r", "bb1:17t.c", "black", ["h19.4", "v124.8"]],
["btn2:1.r", "bb1:17t.d", "black", ["h9.8", "v-19.2", "h96", "v153.6"]],
["btn3:1.r", "bb1:17t.e", "black", ["h9.8", "v-19.2", "h96", "v230.4"]],
[
"btn5:1.r",
"bb1:17b.f",
"black",
["h9.8", "v-19.2", "h76.8", "v-9.6", "h105.6", "v268.8"]
],
["bb1:17t.e", "bb1:17b.f", "black", ["v0"]],
[
"btn7:1.r",
"bb1:17b.g",
"black",
["v0", "h9.8", "v76.8", "h182.4", "v105.6"]
],
["bb1:1t.e", "bb1:1b.f", "green", ["v0"]],
["bb1:2t.e", "bb1:2b.f", "green", ["v0"]],
["bb1:3t.e", "bb1:3b.f", "green", ["v0"]],
["bb1:4t.e", "bb1:4b.f", "green", ["v0"]],
["bb1:5t.e", "bb1:5b.f", "green", ["v0"]],
["bb1:6t.e", "bb1:6b.f", "green", ["v0"]],
["bb1:7t.e", "bb1:7b.f", "green", ["v0"]],
["bb1:17b.j", "bb2:tn.25", "black", ["v19.2", "h-278.4"]],
["bb2:2t.d", "bb2:25t.d", "purple", ["h0"]],
["bb2:25t.e", "bb2:25b.f", "purple", ["h0"]],
["bb2:25b.j", "uno:2", "purple", ["h-96", "v38.4"]],
["bb2:3b.j", "uno:3", "magenta", ["h0", "v201.6", "h-105.6", "v48"]],
["uno:4", "bb2:23b.g", "cyan", ["h192", "v-34.5"]],
["bb2:4b.g", "bb2:23b.g", "cyan", ["h0"]],
["uno:GND.3", "bb2:bn.25", "black", ["h-19.1", "v109.6", "h326.4", "v-40"]],
["uno:3.3V", "bb2:bp.25", "red", ["h-28.7", "v148.2", "h470.4"]],
["uno:A4", "bb2:21b.h", "violet", ["h-9.5", "v33", "h220.8", "v-115.2"]],
["uno:A5", "bb2:22b.h", "blue", ["h0.1", "v13.9", "h220.8", "v-96"]],
["bb1:1b.f", "uno:5", "green", ["v9.6", "h-403.2", "v-99.8"]],
["uno:6", "bb1:2b.g", "green", ["h19.2", "v118.9", "h412.8"]],
["bb1:3b.g", "uno:7", "green", ["v19.2", "h-422.4", "v-144"]],
["bb1:4b.j", "uno:8", "green", ["v28.8", "h-432", "v-192.4"]],
["uno:9", "bb1:5b.j", "green", ["h19.2", "v192.8", "h0", "v9.6", "h441.6"]],
["bb1:6b.j", "uno:10", "green", ["v28.8", "h-451.2", "v-211.9"]],
["uno:11", "bb1:7b.j", "green", ["h19.2", "v221.4", "h460.8"]]
],
"dependencies": {}
}
Loading

0 comments on commit a701a69

Please sign in to comment.