overdub

smk-37-pro-docs

jonathaslacerda/smk-37-pro-docs · ★ 45

Documentation repository for M-Vave SMK 37 Pro

README from GitHub, Apache-2.0

M-VAVE SMK-37 PRO

About

SMK 37 Pro is a MIDI keyboard master controller with a FM engine sound source compatible with Yamaha DX7 tone generator.

ATTENTION: There are some variations of SMK 37 Pro: SMK 37 Elite, MKE-P37 and Donner Starrykey 37 Play. Inspecting their v15 firmwares, I've found different binaries.

SMK-37 Pro

Documentation repository for M-Vave SMK 37 Pro

Official Docs

Jieli Stuffs

Hardware

  • DAC: Cirruc Logic CS4344-CZZR

    • Multi-bit Delta-Sigma Modulator
    • 24-bit Conversion
    • Automatic Sample Rate up to 192 kHz
    • 105 dB Dynamic Range
    • -90 dB THD+N
    • Low Clock-Jitter Sensitivity
    • Single +3.3 or +5 V Power Supply
    • Filtered Line-Level Outputs
    • On-Chip Digital De-emphasis
    • Popguard Technology
    • Small 10-pin TSSOP Package
  • Li-Ion Battery Charger: AIP4056 -> TP4056

    • Programmable Charge Current Up to 1000mA
    • No MOSFET, Sense Resistor or Blocking Diode Required
    • Complete single-cell linear Li-Ion battery charger in ESOP8/EMSOP8 Package
    • Constant-Current/Constant-Voltage operation with thermal regulation
    • Preset 4.2V Charge Voltage with 1% Accuracy
    • Automatic Recharge
    • Automatic End-of-charge control
    • UVLO
    • Two Charge Status Output Pins
    • C/10 Charge Termination
    • 55uA Charge Current in Standby Mode
    • 2.9V Trickle Charge Threshold
    • Soft-Start Limits Inrush Current
    • 8-Lead ESOP /EMSOP Package
  • SoC JieLi C108221-11B8 (LarsLinux93)

  • SoC JieLi AC7911B8 (EdCo)

    • Documentation: https://doc.zh-jieli.com/AC79/zh-cn/release_v1.2.0/
    • SDK: https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK | https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK
    • https://kagaimiq.github.io/jielie/chips/
    • Datasheet
    • Datasheet Mirror 2
    • Chip Package: QFN48 (bonsembiante), same the ones present in M-Vave Mini Universe and Elemental (labeled as C094524-11B8)
    • 32-bit RISC CPU
      • Double core RISC 32-bit CPU(Support FPU)
      • 24KB D-Cache 6 way, 32KB I-Cache 8way
      • DC-320MHz operation
      • 128 Vectored interrupts
      • Four Levels interrupt priority
    • 8Mbit Flash
    • Bootloader: Bootloader wl82
    • Image Signal Processor
      • Support DVP and BT656 interface timing
      • Support YUV422 format (Input)
      • Support YUV422 and YUV420 format (Output)
      • Support 720p@30fps input size
    • Flexible I/O
      • 28 GPIO pins
      • All GPIO pins can be programmable as input
      • or output individually
      • All GPIO pins are internal pull-up/pull-down selectable individually
      • CMOS/TTL level Schmitt triggered input
      • External wake up/interrupt on all GPIOs
    • Peripheral Feature
      • FUSB 1.1 OTG controller
      • Audio interface supports IIS, left adjusted,
      • right adjusted and DSP mode
      • Multi-function 32-bit timers, support capture and PWM mode
      • 16-bit PWM generator for motor driving
      • Three full-duplex advanced UART
      • Three SPI interface supports host and device mode
      • Two SD Card Host controller
      • One IIC interface supports host and device mode
      • One SPDIF receiving interface without analog amplify
      • Quadrate decoder
      • Watchdog
      • One Crystal Oscillator
      • One channel 16-bit DAC with headphone amplifier
      • Four channels Audio 16-bit ADC
      • Four channels MIC amplifier
      • Four channels analog MUX
      • Ten channels 10-bit ADC
      • Power-on reset
      • Embedded PMU support low power mode
    • Bluetooth Feature
      • CMOS single-chip fully-integrated radio and baseband
      • Compliant with Bluetooth V5.0+BR+EDR+
      • BLE specification
      • Bluetooth Piconet and Scatternet support
      • Meet class2 and class3 transmitting power requirement
      • Support GFSK and π/4 DQPSK all paket types
      • Provides +15dbm transmitting power
      • Receiver with -93dBm sensitivity
      • Support a2dp\avctp\avdtp\avrcp\hfp\spp\smp\att\gap\gatt\rfcomm\sdp\l2cap profile
    • WIFI Feature
      • Support all mandatory IEEE 802.11b data rates of 1, 2, 5.5 and 11 Mbps, all 802.11g payload data rates of 6, 9, 12, 18, 24, 36, 48 and 54 Mbps, as well as 802.11n MCS0~MCS7, MCS32, 20MHz/40MHz BW, 800ns and 400ns guard interval.
      • Support advanced 1x1 802.11n features:
        • Full / Half Guard Interval
        • Frame Aggregation
        • Reduced Inter-frame Space (RIFS)
        • Space Time Block Coding (STBC)
        • Greenfield mode
      • Support WEP/WPA-PSK(TKIP/CCMP)/WPA2-PSCK/AES256/AES128/SHA256/SHA128
      • Support apply to AP/STA
      • Transmitter power:
        • DSSS 1M/S 17 dBm
        • MCS0 16 dBm
        • MCS7 13 dBm
      • Receiver sensitivity:
        • DSSS 1M/S -95 dBm
        • MCS0 -92 dBm
        • MCS7 -74 dBm
      • Packages
        • QFN48(6mm*6mm)
      • Temperature
        • Operating temperature: -40℃ to +85℃
        • Storage temperature: -65℃ to +150℃

Specifications

  • Five colors available: White, Black, Pink, Red and Full Black
  • 37 Keys with velocity-sensitive
  • 16 RGB backlight pads with velocity and aftertouch
  • 1.54" LCD Display
  • Pitch and modulation wheels
  • Eight 360-degree rotary encoders
  • Four faders
  • Step sequencer, smart chord, arpeggiator and note repeat function
  • MIDI TRS Out Type A
  • MIDI and Audio interface over USB C
  • Stereo audio output (TRS)
  • 1x sustain/expression 6.35mm (1/4") Pedal input standard jack
  • MIDI over bluetooth 5.0
  • 2000mAh battery
  • Windows/MacOS/iOS/iPadOS/Android compatible
  • Dimensions: TO-DO
  • In the box: SMK 37 Pro, USB C -> USB A Cable, User manual

Images

Official and web images

Videos

Official Youtube Playlist

Internal Synthesis Engine

*# FM Synth * Six FM Operators, fully compatible with Yamaha DX7 MK1 (with some issues and glitches) * Feedback * 32 algorythm * Mono/Poly * FX: Cutoff, distortion, reverb, delay

  • FX
    • Cutoff, distortion, reverb, delay
  • Polyphony: 12 notes

Software and Apps

SYSEX

SYSEX Page (thanks to Mitch L)

Official Firmware (thanks to probonopd)

Firmware versions

Alternative Firmware (CFW)

Coming soon

Known bugs and errors/issues (to review after v15 FW)

Hacking (Thanks to probonopd)

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.

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">