Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem on Suspend/Wakeup from keyboard #386

Closed
tmk opened this issue Sep 23, 2016 · 5 comments
Closed

Problem on Suspend/Wakeup from keyboard #386

tmk opened this issue Sep 23, 2016 · 5 comments
Labels

Comments

@tmk
Copy link
Owner

tmk commented Sep 23, 2016

It sometime works but sometime not. Iffy.

@tmk
Copy link
Owner Author

tmk commented Sep 27, 2016

After test with HHKB controller with ATmega32u4 it doesn't seem to have problem.

tmk added a commit that referenced this issue Oct 4, 2016
@tmk
Copy link
Owner Author

tmk commented Oct 5, 2016

PS/2 converter with ps2_interrupt.c(PS2_USE_INT) had problem on handling signal when suspended. In suspend state microcontroller falls into power down mode for 15ms until it checks keyboard for wakeup condition(keypress by user). During the 15ms sleep it can miss signals or get wrong scan codes from keyboard and internal states of converter are corrupted.

WORKAROUND: Instead of power down, PS/2 converter uses standby mode now with SUSPEND_MODE_STANDBY. In standby mode it can wake by pin change interrupt(INT1) and no longer miss signal from keyboard.

With ps2_busywait.c converter inhibits to send signal until it is ready to handle, so the problem above won't occur. ADB and M0110 also won't suffer from this probably because they send codes only when requested.(not confrimed)

With ps2_usart.c converter will have the problem. To solve it the converter will have to inhibit keyboard to send during microcontroller sleeps.

ANOTHER WORKAROUND:
If power saving is not important you can keep microcontroller running even when suspended so that converter shouldn't miss signals. Keyboard connected to converter won't sleep basically and vintage keyboards keep drawing much current all the time. No power saving of microcontroller is actually useless there.

@tmk tmk changed the title Problem on Sleep/Wake/Wakeup from keyboard Problem on Suspend/Wakeup from keyboard Oct 5, 2016
@tmk
Copy link
Owner Author

tmk commented Oct 19, 2016

Problem during suspended with converters were solved.
With this commits PS/2 converter should work. it uses SUSPEND_MODE_STANDBY instead of power down mode.
9818d54
1a7d1f9

Also Alps64 with ATmega32u2 works now.
https://geekhack.org/index.php?topic=69740.msg2277498#msg2277498

Now there is no perceived problem on suspend and resume, but keep this open for future problem report.

@tmk tmk removed the TODO label Oct 19, 2016
tmk added a commit that referenced this issue Dec 10, 2016
e5f9940 Merge commit '1bc3dd200b023cecf063a0cb3ba347f77f6d759d' into core_update
da03c50 Add note for L/R side bit being ignored
e80f3c1 Add in basic documentation for Macro system
35e8a76 core: Swap position of PEQL and PENT in unimap
00751f1 Merge pull request #406 from 39aldo39/patch-1
e50d7de V-USB remote wakeup
4340997 core: Fix typo in definition AC_g
958144d core: Debug print for system and consumer keys
e7e1030 core: Fix sleep_led
0866323 core: Change matrix_init and matrix_print
0dbf73d core: Add matrix_clear() and default impl.
3202ca3 core: Add suspend mode options
4cda3aa core: Fix suspend/wake for converters #386
4e15247 core: LUFA_DEBUG_SUART for serial debug
b9cf8e7 core: Fix mechanical locking supoort #390
12aa0fd Merge branch 'nemith-master'
fccb3fa core: Fix OPT_DEFS for mbed build
2e2d2c8 Merge branch 'master' of github.com:leizzer/tmk_keyboard
f1d3634 Change .gitignore for ChibiOS
3aab802 core: Fix build config in protocol.mk
5e43da0 core: Add short names in unimap
7a56998 core: Fix dfu wait in rules.mk
6d9c500 Merge branch 'mediakey-fix'
08382ac core: Fix 'make dfu' message
78cb04e Fix OS X Recognizing keyboard as Mouse/Tablet
a114714 core: 'make dfu' waits for bootloader to start
d0a8f13 core: Fix unimap UNIMAP_NO case
e17abef core: Change lufa NKRO report size 16 to 32 bytes
375b20f core: Fix common.mk for build options
394fdff core: Fix unimap layout comment
912326c core: Add unimap support
00f4011 core: Fix doc/keymap.md for new keymap framework
ddbd7b4 core: Add default implemenation of keymap read
671cacc core: action codes are action_t struct now
b4fdb27 core: Change chibios repo directory names
7daed10 core: Fix keycode.txt
90399d7 core: Fix USB remote wakeup on ATmega32U2 #361
3677e84 usb_usb: Add multiple keyboard support
54d5b26 core: Fix Logical Maximum in report descriptor
bd0d372 core: Fix LUFA report descriptor
95327b5 Merge pull request #355 from papodaca/XT
62bf548 core: change API of adb.c to accept device address
3097c9e Fix function name in host.h
836e209 Merge branch 'core_split_160522'
3918ea2 Merge commit '20b787fc1284176834cbe7ca2134e4b36bec5828'
7f87b11 core: Add comment of register 3 of ADB
ef6478a core: Add adb_host_talk()
5c665b4 update macro names in bluefruit
4f2c5bf Merge commit '71381457fa1311dfa0b58ba882a96db740640871'
53a9c08 Merge pull request #321 from njbair/master
f08a656 core: Fix media/consumer keys
d526de8 Clean up wording in keymap example
0bb3dbb Clarify layer precedence
d915c75 clarify layer documentation
72070d4 ps2_usb: Fix for VUSB configuration
170e2dc Mostly working. Is unstable, will emit bad codes after a while.
c8e45b5 core: Actionmap support
aabaa24 Codes appear to be detected correctly, the break codes are broken.

git-subtree-dir: tmk_core
git-subtree-split: e5f994033cbc8700745ac0c6d12772820492eed0
ageaenes pushed a commit to ageaenes/tmk_keyboard that referenced this issue Dec 10, 2016
e5f9940 Merge commit '1bc3dd200b023cecf063a0cb3ba347f77f6d759d' into core_update
da03c50 Add note for L/R side bit being ignored
e80f3c1 Add in basic documentation for Macro system
35e8a76 core: Swap position of PEQL and PENT in unimap
00751f1 Merge pull request tmk#406 from 39aldo39/patch-1
e50d7de V-USB remote wakeup
4340997 core: Fix typo in definition AC_g
958144d core: Debug print for system and consumer keys
e7e1030 core: Fix sleep_led
0866323 core: Change matrix_init and matrix_print
0dbf73d core: Add matrix_clear() and default impl.
3202ca3 core: Add suspend mode options
4cda3aa core: Fix suspend/wake for converters tmk#386
4e15247 core: LUFA_DEBUG_SUART for serial debug
b9cf8e7 core: Fix mechanical locking supoort tmk#390
12aa0fd Merge branch 'nemith-master'
fccb3fa core: Fix OPT_DEFS for mbed build
2e2d2c8 Merge branch 'master' of github.com:leizzer/tmk_keyboard
f1d3634 Change .gitignore for ChibiOS
3aab802 core: Fix build config in protocol.mk
5e43da0 core: Add short names in unimap
7a56998 core: Fix dfu wait in rules.mk
6d9c500 Merge branch 'mediakey-fix'
08382ac core: Fix 'make dfu' message
78cb04e Fix OS X Recognizing keyboard as Mouse/Tablet
a114714 core: 'make dfu' waits for bootloader to start
d0a8f13 core: Fix unimap UNIMAP_NO case
e17abef core: Change lufa NKRO report size 16 to 32 bytes
375b20f core: Fix common.mk for build options
394fdff core: Fix unimap layout comment
912326c core: Add unimap support
00f4011 core: Fix doc/keymap.md for new keymap framework
ddbd7b4 core: Add default implemenation of keymap read
671cacc core: action codes are action_t struct now
b4fdb27 core: Change chibios repo directory names
7daed10 core: Fix keycode.txt
90399d7 core: Fix USB remote wakeup on ATmega32U2 tmk#361
3677e84 usb_usb: Add multiple keyboard support
54d5b26 core: Fix Logical Maximum in report descriptor
bd0d372 core: Fix LUFA report descriptor
95327b5 Merge pull request tmk#355 from papodaca/XT
62bf548 core: change API of adb.c to accept device address
3097c9e Fix function name in host.h
836e209 Merge branch 'core_split_160522'
3918ea2 Merge commit '20b787fc1284176834cbe7ca2134e4b36bec5828'
7f87b11 core: Add comment of register 3 of ADB
ef6478a core: Add adb_host_talk()
5c665b4 update macro names in bluefruit
4f2c5bf Merge commit '71381457fa1311dfa0b58ba882a96db740640871'
53a9c08 Merge pull request tmk#321 from njbair/master
f08a656 core: Fix media/consumer keys
d526de8 Clean up wording in keymap example
0bb3dbb Clarify layer precedence
d915c75 clarify layer documentation
72070d4 ps2_usb: Fix for VUSB configuration
170e2dc Mostly working. Is unstable, will emit bad codes after a while.
c8e45b5 core: Actionmap support
aabaa24 Codes appear to be detected correctly, the break codes are broken.

git-subtree-dir: tmk_core
git-subtree-split: e5f994033cbc8700745ac0c6d12772820492eed0
Dhertz pushed a commit to Dhertz/tmk_keyboard that referenced this issue Mar 15, 2017
kairyu pushed a commit to kairyu/tmk_keyboard that referenced this issue Feb 1, 2018
@Elizafox
Copy link

Issues with suspend/wakeup occur with terminal_usb. Issues occur with my Unicomp 3270 terminal keyboard.

@tmk
Copy link
Owner Author

tmk commented Feb 20, 2019

Probably you should make new issue and describe your problem.

This issue is mainly related to key responsiveness when you wake your computer with key press.

tmk added a commit that referenced this issue May 10, 2019
Calling led_set() in ISR can cause the problem. With converter
especially, led_set() can take long time and USB can be stuck in the end.
USB-USB converter freezes occasionally when computer power up or reboot.
https://geekhack.org/index.php?topic=69169.msg2740179#msg2740179
This is also related to suspend/wakeup issue #386.
@tmk tmk closed this as completed May 10, 2019
tokuhira pushed a commit to tokuhira/tmk_keyboard that referenced this issue Jan 10, 2020
Calling led_set() in ISR can cause the problem. With converter
especially, led_set() can take long time and USB can be stuck in the end.
USB-USB converter freezes occasionally when computer power up or reboot.
https://geekhack.org/index.php?topic=69169.msg2740179#msg2740179
This is also related to suspend/wakeup issue tmk#386.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants