henriquesebastiao / saturn

Firmware to do cool things with Cardputer.
GNU General Public License v3.0
39 stars 4 forks source link
arduino cardputer esp32 esp32-s3 hardware m5cardputer m5stack m5stack-cardputer stamps3

Saturn Logo

CI Build Version License

Saturn aims to be a simple and functional firmware that implements several functionalities for vulnerability analysis and even simple day-to-day tasks that can be performed with an ESP32.

Typesense Demo

Credits

If you read the source code you will see that it contains many things similar to the Nemo project, this is because many things are borrowed from there. I just added some irrelevant things, changed the color and added rounded corners.

Nemo project: https://github.com/n0xa/m5stick-nemo

Other sources were also borrowed:

IR codes

Sounds

An advance warning

This project is still in its initial phase and is being developed for my own learning, therefore, it may not generate the expected result at some point. The code is still under development and may contain bugs and flaws. If you find something that doesn't seem to be working correctly, don't hesitate to open an issue reporting the error you experienced. I will do my best to help you.

Features

Infrared

Implementation of the main remote control buttons for some types of devices.

Devices supported

Currently, tests have only been carried out on a Samsung TV. Contributions are welcome to add support for new manufacturers and devices.

Buttons implemented

Wi-Fi

Bluetooth

Sounds

Musics played with beep sounds.

Voice Recorder

Record your voice and play it back.

How to install

Saturn has different compilation versions, versions with different languages ​​(pt-BR, en-US) and "silent" versions. The compiled silent versions present in GitHub releases are named with the suffix silent, they do not emit any sound during firmware execution.

Install from M5Burner

This is the absolute easiest way to get Saturn

Install .bin files manually with esptool.py

Building from Source

If you want to customize Saturn or contribute to the project, you should be familiar with building Saturn from source.

Compile it yourself (with Arduino CLI)

# Install m5stack boards
arduino-cli core install m5stack:esp32  --additional-urls https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json --log-level warn --verbose

# Install required library
arduino-cli lib install M5Cardputer --log-level warn --verbose

# Compile
arduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e --build-property build.partitions=huge_app --build-property upload.maximum_size=3145728 ./saturn.ino
esptool.py --chip esp32s3 merge_bin --output final.bin 0x0000 saturn.ino.bootloader.bin 0x8000 saturn.ino.partitions.bin 0x10000 saturn.ino.bin
esptool.exe write_flash -z 0 final.bin

Reporting Bugs

Please report bugs via GitHub Issues. These are easier to track than comments on social media posts, comments on M5Burner, etc. If something isn't working, please include:

Contributing

If you want to contribute to this project, you can open a pull request with the changes you made. I will be happy to review your code and merge it into the main branch if it is in accordance with the project's objectives.

Things I'd like help on:

How the project is organized?

Directory structure

flowchart
    . --> scripts
    . --> src
    . --> Makefile
    . --> saturn.ino

The project is organized as follows:

src directory

flowchart
    src --> infrared.h
    src --> language.h
    src -->settings.h

The src directory contains the following files:

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Disclaimer

The functionalities present in this firmware are for educational purposes only, being tested only in controlled and isolated environments. The maintainers are not responsible for any misuse of this tool.