Hello,
A few days back, I bought some NeoKey Trinky! (https://www.adafruit.com/product/5020).
Currently, I'm running a code that will print out a coffee emoji. Sometimes, when I press the key, it will type something else (usually ee or e), not coffee. As a result, it prints out the wrong emoji. It usually happens when I press the key after a long time, and for consecutive strokes, it works fine.
Could you please look at my code and see what's wrong? I'm using the following code example:
https://github.com/adafruit/Adafruit_Le ... le/code.py
And here is the emoji code:
https://github.com/lifeparticle/Adafrui ... ji/code.py
Other info:
macOS Big Sur, Mac mini (M1, 2020)
adafruit-circuitpython-adafruit_neokey_trinkey_m0-en_GB-7.3.2.uf2
Kind regards,
Zaman
Adafruit NeoKey Trinkey
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- FailingTinkerer
- Posts: 14
- Joined: Tue Dec 15, 2020 8:09 am
Re: Adafruit NeoKey Trinkey
I suspect it's the character viewer that needs to be loaded into memory again. Basically, it has nothing to do with your script, but with how your OS handles keeping things in memory.
I suggest building in a 1-2 second delay if the key hasn't been activated for a while.
You can use time.monotic() for this purpose.
https://docs.circuitpython.org/en/lates ... .monotonic
I suggest building in a 1-2 second delay if the key hasn't been activated for a while.
You can use time.monotic() for this purpose.
https://docs.circuitpython.org/en/lates ... .monotonic
- mahbub
- Posts: 3
- Joined: Fri Aug 19, 2022 4:27 am
Re: Adafruit NeoKey Trinkey
Thank you for the explanation. Where in the code should I use the time.monotic() ? Can I use time.sleep instead?
- FailingTinkerer
- Posts: 14
- Joined: Tue Dec 15, 2020 8:09 am
Re: Adafruit NeoKey Trinkey
You could use time.sleep(1) after you send the emojii board shortcut. (ctrl+command+space)
But that would always make it slow. It's worth a shot though to see if that solves the problem. After that you can use monotic to make it faster if it's been recently triggered.
Basically like this:
But that would always make it slow. It's worth a shot though to see if that solves the problem. After that you can use monotic to make it faster if it's been recently triggered.
Basically like this:
Code: Select all
import time
keypressed = 'whateveryour key gpio pin is'
start_time = time.monotonic()
while True:
if keypressed == True:
time_difference = time.monotonic() - start_time
start_time = time.monotonic() # update the start_time to the last time the key was pressed
if time_difference < 2000: # I think 2000 = 2 seconds, not sure. Figure out a time that works with your OS.
#execute recently pressed code
pass
else:
#execute hasn't been triggered in a while code
pass
time.sleep(1)
- mahbub
- Posts: 3
- Joined: Fri Aug 19, 2022 4:27 am
Re: Adafruit NeoKey Trinkey
Thanks for the code example, I'll have a look. Thank you for your time!
Please be positive and constructive with your questions and comments.