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
more information regarding JieLi "C108221-11B8" chip. it's a QFN48 package. these chips are a bit difficult to identify, but there are a few relevant notes here: https://www.reddit.com/r/diyelectronics/comments/1dxwom5/how_to_identify_jieli_jl%CF%80_bluetooth_chips/
it seems to be an AC7911BA, and it seems to be the same that the ones present in M-vave Mini Universe and Elemental with label "C094524-11B8":
Datasheet available here https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8604442319861137408 and here https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8604442319861137408
Usb data plus and data minus seem to be at pins 47 and 48, as told in its datasheet, so it seems that the assumptions are correct.
