aboutsummaryrefslogtreecommitdiff
path: root/puzzle
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-06-26 14:44:04 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-06-26 14:44:04 +0200
commitcdd1034144da2f606d8f2a57061f694cdaa96cc1 (patch)
treea28a208f6a359a199b239ceb441b477db66dddb4 /puzzle
parentc1473020106d36b20cde090ac417c253b0059336 (diff)
more important documentation
Diffstat (limited to 'puzzle')
-rw-r--r--puzzle/neo/index.dox19
-rw-r--r--puzzle/smoketest/index.dox15
-rw-r--r--puzzle/smoketest/main.cpp2
3 files changed, 31 insertions, 5 deletions
diff --git a/puzzle/neo/index.dox b/puzzle/neo/index.dox
index 87822e0..002ab47 100644
--- a/puzzle/neo/index.dox
+++ b/puzzle/neo/index.dox
@@ -4,6 +4,25 @@
\defgroup puz_neo Neo
\brief NeoTrellis puzzle module
+\warning **This puzzle module does not work.**
+
+\warning The NeoTrellis boards from Adafruit sometimes pull both the SDA and
+SCL lines low after being addressed. This seems to consistently happen during
+the first iteration of the main controller's state exchange loop after the
+handshake wave has completed successfully.
+
+\warning We have been unable to find the root cause of the issue, but suspect
+the Adafruit boards themselves, as the I2C lines remain low even when the main
+controller and Arduino are both disconnected. We did find that the \ref
+puz_dummy "dummy puzzle module" produced similar behavior (pulling the I2C low
+indefinitely) when attempting to write to the I2C bus from an I2C receive ISR
+directly. The Adafruit boards use a different microcontroller and run
+closed-source firmware, which made verifying whether this was the issue
+impossible.
+
+\warning We recommend future project groups design a custom button/LED matrix
+board instead of using the NeoTrellis boards.
+
\par Setup
- Use the Arduino IDE library manager to install the "Adafruit seesaw Library"
library and its dependencies
diff --git a/puzzle/smoketest/index.dox b/puzzle/smoketest/index.dox
index 15eae1f..78ff702 100644
--- a/puzzle/smoketest/index.dox
+++ b/puzzle/smoketest/index.dox
@@ -1,11 +1,16 @@
// vim:ft=doxygen
/**
\ingroup puz
-\defgroup puz_vault Vault
-\brief Vault puzzle module
+\defgroup puz_smoketest Smoketest
+\brief Smoketest puzzle module
-\par Setup
-- Use the Arduino IDE library manager to install the "TM1637" library (by
- Avishay Orpaz) and its dependencies
+This puzzle module was used as a substitute for the \ref puz_neo
+"NeoTrellis puzzle module" during the 23-24 assessment due to the I2C issues
+encountered with the Adafruit NeoTrellis modules.
+
+This puzzle module turns on an on-board LED when it is in the \ref
+PB_GS_PLAYING "playing" state, and sets itself to the \ref PB_GS_SOLVED
+"solved" state when an external button is pressed.
*/
+
diff --git a/puzzle/smoketest/main.cpp b/puzzle/smoketest/main.cpp
index 6b4d7d0..3169ed5 100644
--- a/puzzle/smoketest/main.cpp
+++ b/puzzle/smoketest/main.cpp
@@ -2,7 +2,9 @@
#include "lib/pbdrv/pb-types.h"
#include "lib/pbdrv/pb-mod.h"
+//! LED pin (on-board LED on Arduino Uno board) \ingroup puz_smoketest
#define EXTERNAL_LED_PIN 13
+//! External button pin (button shorts this pin to ground) \ingroup puz_smoketest
#define BUTTON_PIN 10
pb_global_state_t state = PB_GS_NOINIT;