-
Notifications
You must be signed in to change notification settings - Fork 10
Meeting Notes (2020 08 11)
Alex McLain edited this page Aug 16, 2020
·
7 revisions
- Issue #70: Refactor config value casting
- Jesse is hacking away at this.
- Select boxes
- We don't have control of the styling of the options list.
- To style the options list we would need to hide the default list, construct a new one in HTML, and handle the actions with Javascript.
- Tailwind has a note in their select menu source code that they're planning to build low-level libraries to make this easier.
- CI
- We're checking tests, dialyzer, credo, formatting.
- GitHub Actions is close to releasing composite steps.
- #646: Next Steps for Fully Functioning Composite Actions
- AFK's CI is being prepped for this refactor.
- What are we doing for CSS/Javascript around CI?
- KiCad / PCB
- Nobody has started working on KiCad yet.
- Keyboard PCB Designer Guide
- Matrix design
- Put a diode in the matrix for every switch to prevent ghosting.
- There are also ways in software to prevent ghosting. QMK has it. But we should build it out the right way.
- How does this relate to the TI LM8330 keypad controller?
- Can't find a diagram in the datasheet showing the diode in the matrix, but that doesn't mean it's not necessary.
- We should design the matrix to include the diodes where it's supposed to.
- We poll to get data out of the matrix IC.
- The IC has a buffer that stores the key events.
- The way we've been doing matrix scanning so far, we support pressing all of the keys at once; there is no key limit.
- Put a diode in the matrix for every switch to prevent ghosting.
- The Keybow is using Kailh hot swap sockets. (People have repurposed SIP sockets for keyboard keys, but they're not designed for that.)
- It would be good to have hot-swap switches on the prototype board.
- Scan rate
- Want more than a 1000Hz poll rate to be competitive with other keyboards (it's a marketing thing).
- We could have more than one scan matrix for the keys if necessary.
- Can't seem to find the scan time of the TI chip. Might have to get one and measure it.
- Is "1000Hz polling" the USB polling rate rather than the scan matrix rate?
- On USB the host controller has to ask for data; the device can't send data unless data is requested.
- We want to minimize the time a key is pressed to the time a HID event is reported.
- A 1KHz polling rate is 1 report per millisecond. Nerves should be able to handle this based on what Alex has seen on the oscilloscope.
- It doesn't prevent the odd hiccup though.
- We could detect a user's hand near the keyboard by detuning a capacitive touch sensor. The sensor could be the entire keyboard. TI demo
- Using the web interface or firmware uploading are things that could cause slow-downs.
- A "gaming mode" switch could tell the keyboard to reduce its background processes.
- LEDs
- Find the SPI LEDs the Keybow is using.
- These LEDs are probably acting as cascaded shift registers, so the data has to be clocked through one LED to the next.
- For prototyping we would have to populate these in sequence down the chain, because a break in the serial chain will not allow data to flow to downstream LEDs.
-
IS31FL3733 matrix LED driver IC. Used on the Massdrop Ctrl.
- We should be able to populate an arbitrary number of these for prototyping in any order.
- Hopefully the matrix scans far faster than we push animation data to it. If not, there is a chance we could get a rolling shutter effect, or other animation glitches.
- Has PWM for brightness so we could control the brightness of the keyboard separate from the animations. We wouldn't have to edit the animations to change the brightness.
- We could detect ambient light with a sensor.
- Find the SPI LEDs the Keybow is using.
- Hall effect switches
- Learn KiCad