From d3804edb0525153036f42062fb0803b728fc6daf Mon Sep 17 00:00:00 2001 From: KlausMu Date: Sun, 10 Mar 2024 15:25:09 +0100 Subject: [PATCH 1/7] moved images to folder images --- Menu.gif => images/Menu.gif | Bin P1030424_small.jpg => images/P1030424_small.jpg | Bin Solder GIF.gif => images/Solder GIF.gif | Bin parts.jpg => images/parts.jpg | Bin sim GIF.gif => images/sim GIF.gif | Bin 5 files changed, 0 insertions(+), 0 deletions(-) rename Menu.gif => images/Menu.gif (100%) rename P1030424_small.jpg => images/P1030424_small.jpg (100%) rename Solder GIF.gif => images/Solder GIF.gif (100%) rename parts.jpg => images/parts.jpg (100%) rename sim GIF.gif => images/sim GIF.gif (100%) diff --git a/Menu.gif b/images/Menu.gif similarity index 100% rename from Menu.gif rename to images/Menu.gif diff --git a/P1030424_small.jpg b/images/P1030424_small.jpg similarity index 100% rename from P1030424_small.jpg rename to images/P1030424_small.jpg diff --git a/Solder GIF.gif b/images/Solder GIF.gif similarity index 100% rename from Solder GIF.gif rename to images/Solder GIF.gif diff --git a/parts.jpg b/images/parts.jpg similarity index 100% rename from parts.jpg rename to images/parts.jpg diff --git a/sim GIF.gif b/images/sim GIF.gif similarity index 100% rename from sim GIF.gif rename to images/sim GIF.gif From 47f644b64a706449729e02b8587f82e5734498ac Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 15:30:31 +0100 Subject: [PATCH 2/7] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6797f0ca..969e7441 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # OMOTE - Open Universal Remote -![](P1030424_small.jpg) +![](images/P1030424_small.jpg) ![ESP32 Build](https://github.com/CoretechR/OMOTE/actions/workflows/build-platformio.yml/badge.svg) ![Simulator Build](https://github.com/CoretechR/OMOTE/actions/workflows/build-simulator.yml/badge.svg) @@ -11,7 +11,7 @@ OMOTE is an ESP32 based open source universal remote. Its capacitive 2.8” touchscreen provides an intuitive and snappy user interface for switching devices and settings. No hub or docking station is required as the remote features infrared, Wi-Fi and Bluetooth connectivity. With its well optimized power consumption, OMOTE can run for months on a charge. And since the design files are open source, you can fully customize them to your devices and needs.
- +
### Features @@ -75,7 +75,7 @@ The project uses a 2000mAh Li-Ion battery with a JST-PHR-2 connector. Any 3.7V L The 2.8" capacitive touchscreen can be sourced from Adafruit ([2770](https://www.adafruit.com/product/2770)). If you look for the part number CH280QV10-CT, you can also buy this display directly from the manufacturer via [Alibaba](https://www.alibaba.com/product-detail/High-Quality-240-3-rgb-320_1600408828330.html). Shipping from China is expensive, so this only makes sense if you order multiple displays. In general, the cost for a single OMOTE is quite high. Check out the buy-sell page on the [Discord](https://discord.com/channels/1138116475559882852/1153343867681243279) to see if you can share the cost of the PCBs and components with others.
- +
The [housing and buttons](https://github.com/CoretechR/OMOTE/tree/main/CAD) can be printed using PLA or PETG. I sliced the models with PrusaSlicer with a layer height of 0.25mm and printed them using ColorFabb PETG. It is important that the case part is printed with its flat side towards the print bed using lots of support structures. If your printer is well calibrated, the cover plate will snap onto the case. From 761310cff2d74d7bf63cbd67acbd7798056616b7 Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 15:54:55 +0100 Subject: [PATCH 3/7] Update README.md --- README.md | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 969e7441..43701c15 100644 --- a/README.md +++ b/README.md @@ -33,36 +33,41 @@ OMOTE is an ESP32 based open source universal remote. Its capacitive 2.8” touc * [knolleary/PubSubClient](https://github.com/knolleary/PubSubClient)@^2.8 * [Chris--A/Keypad](https://github.com/Chris--A/Keypad) (modified for inverted logic) -### The State of This Project +### The state of this Project + +#### Hardware The hardware for OMOTE is designed to be easily replicated, using 3D-printed parts, a 2-layer PCB and commonly available components. The mechanical and PCB design can be considered mostly complete. Still, there might be areas for improvement, for example the IR range could be further optimized. -There is still a lot of work left to be done in terms of software. Right now, network settings, buttons and screen layouts are hard-coded. Controlling devices via MQTT is more of a tech demo at the moment and the network connection might not be perfectly reliable. Making the interface configurable, e.g. using a web interface, is a long-term goal. +#### Software +The software can be adjusted to your needs. You can add your amplifier, TV and media player. The software is an example made up of an amplifier and TV controlled with infrared, a Fire TV controlled with BLE and some smart home devices controlled with MQTT. + +Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/How-to-understand-and-modify-the-software) + +You need to have PlatformIO running, and you need to be able to compile and flash your own firmware. There is no prebuild firmware. + +As a long term goal, maybe a prebuild firmware will be published, where you can configure your OMOTE via a web interface. ### To Do -Currently I have no idea if and when this will be done. But these would be the next steps: +Short term goals +- [ ] simulator for creating pages in Windows, WSL2 and Linux +- [ ] scene selector page as start page +- [ ] available gui pages based on the currently active scene. Hide pages not needed in a scene +- [ ] make gui actions context sensitive for the currently active scene +Long term goals (not yet scheduled) - [ ] Easier configuration - [ ] Document the current process of customization - [ ] Store the configuration in Flash (e.g. as a editable json file) - [ ] Add an interface for graphically editing the configuration -- [ ] Complete the on-device settings page -- [ ] Make the Wi-Fi connection more stable See the [open issues](https://github.com/CoretechR/OMOTE/issues) and [discussions](https://github.com/CoretechR/OMOTE/discussions) for a full list of proposed features (and known issues). -## Getting Started - -OMOTE might look like a finished product, but especially the software is ***not "consumer-friendly"*** yet. If you want to build your own remote and customize it to your devices, you should be ***somewhat experienced with electronics and programming***. - ### Simulator -You can try the user interface on your PC using the LVGL simulator. Just follow these steps: - -1. Install Visual Studio, including the "Desktop development with C++" workload. You can use the free Community edition. -2. Start Visual Studio and open LVGL.Simulator.sln -3. Make sure that the build target is set to x64 and then run the local Windows debugger. +A simulator for running the UI on your local Windows or Linux machine will be released soon. +You can run the simulator in Visual Studio Code with PlatformIO. No need for any other compiler or development environment (no Visual Studio needed). ### Hardware @@ -82,7 +87,9 @@ The [housing and buttons](https://github.com/CoretechR/OMOTE/tree/main/CAD) can ### Software -The remote can be charged and programmed via its USB-C port. Open the [PlatformIO project](https://github.com/CoretechR/OMOTE/tree/main/Platformio) to compile and upload the code to the ESP32. Within the code, you can edit the Wi-Fi settings and the button mapping. OMOTE features a IR-receiver which is not currently implemented in the code. You can still modify the [ESp8266-IRRemote RecvDump example](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/examples/IRrecvDumpV2/IRrecvDumpV2.ino) to read the codes from your TV remote. +The remote can be charged and programmed via its USB-C port. Open the [PlatformIO project](https://github.com/CoretechR/OMOTE/tree/main/Platformio) to compile and upload the code to the ESP32. + +Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/How-to-understand-and-modify-the-software) ## Contributing From 27b50126857882118a454020143304a4bd8c890d Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 15:57:56 +0100 Subject: [PATCH 4/7] Update README.md --- README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/README.md b/README.md index 43701c15..e72025fc 100644 --- a/README.md +++ b/README.md @@ -22,17 +22,6 @@ OMOTE is an ESP32 based open source universal remote. Its capacitive 2.8” touc * Press any button or simply lift the remote to wake it up * Up to 6 months of battery life using a 2000 mAh Li-Po battery -### Dependencies - -* [espressif32](https://github.com/platformio/platform-espressif32)@^6.1.0 -* [lvgl/lvgl](https://github.com/lvgl/lvgl)@^8.3.4 -* [bodmer/TFT_eSPI](https://github.com/Bodmer/TFT_eSPI)@^2.5.23 -* [sparkfun/SparkFun LIS3DH Arduino Library](https://github.com/sparkfun/SparkFun_LIS3DH_Arduino_Library)@^1.0.3 -* [crankyoldgit/IRremoteESP8266](https://github.com/crankyoldgit/IRremoteESP8266)@^2.8.4 -* [adafruit/Adafruit FT6206 Library](https://github.com/adafruit/Adafruit_FT6206_Library)@^1.0.6 -* [knolleary/PubSubClient](https://github.com/knolleary/PubSubClient)@^2.8 -* [Chris--A/Keypad](https://github.com/Chris--A/Keypad) (modified for inverted logic) - ### The state of this Project #### Hardware From adcc8bfee261a457a257a7b4679c312735b986d1 Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 17:20:28 +0100 Subject: [PATCH 5/7] Update README.md --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e72025fc..1abcbb01 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,15 @@ OMOTE is an ESP32 based open source universal remote. Its capacitive 2.8” touc The hardware for OMOTE is designed to be easily replicated, using 3D-printed parts, a 2-layer PCB and commonly available components. The mechanical and PCB design can be considered mostly complete. Still, there might be areas for improvement, for example the IR range could be further optimized. #### Software -The software can be adjusted to your needs. You can add your amplifier, TV and media player. The software is an example made up of an amplifier and TV controlled with infrared, a Fire TV controlled with BLE and some smart home devices controlled with MQTT. +The software can be adjusted to your needs. You can add your own amplifier, TV and media player. Smart home devices can be controlled with MQTT. The software is an example made up of: +* a TV and an amplifier controlled with infrared +* a Fire TV media player controlled with BLE (bluetooth keyboard) +* some smart home devices controlled with MQTT +* an IR receiver for decoding the IR codes from your remote Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/How-to-understand-and-modify-the-software) -You need to have PlatformIO running, and you need to be able to compile and flash your own firmware. There is no prebuild firmware. +You need to have PlatformIO running, and you need to know how to compile and flash your own firmware with PlatformIO. There is no prebuild firmware. As a long term goal, maybe a prebuild firmware will be published, where you can configure your OMOTE via a web interface. @@ -55,7 +59,7 @@ See the [open issues](https://github.com/CoretechR/OMOTE/issues) and [discussion ### Simulator -A simulator for running the UI on your local Windows or Linux machine will be released soon. +A simulator for running the LVGL UI on your local Windows or Linux machine will be released soon. You can run the simulator in Visual Studio Code with PlatformIO. No need for any other compiler or development environment (no Visual Studio needed). ### Hardware From a3eab07ad8029e41b0e845e8260f7e467b3adc92 Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 17:27:10 +0100 Subject: [PATCH 6/7] Update README.md --- README.md | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 1abcbb01..bb9551f1 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ OMOTE is an ESP32 based open source universal remote. Its capacitive 2.8” touc * Press any button or simply lift the remote to wake it up * Up to 6 months of battery life using a 2000 mAh Li-Po battery -### The state of this Project +### The state of this project #### Hardware @@ -39,30 +39,16 @@ Please see the [wiki on how to understand and modify the software.](https://gith You need to have PlatformIO running, and you need to know how to compile and flash your own firmware with PlatformIO. There is no prebuild firmware. -As a long term goal, maybe a prebuild firmware will be published, where you can configure your OMOTE via a web interface. - -### To Do - -Short term goals -- [ ] simulator for creating pages in Windows, WSL2 and Linux -- [ ] scene selector page as start page -- [ ] available gui pages based on the currently active scene. Hide pages not needed in a scene -- [ ] make gui actions context sensitive for the currently active scene - -Long term goals (not yet scheduled) -- [ ] Easier configuration - - [ ] Document the current process of customization - - [ ] Store the configuration in Flash (e.g. as a editable json file) - - [ ] Add an interface for graphically editing the configuration +The remote can be charged and programmed via its USB-C port. Open the [PlatformIO project](https://github.com/CoretechR/OMOTE/tree/main/Platformio) to compile and upload the code to the ESP32. -See the [open issues](https://github.com/CoretechR/OMOTE/issues) and [discussions](https://github.com/CoretechR/OMOTE/discussions) for a full list of proposed features (and known issues). +As a long term goal, maybe a prebuild firmware will be published, where you can configure your OMOTE via a web interface. -### Simulator +### LVGL GUI simulator for Windows and Linux A simulator for running the LVGL UI on your local Windows or Linux machine will be released soon. -You can run the simulator in Visual Studio Code with PlatformIO. No need for any other compiler or development environment (no Visual Studio needed). +You can run the simulator in Visual Studio Code with PlatformIO. No need for any other compiler or development environment (no Visual Studio needed as often done in other LVGL simulators). -### Hardware +### Building the hardware The central component of OMOTE is its PCB. If you want to build the PCB yourself, you will need SMT-reflow tools like a hot plate or a hot-air station. The 2-layered board and a solder paste stencil can be ordered from any PCB manufacturer using the [KiCad files](https://github.com/CoretechR/OMOTE/tree/main/PCB). Manufacturers like OSHPARK or Aisler will accept these files directly. For JLCPCB or PCBWay, you can use their plugin to export the optimized Gerber files. A [zip archive](https://github.com/CoretechR/OMOTE/blob/main/PCB/production/gerber.zip) with theses Gerber files is also included in this repository. @@ -78,11 +64,21 @@ The 2.8" capacitive touchscreen can be sourced from Adafruit ([2770](https://www The [housing and buttons](https://github.com/CoretechR/OMOTE/tree/main/CAD) can be printed using PLA or PETG. I sliced the models with PrusaSlicer with a layer height of 0.25mm and printed them using ColorFabb PETG. It is important that the case part is printed with its flat side towards the print bed using lots of support structures. If your printer is well calibrated, the cover plate will snap onto the case. -### Software +### To Dos for software -The remote can be charged and programmed via its USB-C port. Open the [PlatformIO project](https://github.com/CoretechR/OMOTE/tree/main/Platformio) to compile and upload the code to the ESP32. +Short term goals +- [ ] simulator for creating pages in Windows, WSL2 and Linux +- [ ] scene selector page as start page +- [ ] available gui pages based on the currently active scene. Hide pages not needed in a scene +- [ ] make gui actions context sensitive for the currently active scene -Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/How-to-understand-and-modify-the-software) +Long term goals (not yet scheduled) +- [ ] Easier configuration + - [ ] Document the current process of customization + - [ ] Store the configuration in Flash (e.g. as a editable json file) + - [ ] Add an interface for graphically editing the configuration + +See the [open issues](https://github.com/CoretechR/OMOTE/issues) and [discussions](https://github.com/CoretechR/OMOTE/discussions) for a full list of proposed features (and known issues). ## Contributing From e895557a588f95f49f09040ec1115d907779affd Mon Sep 17 00:00:00 2001 From: Klaus Musch Date: Sun, 10 Mar 2024 17:43:21 +0100 Subject: [PATCH 7/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb9551f1..b2dba904 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ The software can be adjusted to your needs. You can add your own amplifier, TV a * some smart home devices controlled with MQTT * an IR receiver for decoding the IR codes from your remote -Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/How-to-understand-and-modify-the-software) +Please see the [wiki on how to understand and modify the software.](https://github.com/CoretechR/OMOTE/wiki/02-How-to-understand-and-modify-the-software) You need to have PlatformIO running, and you need to know how to compile and flash your own firmware with PlatformIO. There is no prebuild firmware.