animasi ยท jpeg ยท flash ulang

๐ŸŽž๏ธ Tambah animasi

Animasi Mochi DFPlayer ditanam di firmware. Begini cara menambah klip baru.

๐Ÿง  ESP32-C3 Super Mini๐Ÿ“บ ST7789 1,3" 240ร—240๐ŸŽต DFPlayer Mini๐Ÿ“ฑ Chronos BLEโšก firmware 0.7.1

๐ŸŽž๏ธ Kenapa harus flash ulang?

Semua animasi disimpan sebagai frame JPEG dan ditanam di firmware saat build. Hasilnya tajam dan cepat, tapi tiap animasi baru berarti build + flash ulang. Butuh ganti animasi dari kartu SD tanpa flash? Itu keunggulan Mochi rzmong.

Ruang app 4.128.768 B. Build 0.7.1 memakai 94,7% (termasuk BLE).

๐Ÿงช Langkah

โ„น๏ธ Panduan lengkap langkah demi langkah (GIF, suara di root kartu, musik, Chronos): Animasi & suara.

1
Impor klip ke firmware/assets/builtin/jpeg/<tema>/<nama>.mjpeg + .json:
python tools/import_jpeg_clip.py <tema> <nama> sumber.gif --quality 80
Sumber boleh GIF, folder JPEG/PNG, atau header C. Opsi: --resize, --crop, --step, --hold, --delay.
2
Daftarkan di firmware/assets/meta.json โ†’ "jpeg_clips": ["<tema>", "<nama>", "", <trek>]. Peran: "" biasa, "dizzy" saat goyang, "heart" saat tahan. Trek boleh dikosongkan.
3
Build dan flash: cd firmware && pio run -e esp32-c3-dfplayer -t upload.
4
Lihat nomor trek: python tools/daftar_trek.py. Klip baru mendapat trek 0049 dst.; salin 000N.mp3 ke root setelah 0048.

โ„น๏ธ Klip satu tema selalu dikelompokkan; tema baru masuk di akhir urutan model. "boot_theme" di meta.json menentukan model saat nyala.

๐Ÿ“ฆ Kalau flash penuh

tools/embed_jpeg.py punya anggaran byte (custom_jpeg_budget di platformio.ini, sekarang 3.300.000). Jika klip melebihinya, frame yang nyaris sama dengan frame sebelumnya dipakai ulang, mulai dari yang paling mirip. Jumlah frame dan tempo tetap; file aset tidak diubah.

ANGGARAN: 3427066 B > 3300000 B -> frame nyaris sama (<= 0.3% piksel) dipakai ulang, jadi 3262956 B

Jika tetap tidak muat walau ambang 10%, build berhenti dengan pesan. Kurangi klip, atau naikkan anggaran lalu pastikan app masih muat.

๐Ÿงฐ Alat bantu

cd firmware
python tools/daftar_trek.py                  # tabel model โ†’ trek โ†’ nama file
python tools/daftar_trek.py --sd /media/SD   # cek root 0001-0048, /01 dan sampah macOS

Skrip ini hanya membaca: include/jpeg_clips.h hasil build, atau assets/meta.json jika belum build.