You can build your own firmware using the ESP-IDF framework. However, we will focus on the ESP-IDF framework in this guide.
Important
The version you need to install must be 5.3.1; we cannot guarantee that a more recent version will compile.
- Minino
- ESP-IDF v5.3.1 installed
- Make installed
- pre-commit installed (optional but recommended)
- Clone this repository:
Using HTTPS:
git clone https://github.com/ElectronicCats/Minino.git
Using SSH:
git clone [email protected]:ElectronicCats/Minino.git
- Change to the firmware directory:
cd Minino/firmware
- Set the IDF_PATH environment variable:
get_idf
Note:
get_idf
should be an alias you created if you followed the ESP-IDF installation guide.
- Setup the project environment:
make setup
To build the firmware, run the following command:
make compile
-
Connect your Minino to your computer and identify the port it is connected to. For example,
/dev/ttyUSB0
or/dev/ttyACM0
on Linux,COM1
orCOM2
on Windows, or/dev/cu.usbmodem14401
on macOS. -
Set the PORT to an environment variable, for example:
export PORT=/dev/ttyUSB0
Replace
/dev/ttyUSB0
with the port your Minino is connected to.
- Flash the firmware:
make flash
To monitor the serial output, run the following command:
make monitor
To do all the previous steps in one command, run:
make all
If you you have dependencies issues or want to clean the project, run the following command:
make clean
To create a release, you need to update the firmware version in the menuconfig
. To do this, run:
idf.py menuconfig
Navigate to General project
-> Firmware version
and update the version number.
Get the build files:
./get_build.sh
If you can't run the script, make sure it has the correct permissions:
chmod +x get_build.sh
Note: On Windows, you can run the script using Git Bash.
The build files will be in the build_files.zip
file. Now you can create a release on GitHub and attach the build_files.zip
file.
Table for ESP Tool
Flash Address | File |
---|---|
0x0 | bootloader.bin |
0x8000 | partition-table.bin |
0x15000 | ota_data_initial.bin |
0xa0000 | minino.bin |
python -m esptool --chip esp32c6 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 bootloader.bin 0x8000 partition-table.bin 0x15000 ota_data_initial.bin 0xa0000 minino.bin
Flash Address | File |
---|---|
0x0 | bootloader.bin |
0x8000 | partition-table.bin |
0x20000 | minino.bin |
python -m esptool --chip esp32c6 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 bootloader.bin 0x8000 partition-table.bin 0x20000 minino.bin
BLE_SCAN_FILTER_ALLOW_ALL = 0x0, /*!< Accept all :
1. advertisement packets except directed advertising packets not addressed to this device (default). */
BLE_SCAN_FILTER_ALLOW_ONLY_WLST = 0x1, /*!< Accept only :
1. advertisement packets from devices where the advertiser’s address is in the White list.
2. Directed advertising packets which are not addressed for this device shall be ignored. */
BLE_SCAN_FILTER_ALLOW_UND_RPA_DIR = 0x2, /*!< Accept all :
1. undirected advertisement packets, and
2. directed advertising packets where the initiator address is a resolvable private address, and
3. directed advertising packets addressed to this device. */
BLE_SCAN_FILTER_ALLOW_WLIST_RPA_DIR = 0x3, /*!< Accept all :
1. advertisement packets from devices where the advertiser’s address is in the White list, and
2. directed advertising packets where the initiator address is a resolvable private address, and
3. directed advertising packets addressed to this device.*/