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.
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:
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.
Implementation of the main remote control buttons for some types of devices.
Currently, tests have only been carried out on a Samsung TV. Contributions are welcome to add support for new manufacturers and devices.
POWER
MUTE
VOLUME_UP
VOLUME_DOWN
MENU
CHANNEL_UP
CHANNEL_DOWN
UP
DOWN
LEFT
RIGHT
ENTER
Musics played with beep sounds.
Mario Bros
Crazy Train
Imperial March
Aha Take On Me
Jingle Bells
Star Wars
Nokia Ringtone
The Simpsons
Pacman
DOOM
Shape of You
Game of Thrones
Record your voice and play it back.
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.
This is the absolute easiest way to get Saturn
.bin
files manually with esptool.py
esp-idf
CMD tool (on Windows) - on Mac or Linux, esp-idf.py
and esptool.py
should be in the system path.esptool.py --port COMPORT -b 115200 write_flash -z 0x0 Saturn-VERSION.bin
COM4
, COM11
on Windows. On Mac and Linux it will usually be in /dev
such as /dev/ttyUSB0
, /dev/ttyACM0
or /dev/cu.usbserial-3
Saturn-VERSION.bin
should be a version you downloaded from a GitHub Release -- preferably the latest available.If you want to customize Saturn or contribute to the project, you should be familiar with building Saturn from source.
Tools
-> Partition Scheme
-> No OTA (Large APP)
- sometimes this option is labeled Huge APP
#define
option or compiler errors will occur. # 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
pip install -U esptool
esptool.py --chip esp32s3 merge_bin --output final.bin 0x0000 saturn.ino.bootloader.bin 0x8000 saturn.ino.partitions.bin 0x10000 saturn.ino.bin
esptool
esptool.exe write_flash -z 0 final.bin
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:
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.
dev
branch on your own fork and then use GitHub to sync your develop branch.MAIN_COLOR
, BG_COLOR
, DISPLAY
among others. Also follow the project organization structure.Things I'd like help on:
Directory structure
flowchart
. --> scripts
. --> src
. --> Makefile
. --> saturn.ino
The project is organized as follows:
scripts
: Contains scripts to format the code present in src/infrared.h
and perform some interesting tasks during development.src
: Contains the project's source code, where the things that the .ino
file consumes are implemented.Makefile
: Contains commands that can be used to automate some tasks, such as compiling and uploading firmware to Cardputer.saturn.ino
: Main file of the project, where the main functionalities are called.src
directoryflowchart
src --> infrared.h
src --> language.h
src -->settings.h
The src
directory contains the following files:
infrared.h
: Contains IR codes for the most varied devices.language.h
: Contains the translations of the messages that are displayed on the screen.settings.h
: Contains settings that can be changed by the user, such as the language used in messages, colors, text size, etc.This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
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.