I'm working on a custom PCB driven by a Teensy++ 2.0, can someone tell me if the pins I'm using in my schematic would work?
Rows and columns are labeled plus 4 LEDs (forgot to add resistors, will add later)

RST is reset: it’s hooked up in parallel with the Teensy’s loader button. (You hook it to ground to trigger software update mode, right?) So it’s definitely on the no touch list.

It is a handy pin, though. Means you can put a reset button on your converter box for taking new firmware (I mean to do this to mine). Indeed, I wish they broke out the 4 usb pins too. That would save so much bother when running cables to a port.

Honestly, I’d love a community designed Teensy++ successor which has USB pin breakout.

I would consult the datasheet for the AT90USB1286 microcontroller that is in the Teensy++ 2.0.

Any digital pin on an AVR should work for rows and columns. Many I/O pins on AVR microcontrollers have multiple functions, and the those marked PWM, INT, Ax etc. are also digital pins.

For LEDs, you'd want to use a port/pins that are recommended in the datasheet for "driving"/"current source" and which has PWM output for limiting the LEDs brightness. It is not an error to "direct drive" a keyboard LED at full brightness, but you might find that they could be too bright.
On most AVR microcontrollers, the best pins are typically pins B4 to B7, numbered 23 to 27 on the Teensy++ 2.0.
Do also read up on LEDs in the documentation of the firmware you intend to use.

I see only one type of direct error: LEDs are light-emitting diodes so they work only connected one way. All but your Num Lock LED are in the wrong direction!

BTW. I would not use a sleep-LED, myself. Not only do I personally hate sleep LEDs, USB devices are not supposed to draw more than absolutely necessary in Suspend mode.

Last edited by Findecanor on 22 Aug 2019, 18:56, edited 1 time in total.

I would consult the datasheet for the AT90USB1286 microcontroller that is in the Teensy++ 2.0.

Any digital pin on an AVR should work for rows and columns. Many I/O pins on AVR microcontrollers have multiple functions, and the those marked PWM, INT, Ax etc. are also digital pins.

For LEDs, you'd want to use a port/pins that are recommended in the datasheet for "driving"/"current source" and which has PWM output for limiting the LEDs brightness. It is not an error to "direct drive" a keyboard LED at full brightness, but you might find that they could be too bright.
On most AVR microcontrollers, the best pins are typically pins B4 to B7, numbered 23 to 27 on the Teensy++ 2.0.
Do also read up on LEDs in the documentation of the firmware you intend to use.

I see only one type of direct error: LEDs are light-emitting diodes so they work only connected one way. All but your Num Lock LED are in the wrong direction!

BTW. I would not use a sleep-LED, myself. Not only do I personally hate sleep LEDs, USB devices are not supposed to draw more than absolutely necessary in Suspend mode.

Thanks for the help and suggestions. The reason I'm adding extra LEDS is because the original case has windows for them (will add the message LED too, any way I can get this working in QMK?)

Thanks for the help and suggestions. The reason I'm adding extra LEDS is because the original case has windows for them (will add the message LED too, any way I can get this working in QMK?)

Assuming for the message led, you need to send a notification from the host to the kb, https://www.reddit.com/r/olkb/comments/ ... er_on_qmk/ might get you started. I've been looking at this in the hopes of showing notifications with a WS2812 led strip, but I'm not very far along.

For QMK, the LED pins are used as current sinks. That is, the Teensy is connected to the ground side of the LED-resistor pair, and a constant +5V from the power supply is connected on the other side. Opposite LED polarity from the schematic above.