SVAKOM (SL278K / FATIMA PLUS) not recognized by Intiface Central v3.0.1

Hi! I have a SVAKOM toy (China-market model “Fenxin Plus”, BLE name SL278K, internal model FATIMA PLUS SL278K). It uses the same BLE service structure as other SVAKOM devices (FFE0/FFE1/FFE2 + AE00/AE01/AE02), but does not respond to any known SVAKOM command formats.

What I’ve tested via Python (bleak) and LightBlue:

  • Classic SVAKOM (55 03 00 …) on FFE1 → device ACKs with 55 ff 04 00 00 00 00 but no motor activation
  • Ella format (55 04 03 00 …) on FFE1 → same ACK, no activation
  • Sam Neo format (12 01 03 00 …) on AE01 → no response at all
  • FFE2 sends heartbeat 55 AA every ~200ms confirming connection is alive
  • The official SVAKOM PLUS iOS app controls the toy perfectly

BLE structure (from LightBlue/nRF Connect):

  • Service FFE0: FFE1 (Write Without Response), FFE2 (Read, Notify)
  • Service AE00: AE01 (Write Without Response), AE02 (Notify)
  • Manufacturer Data: Company 0x0032
  • Advertised Service: E0FF
  • Device broadcasts as TWO separate BLE peripherals (dual-motor: internal thrust + external suction)

The 55 ff 04 response to commands suggests the device receives but rejects them, possibly due to a missing authentication/handshake step that the SVAKOM app performs after connecting.

Has anyone encountered newer SVAKOM models that require initialization before accepting control commands? Any pointers on the auth protocol would be hugely appreciated. Happy to help test and document.

Thanks!

There’s reports that some Erica’s need “something” but we’ve yet to work out what.

Got a link to the toy?

As far as helping out, a Bluetooth snoop log of the device connecting then being controlled via the presets (in the Svakom app), would be handy. See Honeywell SPS Community

Hi, just dug into the latest SVAKOM APK (4.1.0, com.sva.sva, versionCode 125)
and Fatima Plus / SL278K is actually fully there. A couple of things might
explain why Intiface Central doesn’t see it:

  1. SL278K is TWO BLE peripherals, not one:

    • productCode 128 → SL278K_V (main body: stretch + vibrate)
    • productCode 129 → SL278K_S (external sucker)
      Each has its own MAC address. Intiface may only be matching one of them,
      or none, depending on the advertised name.
  2. The APP sends an init handshake ~240ms after connecting, before any
    control commands work. Without this, the device often stays unresponsive
    even after a successful GATT connection:

    write to 0000ffe1-0000-1000-8000-00805f9b34fb:
    55 04 00 00 01 FF AA
    55 04 00 00 00 00 AA
    55 04 00 00 00 00 AA
    55 03 00 00 00 00 00

  3. Service / characteristics are the standard SVAKOM ones:
    service: 0000ffe0-…
    write: 0000ffe1-…
    notify: 0000ffe2-…

  4. Control commands (from getModeBytes()):
    VIBRATE: 55 03 00 00 [mode] [strength] 00 (10 modes, strength 1-10)
    STRETCH: 55 08 00 00 [mode] [strength] 00 (7 modes, on SL278K_V)
    SUCK: 55 09 00 00 [mode] [strength] 00 (5 modes, on SL278K_S)
    HEAT ON: 55 05 01 37 [idx] 00 00
    HEAT OFF: 55 05 00 00 [idx] 00 00

If anyone has Fatima Plus on hand and is willing to test with bleak directly
(scan → connect to one of the two MACs → send the init sequence → then
control commands), it would confirm whether the protocol matches the APK or
diverged on this specific SKU. Would be useful to know before adding it to
Buttplug’s device config.