Why isn't this Teensy 4.1-based macro pad working?

Status
Not open for further replies.

Nolan.Decker

New member
Hi all. I'm trying to build a macro pad.

Eventually it will have numerous keys. Hence, I'm planning to implement a keyboard matrix. At this initial stage however, it only has two keys so my matrix is 1 row by 2 columns.

Here are pics of my prototype. I added callouts to assist communication.

switch_wiring.jpg

IMG_0213.jpg

overall view 00.jpg

board pin connections 00.jpg

Here is my code. It builds and uploads without errors.

Code:
#include <Keypad.h>

const byte ROWS = 1; // rows
const byte COLS = 2; // columns

//define the symbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'a','b'}
};

byte rowPins[ROWS] = {4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {7, 6}; //connect to the column pinouts of the keypad

//initialize an instance of class Keypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS ); 

unsigned long loopCount;
unsigned long startTime;
String msg;

void setup(){
  Serial.begin(9600);
  loopCount = 0;
  startTime = millis();
  msg = "";
}
  
void loop(){
 
  loopCount++;
  
  if ( (millis()-startTime)>2000 ) {
      Serial.print("Average loops per second = ");
      Serial.println(loopCount/5);
      startTime = millis();
      loopCount = 0;
  }

  char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.println("Keypress occurred");
    Serial.println(customKey);
  }
}

The serial monitor is showing the avg loops/second as expected, but when I press the keys there's no output on the serial monitor or in the verbose info panel. I'm not seeing any errors.

When I verify I get this output...

Code:
18:35:12.428 (post_compile 58): Begin, version=1.56, high-res time
18:35:12.431 (loader): remote connection 1604 opened
18:35:12.432 (loader): remote cmd from 1604: "comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)"
18:35:12.432 (post_compile 58): Sending command: comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)
18:35:12.433 (loader): remote cmd from 1604: "status"
18:35:12.434 (loader): file changed
18:35:12.443 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:35:12.444 (loader): File "CustomKeypad.ino.hex". 30720 bytes
18:35:12.451 (post_compile 58): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:12.451 (post_compile 58): Sending command: dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\
18:35:12.454 (loader): remote cmd from 1604: "dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\"
18:35:12.455 (loader): remote cmd from 1604: "file:CustomKeypad.ino.hex"
18:35:12.455 (post_compile 58): Sending command: file:CustomKeypad.ino.hex
18:35:12.465 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:35:12.466 (loader): File "CustomKeypad.ino.hex". 30720 bytes
18:35:12.471 (loader): remote cmd from 1604: "status"
18:35:12.478 (post_compile 58): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:12.478 (post_compile 58): Disconnect
18:35:12.494 (loader): remote connection 1604 closed

When I upload I get this output...

Code:
18:35:55.643 (loader): remote connection 1620 closed
18:35:59.544 (loader): file changed
18:35:59.555 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:35:59.555 (loader): File "CustomKeypad.ino.hex". 30720 bytes
18:35:59.586 (post_compile 59): Begin, version=1.56, high-res time
18:35:59.588 (loader): remote connection 1604 opened
18:35:59.589 (loader): remote cmd from 1604: "comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)"
18:35:59.590 (post_compile 59): Sending command: comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)
18:35:59.590 (loader): remote cmd from 1604: "status"
18:35:59.597 (loader): remote cmd from 1604: "dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\"
18:35:59.598 (post_compile 59): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:59.598 (post_compile 59): Sending command: dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\
18:35:59.598 (loader): remote cmd from 1604: "file:CustomKeypad.ino.hex"
18:35:59.599 (post_compile 59): Sending command: file:CustomKeypad.ino.hex
18:35:59.607 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:35:59.609 (loader): File "CustomKeypad.ino.hex". 30720 bytes
18:35:59.617 (loader): remote cmd from 1604: "status"
18:35:59.625 (post_compile 59): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:59.625 (post_compile 59): Disconnect
18:35:59.639 (loader): remote connection 1604 closed
18:35:59.920 (post_compile 60): Begin, version=1.56, high-res time
18:35:59.923 (loader): remote connection 1604 opened
18:35:59.925 (loader): remote cmd from 1604: "comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)"
18:35:59.925 (post_compile 60): Sending command: comment: Teensyduino 1.56 - WINDOWS (teensy_post_compile)
18:35:59.928 (loader): remote cmd from 1604: "status"
18:35:59.935 (loader): remote cmd from 1604: "dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\"
18:35:59.936 (post_compile 60): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:59.936 (post_compile 60): Sending command: dir:C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\
18:35:59.938 (loader): remote cmd from 1604: "file:CustomKeypad.ino.hex"
18:35:59.938 (post_compile 60): Sending command: file:CustomKeypad.ino.hex
18:35:59.949 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:35:59.952 (loader): File "CustomKeypad.ino.hex". 30720 bytes
18:35:59.959 (loader): remote cmd from 1604: "status"
18:35:59.967 (post_compile 60): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:35:59.967 (post_compile 60): Disconnect
18:35:59.981 (loader): remote connection 1604 closed
18:35:59.982 (post_compile 61): Running teensy_reboot: "C:\Program Files (x86)\Arduino\hardware\teensy\..\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY41" "-port=usb:70001/3/0/3" "-portlabel=hid#vid_16c0&pid_0478 Bootloader" "-portprotocol=Teensy"
18:35:59.985 (loader): remote connection 1604 opened
18:36:00.004 (reboot 62): Begin, version=1.56, high-res time
18:36:00.004 (reboot 62): location = usb:70001/3/0/3
18:36:00.004 (reboot 62): portprotocol = Teensy
18:36:00.004 (reboot 62): portlabel = hid#vid_16c0&pid_0478 Bootloader
18:36:00.004 (reboot 62): Only location usb:70001/3/0/3 will be tried
18:36:00.004 (reboot 62): LoadLibrary cfgmgr32 ok
18:36:00.004 (reboot 62): LoadLibrary ntdll ok
18:36:00.005 (reboot 62): found_usb_device, id=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:00.005 (reboot 62): found_usb_device, loc=usb:70001/3/0/3    Port_#0003.Hub_#0002
18:36:00.005 (reboot 62): found_usb_device, hwid=USB\VID_16C0&PID_04D0&REV_0280
18:36:00.005 (reboot 62): found_usb_device, devinst=00000007
18:36:00.005 (reboot 62): add: loc=usb:70001/3/0/3, class=USB, vid=16C0, pid=04D0, ver=0280, serial=10996430, dev=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:00.006 (reboot 62): hiddev_from_devinst_list: iface=1
18:36:00.006 (reboot 62):   0000000E: path=\\?\hid#vid_16c0&pid_04d0&mi_01#8&3ad25e64&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
18:36:00.008 (reboot 62): found_usb_device complete
18:36:00.008 (reboot 62): hid, found devinst=0000000C
18:36:00.008 (reboot 62): hid, found devinst=0000000E
18:36:00.008 (reboot 62): hid, found devinst=00000010
18:36:00.008 (reboot 62): usb scan found 1 devices
18:36:00.010 (loader): remote connection 1740 opened
18:36:00.015 (loader): remote cmd from 1740: "show:arduino_attempt_reboot"
18:36:00.016 (reboot 62): found Teensy Loader, version 1.56
18:36:00.016 (reboot 62): Sending command: show:arduino_attempt_reboot
18:36:00.019 (loader): got request to show arduino rebooting message
18:36:00.025 (loader): remote cmd from 1740: "comment: Teensyduino 1.56 - WINDOWS (teensy_reboot)"
18:36:00.026 (reboot 62): Sending command: comment: Teensyduino 1.56 - WINDOWS (teensy_reboot)
18:36:00.029 (loader): remote cmd from 1740: "status"
18:36:00.044 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.044 (reboot 62): hid_send_feature
18:36:00.044 (loader): remote cmd from 1740: "status"
18:36:00.053 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.053 (reboot 62): status read, retry 0
18:36:00.154 (loader): remote cmd from 1740: "status"
18:36:00.165 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.165 (reboot 62): status read, retry 1
18:36:00.266 (loader): remote cmd from 1740: "status"
18:36:00.277 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.277 (reboot 62): status read, retry 2
18:36:00.378 (loader): remote cmd from 1740: "status"
18:36:00.387 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.387 (reboot 62): status read, retry 3
18:36:00.489 (loader): remote cmd from 1740: "status"
18:36:00.498 (reboot 62): Status: 1, 1, 0, 13, 0, 0, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.498 (reboot 62): status read, retry 4
18:36:00.588 (ports 22): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
18:36:00.589 (ports 22): remove: loc=usb:70001/3/0/3
18:36:00.589 (ports 22): usb_remove: usb:70001/3/0/3
18:36:00.589 (ports 22): nothing new, skipping HID & Ports enum
18:36:00.601 (ports 22): WM_DEVICECHANGE DBT_DEVICEARRIVAL
18:36:00.603 (ports 22): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#0010c77b#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:00.603 (ports 22): found_usb_device, loc=usb:70001/3/0/3    Port_#0003.Hub_#0002
18:36:00.603 (ports 22): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0107
18:36:00.603 (ports 22): found_usb_device, devinst=00000023
18:36:00.603 (ports 22): add: loc=usb:70001/3/0/3, class=HID, vid=16C0, pid=0478, ver=0107, serial=0010c77b, dev=\\?\usb#vid_16c0&pid_0478#0010c77b#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:00.603 (ports 22): hiddev_from_devinst_list: iface=0
18:36:00.603 (ports 22): found_usb_device complete
18:36:00.604 (ports 22): usb_add: usb:70001/3/0/3  [no_device] (Teensy 4.1) Bootloader
18:36:00.617 (loader): remote cmd from 1740: "status"
18:36:00.628 (loader): secure mode can not be locked: this is Standard Teensy
18:36:00.632 (loader): encryption is possible on this Teensy, but not yet configured
18:36:00.636 (loader): but without secure mode locked, encryption will NOT be secure!
18:36:00.640 (loader): Device came online, code_size = 8126464
18:36:00.644 (loader): Board is: Teensy 4.1 (IMXRT1062), version 1.07
18:36:00.656 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:36:00.661 (loader): File "CustomKeypad.ino.hex". 30720 bytes, 0% used
18:36:00.688 (loader): set background IMG_ONLINE
18:36:00.702 (loader): File "C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\CustomKeypad.ino.hex", 30720 bytes
18:36:00.706 (loader): File "CustomKeypad.ino.hex". 30720 bytes, 0% used
18:36:00.733 (loader): elf appears to be for Teensy 4.1 (IMXRT1062) (8126464 bytes)
18:36:00.737 (loader): elf binary data matches hex file
18:36:00.741 (loader): elf file is for Teensy 4.1 (IMXRT1062)
18:36:00.745 (loader): using hex file
18:36:00.770 (loader): begin operation
18:36:00.804 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.825 (ports 22): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:00.825 (ports 22): update_usb_device, devinst list change, old had 1, new has 2
18:36:00.825 (ports 22): hiddev_from_devinst_list: iface=0
18:36:00.827 (ports 22): hid, found devinst=00000024
18:36:00.827 (ports 22): hid, path=\\?\hid#vid_16c0&pid_0478#7&fcf674e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
18:36:00.827 (ports 22): hid,  opened handle
18:36:00.827 (ports 22):  devinst=00000024, location=usb:70001/3/0/3
18:36:00.827 (ports 22):  vid=16C0, pid=0478, ver=0107, usepage=FF9C, use=0025
18:36:00.827 (ports 22):  devpath=\\?\hid#vid_16c0&pid_0478#7&fcf674e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
18:36:00.827 (ports 22): usb_add: usb:70001/3/0/3  hid#vid_16c0&pid_0478 (Teensy 4.1) Bootloader
18:36:00.871 (loader): remote cmd from 1740: "status"
18:36:00.878 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:00.880 (loader): flash, block=0, bs=1024, auto=1
18:36:00.887 (loader): flash, block=1, bs=1024, auto=1
18:36:00.891 (loader): flash, block=2, bs=1024, auto=1
18:36:01.138 (loader): remote cmd from 1740: "status"
18:36:01.144 (loader): flash, block=3, bs=1024, auto=1
18:36:01.144 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:01.148 (loader): flash, block=4, bs=1024, auto=1
18:36:01.157 (loader): flash, block=5, bs=1024, auto=1
18:36:01.166 (loader): flash, block=6, bs=1024, auto=1
18:36:01.174 (loader): flash, block=7, bs=1024, auto=1
18:36:01.192 (loader): flash, block=8, bs=1024, auto=1
18:36:01.199 (loader): flash, block=9, bs=1024, auto=1
18:36:01.205 (loader): remote cmd from 1740: "status"
18:36:01.211 (loader): flash, block=10, bs=1024, auto=1
18:36:01.211 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:01.220 (loader): flash, block=11, bs=1024, auto=1
18:36:01.231 (loader): flash, block=12, bs=1024, auto=1
18:36:01.238 (loader): flash, block=13, bs=1024, auto=1
18:36:01.245 (loader): flash, block=14, bs=1024, auto=1
18:36:01.254 (loader): flash, block=15, bs=1024, auto=1
18:36:01.261 (loader): flash, block=16, bs=1024, auto=1
18:36:01.270 (loader): remote cmd from 1740: "status"
18:36:01.274 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:01.275 (loader): flash, block=17, bs=1024, auto=1
18:36:01.281 (loader): flash, block=18, bs=1024, auto=1
18:36:01.288 (ports 22): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:01.289 (ports 22): nothing new, skipping HID & Ports enum
18:36:01.311 (loader): flash, block=19, bs=1024, auto=1
18:36:01.319 (loader): flash, block=20, bs=1024, auto=1
18:36:01.324 (loader): flash, block=21, bs=1024, auto=1
18:36:01.331 (loader): remote cmd from 1740: "status"
18:36:01.336 (reboot 62): Status: 1, 1, 1, 14, 0, 1, C:\Users\nolan\AppData\Local\Temp\arduino_build_900335\, CustomKeypad.ino.hex
18:36:01.336 (loader): flash, block=22, bs=1024, auto=1
18:36:01.342 (loader): flash, block=23, bs=1024, auto=1
18:36:01.347 (loader): flash, block=24, bs=1024, auto=1
18:36:01.352 (loader): flash, block=25, bs=1024, auto=1
18:36:01.358 (loader): flash, block=26, bs=1024, auto=1
18:36:01.364 (loader): flash, block=27, bs=1024, auto=1
18:36:01.369 (loader): flash, block=28, bs=1024, auto=1
18:36:01.376 (loader): flash, block=29, bs=1024, auto=1
18:36:01.391 (reboot 62): status read, retry 5
18:36:01.391 (reboot 62): Success
18:36:01.391 (reboot 62): Disconnect
18:36:01.404 (loader): sending reboot
18:36:01.410 (loader): begin wait_until_offline
18:36:01.416 (loader): offline, waited 0
18:36:01.422 (ports 22): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
18:36:01.423 (ports 22): remove: loc=usb:70001/3/0/3
18:36:01.423 (ports 22): usb_remove: usb:70001/3/0/3
18:36:01.423 (ports 22): nothing new, skipping HID & Ports enum
18:36:01.427 (loader): end operation, total time = 0.653 seconds
18:36:01.433 (loader): set background IMG_REBOOT_OK
18:36:01.440 (loader): redraw timer set, image 14 to show for 1200 ms
18:36:01.445 (loader): remote connection 1740 closed
18:36:01.445 (loader): remote connection 1604 closed
18:36:01.455 (serialmon 63): Begin, version=1.56, high-res time
18:36:01.455 (serialmon 63): listening for location: usb:70001/3/0/3
18:36:01.455 (serialmon 63): LoadLibrary cfgmgr32 ok
18:36:01.455 (serialmon 63): LoadLibrary ntdll ok
18:36:01.539 (serialmon 63): callback 0024
18:36:01.539 (serialmon 63): callback 0081
18:36:01.543 (serialmon 63): callback 0083
18:36:01.543 (serialmon 63): hWnd = 853926
18:36:01.543 (serialmon 63): loop stdin, ready=262143
18:36:01.547 (serialmon 63): nothing new, skipping HID & Ports enum
18:36:01.549 (loader): HID/win32:  vid:04D9 pid:A0F8 ver:0392  usb:70001/3/0/2/4/4/6
18:36:01.554 (loader): HID/win32:  vid:258A pid:0059 ver:1022  usb:70001/3/0/1/4/4/4/4/5
18:36:01.559 (loader): HID/win32:  vid:258A pid:0059 ver:1022  usb:70001/3/0/1/4/4/4/4/5
18:36:01.564 (loader): HID/win32:  vid:258A pid:0059 ver:1022  usb:70001/3/0/1/4/4/4/4/5
18:36:01.575 (loader): HID/win32:  vid:04D9 pid:A0F8 ver:0392  usb:70001/3/0/2/4/4/5
18:36:01.581 (loader): HID/win32:  vid:258A pid:0059 ver:1022  usb:70001/3/0/1/4/4/4/4/5
18:36:01.593 (loader): HID/win32:  vid:04D9 pid:A0F8 ver:0392  usb:70001/3/0/2/4/4/5
18:36:01.597 (loader): HID/win32:  vid:1395 pid:0031 ver:0104  usb:10003/0/0/E/11
18:36:01.607 (loader): HID/win32:  vid:046D pid:C24A ver:7702  usb:70001/3/0/1/2/3
18:36:01.611 (loader): HID/win32:  vid:054C pid:0CD3 ver:0104  usb:70001/3/0/1/4/4/2
18:36:01.615 (loader): remote connection 1796 opened
18:36:01.631 (serialmon 63): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:01.632 (serialmon 63): nothing new, skipping HID & Ports enum
18:36:01.660 (ports 22): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:01.660 (ports 22): nothing new, skipping HID & Ports enum
18:36:01.721 (ports 22): WM_DEVICECHANGE DBT_DEVICEARRIVAL
18:36:01.721 (serialmon 63): WM_DEVICECHANGE DBT_DEVICEARRIVAL
18:36:01.722 (ports 22): found_usb_device, id=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:01.722 (ports 22): found_usb_device, loc=usb:70001/3/0/3    Port_#0003.Hub_#0002
18:36:01.722 (ports 22): found_usb_device, hwid=USB\VID_16C0&PID_04D0&REV_0280
18:36:01.722 (ports 22): found_usb_device, devinst=00000007
18:36:01.722 (ports 22): add: loc=usb:70001/3/0/3, class=USB, vid=16C0, pid=04D0, ver=0280, serial=10996430, dev=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:01.722 (ports 22): hiddev_from_devinst_list: iface=1
18:36:01.722 (serialmon 63): found_usb_device, id=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:01.722 (serialmon 63): found_usb_device, loc=usb:70001/3/0/3    Port_#0003.Hub_#0002
18:36:01.722 (serialmon 63): found_usb_device, hwid=USB\VID_16C0&PID_04D0&REV_0280
18:36:01.722 (serialmon 63): found_usb_device, devinst=00000007
18:36:01.722 (serialmon 63): add: loc=usb:70001/3/0/3, class=USB, vid=16C0, pid=04D0, ver=0280, serial=10996430, dev=\\?\usb#vid_16c0&pid_04d0#10996430#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
18:36:01.722 (serialmon 63): hiddev_from_devinst_list: iface=1
18:36:01.723 (ports 22): found_usb_device complete
18:36:01.723 (serialmon 63): found_usb_device complete
18:36:01.724 (ports 22): usb_add: usb:70001/3/0/3  [no_device] (Teensy 4.1) Keyboard
18:36:01.725 (serialmon 63): usb_add: usb:70001/3/0/3
18:36:01.725 (serialmon 63): ignoring partial USB device discovery (Windows XP issue?)
18:36:01.979 (serialmon 63): retry device discovery (Windows XP workaround)
18:36:01.980 (serialmon 63): update_usb_device, devinst list change, old had 2, new has 7
18:36:01.980 (serialmon 63): hiddev_from_devinst_list: iface=1
18:36:01.980 (serialmon 63):   00000020: path=\\?\hid#vid_16c0&pid_04d0&mi_01#8&3ad25e64&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
18:36:01.981 (serialmon 63): hid, found devinst=0000001E
18:36:01.981 (serialmon 63): hid, found devinst=00000020
18:36:01.981 (serialmon 63): hid, found devinst=00000022
18:36:01.981 (serialmon 63): usb_add: usb:70001/3/0/3
18:36:01.981 (serialmon 63): Opened \\?\hid#vid_16c0&pid_04d0&mi_01#8&3ad25e64&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Keyboard
18:36:01.983 (serialmon 63): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:01.983 (serialmon 63): nothing new, skipping HID & Ports enum
18:36:02.043 (ports 22): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
18:36:02.044 (ports 22): update_usb_device, devinst list change, old had 1, new has 7
18:36:02.044 (ports 22): hiddev_from_devinst_list: iface=1
18:36:02.045 (ports 22):   0000000E: path=\\?\hid#vid_16c0&pid_04d0&mi_01#8&3ad25e64&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
18:36:02.045 (ports 22): hid, found devinst=0000000C
18:36:02.045 (ports 22): hid, found devinst=0000000E
18:36:02.045 (ports 22): hid, found devinst=00000010
18:36:02.046 (ports 22): usb_add: usb:70001/3/0/3  hid#vid_16c0&pid_04d0 (Teensy 4.1) Keyboard
18:36:02.638 (loader): redraw, image 9

Here's the serial monitor...

serial_monitor.png

Any insight would be really helpful. Thanks!

(btw I was able to get a 1x1 matrix to work — in other words same code as above with keys defined as
Code:
{{'a'}}
and a single keyswitch wired to the board.)
 
Last edited by a moderator:
First redo the soldering
https://www.pjrc.com/soldering-pins-on-to-your-teensy/
There are some pins that don't look so good
specially pin 14, the top gnd, pin22
and it's much better to do it now and to avoid problems in the future

pin7 can be cold solder joint



You can try without the diodes, they are just there to avoid ghosting
and to allow the pins to be shared with other things
 
also joint D at the keypad need some resoldering

The main things while soldering are:
ensure all areas to be soldered have the same temperature
flux is the key

sometimes I double up this thin wire and twist at least 4 strands of it together
then the amount of flux released is much more
and that ensure better soldering

otherwise you can buy flux and apply before solder


but newer use solder water (based on zinc)
I did use that as a beginner to using flux
The connections look excellent
and you get a good solder joint
but the solder water (zinc) will cause shorts
and can also make corrosive connections after a while
 
Ok I went over all the solder joints, resoldered the questionable ones, and tested everything for continuity with a multimeter.

Behavior is still identical to what I described above.

What does a DVM show on the pins when pressed or not?

There's continuity across both switches to the pins when they're pressed. Switches and wiring seem ok.

Anything else I could try?

I noticed this warning. Is that significant?

Code:
22:34:16.484 (ports 3): usb_add: usb:70001/3/0/3  [no_device] (Teensy 4.1) Keyboard
22:34:16.484 (ports 2): usb_add: usb:70001/3/0/3  [no_device] (Teensy 4.1) Keyboard
22:34:16.485 (serialmon 13): found_usb_device complete
22:34:16.486 (serialmon 13): usb_add: usb:70001/3/0/3
22:34:16.486 (serialmon 13): ignoring partial USB device discovery (Windows XP issue?)
 
Not recognizing the indicated output from TeensyLoader?

The DVM test was to see what the voltages see on the three pins: 4, 7, 6

Not sure which pin is output and which input?

There should be a voltage out pin(s) - that should show some bigger part of 3.3V as it looks to send power across the switches to read in turn.

The input pin(s) should be at 0 V until a button is pressed then it should be some half (depending on update rate of the DVM) of the output voltage as it switches across the KeyPad array.

In turn measure on each of the three pins with neither pressed, then again with each button pressed.

Seems that should show some reasonably sensible pattern. If not and the Teensy is sending out 3.3V - then the buttons should see and return that when pressed
 
Status
Not open for further replies.
Back
Top