So, I have this Roccat Vulcan 121 Aimo keyboard, and the other day I used Arduino IDE 2.0.3 to update a sketch on one of my Nano clone boards... I was careless and I wrongfully selected COM1 (because i didn't have the drivers installed for that board and it was the only port available)...
Now, obviously Arduino IDE wasn't able to upload anything. But from that moment, my keyboard is acting strangely.
First, the AIMO Intelligent Lighting was flashing all my keys almost like a strobe. Then, I got random key stickiness (the key would keep spamming, until it snaps out of it).
I tried uninstalling the controller software (Swarm), I deleted drivers, including COM1 drivers and reinstalled, I tried using a recovery tool to restore the Aimo, nothing fixed the issue.
So, I'm trying to figure out if something in keyboard's controller must have been altered, or that's impossible... or, if is a software related issue, what could be done?
Possibly, try to reprogram the keyboard. I would tend to blame the keyboard as there are a lot of Arduinos IDEs that are not causing keyboard problems. What does the keyboard manufacturer say? Here is a link that should help you reset it. https://support.roccat.com/s/article/resetting-your-devices?language=en_US
Thank you @gilshultz . I already tried most of the suggestions on that link, except manually running the recovery tool. I went once more through all, and even switching the USB port on my computer.
I'm not encountering sticky keys so often, but I noticed a random lag accompanied by a sound like when a device gets disconnected. The keys still work, but the volume adjustment knob and any other advanced features won't work (even Shift or Caps Lock won't function) , until I unplug and plug the keyboard back in the USB port...
I'm baffled of what could have happened, or how to fix it...
If you reprogram the keyboard and did not run the offending software again I would at this point assume your keyboard failed. More then likely it was coincidental. I will take a sWAG: Not seeing a schematic or knowing how it was powered, it is also possible some voltage spike came back from your board.
The board is been powered through an MB-102 breadboard adapter, which regulates the voltage. And the sketch was uploaded via a mini-usb cable.
The Arduino is a temperature monitoring circuit and it has a DS18B20 sensor. The circuit is controlling a heating element with an electromagnetic relay.
The REALLY weird thing happening, is the keyboard malfunctions when the relay triggers. And that IS NOT a coincidence, even if it doesn't happen every time when the relay is being actuated. But when it happens, it ONLY happens when the relay changes state.
And to make things even weirder, the Arduino IS NOT connected to the computer, but is in near proximity to the PC and the Keyboard.
Assuming the initial misbehaviour was an unfortunate coincidence, the relay interference is clearly not. However, I'm not really convinced these are coincidences... I'm concerned the controller of the keyboard may have been corrupted in some way when I accidentally pushed that code on COM1. It could be just that it occupied the memory of the controller with some garbage data, and that causes it to malfunction.
If you unplug the keyboard from your computer, does COM1 disappear from the Tools > Port menu in Arduino IDE? I'm asking because COM1 is usually an internal serial port from a controller on your motherboard, not an accessory device. If that is the case on your computer (as opposed to this actually being a port of the keyboard's controller), then there is no chance that the upload to COM1 had anything to do with the problems you are experiencing.
Remember: correlation does not imply causation. It is good to take note of any unusual events that occurred near the time before the problem started, but don't assume the event was the cause unless you have evidence.
@ptillisch I just tested your suggestion now. Indeed, COM1 does NOT disappear when I unplug the keyboard. Moreover, I just double checked in Device Manager, and it is part of the Mainboard internal communications, not peripherals.
Still, the fact remains that when the relay changes state, the keyboard gets confused. Either delays the input (as if it were disconnected), or the key that I was pressing at that moment, gets sticky. This is the true "spooky action at a distance" ... I'm quite shocked that my keyboard being influenced so strongly by parasitic interference.
Calling it a coincidence may be simple and the subject would be closed... but can we be sure it's a coincidence, or the Arduino IDE 2.0.3 actually did something when COM1 was mistakenly selected and I attempted to push a sketch?
Gosh, I hate this overly engineered peripherals... too much can go wrong.
This is something that can be caused by electromagnetic interference (EMI or RFI), and a relay switching can produce EMI. For example, my computer monitor sometimes momentarily blanks out when the compressor switches on my old refridgerator.
I don't see any mechanism by which that could have happened. The upload attempt simply failed without having any persistent effects at all. It happens all the time.
It is a very high probability it is EMI from the relay circuit. Post a simple schematic showing that circuit and what it is switching. What is the cycling rate. Consider that you may simply have an overly sensitive keyboard, can you try another one.