Lily58 not sending input to paired phone
I've read through the full setup and troubleshooting guide but nothing has helped.
i've soldered everything, used the default firmware, and progressed without issue, right up to pairing the left side with my phone. It pairs without a problem, but it just will NOT send any text to my phone despite the bluetooth menu recognising the keyboard as an input device. Has anyone encountered this before?
When i plug it into my pc, it inputs text, so i know the keymapping works. When i turn it on by the switch, the pairing happens successfully, but it's STILL sending text to the wired pc instead of bluetooth phone.
I tried powering it by an outlet, thinking maybe the wired connection was overriding the phone, but the behaviour didn't change.
I can't unplug it because it doesn't seem to be receiving power from my battery :/
I couldn't get an official battery because they don't ship to me so i had to source my own. Nothing about them looks broke, but i'm not an electrician.
11 Replies
It sounds like you're experiencing a common issue with the ZMK pairing process and Bluetooth profiles. Here are some steps to troubleshoot the problem:
1. Check Active Profile: Ensure that the profile you are trying to connect to your phone is active. ZMK allows multiple profiles, and if the wrong one is active, it won't send input to your phone. You can switch profiles using the
&bt BT_SEL <profile number>
key. Make sure to check your keymap for the location of this key.
2. Clear Existing Bonds: If there are existing bonds on the keyboard, they may interfere with the connection. Clear the bond for the currently active profile by pressing the &bt BT_CLR
key on your keyboard. Again, check your keymap for its location.
3. Power Switch: Ensure that the power switch is turned on. The nice!nano will not charge the battery if the switch is off, and it may not be receiving power properly.
4. Battery Check: Since you sourced your own battery, double-check the polarity and connections. Make sure the battery is connected correctly and that the wires are not damaged. If possible, test the battery with a multimeter to ensure it is providing the correct voltage.
5. Bluetooth Compatibility: Ensure that your phone supports at least BLE version 4.2, as older versions may not work with your keyboard.
6. Reset Both Halves: If you haven't already, try resetting both halves of the keyboard simultaneously. This can help them find and pair with each other properly.
7. Test with Another Device: If possible, try pairing the keyboard with another device (like a different phone or tablet) to see if the issue persists. This can help determine if the problem lies with the keyboard or the original device.
If you've tried all these steps and the issue persists, it may be worth revisiting the solder joints and connections to ensure everything is secure and properly connectedI have a multimeter, can you tell me what option to turn the dial to and what values i should be expecting?
So, if the keyboard works on your PC, that suggests it does not have any electrical problems that would require a multimeter.
it only works on pc when it is wired, so the battery is circumvented when it's functional
i assume that's how it works anyway
There are two pieces at play that you might need to add/change in your keymap:
1. BT profiles: by default there are 5 profiles. Only one host can pair with any given profile (until/unless you clear that profile on the keyboard), so you will need to use a different profile for your phone than for your PC.
2. ZMK prefers communicating over USB by default, so if the central half of the keyboard is plugged into a USB cable, the firmware may be trying to use that connection for data, even if it is not capable of data.
For point 1, you should include (or find where they are already included)
&bt BT_SEL 0
through BT_SEL 4 for selecting profiles, and BT_CLR and BT_CLR_ALL for clearing profiles.
For point 2, there is a binding you can put in to force ZMK to use a particular communication channel. Lemme find a link.https://zmk.dev/docs/keymaps/behaviors/outputs#examples
Better to use OUT_USB and OUT_BLE on two separate keys rather than the one that toggles. That way you can be positively sure which one you are using.
The central half (left half by default on most boards, including Typeractive's) is the one that does the communication to the host. The two halves always communicate with each other over BLE. The peripheral (right) half only ever uses USB for power, except when in bootloader mode for flashing new firmware or when USB-logging is enabled.
So for your setup, you can plug the right half into any USB port that can provide power. Same for the left half if you force BLE communication with
OUT_BLE
, but it should be plugged into the computer if you want it to send keystrokes via USB 🙂Thanks for the advice. I'll try that
Before i do - would we expect it to work without changing the config if both sides are plugged directly into a power socker (usb adapted)? I just tried that but that didn't work either. I'll try your solution regardless
It is sometimes the case that the firmware cannot tell the difference between a data-capable USB line and a power-only USB line. That is one big reason why the output-selection behaviors exist
Figured it out.
The batteries i bought work fine, but they're wired the wrong way around! I had to snip the plug off them and directly solder them onto the right pins for now, but everything works!!
Thanks for your help
Ah, nice. Yeah, there are two ways to do it, so about half of the places selling batteries do it each way 😹