User Tools

Site Tools


project:maerklin:system_control:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
project:maerklin:system_control:start [2025/05/29 15:03] – [Clients ==?] Peter Siegmundproject:maerklin:system_control:start [2025/06/15 13:03] (current) Peter Siegmund
Line 1: Line 1:
 ====== System Control ====== ====== System Control ======
  
-There is a main component, which is the system control device. It's powered by an ESP32 S3 Mini (LOLIN) and a LCD display (128x64). The main purpose was to control the LEDs for the day/night cycle.+{{youtube>KcwmSME05C0? }} 
 + 
 +The System Control device, the main component, utilizes an [[https://www.wemos.cc/en/latest/s3/s3_mini.html|ESP32 S3 Mini]] and a LCD display (128x64). The main purpose was to control the LEDs for the day/night cycle. 
 + 
  
 ===== Introduction ===== ===== Introduction =====
  
-The main component is currently a ESP32 S3 Mini. It'form factor is ideal for a small box and the power is enough for every task, we need in the control center. Because we needed some user input, I created a custom PCB, which holds the ESP32. On the board are 6 tacticle buttons. They are used for a D-Pad and select, back buttons. The LCD does show a custom UI library on top of [[https://github.com/olikraus/u8g2|u8g2]].+The main microcontroller is an ESP32 S3 Mini. Its form factor is ideal for a small enclosure, and its processing power is sufficient for all tasks the control center requiresTo enable user input, I created a custom PCB that holds the ESP32. This board features six tactile buttons, which are configured as a D-Pad (four directions),select buttonand a back button. The LCD displays a custom user interface via a dedicated library built on top of [[https://github.com/olikraus/u8g2|u8g2]].
  
 ===== Extensibility ===== ===== Extensibility =====
  
-This system is build to be very extendableSo I designed a wireless system for indoor usage based on Bluetooth LE. This decision was mainly of two reasons. FirstI wanted to use BLE within a new project and  the second, the most important one, was to be independent of the MCU. Currently I use ESP32, which can handle WiFi and BLE, but I also want to test STM32 (which only include BLE - e.g. the [[https://www.st.com/en/microcontrollers-microprocessors/stm32wb-series.html|STM32WB-Series]]).+This system is built to be highly extensibleFor this purpose, I designed a wireless system for indoor use based on Bluetooth LE. This decision was primarily driven by two factors: firstlymy desire to gain experience with BLE in a new projectand secondly (and more importantly), the aim to ensure independence from any specific MCU. 
 +CurrentlyI'm using an ESP32, which supports both Wi-Fi and BLE. However, I also plan to test other microcontrollers, such as those from the STM32 family (for instance, the [[https://www.st.com/en/microcontrollers-microprocessors/stm32wb-series.html|STM32WB-Series]], which offers strong BLE capabilities), to maintain this flexibility.
  
 ===== Technical Details ===== ===== Technical Details =====
  
-Every client advertised a specific service. The System Control scans all BLE devices and filters for this UUID. Within this service is a capabilities characteristic, which send the capabilities after the System Control activate notify on this. This way the System Control can build the UI accordingly to the transmitted data.+Each client advertises a specific service. The System Control scans all nearby BLE devices and filters for this service UUID. This service includes 'capabilitiescharacteristic, which transmits the client'capabilities once the System Control enables notifications for this characteristic. This allows the System Control to build its UI dynamically, according to the received data.
  
-More indepth information will be following, after I finished the MVP.+More in-depth information will be provided once the MVP is complete.
  
-===== Source Code =====+===== Clients =====
  
-[[https://github.com/mars3142/system_control|Github]] Action: {{https://github.com/mars3142/system_control/actions/workflows/esp32_build.yml/badge.svg?nocache&.png}}+The current list of the clients, which can be connected to the system:
  
-===== Clients =====+  * [[..:warnemuende:lighthouse:start|]] 
 +  * [[..:warnemuende:miniature_town:start|]] 
  
-The list of the clients, which can be connected to the system is:+===== Source Code ===== 
 + 
 +[[https://github.com/mars3142/system_control|Github]] Action: {{https://github.com/mars3142/system_control/actions/workflows/esp32_build.yml/badge.svg?nocache&.png}}
  
-- [[..:warnemuende:miniature_town:start|]]  
project/maerklin/system_control/start.1748531006.txt.gz · Last modified: by Peter Siegmund