Skip to content

Instantly share code, notes, and snippets.

@probonopd
Last active February 2, 2026 16:00
Show Gist options
  • Select an option

  • Save probonopd/18b3ed65a69d0229eb630c47d7e316dc to your computer and use it in GitHub Desktop.

Select an option

Save probonopd/18b3ed65a69d0229eb630c47d7e316dc to your computer and use it in GitHub Desktop.

M-VAVE SMK-37 PRO

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.

Note to manufacturer

Please give information how we can customize firmware. You will sell more. Thanks!

Information gathering

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.

Firmware extraction

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

@sjuswede
Copy link

what is the latest firmware version? my device says 1.05 is installed. I cant find any information about the latest release

The latest version is 1.10, also known as 13 or 17-07-2025.

@bonsembiante
Copy link

bonsembiante commented Feb 2, 2026

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.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment