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

1ms PollingInterval causes problem with old PC(USB 1.1) #114

Closed
tmk opened this issue Apr 21, 2014 · 4 comments
Closed

1ms PollingInterval causes problem with old PC(USB 1.1) #114

tmk opened this issue Apr 21, 2014 · 4 comments

Comments

@tmk
Copy link
Owner

tmk commented Apr 21, 2014

At commit 894a387 I found this issues.

With BIOS(1.20) of ThinkPad T23 TMK with LUFA-120219 doesn't work. Hitting arrow key offen doesn't register and unregister properly. The key is ignored or it doen't stop.
http://www.thinkwiki.org/wiki/Category:T23

T23 seems like drop key report. T23 has old chipset(USB 1.1) and TMK uses 1ms polling rate(PollingInterval in endpoint descriptor).

.PollingIntervalMS = 0x01

I confirmed 10ms PollingInterval resolves this issue. I think most keyboards in market use 10ms interval. I checked HHKB pro2, Poker, ThinkPad USB keyboard(SK-8855) and Cherry 3600 all use 10ms. Using 10ms will offer better compatibility for old PCs.

@tmk
Copy link
Owner Author

tmk commented Apr 21, 2014

Polling rate in real:
When using 10ms PollingInterval value we get Interrupt IN requests with 8ms interval from host. 5ms value causes 4ms interval and 1ms value causes 1ms interval. This may vary depeding on hosts.

@tmk
Copy link
Owner Author

tmk commented Apr 21, 2014

Output of lsusb -vvv

PollingInterval: 1ms

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1

PollingInterval: 10ms

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10

@tmk tmk closed this as completed in c690268 Apr 21, 2014
@tmk
Copy link
Owner Author

tmk commented Apr 21, 2014

This issue may be relevant to #58.

MarioRicalde added a commit to MarioRicalde/tmk_keyboard that referenced this issue Apr 27, 2014
* origin/master:
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  Added basic led+backlight support
  Updated Lightsaber read me
  Support for Lightsaber keyboard
MarioRicalde added a commit to MarioRicalde/tmk_keyboard that referenced this issue Apr 27, 2014
* origin/master:
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  Added basic led+backlight support
  Updated Lightsaber read me
  Support for Lightsaber keyboard
@tmk
Copy link
Owner Author

tmk commented Apr 28, 2014

I think PJRC stack didn't have this problem. It has 10ms interval from the begining.

argyakrivos added a commit to argyakrivos/tmk_keyboard that referenced this issue May 29, 2014
* upstream/master: (93 commits)
  Add ISO keymap(issue tmk#35) and use new keymap API
  Fix set LED for NKRO keyboard interface
  Unused endpoint of console OUT is commentout'd
  Add Makefiles for TMK converters.
  Fix remotewakeup of PJRC stack(Fix tmk#121)
  Check if LUFA-git really exists(Fix tmk#118)
  NKRO is disable when SET_PROTOCOL(boot)
  Make NKRO deafult when it is available
  Change MCU setting to ATmega32U2
  Fix description of pin usage
  Add LUFA git repository(release 140302)
  Move macro definitions from lufa.c to lufa.h
  Fix 'Shift Parentheses' example
  Change LUFA build options
  Return when ready check loop is timeouted(Fix tmk#115)
  Change PollingIntervalMS to 10ms(Fix tmk#114)
  New macro: ACTION_BACKLIGHT_LEVEL(level)
  Show correct function name for default layer set
  Added Lightsaber FN-layer
  Lightsaber clean ups
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant