Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sweep: Make cmatrix compatible with M5Stack CardPuter #4

Open
8 tasks done
vs4vijay opened this issue Feb 6, 2024 · 2 comments
Open
8 tasks done

Sweep: Make cmatrix compatible with M5Stack CardPuter #4

vs4vijay opened this issue Feb 6, 2024 · 2 comments
Labels

Comments

@vs4vijay
Copy link
Owner

vs4vijay commented Feb 6, 2024

Details

Sweep: Make cmatrix compatible with M5Stack CardPuter

and use following Github Actions CI to generate firmware binary for flashing:

      - name: Build using esp-idf
        uses: espressif/esp-idf-ci-action@v1
        with:
          esp_idf_version: v4.4.6
          target: esp32s3
Checklist
  • Create esp32/main.c5352921 Edit
  • Running GitHub Actions for esp32/main.cEdit
  • Create esp32/CMakeLists.txtc7cd4ca Edit
  • Running GitHub Actions for esp32/CMakeLists.txtEdit
  • Modify README.md627d10a Edit
  • Running GitHub Actions for README.mdEdit
  • Create .github/workflows/esp-idf-build.ymlb498ab5 Edit
  • Running GitHub Actions for .github/workflows/esp-idf-build.ymlEdit
@vs4vijay vs4vijay added the sweep label Feb 6, 2024
Copy link

sweep-ai bot commented Feb 6, 2024

🚀 Here's the PR! #6

See Sweep's progress at the progress dashboard!
Sweep Basic Tier: I'm using GPT-4. You have 2 GPT-4 tickets left for the month and 2 for the day. (tracking ID: bdb960a382)

For more GPT-4 tickets, visit our payment portal. For a one week free trial, try Sweep Pro (unlimited GPT-4 tickets).

Tip

I'll email you at vs4vijay@gmail.com when I complete this pull request!


Actions (click)

  • ↻ Restart Sweep

GitHub Actions✓

Here are the GitHub Actions logs prior to making any changes:

Sandbox logs for 72cb775
Checking README.md for syntax errors... ✅ README.md has no syntax errors! 1/1 ✓
Checking README.md for syntax errors...
✅ README.md has no syntax errors!

Sandbox passed on the latest master, so sandbox checks will be enabled for this issue.


Step 1: 🔎 Searching

I found the following snippets in your repository. I will now analyze these snippets and come up with a plan.

Some code snippets I think are relevant in decreasing order of relevance (click to expand). If some file is missing from here, you can mention the path in the ticket description.

cmatrix/README.md

Lines 1 to 174 in 72cb775

<h1 align="center">CMatrix</h1>
<h3 align="center"> Matrix like effect in your terminal </h3>
</p>
<p align="center">
<a href="https://travis-ci.org/abishekvashok/cmatrix">
<img src="https://travis-ci.org/abishekvashok/cmatrix.svg?branch=master">
</a>
<a href="./COPYING">
<img src="https://img.shields.io/github/license/abishekvashok/cmatrix?color=blue">
</a>
<img src="https://img.shields.io/badge/contributions-welcome-orange">
<a href="https://github.com/abishekvashok/cmatrix/stargazers">
<img src="https://img.shields.io/github/stars/abishekvashok/cmatrix">
</a>
<a href="https://github.com/abishekvashok/cmatrix/network">
<img src="https://img.shields.io/github/forks/abishekvashok/cmatrix">
</a>
</p>
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## Contents
- [Overview](#overview)
- [Build Dependencies](#build-dependencies)
- [Building and Installation](#building-and-installing-cmatrix)
- [Using configure (recommended)](#using-configure-(recommended-for-most-linux%2Fmingw-users))
- [Using CMake](#using-cmake)
- [Usage](#usage)
- [Captures](#captures)
- [Screenshots](#screenshots)
- [Screencasts](#screencasts)
- [Maintainer](#maintainers)
- [Contributors](#our-contributors)
- [Contribution Guide](#contribution-guide)
- [License](#license)
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :cloud: Overview
CMatrix is based on the screensaver from The Matrix website. It shows text
flying in and out in a terminal like as seen in "The Matrix" movie. It can
scroll lines all at the same rate or asynchronously and at a user-defined
speed.
CMAtrix is inspired from 'The Matrix' movie. If you haven’t seen this movie and you are a fan of computers or sci-fi in general, go see this movie!!!
> :grey_exclamation:`Disclaimer` : We are in no way affiliated in any way with the movie "The Matrix", "Warner Bros" nor
any of its affiliates in any way, just fans.
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :open_file_folder: Build Dependencies
You'll probably need a decent ncurses library to get this to work. On Windows, using mingw-w64-ncurses is recommended (PDCurses will also work, but it does not support colors or bold text).
<br>
##### :small_blue_diamond: For Linux<br>
Run this command to check the version of ncurses.
```
ldconfig -p | grep ncurses
```
If you get no output then you need to install ncurses. Click below to install ncurses in Linux.
- [ncurses](https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/)
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :floppy_disk: Building and installing cmatrix
To install cmatrix, Clone this repo in your local system and use either of the following methods from within the cmatrix directory.
#### :small_blue_diamond: Using `configure` (recommended for most linux/mingw users)
```sh
autoreconf -i # skip if using released tarball
./configure
make
make install
```
#### :small_blue_diamond: Using CMake
Here we also show an out-of-source build in the sub directory "build".
(Doesn't work on Windows, for now).
```sh
mkdir -p build
cd build
# to install to "/usr/local"
cmake ..
# OR
# to install to "/usr"
#cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make
make install
```
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :bookmark_tabs: Usage
After you have installed **cmatrix** just type the command `cmatrix` to run it :)
```sh
cmatrix
```
Run with different arguments to get different effects.
```sh
cmatrix [-abBflohnsmVx] [-u update] [-C color]
```
Example:
```sh
cmatrix -ba -u 2 -C red
```
For more options and **help** run `cmatrix -h` <br>OR<br> Read Manual Page by running command `man cmatrix`
_To get the program to look most like the movie, use `cmatrix -lba`_
_To get the program to look most like the Win/Mac screensaver, use `cmatrix -ol`_
> :round_pushpin: _Note: cmatrix is probably not particularly portable or efficient, but it won't hog
**too** much CPU time._
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :camera: Captures
#### :small_blue_diamond: Screenshots
<!-- ![Special Font & bold](data/img/capture_bold_font.png?raw=true "cmatrix -bx") -->
<p align="center">
<img src="./data/img/capture_bold_font.png" alt="cmatrix screenshot">
</p>
#### :small_blue_diamond: Screencasts
<!-- ![Movie-Like Cast](data/img/capture_orig.gif?raw=true "cmatrix -xba") -->
<p align="center">
<img src="./data/img/capture_orig.gif" alt="cmatrix screencast">
</p>
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
## :zap: Maintainers
-**Abishek V Ashok** [Core] - <abishekvashok@gmail.com><br>
<p align="center">
<a href="https://twitter.com/abishekvashok">
<img src="https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white">
</a>
<a href="https://github.com/abishekvashok">
<img src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white">
</a>
</p>
## :busts_in_silhouette: Our Contributors
#### :small_orange_diamond: Thanks to
-**Chris Allegretta** <chrisa@asty.org> for writing cmatrix up in a fortnight and giving us
the responsibility to further improve it.
-**Krisjon Hanson** and **Bjoern Ganslandt** for helping with bold support and
Bjoern again for the cursor removal code, helping with the `-u` and `-l`
modes/flags, and Makefile improvements.
-**Adam Gurno** for multi-color support.
-**Garrick West** for debian consolefont dir support.
-**Nemo** for design thoughts and continuous help and support.
-**John Donahue** for helping with transparent term support
-**Ben Esacove** for Redhat 6 compatibility w/matrix.psf.gz
-**jwz** for the xmatrix module to xscreensaver at http://www.jwz.org/xscreensaver.
- Chris Allegretta's girlfriend **Amy** for not killing him when he stayed up till 3 AM
writing code.
-**Sumit Kumar Soni** for beautifying the README.
- The makers of the Matrix for one kickass movie!
- ➤ Everyone who has sent (and who will send) us and Chris mails regarding
bugs, comments, patches or just a simple hello.
- ➤ Everyone who has contributed to the project by opening issues and PRs on the github repository.
![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)


Step 2: ⌨️ Coding

Create esp32/main.c with contents:
• Create a new file `esp32/main.c` which will serve as the entry point for the cmatrix application on the ESP32 platform. This file will include the main function that initializes the hardware, sets up the display, and starts the cmatrix effect.
• Include necessary ESP-IDF headers for GPIO, SPI, and display control.
• Implement a basic loop that simulates the cmatrix effect using the M5Stack CardPuter's display APIs.
  • Running GitHub Actions for esp32/main.cEdit
Check esp32/main.c with contents:

Ran GitHub Actions for 5352921e33a27ec18555957379e6defde17b062f:

Create esp32/CMakeLists.txt with contents:
• Create a new file `esp32/CMakeLists.txt` to define the build configurations for the ESP32 platform using CMake, which is supported by the ESP-IDF framework.
• Specify the project name, ESP-IDF components required (e.g., freertos, esp32, spi_flash), and the source files (`main.c`).
• Include instructions to set the target chip to ESP32-S3 and any other specific build flags required for the M5Stack CardPuter.
  • Running GitHub Actions for esp32/CMakeLists.txtEdit
Check esp32/CMakeLists.txt with contents:

Ran GitHub Actions for c7cd4ca5a8ae827091fef414d355482e3d0086f5:

Modify README.md with contents:
• Add a new section in the README.md file under the "Building and installing cmatrix" section, titled "Building for M5Stack CardPuter (ESP32)".
• Provide instructions on how to set up the ESP-IDF environment, clone the cmatrix repository, navigate to the `esp32` directory, and use the ESP-IDF build system to compile and flash the firmware to the M5Stack CardPuter.
• Mention the use of the GitHub Actions CI for automated builds and how users can download pre-built firmware binaries.
--- 
+++ 
@@ -76,6 +76,32 @@
 make
 make install
 ```
+
+
+ +![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png) + +## :floppy_disk: Building for M5Stack CardPuter (ESP32) + +To build cmatrix for the M5Stack CardPuter (ESP32), follow these steps: + +1. Set up your ESP-IDF environment by following the instructions available at [the official ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/). + +2. Clone the cmatrix repository: +```sh +git clone https://github.com/abishekvashok/cmatrix.git +cd cmatrix/esp32 +``` + +3. Navigate to the `esp32` directory and use the ESP-IDF build system to compile and flash the firmware: +```sh +idf.py build +idf.py -p (PORT) flash +``` + +For automated builds, we utilize GitHub Actions CI. You can find pre-built firmware binaries for flashing in the "Actions" tab of the GitHub repository. + +
#### :small_blue_diamond: Using CMake Here we also show an out-of-source build in the sub directory "build".
  • Running GitHub Actions for README.mdEdit
Check README.md with contents:

Ran GitHub Actions for 627d10a23eccd2bcec4ff98f6264ebc6b1d79356:

  • Create .github/workflows/esp-idf-build.ymlb498ab5 Edit
Create .github/workflows/esp-idf-build.yml with contents:
• Create a new GitHub Actions workflow file `.github/workflows/esp-idf-build.yml` to automate the build process for the ESP32 target using the ESP-IDF framework.
• Define steps to set up the ESP-IDF environment, check out the repository, navigate to the `esp32` directory, and execute the build commands as specified in the issue description.
• Include steps to archive the build artifacts (firmware binary) and make them available for download from the GitHub Actions run.
  • Running GitHub Actions for .github/workflows/esp-idf-build.ymlEdit
Check .github/workflows/esp-idf-build.yml with contents:

Ran GitHub Actions for b498ab5b3066b92b0e8f667f78b54f32de4358ba:
• build:


Step 3: 🔁 Code Review

I have finished reviewing the code for completeness. I did not find errors for sweep/make_cmatrix_compatible_with_m5stack_car.


🎉 Latest improvements to Sweep:
  • New dashboard launched for real-time tracking of Sweep issues, covering all stages from search to coding.
  • Integration of OpenAI's latest Assistant API for more efficient and reliable code planning and editing, improving speed by 3x.
  • Use the GitHub issues extension for creating Sweep issues directly from your editor.

💡 To recreate the pull request edit the issue title or description. To tweak the pull request, leave a comment on the pull request.Something wrong? Let us know.

This is an automated message generated by Sweep AI.

@vs4vijay
Copy link
Owner Author

vs4vijay commented Feb 6, 2024

Use following steps to make Github Actions CI pipeline to generate the firmware binary:


      - name: Build using esp-idf
        uses: espressif/esp-idf-ci-action@v1
        with:
          esp_idf_version: v4.4.6
          target: esp32s3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant