diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 68b2784..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -build/ -serial_debugger*.bak -gui_backup/ -serial_debugger.ino.beta -serial_debugger.ino.orig \ No newline at end of file diff --git a/.vscode/arduino.json b/.vscode/arduino.json deleted file mode 100644 index d03e5fe..0000000 --- a/.vscode/arduino.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "board": "adafruit:nrf52:feather52840", - "configuration": "softdevice=s140v6,debug=l0", - "sketch": "serial_debugger.ino", - "port": "COM4" -} \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 935fe50..343346a 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -6,6 +6,7 @@ "C:\\Users\\mcros\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\**", "C:\\Users\\mcros\\AppData\\Local\\Arduino15\\packages\\adafruit\\tools\\**", "C:\\Users\\mcros\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.21.0\\**", + "C:\\Users\\mcros\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.6.1\\**", "C:\\Program Files (x86)\\Arduino\\libraries\\**", "C:\\Program Files (x86)\\Arduino\\hardware\\**", "C:\\Users\\mcros\\OneDrive\\Documents\\Arduino\\libraries\\**", diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 1f5cc00..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "files.associations": { - "xtemplate.h": "c", - "guislice_drv.h": "c", - "xradial.h": "c", - "*.tpp": "cpp", - "array": "cpp", - "deque": "cpp", - "string": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "string_view": "cpp", - "initializer_list": "cpp" - } -} \ No newline at end of file diff --git a/README.md b/README.md index 624ad00..5bfef27 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,8 @@ # Serial Debugger -A debug console for serial TTL. This can be used to work with serial TTL directly or operate as a pass through for a computer. +This project is a set of hardware builds that allow working with serial devices in an 'easy' way. The goal is to build a configurator that works with a series of modules (Muxers) to provide serial access via USB. -## Hardware / BoM - -| Item | Quantity | Unit Cost | -| ---- | -------- | --------- | -| [Keyboard FeatherWing (Keyboard + LCD)](https://www.tindie.com/products/arturo182/keyboard-featherwing-qwerty-keyboard-26-lcd/) | 1 | $55.00 | -| [Feather nRF52840 Express](https://www.adafruit.com/product/4062) | 1 | $24.95 | -| [Feather M0 Basic Proto](https://www.adafruit.com/product/2772) | 1 | $19.95 | -| [FeatherWing Proto](https://www.adafruit.com/product/2884) | 1 | $4.95 | -| [2x20 pin IDC Box Header](https://www.adafruit.com/product/1993) | 1 | $0.75 | -| [GPIO Ribbon Cable for Raspberry Pi](https://www.adafruit.com/product/1988) | 1 | $2.95 | -| [Header Kit for Feather](https://www.adafruit.com/product/2886) | 1 | $0.96 | -| [I2C Non-Volatile FRAM Breakout](https://www.adafruit.com/product/1895) | 2 | $9.95 | - -## Hardware Docs - -- [https://www.solder.party/docs/keyboard-featherwing/downloads/](https://www.solder.party/docs/keyboard-featherwing/downloads/) -- [https://github.com/arturo182/bbq10kbd_i2c_sw](https://github.com/arturo182/bbq10kbd_i2c_sw) -- [https://github.com/lvgl/lv_arduino](https://github.com/lvgl/lv_arduino) - -## Implementation (Incomplete) - -- Main board has FRAM break out for configuration persistence -- Converter board has FRAM break out for configuration persistence -- Setup 2nd feather + proto board as a 40 pin socket -- 2nd feather acts as a mux between different rpi uarts (0 and 1 and 5 in particular) -- 2nd feather talks via qwiic connector over i2c to main board -- User button on feather to flip between usb and local serial (aka : can be used as a serial adapter) - - Note this on the UI -- Fall back to internal uart pins if no expander is present - - Note this on the UI -- Adapter board falls back to saved config *and* goes into stand alone via usb port *if* it's not seeing the main board -- Main board startup shows connection setup + waits for OK prompt via main hat switch -- Main board has a status bar @ bottom with battery level, selected uart, selected speed -- Main board does simple display of serial in/out via lcd -- Main board has a button for accessing symbols via pop-up list that aren't on keyboard -- Main board has a button for accessing a uart selection pop-up that maps to rpi uarts -- Main board has a button for accessing password selection pop-up to help with password entry over serial -- Main board has a button for accessing uart speed pop-up to help with configuring line speeds - -## Implementation (Complete) - -- Battery level on feather neopixel (green = >80% ; yellow >=40% ; orange >= 25% ; red < 25%) -- User LED (red) always on when feather is running - -## Building / Uploading - -The ```make.ps1```, ```build.ps1``` and ```upload.ps1``` scripts can be used to build/upload this project. These scripts call the ```arduino-cli``` commands programatically. +Please see the ```hardware``` directory for a break down of how to build the various components of this project. ## Licensing diff --git a/hardware/README.md b/hardware/README.md new file mode 100644 index 0000000..0e8bba4 --- /dev/null +++ b/hardware/README.md @@ -0,0 +1,12 @@ +# Hardware + +This folder contains all of the different hardware (Arduino) builds that are part of this project. + +Please see the below table for what hardware is currently available and its status. + +## Hardware Status + +| Device | Folder | Status | +| ------ | ------ | ------ | +| Main Controller | ```_controller``` | In Progress / Alpha | +| Raspberry Pi Muxer | ```mux_rpi``` | Early development / Pre Alpha | diff --git a/hardware/_controller/.gitignore b/hardware/_controller/.gitignore new file mode 100644 index 0000000..94be2e5 --- /dev/null +++ b/hardware/_controller/.gitignore @@ -0,0 +1,5 @@ +build/ +_controller*.bak +gui_backup/ +_controller.ino.beta +_controller.ino.orig \ No newline at end of file diff --git a/hardware/_controller/README.md b/hardware/_controller/README.md new file mode 100644 index 0000000..cf880f5 --- /dev/null +++ b/hardware/_controller/README.md @@ -0,0 +1,38 @@ +# Controller + +A debug console and configuration shield for serial TTL muxers. See the ```muxers``` folder for what connects to this shield. + +## Hardware / BoM + +| Item | Quantity | Unit Cost | +| ---- | -------- | --------- | +| [Keyboard FeatherWing (Keyboard + LCD)](https://www.tindie.com/products/arturo182/keyboard-featherwing-qwerty-keyboard-26-lcd/) | 1 | $55.00 | +| [Feather nRF52840 Express](https://www.adafruit.com/product/4062) | 1 | $24.95 | + +## Hardware Docs + +- [https://www.solder.party/docs/keyboard-featherwing/downloads/](https://www.solder.party/docs/keyboard-featherwing/downloads/) +- [https://github.com/arturo182/bbq10kbd_i2c_sw](https://github.com/arturo182/bbq10kbd_i2c_sw) +- [https://github.com/lvgl/lv_arduino](https://github.com/lvgl/lv_arduino) + +## Implementation (Incomplete) + +- Startup shows connection setup + waits for OK prompt via main hat switch +- Status bar @ top with selected uart, selected speed +- Simple display of serial in/out via lcd +- Button for accessing symbols via pop-up list that aren't on keyboard +- Bccessing a uart selection pop-up that maps to rpi uarts +- Button for accessing password selection pop-up to help with password entry over serial +- Button for accessing uart speed pop-up to help with configuring line speeds +- Way to display pinouts stored on micro sd card +- Configuration read from muxes (if attached) + +## Implementation (Complete) + +- Battery level on feather neopixel (green = >80% ; yellow >=40% ; orange >= 25% ; red < 25%) +- User LED (red) always on when feather is running +- Battery level shown as progress bar in the upper right corner of the screen + +## Building / Uploading + +The ```make.ps1```, ```build.ps1``` and ```upload.ps1``` scripts can be used to build/upload this project. These scripts call the ```arduino-cli``` commands programatically. diff --git a/serial_debugger.ino b/hardware/_controller/_controller.ino similarity index 95% rename from serial_debugger.ino rename to hardware/_controller/_controller.ino index 8eb47e4..9b57465 100644 --- a/serial_debugger.ino +++ b/hardware/_controller/_controller.ino @@ -1,5 +1,5 @@ // -// FILE: [serial_debugger.ino] +// FILE: [_controller.ino] // Created by GUIslice Builder version: [0.15.b004] // // GUIslice Builder Generated File @@ -24,7 +24,7 @@ #include // Various local includes -#include "serial_debugger_GSLC.h" +#include "_controller_GSLC.h" // diff --git a/serial_debugger.prj b/hardware/_controller/_controller.prj similarity index 100% rename from serial_debugger.prj rename to hardware/_controller/_controller.prj diff --git a/serial_debugger_GSLC.h b/hardware/_controller/_controller_GSLC.h similarity index 97% rename from serial_debugger_GSLC.h rename to hardware/_controller/_controller_GSLC.h index 0675780..80d6c5c 100644 --- a/serial_debugger_GSLC.h +++ b/hardware/_controller/_controller_GSLC.h @@ -1,5 +1,5 @@ // -// FILE: [serial_debugger_GSLC.h] +// FILE: [_controller_GSLC.h] // Created by GUIslice Builder version: [0.15.b004] // // GUIslice Builder Generated GUI Framework File diff --git a/build.ps1 b/hardware/_controller/build.ps1 similarity index 68% rename from build.ps1 rename to hardware/_controller/build.ps1 index ef8fa18..ec35f23 100644 --- a/build.ps1 +++ b/hardware/_controller/build.ps1 @@ -1 +1 @@ -arduino-cli compile --log-level=warn --fqbn adafruit:nrf52:feather52840 serial_debugger.ino +arduino-cli compile --log-level=warn --fqbn adafruit:nrf52:feather52840 _controller.ino diff --git a/make.ps1 b/hardware/_controller/make.ps1 similarity index 100% rename from make.ps1 rename to hardware/_controller/make.ps1 diff --git a/src/guislice/GUIslice.c b/hardware/_controller/src/guislice/GUIslice.c similarity index 100% rename from src/guislice/GUIslice.c rename to hardware/_controller/src/guislice/GUIslice.c diff --git a/src/guislice/GUIslice.h b/hardware/_controller/src/guislice/GUIslice.h similarity index 100% rename from src/guislice/GUIslice.h rename to hardware/_controller/src/guislice/GUIslice.h diff --git a/src/guislice/GUIslice_config.h b/hardware/_controller/src/guislice/GUIslice_config.h similarity index 100% rename from src/guislice/GUIslice_config.h rename to hardware/_controller/src/guislice/GUIslice_config.h diff --git a/src/guislice/GUIslice_config_ard.h b/hardware/_controller/src/guislice/GUIslice_config_ard.h similarity index 100% rename from src/guislice/GUIslice_config_ard.h rename to hardware/_controller/src/guislice/GUIslice_config_ard.h diff --git a/src/guislice/GUIslice_config_linux.h b/hardware/_controller/src/guislice/GUIslice_config_linux.h similarity index 100% rename from src/guislice/GUIslice_config_linux.h rename to hardware/_controller/src/guislice/GUIslice_config_linux.h diff --git a/src/guislice/GUIslice_drv.h b/hardware/_controller/src/guislice/GUIslice_drv.h similarity index 100% rename from src/guislice/GUIslice_drv.h rename to hardware/_controller/src/guislice/GUIslice_drv.h diff --git a/src/guislice/GUIslice_drv_adagfx.cpp b/hardware/_controller/src/guislice/GUIslice_drv_adagfx.cpp similarity index 100% rename from src/guislice/GUIslice_drv_adagfx.cpp rename to hardware/_controller/src/guislice/GUIslice_drv_adagfx.cpp diff --git a/src/guislice/GUIslice_drv_adagfx.h b/hardware/_controller/src/guislice/GUIslice_drv_adagfx.h similarity index 100% rename from src/guislice/GUIslice_drv_adagfx.h rename to hardware/_controller/src/guislice/GUIslice_drv_adagfx.h diff --git a/src/guislice/GUIslice_drv_m5stack.cpp b/hardware/_controller/src/guislice/GUIslice_drv_m5stack.cpp similarity index 100% rename from src/guislice/GUIslice_drv_m5stack.cpp rename to hardware/_controller/src/guislice/GUIslice_drv_m5stack.cpp diff --git a/src/guislice/GUIslice_drv_m5stack.h b/hardware/_controller/src/guislice/GUIslice_drv_m5stack.h similarity index 100% rename from src/guislice/GUIslice_drv_m5stack.h rename to hardware/_controller/src/guislice/GUIslice_drv_m5stack.h diff --git a/src/guislice/GUIslice_drv_sdl.c b/hardware/_controller/src/guislice/GUIslice_drv_sdl.c similarity index 100% rename from src/guislice/GUIslice_drv_sdl.c rename to hardware/_controller/src/guislice/GUIslice_drv_sdl.c diff --git a/src/guislice/GUIslice_drv_sdl.h b/hardware/_controller/src/guislice/GUIslice_drv_sdl.h similarity index 100% rename from src/guislice/GUIslice_drv_sdl.h rename to hardware/_controller/src/guislice/GUIslice_drv_sdl.h diff --git a/src/guislice/GUIslice_drv_tft_espi.cpp b/hardware/_controller/src/guislice/GUIslice_drv_tft_espi.cpp similarity index 100% rename from src/guislice/GUIslice_drv_tft_espi.cpp rename to hardware/_controller/src/guislice/GUIslice_drv_tft_espi.cpp diff --git a/src/guislice/GUIslice_drv_tft_espi.h b/hardware/_controller/src/guislice/GUIslice_drv_tft_espi.h similarity index 100% rename from src/guislice/GUIslice_drv_tft_espi.h rename to hardware/_controller/src/guislice/GUIslice_drv_tft_espi.h diff --git a/src/guislice/GUIslice_drv_utft.cpp b/hardware/_controller/src/guislice/GUIslice_drv_utft.cpp similarity index 100% rename from src/guislice/GUIslice_drv_utft.cpp rename to hardware/_controller/src/guislice/GUIslice_drv_utft.cpp diff --git a/src/guislice/GUIslice_drv_utft.h b/hardware/_controller/src/guislice/GUIslice_drv_utft.h similarity index 100% rename from src/guislice/GUIslice_drv_utft.h rename to hardware/_controller/src/guislice/GUIslice_drv_utft.h diff --git a/src/guislice/GUIslice_ex.h b/hardware/_controller/src/guislice/GUIslice_ex.h similarity index 100% rename from src/guislice/GUIslice_ex.h rename to hardware/_controller/src/guislice/GUIslice_ex.h diff --git a/src/guislice/GUIslice_th.cpp b/hardware/_controller/src/guislice/GUIslice_th.cpp similarity index 100% rename from src/guislice/GUIslice_th.cpp rename to hardware/_controller/src/guislice/GUIslice_th.cpp diff --git a/src/guislice/GUIslice_th.h b/hardware/_controller/src/guislice/GUIslice_th.h similarity index 100% rename from src/guislice/GUIslice_th.h rename to hardware/_controller/src/guislice/GUIslice_th.h diff --git a/src/guislice/GUIslice_th_XPT2046.h b/hardware/_controller/src/guislice/GUIslice_th_XPT2046.h similarity index 100% rename from src/guislice/GUIslice_th_XPT2046.h rename to hardware/_controller/src/guislice/GUIslice_th_XPT2046.h diff --git a/src/guislice/GUIslice_version.h b/hardware/_controller/src/guislice/GUIslice_version.h similarity index 100% rename from src/guislice/GUIslice_version.h rename to hardware/_controller/src/guislice/GUIslice_version.h diff --git a/src/guislice/NotoMono12pt7b.h b/hardware/_controller/src/guislice/NotoMono12pt7b.h similarity index 100% rename from src/guislice/NotoMono12pt7b.h rename to hardware/_controller/src/guislice/NotoMono12pt7b.h diff --git a/src/guislice/NotoMono8pt7b.h b/hardware/_controller/src/guislice/NotoMono8pt7b.h similarity index 100% rename from src/guislice/NotoMono8pt7b.h rename to hardware/_controller/src/guislice/NotoMono8pt7b.h diff --git a/src/guislice/XCheckbox.c b/hardware/_controller/src/guislice/XCheckbox.c similarity index 100% rename from src/guislice/XCheckbox.c rename to hardware/_controller/src/guislice/XCheckbox.c diff --git a/src/guislice/XCheckbox.h b/hardware/_controller/src/guislice/XCheckbox.h similarity index 100% rename from src/guislice/XCheckbox.h rename to hardware/_controller/src/guislice/XCheckbox.h diff --git a/src/guislice/XGauge.c b/hardware/_controller/src/guislice/XGauge.c similarity index 100% rename from src/guislice/XGauge.c rename to hardware/_controller/src/guislice/XGauge.c diff --git a/src/guislice/XGauge.h b/hardware/_controller/src/guislice/XGauge.h similarity index 100% rename from src/guislice/XGauge.h rename to hardware/_controller/src/guislice/XGauge.h diff --git a/src/guislice/XGlowball.c b/hardware/_controller/src/guislice/XGlowball.c similarity index 100% rename from src/guislice/XGlowball.c rename to hardware/_controller/src/guislice/XGlowball.c diff --git a/src/guislice/XGlowball.h b/hardware/_controller/src/guislice/XGlowball.h similarity index 100% rename from src/guislice/XGlowball.h rename to hardware/_controller/src/guislice/XGlowball.h diff --git a/src/guislice/XGraph.c b/hardware/_controller/src/guislice/XGraph.c similarity index 100% rename from src/guislice/XGraph.c rename to hardware/_controller/src/guislice/XGraph.c diff --git a/src/guislice/XGraph.h b/hardware/_controller/src/guislice/XGraph.h similarity index 100% rename from src/guislice/XGraph.h rename to hardware/_controller/src/guislice/XGraph.h diff --git a/src/guislice/XKeyPad.c b/hardware/_controller/src/guislice/XKeyPad.c similarity index 100% rename from src/guislice/XKeyPad.c rename to hardware/_controller/src/guislice/XKeyPad.c diff --git a/src/guislice/XKeyPad.h b/hardware/_controller/src/guislice/XKeyPad.h similarity index 100% rename from src/guislice/XKeyPad.h rename to hardware/_controller/src/guislice/XKeyPad.h diff --git a/src/guislice/XKeyPad_Alpha.c b/hardware/_controller/src/guislice/XKeyPad_Alpha.c similarity index 100% rename from src/guislice/XKeyPad_Alpha.c rename to hardware/_controller/src/guislice/XKeyPad_Alpha.c diff --git a/src/guislice/XKeyPad_Alpha.h b/hardware/_controller/src/guislice/XKeyPad_Alpha.h similarity index 100% rename from src/guislice/XKeyPad_Alpha.h rename to hardware/_controller/src/guislice/XKeyPad_Alpha.h diff --git a/src/guislice/XKeyPad_Num.c b/hardware/_controller/src/guislice/XKeyPad_Num.c similarity index 100% rename from src/guislice/XKeyPad_Num.c rename to hardware/_controller/src/guislice/XKeyPad_Num.c diff --git a/src/guislice/XKeyPad_Num.h b/hardware/_controller/src/guislice/XKeyPad_Num.h similarity index 100% rename from src/guislice/XKeyPad_Num.h rename to hardware/_controller/src/guislice/XKeyPad_Num.h diff --git a/src/guislice/XListbox.c b/hardware/_controller/src/guislice/XListbox.c similarity index 100% rename from src/guislice/XListbox.c rename to hardware/_controller/src/guislice/XListbox.c diff --git a/src/guislice/XListbox.h b/hardware/_controller/src/guislice/XListbox.h similarity index 100% rename from src/guislice/XListbox.h rename to hardware/_controller/src/guislice/XListbox.h diff --git a/src/guislice/XProgress.c b/hardware/_controller/src/guislice/XProgress.c similarity index 100% rename from src/guislice/XProgress.c rename to hardware/_controller/src/guislice/XProgress.c diff --git a/src/guislice/XProgress.h b/hardware/_controller/src/guislice/XProgress.h similarity index 100% rename from src/guislice/XProgress.h rename to hardware/_controller/src/guislice/XProgress.h diff --git a/src/guislice/XRadial.c b/hardware/_controller/src/guislice/XRadial.c similarity index 100% rename from src/guislice/XRadial.c rename to hardware/_controller/src/guislice/XRadial.c diff --git a/src/guislice/XRadial.h b/hardware/_controller/src/guislice/XRadial.h similarity index 100% rename from src/guislice/XRadial.h rename to hardware/_controller/src/guislice/XRadial.h diff --git a/src/guislice/XRamp.c b/hardware/_controller/src/guislice/XRamp.c similarity index 100% rename from src/guislice/XRamp.c rename to hardware/_controller/src/guislice/XRamp.c diff --git a/src/guislice/XRamp.h b/hardware/_controller/src/guislice/XRamp.h similarity index 100% rename from src/guislice/XRamp.h rename to hardware/_controller/src/guislice/XRamp.h diff --git a/src/guislice/XRingGauge.c b/hardware/_controller/src/guislice/XRingGauge.c similarity index 100% rename from src/guislice/XRingGauge.c rename to hardware/_controller/src/guislice/XRingGauge.c diff --git a/src/guislice/XRingGauge.h b/hardware/_controller/src/guislice/XRingGauge.h similarity index 100% rename from src/guislice/XRingGauge.h rename to hardware/_controller/src/guislice/XRingGauge.h diff --git a/src/guislice/XSeekbar.c b/hardware/_controller/src/guislice/XSeekbar.c similarity index 100% rename from src/guislice/XSeekbar.c rename to hardware/_controller/src/guislice/XSeekbar.c diff --git a/src/guislice/XSeekbar.h b/hardware/_controller/src/guislice/XSeekbar.h similarity index 100% rename from src/guislice/XSeekbar.h rename to hardware/_controller/src/guislice/XSeekbar.h diff --git a/src/guislice/XSelNum.c b/hardware/_controller/src/guislice/XSelNum.c similarity index 100% rename from src/guislice/XSelNum.c rename to hardware/_controller/src/guislice/XSelNum.c diff --git a/src/guislice/XSelNum.h b/hardware/_controller/src/guislice/XSelNum.h similarity index 100% rename from src/guislice/XSelNum.h rename to hardware/_controller/src/guislice/XSelNum.h diff --git a/src/guislice/XSlider.c b/hardware/_controller/src/guislice/XSlider.c similarity index 100% rename from src/guislice/XSlider.c rename to hardware/_controller/src/guislice/XSlider.c diff --git a/src/guislice/XSlider.h b/hardware/_controller/src/guislice/XSlider.h similarity index 100% rename from src/guislice/XSlider.h rename to hardware/_controller/src/guislice/XSlider.h diff --git a/src/guislice/XSpinner.c b/hardware/_controller/src/guislice/XSpinner.c similarity index 100% rename from src/guislice/XSpinner.c rename to hardware/_controller/src/guislice/XSpinner.c diff --git a/src/guislice/XSpinner.h b/hardware/_controller/src/guislice/XSpinner.h similarity index 100% rename from src/guislice/XSpinner.h rename to hardware/_controller/src/guislice/XSpinner.h diff --git a/src/guislice/XTemplate.c b/hardware/_controller/src/guislice/XTemplate.c similarity index 100% rename from src/guislice/XTemplate.c rename to hardware/_controller/src/guislice/XTemplate.c diff --git a/src/guislice/XTemplate.h b/hardware/_controller/src/guislice/XTemplate.h similarity index 100% rename from src/guislice/XTemplate.h rename to hardware/_controller/src/guislice/XTemplate.h diff --git a/src/guislice/XTextbox.c b/hardware/_controller/src/guislice/XTextbox.c similarity index 100% rename from src/guislice/XTextbox.c rename to hardware/_controller/src/guislice/XTextbox.c diff --git a/src/guislice/XTextbox.h b/hardware/_controller/src/guislice/XTextbox.h similarity index 100% rename from src/guislice/XTextbox.h rename to hardware/_controller/src/guislice/XTextbox.h diff --git a/src/guislice/XTogglebtn.c b/hardware/_controller/src/guislice/XTogglebtn.c similarity index 100% rename from src/guislice/XTogglebtn.c rename to hardware/_controller/src/guislice/XTogglebtn.c diff --git a/src/guislice/XTogglebtn.h b/hardware/_controller/src/guislice/XTogglebtn.h similarity index 100% rename from src/guislice/XTogglebtn.h rename to hardware/_controller/src/guislice/XTogglebtn.h diff --git a/src/guislice/ard-adagfx-ili9341-notouch.h b/hardware/_controller/src/guislice/ard-adagfx-ili9341-notouch.h similarity index 100% rename from src/guislice/ard-adagfx-ili9341-notouch.h rename to hardware/_controller/src/guislice/ard-adagfx-ili9341-notouch.h diff --git a/src/guislice/ard-adagfx-ili9341-stmpe610.h b/hardware/_controller/src/guislice/ard-adagfx-ili9341-stmpe610.h similarity index 100% rename from src/guislice/ard-adagfx-ili9341-stmpe610.h rename to hardware/_controller/src/guislice/ard-adagfx-ili9341-stmpe610.h diff --git a/upload.ps1 b/hardware/_controller/upload.ps1 similarity index 100% rename from upload.ps1 rename to hardware/_controller/upload.ps1 diff --git a/hardware/mux_rpi/README.md b/hardware/mux_rpi/README.md new file mode 100644 index 0000000..1d057da --- /dev/null +++ b/hardware/mux_rpi/README.md @@ -0,0 +1,38 @@ +# MUX - Raspberry Pi Edition + +This folder contains the necessary sources and information to build a MUX for Raspberry Pis. This mux can be used independently or with the controller. + +Note : The mux needs to be configured via sources if not used with the controller. + +## Important Considerations + +- The Raspberry Pi 4 has 5 available UARTS and we only document how to wire for UART0/1 and UART5 +- The Raspberry Pi's prior to the 4 had only UART0 exposed. Please use ONLY the UART0 configuration and setup for these devices. + +## Hardware / BoM + +| Item | Quantity | Unit Cost | +| ---- | -------- | --------- | +| [Feather M0 Basic Proto](https://www.adafruit.com/product/2772) | 1 | $19.95 | +| [FeatherWing Proto](https://www.adafruit.com/product/2884) | 1 | $4.95 | +| [2x20 pin IDC Box Header](https://www.adafruit.com/product/1993) | 1 | $0.75 | +| [GPIO Ribbon Cable for Raspberry Pi](https://www.adafruit.com/product/1988) | 1 | $2.95 | +| [Header Kit for Feather](https://www.adafruit.com/product/2886) | 1 | $0.96 | +| [I2C Non-Volatile FRAM Breakout](https://www.adafruit.com/product/1895) | 2 | $9.95 | + +## Implementation (Incomplete) + +- FRAM break out for configuration persistence +- Fall back to saved config *and* goes into stand alone via usb port *if* it's not seeing the main board +- Receive configuration over i2c +- Save configuration to FRAM +- FRAM config reading +- Ability to have USB *and* i2c for the UART output + - Use ring buffer @ 16k for i2c + - Send direct to USB and then add to ring buffer (always send over usb even if not used) + +## Implementation (Complete) + +## Building / Uploading + +The ```make.ps1```, ```build.ps1``` and ```upload.ps1``` scripts can be used to build/upload this project. These scripts call the ```arduino-cli``` commands programatically. diff --git a/notes.md b/notes.md deleted file mode 100644 index 2624aeb..0000000 --- a/notes.md +++ /dev/null @@ -1,93 +0,0 @@ -# Notes - -A dumping ground of notes and ideas - -## cpp_settings.json - -``` - -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "/home/USER/.arduino15/packages/arduino/tools/**", - "/home/USER/.arduino15/packages/arduino/hardware/samd/1.8.7/**", - "/usr/local/share/arduino/libraries/**", - "/usr/local/share/arduino/hardware/**", - "/home/USER/Arduino/libraries/**", - "${workspaceFolder}/**" - ], - "forcedInclude": [ - "/home/USER/.arduino15/packages/arduino/hardware/samd/1.8.7/cores/arduino/Arduino.h" - ], - "intelliSenseMode": "clang-x64", - "compilerPath": "/usr/bin/clang", - "cStandard": "c11", - "cppStandard": "gnu++14" - } - ], - "version": 4 -} - -``` - -## clang formatter - -``` - -BasedOnStyle: LLVM -Language: Cpp -AlignAfterOpenBracket: Align -AlignConsecutiveAssignments: true -AlignConsecutiveDeclarations: true -AlignConsecutiveMacros: true -AlignEscapedNewlines: Left -# AlignOperands: AlignAfterOperator -AlignOperands: true -AlignTrailingComments: true -AllowAllArgumentsOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: false -AllowAllConstructorInitializersOnNextLine: false -AllowShortBlocksOnASingleLine: true -AllowShortCaseLabelsOnASingleLine: true -AllowShortFunctionsOnASingleLine: true -AllowShortIfStatementsOnASingleLine: true -AllowShortLoopsOnASingleLine: false -BreakBeforeBraces: Attach -BreakStringLiterals: true -IncludeBlocks: Regroup -#IndentCaseBlocks: true -IndentCaseLabels: true -KeepEmptyLinesAtTheStartOfBlocks: false -PointerAlignment: Right -ReflowComments: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: ControlStatements -SpaceBeforeSquareBrackets: false -UseTab: ForContinuationAndIndentation -IndentWidth: 4 -TabWidth: 4 -BinPackArguments: false -BinPackParameters: false - -``` - -## Makefile - -``` - -compile=arduino-cli compile --log-level=warn -v -upload=arduino-cli upload -serial := $(shell arduino-cli board list | grep mkrwifi1010 | awk '{print $$1}') - -all: - cd ../ && $(compile) --fqbn arduino:samd:mkrwifi1010 PROJECT - -upload: - cd ../ && $(upload) --fqbn arduino:samd:mkrwifi1010 -p ${mkr1010_serial} PROJECT - -monitor: - screen ${mkr1010} 9600 - -```