https://www.m-vave.com/productinfo/1431195.html
The M-VAVE SMK-37 PRO is a MIDI keyboard (controller) with a built-in DX7 compatible FM tone generator.
It would be so much more valuable if the firmware would be open source for the community to modify and improve.
Please give information how we can customize firmware. You will sell more. Thanks!
The firmware update file has the extension .fwsc
and contains strings that make it seem probable that it uses a scheme similar or identical to what is described in https://kagaimiq.github.io/jielie/datafmt/newfw.html
So possibly a chip by JieLi Technology is used: https://kagaimiq.github.io/jielie/chips/ is used.
https://github.com/kagaimiq/jielie contains useful information.
git clone https://github.com/kagaimiq/jl-misctools
python3 -m pip install crcmod
python3 jl-misctools/firmware/fwunpack_newfw.py /mnt/c/Users/User/Downloads/*fwsc
#
# /mnt/c/Users/User/Downloads/SMK-37 Pro_012.fwsc
#
--- UFW file ---
chip name: "AC791N"
Firmware base is at @0
Burner size....: 544
VID............: b'0.01'
Flash size.....: $0FF000
FS version.....: 16
Block alignment: 16
Special option.: $FF
PID............: b'AC791N_STORY\xff\xff\xff\xff'
(top) <JLFS Entry @00000020 - 71C8 @000000A0/000000A0 ( 14384/ 14384) - 00/00 / 0 -- "uboot.boot">
(top) <JLFS Entry @00000040 - 70D5 @000038D0/000038D0 ( 699/ 699) - 02/80 / 0 -- "isd_config.ini">
Firmware chipkey from isd_config.ini: 980F
(top) <JLFS Entry @00000060 - FFFF @00004000/00004000 (4294967295/4294967295) - 81/FF / 0 -- "app_dir_head">
(top) <JLFS Entry @00000080 - FFFF @000FF000/000FF000 ( 4096/ 4096) - 12/01 / 65535 -- "key_mac">
Using chipkey: $980F
(App Area Head) <JLFS Entry @00004000 - BC2A @02000120/00004020 ( 616499/ 616467) - 83/FF / 0 -- "app_area_head">
Entry point address: 0x2000120
(App) <JLFS Entry @00004020 - CB2D @00000120/00004120 ( 615828/ 615828) - 82/FF / 0 -- "app.bin">
(App) <JLFS Entry @00004040 - 2E75 @000966B4/0009A6B4 ( 383/ 383) - 82/FF / 0 -- "cfg_tool.bin">
(App) <JLFS Entry @00004060 - FFFF @0009C000/000A0000 ( 147456/ 147456) - 12/81 / 0 -- "VM">
(App) <JLFS Entry @00004080 - FFFF @00000000/00004000 ( 638976/ 638976) - 92/82 / 0 -- "PRCT">
(App) <JLFS Entry @000040A0 - FFFF @000C0000/000C4000 ( 4096/ 4096) - 92/82 / 0 -- "BTIF">
(App) <JLFS Entry @000040C0 - FFFF @000C1000/000C5000 ( 4096/ 4096) - 92/81 / 0 -- "USRTRIM">
(App) <JLFS Entry @000040E0 - FFFF @000C2000/000C6000 ( 167936/ 167936) - 92/81 / 0 -- "USRFLASH">
(App) <JLFS Entry @00004100 - FFFF @000F4000/000F8000 ( 40960/ 40960) - 92/81 / 1 -- "USR">
(Res) <JLFS Entry @0009A833 - ABBD @00000020/0009A853 ( 2937/ 2905) - 83/FF / 1 -- "cfg">
====> <JLFS Entry @0009A853 - 017D @00000040/0009A873 ( 2873/ 2873) - 82/FF / 1 -- "eq_cfg_hw.bin">
Strings like btstack_lowpwer_deal
possibly suggest https://github.com/Jieli-Tech/fw-AC63_BT_SDK/ (or similar) being used?
Possbly JL_AC79_DevKit V1.0 is the development environment?
https://doc.zh-jieli.com/AC79/zh-cn/master/board_description/board_overview/index.html