Bluetooth¶
This page covers how the Create talks to Bluetooth hosts: the five host slots and the keys that pick them, output selection and its hazards, pairing, the BLE v1 to v2 change, the security level, what the keyboard exposes over GATT, link behavior, and what is known about the Speedlink dongle. The one thing to know first: the two halves are bonded to each other and a host sees one keyboard; configuration and firmware updates happen over USB only. The link between the halves is on Split link.
Unless another source is named, MEASURED means measured on the owner's board, with the keyboard firmware and date given beside the tag. Byte strings follow the byte convention. No Bluetooth address is reproduced. Third-party Bluetooth measurements come from the public createflow-dongle project, which describes its subject as "a Naya Create running firmware 0.3.41 in September 2026"1.
At a glance
- One host-facing keyboard: the left half is the central of a bonded pair and the host gets one set of HID reports and one battery level.
- Five host slots on the wire (0-4); NayaFlow's keys reach slots 1-4; the stock pairing combo is Layer 2 + 5 (Layer 2 + Esc in the v1.0.6 manual).
- BLE v2 arrived with 3.35.4 and wiped every host bond on the way.
- The vendor
0x1234service answers reads with65and does nothing else that anyone has found. - Do not press BT_OUT on battery with no host in range: the keyboard froze until power cycled.
One keyboard, two halves¶
The two halves are bonded to each other over Bluetooth LE (the split link) and a host sees one Bluetooth keyboard MEASURED pair tables, 2026-09-01. A third-party central held a single connection and got the keys of the whole keyboard, the touchpad, the dials and the media keys, with one battery level REPORTED1. So a host gets one stream of reports for the whole keyboard INFERRED. Whether the right half advertises to hosts at all is not measured (open questions).
The SoC and radio belong to The keyboard half: our reading of the FCC
exhibits is a Nordic nRF52840 (package code CKAA)
DOC. The Bluetooth SIG listing 311198 ("NAYA TECH/NAYA CREATE", Naya
B.V., qualified 2025-09-19) declares core specification 5.1, lists model NAYA-800-1 with "USB, 2.4G,
BLE three working modes", and references a Zephyr host (QDID 151074) and a Zephyr controller for nRF52
(QDID 150092) DOC2, which points to a Zephyr link layer rather than
Nordic's SoftDevice INFERRED. Marketing says Bluetooth 5.4. The
official registers, checked 2026-09-23, hold exactly three FCC IDs under grantee 2BQ4V (left half,
right half, dongle; final actions 2025-08-26, 2025-08-29 and 2025-09-03, nothing filed since) and the
matching ISED certifications 34320-0825CRL, 34320-0825CRR and 34320-0825DG; each half's filing has a
BLE test report and a separate "2.4G SRD" report (2 Mbps only) under the same FCC ID
DOC34. Whether shipping firmware ever uses that SRD
mode, on the halves or the dongle, is OPEN
(details). Details are on
Regulatory records.
Host slots¶
Five host slots exist on the wire: be/100c reports a profile count of 5, and be/1009 /
be/100a take one data byte below 5 MEASURED 2026-09-10
STATIC6. NayaFlow's keys BT_DEVICE_1-4 select slots 1-4, with the
same numbering the status blob uses (the key records carry one-based arguments). Slot 0 is reachable
only by NayaCore's BT_SELECT_SL (wire record (3, 0)), which NayaFlow never offers; the dongle is the
usual guess for it STATIC6. The vendor's v0.1.0 notes (one-based)
make slots 1-4 user-assignable and reserve "slot 5" for a future BLE dongle; how that maps onto wire
slots 0-4 is open DOC8. The Kickstarter campaign (2023) promised
Bluetooth to "up to five devices", and its FAQ several Bluetooth devices plus one RF device through the
included dongle DOC1213.
| Wire slot | Selected by | Vendor naming | What is known | Evidence |
|---|---|---|---|---|
| 0 | BT_SELECT_SL (3, 0) only (NayaCore; NayaFlow never offers it) |
"slot 5, reserved for a future dongle" is the likely match | never bonded by us; purpose open | STATIC OPEN |
| 1 | BT_DEVICE_1, record (3, 1) |
"Dev. 1" | normal host slot | MEASURED 2026-09-10 |
| 2 | BT_DEVICE_2, (3, 2) |
"Dev. 2" | normal host slot | MEASURED 2026-09-10 |
| 3 | BT_DEVICE_3, (3, 3) |
"Dev. 3" | normal host slot | MEASURED 2026-09-10 |
| 4 | BT_DEVICE_4, (3, 4) |
"Dev. 4" | normal host slot | MEASURED 2026-09-10 |
The active slot persists across a power cycle: after a user pressed BT_DEVICE_1 and power cycled the board, the status still showed slot 1 active MEASURED 3.41.0, 2026-09-10.
BT_NEXT (1, 0) and BT_PREV (2, 0) exist only in NayaCore's table
STATIC6. NayaFlow offers BT_DEVICE_1-4 and BT_CLEAR (0, 0),
which NayaFlow's tooltip says clears the selected slot and starts pairing
DOC7; whether the bond is cleared on the press was not measured. The
select and clear commands be/1009 / be/100a had not been exercised on hardware by us as of
2026-09-10 MEASURED (read side only). The key records are on
Keymap.
Keys and key combos¶
The current manual (v1.1.x, pages 7 and 20) gives these Layer 2 combos; NayaFlow 1.25.1's stock profile agrees, with BT_CLEAR at positions 6 and 73 DOC16 MEASURED stock positions, 2026-09-10. A failed pairing attempt falls back to the previous connection DOC16.
The v1.0.6 manual (the FCC exhibit) pairs differently: its Layer 2 table puts BT Clear on LA1 (the Esc position), "Speedlink" on LA4 and "Connect to Bluetooth" on LB4, while its text says keys 1-5, so pairing there is Layer 2 + Esc. The later manual and the stock profile moved Clear to LG1. Each manual is right for its version; the stock default today is Layer 2 + 5 DOC1716.
| Action | Manual v1.1.x and stock profile | Manual v1.0.6 (FCC exhibit) | Evidence |
|---|---|---|---|
| Select host 1-4 | hold Layer 2 (A5 or H1), press 1-4 (LC1-LF1, "Dev. 1-4") | Layer 2 + 1-5 (text) | DOC |
| Clear slot / enter pairing | Layer 2 + 5 (LG1; "BT Clear" in the table, "enter pairing mode" in the text) | Layer 2 + Esc (LA1, "BT Clear") | DOC |
| Output through USB | Layer 2 + Z (LC4) | Layer 2 + Z | DOC |
| Output through wireless | Layer 2 + Left Shift (LB4, "WL") | LB4 "Connect to Bluetooth" | DOC |
| Speedlink (dongle) | not listed | LA4 "Speedlink" | DOC |
| Power button (Windows) / display sleep (macOS) | Layer 2 + Esc (LA1) | not listed | DOC |
NayaFlow's stock profile puts a full set of connection keys on EACH half's System layer (left positions 2-6, 47 and 48; right 15, 29, 45, 61, 73, 71 and 72): BT_DEVICE_1-4, BT_CLEAR, BT_OUT and USB_DEVICE MEASURED read from a NayaFlow-flashed board, 2026-09-10. Positions are explained on Layout and positions.
Output selection and its hazards¶
Output selection is the 08 record (ZMK &out) with 1 = USB and 2 = wireless; the
keyboard sends to one output at a time. A Bluetooth device key also switches the output: pressing
BT_DEVICE_1 with no bonded host stopped typing over USB
MEASURED 3.41.0, 2026-09-08 and 2026-09-10
DOC16.
Output hazards seen on 3.41.0 MEASURED 2026-09-10, 2026-09-11:
- BT_OUT pressed on battery (USB unplugged, dongle on USB) with no reachable host froze the keyboard, layer switching included, until a power cycle.
- With a host bonded and the cable in, BT_DEVICE_1 then USB left typing stuck until USB was pressed a second time; the configuration ports stayed healthy.
- USB_DEVICE after BT_DEVICE_1 with no host looked like a shut-off (USB stayed enumerated) until both halves were power cycled (open questions).
Pairing and identities¶
The keyboard would not enter Bluetooth pairing while on USB power MEASURED 3.41.0, 2026-09-11. The createflow-dongle project says the same in its own words: keep the keyboard off USB while pairing, because on a cable it sends keystrokes over the cable; on a free slot it advertises openly (also reported by createflow-dongle1).
The address be/1008 returns (the status blob's "local address") is the split-link
identity; a Windows host paired with a different, host-facing identity
MEASURED 3.41.0, 2026-09-11.
BLE v2 arrived with keyboard 3.35.4 (beta 1.18.0, stable 1.19.1): latency down to 7.5 ms
(Apple platforms enforce 15 ms), "stronger host connection security at Level 4", each slot advertising
its own name ("NayaCreate BLE 1", "NayaCreate BLE 2", ...), and every known host removed by the v1 to
v2 update (hosts must forget the old "NayaCreate Left" entry and pair again; some need a Bluetooth
restart). The split link fails until both halves run v2; the update order does not matter
DOC811. NayaFlow 1.25.1 warns CREATE_LEFT_BLE_V1_DETECTED /
CREATE_RIGHT_BLE_V1_DETECTED, and NayaCore runs its ClearBLEDevices operation automatically after an
update that crosses the BLE version ("updated to %2 (above BLE version). Starting ClearBLEDevices
operation.") STATIC67.
be/100f GET BLE FW VERSION answers 00 02 on 3.41.0 on both halves: one data byte, 2 =
BLE v2 MEASURED 3.41.0, 2026-09-07 to 2026-09-17. The whole reply
frame is aa 50 00 00 be 04 10 0f 00 02 1d 04: the 1d after the data byte is the frame checksum,
not a third version byte. On 3.28.7 be/100f
returns no frame at all (the firmware predates it) MEASURED 3.28.7,
2026-09-19. See Command map.
Security level: the vendor's notes claim Level 4 for host connections DOC8. A third-party central with no display or keyboard (Just Works) bonded at encryption level 2 (no MITM protection) on 3.41, so the keyboard does not refuse unauthenticated pairing, and the level a host reaches depends on the host REPORTED1. On our board the bonded Windows slot's security byte in the status blob read 2 MEASURED 3.41.0, 2026-09-11 (also reported by createflow-dongle). The blob is decoded on Split link.
GATT: what the keyboard exposes¶
All of this section comes from third-party reads, with the report map also matched against our own USB capture; no Bluetooth central of ours has read the table, and NayaFlow has no Bluetooth transport. A read-only check from a host that is already bonded settles it (open questions).
GATT services and handles, listed after encryption on 3.41 by createflow-dongle REPORTED1:
| Service | Handles | Characteristics | Evidence |
|---|---|---|---|
0x1801 Generic Attribute |
0x0001-0x0008 |
standard | REPORTED |
0x1800 Generic Access |
0x0009-0x000f |
standard | REPORTED |
0x180f Battery |
0x0010-0x0013 |
Battery Level 0x2a19, value handle 0x0012, notify |
REPORTED |
0x180a Device Information |
0x0014-0x001a |
not listed by the source | REPORTED |
0x1812 HID over GATT |
0x001b-0x0030 |
report map and reports (below) | REPORTED |
0x1234 vendor |
0x0031-0x0034 |
one characteristic 0x5678 (read, write, notify) and its CCCD |
REPORTED |
There is one Battery Level characteristic for the whole keyboard, with no second one for the
other half REPORTED1; per-half charge is available only over
USB (fe/1006, see Command map). Over USB a half reports only its cell
voltage, and the voltage a full half rests at depends on its firmware: flat on USB for 30 minutes,
3.41.0 halves held about 4.07 to 4.09 V and 3.28.7 halves about 4.19 to 4.21 V
MEASURED owner's boards, 2026-09-26. Which cell and which scale the firmware uses for the
Bluetooth percentage is not known (Power and batteries).
The HID service carries report protocol only: 22 handles leave no room for a Protocol Mode or boot-report characteristic INFERRED (handle arithmetic), and the third-party client finds no boot keyboard report REPORTED1. The 212-byte report map that createflow-dongle reads over Bluetooth (its firmware carries a verbatim copy) is byte-identical to the left half's USB HID report descriptor in our own capture REPORTED1 MEASURED (USB side: owner's board, 3.41.0, 2026-09-11). Trackball and touch input reach a host as report 3. The table decodes that map; each row is in createflow-dongle's copy1 and in our USB descriptor capture of the same date.
| Report id | Kind | Contents | Evidence |
|---|---|---|---|
| 1 | keyboard (input) | 8 modifier bits, 1 reserved byte, 6-key array (0-255) | REPORTED MEASURED (USB descriptor) |
| 1 | keyboard (output) | 5 LED bits + 3 padding bits | REPORTED MEASURED (USB descriptor) |
| 2 | consumer control | six 16-bit usages, 0-4095 | REPORTED MEASURED (USB descriptor) |
| 3 | mouse | 5 buttons, 8-bit relative X and Y, wheel, AC Pan (0x238), AC Zoom (0x22f) |
REPORTED MEASURED (USB descriptor) |
Whether the keyboard acts on the host's lock-key LED output report is not known.
The 0x1234 / 0x5678 pipe: reads return one byte 65 ("e"), writes are accepted, and
nothing is ever notified (createflow-dongle)
REPORTED1. Writing the keyboard's USB configuration
frames to it (GET FW VERSION, addressed to either half) gets no reply, and there is no DFU, SMP or UART
service REPORTED1. So configuration and firmware updates are
USB-only on 3.41.0 INFERRED; "no reply to a configuration frame, no
known use" is safer wording than "dead". NayaFlow 1.25.1 has no Bluetooth transport at all: NayaCore
links Qt SerialPort and no Bluetooth module STATIC6.
Which half the createflow-dongle central connected to is not stated in its findings REPORTED1.
Link behavior¶
On 3.41 the keyboard drops the host link after its idle time (supervision timeout, HCI reason
0x08) and is back about 2 s after a key press; it reconnects by itself after sleep and after a
restart; heavy touchpad use peaked near 130 reports per second with none lost. A host whose bond the
keyboard no longer holds (slot cleared or re-paired) stays connected but gets no keystrokes, and the
keyboard answers "PIN or key missing" REPORTED1.
Modules have no radio of their own: they link through the dock contacts, and their gestures reach a Bluetooth host as ordinary HID reports through the keyboard. The vendor said on Reddit (2023-06-06; archived text, the permalink could not be verified live) that a module hot-swap does not drop host connections because the half's small cell carries it through; the current manual says the same of the internal cell DOC16. See Module fields for what the host receives.
The Speedlink dongle¶
The vendor's v1.0.6 manual lists a "Speedlink Dongle (Wireless dongle, NAYA-100-1)" in the
box and "Speedlink Connection: Using Bluetooth v5.4" DOC17. The
dongle has no manual of its own: its FCC "user manual" exhibits are the right-half manual v1.0.6, which
adds "Ensure the speedlink dongle is properly seated" DOC5. Its
regulatory record describes the radio differently: the dongle's SAR report (R00, 2025-08-12, hardware
B0K17_Dongle_20241106_V01) names only a "2.4G SRD" radio at 2 Mbps, one antenna at the cap end and no
simultaneous transmission; FCC ID 2BQ4V0825DG (granted 2025-09-03), ISED 34320-0825DG (2025-09-08)
DOC53. Which link protocol "2.4G SRD" is (BLE at 2 Mbps
or a vendor 2.4 GHz mode) is not stated in the filings, for the dongle or for the halves, which carry
the same mode beside BLE; whether shipping firmware ever uses it is
OPEN (open questions); in 2023 the vendor said it was exploring Nordic's
low-latency packet mode (LLPM) DOC14. The Kickstarter campaign called
it an "RF dongle", and update 15 moved it from a planned USB-C receiver to USB-A
DOC1215. NayaFlow 0.1.0 named its action "Connect via
Speedlink" (RF_DEVICE) STATIC10. The left half answers
be/100d with a stored dongle address MEASURED 3.41.0, 2026-09-11.
No vendor text we have read says a dongle mode ever shipped, and a relayed vendor statement (early
2026, through the createflow-dongle project) called it "not yet active"
REPORTED1; that statement cannot be checked. NayaFlow 1.21.0
and 1.25.1 carry dongle strings and a Naya_DeviceDongle class but no dongle firmware
STATIC69. NayaCore fixed a dongle-caused hang (5.8.1) and
crash (6.11.0) DOC8. Whether the dongle bridges a battery-powered
keyboard is open: our test froze on BT_OUT (above)
MEASURED 2026-09-11 (open questions).
USB details are on USB and hardware on Speedlink dongle.
createflow-dongle (Apache-2.0, third party) turns an nRF52840 USB stick into a BLE-central, HID-over-GATT-client bridge that presents the keyboard's own report map over USB; it pairs on an ordinary user slot (1-4). It is the source of the third-party measurements on this page DOC1.
Host software and vendor claims¶
Host software history around Bluetooth: NayaFlow 1.18.0 / 1.19.x added a Connection Settings tab, a device status in the top bar, a split-connection warning and a "Clear BLE Devices" button ("forces Create to forget all Bluetooth connections"; the host may need to forget the keyboard too). NayaCore 6.4.0 added BLE v2 support and Clear BLE Devices; 6.9.2 fixed a pairing workflow that could fail silently; 6.11.0 added pairing error codes, target selection and a post-update BLE version check DOC118.
Vendor host claims: BLE v2 is reliable across Debian Linux, Windows, macOS, iPadOS, iOS and Android DOC8; the Kickstarter FAQ (2023, live) lists device support for macOS, Windows, Linux, iPadOS, iOS, Android and ChromeOS, and a 2024 vendor Reddit answer repeats the list (archived text, not live-verified) DOC13.
Bluetooth problems¶
| Symptom | Cause | Fix | Evidence |
|---|---|---|---|
| Keyboard frozen, layers too, after BT_OUT on battery | no reachable host in wireless output | power cycle; avoid BT_OUT on battery | MEASURED 2026-09-11 |
| Typing stuck after BT_DEVICE_1 then USB | output switching with a bonded host and the cable in | press USB (Layer 2 + Z) again | MEASURED 2026-09-10 |
| Keyboard looks off after USB_DEVICE, USB still enumerated | selected a Bluetooth slot with no host first | power cycle both halves | MEASURED 2026-09-10 |
| Will not enter pairing | on USB power | unplug and pair on battery, on a free slot | MEASURED 2026-09-11 |
| Old host cannot reconnect after an update to 3.35.4 or later | the v1 to v2 update removed every bond | forget "NayaCreate Left" on the host, pair again; restart Bluetooth if needed | DOC |
| Split link dead after updating one half across 3.35.4 | only one half on BLE v2 | update the other half | DOC |
| Host connected but no keys, "PIN or key missing" | the keyboard no longer holds that host's bond | forget and pair again | REPORTED |
| Host link drops when idle | supervision timeout after the idle time | press a key; back in about 2 s | REPORTED |
Commands that touch Bluetooth¶
The be family (pair address, unpair, slots, dongle address, status, clear split links) is listed on
Command map; the status blob and the pairing repair are on
Split link.
Safety notes¶
Commands and keys that drop bonds or freeze the keyboard
- Do not press BT_OUT (Layer 2 + Left Shift) on battery with no host in range: the keyboard froze until power cycled (measured 3.41.0, 2026-09-11).
- The firmware step from BLE v1 to v2 (to 3.35.4 or later) wipes every host bond.
be/1004UNPAIR ALL andbe/100aCLEAR BLE PROFILE drop bonds, andbe/1004also drops the split link. Read Split link before using either; neither has been used by us outside the pairing repair.
Open questions¶
- OPEN What wire slot 0 is for, and how it relates to the vendor's "slot 5" (details).
- OPEN Whether BT_CLEAR clears the bond on press; whether the right half advertises to hosts (details).
- OPEN The Device Information strings, and whether the keyboard uses the host's lock-key LED report (details).
- OPEN
be/1009/be/100aon hardware (details). - OPEN What USB_DEVICE does after a Bluetooth slot was selected with no host (details).
- OPEN Whether the stock dongle bridges anything, and its protocol address (details); whether shipping firmware ever uses the "2.4G SRD" mode, on the dongle or the halves (details); what the SIG listing's "2.4G" mode refers to (details).
- OPEN USB-side HID boot protocol (details).
Sources¶
-
createflow-dongle,
docs/findings.mdand its firmware sources (third party, Apache-2.0): GATT table, report map, pairing, security level, link behavior, the original dongle. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Bluetooth SIG qualification listing 311198, "NAYA TECH/NAYA CREATE" (Naya B.V., 2025-09-19), with its referenced Zephyr host (QDID 151074) and controller (QDID 150092) listings. ↩
-
FCC Equipment Authorization Search, grantee 2BQ4V, and the ISED Radio Equipment List, company 34320 (both checked 2026-09-23). ↩↩
-
FCC ID 2BQ4V0825CRL (left half), BLE and "2.4G SRD" test reports, fccid.io/2BQ4V0825CRL. ↩
-
FCC ID 2BQ4V0825DG (Speedlink dongle), SAR report R00 and user manual exhibits, fccid.io/2BQ4V0825DG. ↩↩
-
NayaFlow 1.25.1, NayaCore 6.11.0 strings (static reading): Bluetooth action tables, validation messages, ClearBLEDevices, linked Qt modules. ↩↩↩↩↩↩
-
NayaFlow 1.25.1 renderer and flow-bg-server strings (static reading): BT_CLEAR tooltip, BLE v1 warnings. ↩↩
-
create-legacy-firmware, vendor release notes,
changelogs/(v0.1.0, v1.19.1, v1.20.0, v1.25.0). ↩↩↩↩↩↩ -
create-legacy-firmware,
firmware-history/(v1.21.0 and v1.25.1 image sets). ↩ -
NayaFlow 0.1.0, from the create-legacy-firmware release archive, github.com/create-collective/create-legacy-firmware (static reading). ↩
-
Vendor release notes of the beta channel, NayaTech/NayaFlow-beta-releases (1.18.0 and later). ↩↩
-
Kickstarter campaign page, naya-create/naya-create (2023), "Connectivity". ↩↩
-
Kickstarter FAQ, naya-create/naya-create/faqs (read 2026-09-23). ↩↩
-
Kickstarter update 7, 2023-11-07. ↩
-
Kickstarter update 15, 2024-09-03. ↩
-
Naya Create User Manual v1.1.x (pages 7 and 20, key combos; internal cell); see Manuals. ↩↩↩↩↩
-
Naya Create User Manual v1.0.6, FCC ID 2BQ4V0825CRR user manual exhibits (fccid.io/2BQ4V0825CRR). ↩↩