Teensyduino 1.54 Beta #6

Status
Not open for further replies.
Yup, the padding is somewhat useful.

If I think of the 1770... these things will be much much worse.. :)
I'm not that sure the whole builder is usable... not sure if it is able too compile different files (two cores) with different flags and math-libraries.. (FPU)
If not, it would be needed to call it twice.
Building will take ages.. :-( Edit: I think it will end with #ifdef IMXRT1170_CORE0 [...] #elseif IMXRT1170_CORE1 [...] and calling the compiler twice. However, all the other things the builder does, like detecting the libraries will be problematic.

It will take a decade for Massimo to take these things into account in the builder. If a decade is enough.
 
Last edited:
Mtp

Hi Paul,

could you please take a look at usb_dec.h?
I think the config for USB_MTPDISK_SERIAL is wrong. My Lubuntu (dmesg) says:
Code:
[   58.300446] usb 1-1: new high-speed USB device number 2 using ehci-pci
[COLOR=#ff0000][   58.659302] usb 1-1: config 1 has an invalid interface number: 3 but max is 2[/COLOR]
[COLOR=#ff0000][   58.659305] usb 1-1: config 1 has no interface number 0[/COLOR]
[   58.673878] usb 1-1: New USB device found, idVendor=16c0, idProduct=0476
[   58.673881] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   58.673883] usb 1-1: Product: Teensy MTP Disk/Serial
[   58.673884] usb 1-1: Manufacturer: Teensyduino
[   58.673885] usb 1-1: SerialNumber: 7820070
[   58.690544] cdc_acm 1-1:1.1: ttyACM0: USB ACM device
[   58.693345] usbcore: registered new interface driver cdc_acm
[   58.693346] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[COLOR=#000000][   98.089536] usb 1-1: USB disconnect, device number 2[/COLOR]
[   98.130423] cdc_acm 1-1:1.1: failed to set dtr/rts
If have modified it to :
Code:
 #define VENDOR_ID             0x16C0
  #define PRODUCT_ID        0x0476 //fake an include everything device
  #define RAWHID_USAGE_PAGE    0xFFAB  // recommended: 0xFF00 to 0xFFFF
  #define RAWHID_USAGE        0x0200  // recommended: 0x0100 to 0xFFFF
  #define DEVICE_CLASS        0xEF
  #define DEVICE_SUBCLASS    0x02
  #define DEVICE_PROTOCOL    0x01


  #define MANUFACTURER_NAME     {'T','e','e','n','s','y','d','u','i','n','o'}
  #define MANUFACTURER_NAME_LEN 11
  #define PRODUCT_NAME          {'T','e','e','n','s','y',' ','M','T','P',' ','D','i','s','k','/','S','e','r','i','a','l'}
  #define PRODUCT_NAME_LEN      22
  #define EP0_SIZE              64


  #define NUM_INTERFACE        3
  #define NUM_ENDPOINTS         5


  #define CDC_IAD_DESCRIPTOR      1 //1
  #define CDC_STATUS_INTERFACE    0 //1


  #define CDC_DATA_INTERFACE      1    // Serial //2
  #define CDC_ACM_ENDPOINT        2 //2
  #define CDC_RX_ENDPOINT       3 //3
  #define CDC_TX_ENDPOINT       3 //3
  #define CDC_ACM_SIZE          16
  #define CDC_RX_SIZE_480       512
  #define CDC_TX_SIZE_480       512
  #define CDC_RX_SIZE_12        64
  #define CDC_TX_SIZE_12        64
  #define ENDPOINT2_CONFIG    ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
  #define ENDPOINT3_CONFIG    ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK


  #define MTP_INTERFACE         2 // MTP Disk
  #define MTP_TX_ENDPOINT       4
  #define MTP_RX_ENDPOINT       4
  #define MTP_EVENT_ENDPOINT    5
  #define MTP_TX_SIZE_480       512
  #define MTP_RX_SIZE_480       512
  #define MTP_TX_SIZE_12        64
  #define MTP_RX_SIZE_12        64
  #define MTP_EVENT_SIZE        32


  #define MTP_EVENT_INTERVAL_12    10    // 10 = 10 ms
  #define MTP_EVENT_INTERVAL_480 7    // 7 = 8 ms


  #define ENDPOINT4_CONFIG    ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
  #define ENDPOINT5_CONFIG    ENDPOINT_RECEIVE_INTERRUPT + ENDPOINT_TRANSMIT_INTERRUPT  // ????
Now, Linux seems to be happy, but I'm not entirly sure, that it is correct now.
Thank you!

Edit: After a while, it continous to write:
Code:
cdc_acm 1-1:1.1: failed to set dtr/rts
Not sure, if this is normal.

Then, lsusb needs a long time (several seconds) to display the verbose info for the Teensy (tested with USB_MTPDISK_SERIAL only) and sometimes fails to prints the strings (serial-no, manufacturer etc)
 
@Paul - Playing with my old dev machine that has Ubuntu 20.04 on it and I think up to date.

I have Arduino 1.8.13 with this beta, and maybe having issues with SEREMU connections working to Arduino Terminal monitor.

I started this up to test out some MTP stuff and could not debug output to terminal monitor:
More details about this in the thread: https://forum.pjrc.com/threads/43050-MTP-Responder-Contribution?p=269826&viewfull=1#post269826

Then I wondered if it was specific to MTP, so I configured USB Type to keyboard, loaded the Simple sketch:
Modified only to add: while (!Serial && millis() < 5000) ;

actually edited again to comment out the keyboard prints as they were getting annoying ;)

Code:
int count = 0;

void setup() {
  while (!Serial && millis() < 5000) ;
  Serial.begin(9600);
  delay(1000);
}

void loop() {
  // Your computer will receive thesHello World 0e characters from a USB keyboard.
  //Keyboard.print("Hello World "); 
  //Keyboard.println(count);

  // You can also send to the Arduino Serial Monitor
  Serial.println(count);

  // increment the count
  count = count + 1;

  // typing too rapidly can overwhelm a PC
  delay(5000);
}

It then does not want to be programmed automatically again by upload: Teensy verbos info:
Code:
08:53:16.374 (post_compile 1): Begin, version=1.54-beta6
08:53:16.660 (loader): Teensy Loader 1.54-beta6, begin program
08:53:16.688 (loader): File "Simple.pde.hex". 18768 bytes, 0% used
08:53:16.689 (loader): Listening for remote control on port 3149
08:53:16.689 (loader): initialized, showing main window
08:53:16.775 (loader): remote connection 9 opened
08:53:16.775 (post_compile 1): Sending command: comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_post_compile)
08:53:16.775 (loader): remote cmd from 9: "comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_post_compile)"
08:53:16.775 (loader): remote cmd from 9: "status"
08:53:16.835 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:16.835 (post_compile 1): Sending command: auto:on
08:53:16.835 (loader): remote cmd from 9: "auto:on"
08:53:16.835 (post_compile 1): Disconnect
08:53:16.846 (loader): remote connection 9 closed
08:53:16.852 (post_compile 2): Begin, version=1.54-beta6
08:53:16.852 (loader): remote connection 9 opened
08:53:16.852 (post_compile 2): Sending command: comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_post_compile)
08:53:16.852 (loader): remote cmd from 9: "comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_post_compile)"
08:53:16.853 (loader): remote cmd from 9: "status"
08:53:16.916 (post_compile 2): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:16.916 (post_compile 2): Disconnect
08:53:16.926 (post_compile 3): Running teensy_reboot: /home/kurt/Desktop/arduino-1.8.13/hardware/teensy/../tools/teensy_reboot
08:53:16.926 (loader): remote connection 9 closed
08:53:16.926 (loader): remote connection 9 opened
08:53:16.927 (loader): remote connection 9 closed
08:53:16.927 (reboot 4): Begin, version=1.54-beta6
08:53:16.927 (reboot 4): location = /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:16.927 (reboot 4): portlabel = /dev/hidraw6 Keyboard
08:53:16.927 (reboot 4): Only location /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1 will be tried
08:53:16.927 (reboot 4): portprotocol = Teensy
08:53:16.999 (loader): remote connection 9 opened
08:53:17.002 (reboot 4): add device: subsys=usb, type=usb_device, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.002 (reboot 4):   devnode=/dev/bus/usb/001/022, subsystem=usb, ifacenum=-1
08:53:17.002 (reboot 4): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0
08:53:17.002 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.002 (reboot 4):   model=37 (Teensy 4.1)
08:53:17.003 (reboot 4): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001F
08:53:17.003 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.003 (reboot 4): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001F/hidraw/hidraw3
08:53:17.003 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.003 (reboot 4): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1
08:53:17.003 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.003 (reboot 4): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1/0003:16C0:04D0.0020
08:53:17.003 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.004 (reboot 4): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1/0003:16C0:04D0.0020/hidraw/hidraw6
08:53:17.004 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.004 (reboot 4):   devnode=/dev/hidraw6, subsystem=hidraw, ifacenum=1
08:53:17.004 (reboot 4): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2
08:53:17.004 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.004 (reboot 4): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.0021
08:53:17.004 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.005 (reboot 4): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.0021/hidraw/hidraw7
08:53:17.005 (reboot 4):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:17.020 (reboot 4): found Teensy Loader, version 1.54
08:53:17.020 (reboot 4): Sending command: show:arduino_attempt_reboot
08:53:17.049 (loader): remote cmd from 9: "show:arduino_attempt_reboot"
08:53:17.049 (loader): got request to show arduino rebooting message
08:53:17.052 (reboot 4): Sending command: comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_reboot)
08:53:17.053 (loader): remote cmd from 9: "comment: Teensyduino 1.54-beta6 - LINUX64 (teensy_reboot)"
08:53:17.053 (loader): remote cmd from 9: "status"
08:53:17.115 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.115 (reboot 4): hid_send_feature, opened /dev/hidraw6
08:53:17.115 (reboot 4): error sending reboot command to /dev/hidraw6
08:53:17.115 (loader): remote cmd from 9: "status"
08:53:17.213 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.213 (reboot 4): status read, retry 0
08:53:17.313 (loader): remote cmd from 9: "status"
08:53:17.375 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.375 (reboot 4): status read, retry 1
08:53:17.501 (loader): remote cmd from 9: "status"
08:53:17.554 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.554 (reboot 4): status read, retry 2
08:53:17.654 (loader): remote cmd from 9: "status"
08:53:17.716 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.716 (reboot 4): status read, retry 3
08:53:17.817 (loader): remote cmd from 9: "status"
08:53:17.877 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:17.877 (reboot 4): status read, retry 4
08:53:18.028 (loader): remote cmd from 9: "status"
08:53:18.084 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.084 (reboot 4): status read, retry 5
08:53:18.184 (loader): remote cmd from 9: "status"
08:53:18.244 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.244 (reboot 4): status read, retry 6
08:53:18.345 (loader): remote cmd from 9: "status"
08:53:18.409 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.409 (reboot 4): status read, retry 7
08:53:18.558 (loader): remote cmd from 9: "status"
08:53:18.612 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.612 (reboot 4): status read, retry 8
08:53:18.712 (loader): remote cmd from 9: "status"
08:53:18.775 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.775 (reboot 4): status read, retry 9
08:53:18.875 (loader): remote cmd from 9: "status"
08:53:18.938 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:18.938 (reboot 4): status read, retry 10
08:53:19.088 (loader): remote cmd from 9: "status"
08:53:19.143 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:19.143 (reboot 4): status read, retry 11
08:53:19.243 (loader): remote cmd from 9: "status"
08:53:19.306 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:19.306 (reboot 4): status read, retry 12
08:53:19.406 (loader): remote cmd from 9: "status"
08:53:19.470 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:19.470 (reboot 4): status read, retry 13
08:53:19.622 (loader): remote cmd from 9: "status"
08:53:19.677 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:19.677 (reboot 4): status read, retry 14
08:53:19.777 (loader): remote cmd from 9: "status"
08:53:19.840 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:19.840 (reboot 4): status read, retry 15
08:53:19.940 (loader): remote cmd from 9: "status"
08:53:20.002 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.002 (reboot 4): status read, retry 16
08:53:20.151 (loader): remote cmd from 9: "status"
08:53:20.205 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.205 (reboot 4): status read, retry 17
08:53:20.305 (loader): remote cmd from 9: "status"
08:53:20.367 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.367 (reboot 4): status read, retry 18
08:53:20.468 (loader): remote cmd from 9: "status"
08:53:20.532 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.532 (reboot 4): status read, retry 19
08:53:20.679 (loader): remote cmd from 9: "status"
08:53:20.734 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.734 (reboot 4): status read, retry 20
08:53:20.835 (loader): remote cmd from 9: "status"
08:53:20.897 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:20.897 (reboot 4): status read, retry 21
08:53:20.998 (loader): remote cmd from 9: "status"
08:53:21.059 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.059 (reboot 4): status read, retry 22
08:53:21.210 (loader): remote cmd from 9: "status"
08:53:21.265 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.265 (reboot 4): status read, retry 23
08:53:21.365 (loader): remote cmd from 9: "status"
08:53:21.426 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.426 (reboot 4): status read, retry 24
08:53:21.526 (loader): remote cmd from 9: "status"
08:53:21.587 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.587 (reboot 4): status read, retry 25
08:53:21.737 (loader): remote cmd from 9: "status"
08:53:21.791 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.791 (reboot 4): status read, retry 26
08:53:21.892 (loader): remote cmd from 9: "status"
08:53:21.954 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:21.954 (reboot 4): status read, retry 27
08:53:22.054 (loader): remote cmd from 9: "status"
08:53:22.114 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:22.114 (reboot 4): status read, retry 28
08:53:22.266 (loader): remote cmd from 9: "status"
08:53:22.321 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:22.321 (reboot 4): status read, retry 29
08:53:22.421 (loader): remote cmd from 9: "status"
08:53:22.482 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:22.482 (reboot 4): status read, retry 30
08:53:22.582 (loader): remote cmd from 9: "status"
08:53:22.644 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:22.644 (reboot 4): status read, retry 31
08:53:22.798 (loader): remote cmd from 9: "status"
08:53:22.854 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:22.854 (reboot 4): status read, retry 32
08:53:22.954 (loader): remote cmd from 9: "status"
08:53:23.014 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.014 (reboot 4): status read, retry 33
08:53:23.115 (loader): remote cmd from 9: "status"
08:53:23.176 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.176 (reboot 4): status read, retry 34
08:53:23.328 (loader): remote cmd from 9: "status"
08:53:23.384 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.384 (reboot 4): status read, retry 35
08:53:23.484 (loader): remote cmd from 9: "status"
08:53:23.547 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.547 (reboot 4): status read, retry 36
08:53:23.648 (loader): remote cmd from 9: "status"
08:53:23.710 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.710 (reboot 4): status read, retry 37
08:53:23.865 (loader): remote cmd from 9: "status"
08:53:23.923 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:23.923 (reboot 4): status read, retry 38
08:53:24.023 (loader): remote cmd from 9: "status"
08:53:24.084 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.084 (reboot 4): status read, retry 39
08:53:24.184 (loader): remote cmd from 9: "status"
08:53:24.245 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.245 (reboot 4): status read, retry 40
08:53:24.398 (loader): remote cmd from 9: "status"
08:53:24.455 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.455 (reboot 4): status read, retry 41
08:53:24.555 (loader): remote cmd from 9: "status"
08:53:24.618 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.618 (reboot 4): status read, retry 42
08:53:24.718 (loader): remote cmd from 9: "status"
08:53:24.781 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.781 (reboot 4): status read, retry 43
08:53:24.931 (loader): remote cmd from 9: "status"
08:53:24.988 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:24.988 (reboot 4): status read, retry 44
08:53:25.088 (loader): remote cmd from 9: "status"
08:53:25.150 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:25.150 (reboot 4): status read, retry 45
08:53:25.251 (loader): remote cmd from 9: "status"
08:53:25.313 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:25.313 (reboot 4): status read, retry 46
08:53:25.463 (loader): remote cmd from 9: "status"
08:53:25.520 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:25.520 (reboot 4): status read, retry 47
08:53:25.620 (loader): remote cmd from 9: "status"
08:53:25.683 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:25.683 (reboot 4): status read, retry 48
08:53:25.783 (loader): remote cmd from 9: "status"
08:53:25.845 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:25.845 (reboot 4): status read, retry 49
08:53:25.993 (loader): remote cmd from 9: "status"
08:53:26.047 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.047 (reboot 4): status read, retry 50
08:53:26.148 (loader): remote cmd from 9: "status"
08:53:26.209 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.209 (reboot 4): status read, retry 51
08:53:26.310 (loader): remote cmd from 9: "status"
08:53:26.373 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.373 (reboot 4): status read, retry 52
08:53:26.521 (loader): remote cmd from 9: "status"
08:53:26.575 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.575 (reboot 4): status read, retry 53
08:53:26.675 (loader): remote cmd from 9: "status"
08:53:26.737 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.737 (reboot 4): status read, retry 54
08:53:26.838 (loader): remote cmd from 9: "status"
08:53:26.899 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:26.899 (reboot 4): status read, retry 55
08:53:27.048 (loader): remote cmd from 9: "status"
08:53:27.102 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.102 (reboot 4): status read, retry 56
08:53:27.202 (loader): remote cmd from 9: "status"
08:53:27.264 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.264 (reboot 4): status read, retry 57
08:53:27.264 (loader): Verbose Info event
08:53:27.364 (loader): remote cmd from 9: "status"
08:53:27.424 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.424 (reboot 4): status read, retry 58
08:53:27.573 (loader): remote cmd from 9: "status"
08:53:27.628 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.628 (reboot 4): status read, retry 59
08:53:27.728 (loader): remote cmd from 9: "status"
08:53:27.794 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.794 (reboot 4): status read, retry 60
08:53:27.894 (loader): remote cmd from 9: "status"
08:53:27.962 (reboot 4): Status: 1, 1, 0, 0, 0, 0, /tmp/arduino_build_803802/, Simple.pde.hex
08:53:27.962 (reboot 4): status read, retry 61
08:53:28.062 (reboot 4): Teensy did not respond to a USB-based request to automatically reboot.
08:53:28.066 (serialmon 5): Begin, version=1.54-beta6
08:53:28.066 (serialmon 5): listening for location: /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.115 (loader): remote connection 10 opened
08:53:28.119 (serialmon 5): add device: subsys=usb, type=usb_device, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.119 (serialmon 5):   devnode=/dev/bus/usb/001/022, subsystem=usb, ifacenum=-1
08:53:28.119 (serialmon 5): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0
08:53:28.119 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.119 (serialmon 5):   model=37 (Teensy 4.1)
08:53:28.119 (serialmon 5): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001F
08:53:28.119 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.119 (serialmon 5): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001F/hidraw/hidraw3
08:53:28.119 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.119 (serialmon 5): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1
08:53:28.119 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.120 (serialmon 5): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1/0003:16C0:04D0.0020
08:53:28.120 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.120 (serialmon 5): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.1/0003:16C0:04D0.0020/hidraw/hidraw6
08:53:28.120 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.120 (serialmon 5):   devnode=/dev/hidraw6, subsystem=hidraw, ifacenum=1
08:53:28.120 (serialmon 5): can't open /dev/hidraw6
08:53:28.120 (serialmon 5): add child:  subsys=usb, type=usb_interface, location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2
08:53:28.120 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.120 (serialmon 5): can't open /dev/hidraw6
08:53:28.120 (serialmon 5): add child:  subsys=hid, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.0021
08:53:28.120 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.120 (serialmon 5): can't open /dev/hidraw6
08:53:28.121 (serialmon 5): add child:  subsys=hidraw, type=(null), location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.0021/hidraw/hidraw7
08:53:28.121 (serialmon 5):   parent location=/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1
08:53:28.121 (serialmon 5): can't open /dev/hidraw6
08:53:28.149 (loader): remote connection 9 closed
Serial Monitor shows offline.

Code:
kurt@kurt-XPS-8300:~/github/MTP_t4$ dmesg | tail -30
[13974.148621] usb 1-1.4.1: USB disconnect, device number 19
[14011.490461] usb 1-1.4.1: new high-speed USB device number 20 using ehci-pci
[14011.599328] usb 1-1.4.1: New USB device found, idVendor=16c0, idProduct=04d0, bcdDevice= 2.80
[14011.599331] usb 1-1.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14011.599333] usb 1-1.4.1: Product: Keyboard
[14011.599335] usb 1-1.4.1: Manufacturer: Teensyduino
[14011.599336] usb 1-1.4.1: SerialNumber: 8597440
[14011.600652] input: Teensyduino Keyboard as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001B/input/input30
[14011.658750] hid-generic 0003:16C0:04D0.001B: input,hidraw3: USB HID v1.11 Keyboard [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input0
[14011.659613] hid-generic 0003:16C0:04D0.001C: hidraw6: USB HID v1.11 Device [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input1
[14011.660534] input: Teensyduino Keyboard as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.001D/input/input31
[14011.718936] hid-generic 0003:16C0:04D0.001D: input,hidraw7: USB HID v1.11 Device [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input2
[14016.644287] usb 1-1.4.1: USB disconnect, device number 20
[14017.066497] usb 1-1.4.1: new high-speed USB device number 21 using ehci-pci
[14017.175062] usb 1-1.4.1: New USB device found, idVendor=16c0, idProduct=0478, bcdDevice= 1.05
[14017.175064] usb 1-1.4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=1
[14017.175065] usb 1-1.4.1: SerialNumber: 000D1E60
[14017.176116] hid-generic 0003:16C0:0478.001E: hidraw3: USB HID v1.11 Device [HID 16c0:0478] on usb-0000:00:1a.0-1.4.1/input0
[14017.924217] usb 1-1.4.1: USB disconnect, device number 21
[14018.402487] usb 1-1.4.1: new high-speed USB device number 22 using ehci-pci
[14018.511403] usb 1-1.4.1: New USB device found, idVendor=16c0, idProduct=04d0, bcdDevice= 2.80
[14018.511415] usb 1-1.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14018.511417] usb 1-1.4.1: Product: Keyboard
[14018.511418] usb 1-1.4.1: Manufacturer: Teensyduino
[14018.511420] usb 1-1.4.1: SerialNumber: 8597440
[14018.512697] input: Teensyduino Keyboard as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.0/0003:16C0:04D0.001F/input/input32
[14018.570961] hid-generic 0003:16C0:04D0.001F: input,hidraw3: USB HID v1.11 Keyboard [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input0
[14018.571952] hid-generic 0003:16C0:04D0.0020: hidraw6: USB HID v1.11 Device [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input1
[14018.572979] input: Teensyduino Keyboard as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/0003:16C0:04D0.0021/input/input33
[14018.630920] hid-generic 0003:16C0:04D0.0021: input,hidraw7: USB HID v1.11 Device [Teensyduino Keyboard] on usb-0000:00:1a.0-1.4.1/input2
kurt@kurt-XPS-8300:~/github/MTP_t4$
 
Hi Paul,

could you please take a look at usb_dec.h?
I think the config for USB_MTPDISK_SERIAL is wrong. My Lubuntu (dmesg) says:
Code:
[   58.300446] usb 1-1: new high-speed USB device number 2 using ehci-pci
[COLOR=#ff0000][   58.659302] usb 1-1: config 1 has an invalid interface number: 3 but max is 2[/COLOR]
[COLOR=#ff0000][   58.659305] usb 1-1: config 1 has no interface number 0[/COLOR]
[   58.673878] usb 1-1: New USB device found, idVendor=16c0, idProduct=0476
[   58.673881] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   58.673883] usb 1-1: Product: Teensy MTP Disk/Serial
[   58.673884] usb 1-1: Manufacturer: Teensyduino
[   58.673885] usb 1-1: SerialNumber: 7820070
[   58.690544] cdc_acm 1-1:1.1: ttyACM0: USB ACM device
[   58.693345] usbcore: registered new interface driver cdc_acm
[   58.693346] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[COLOR=#000000][   98.089536] usb 1-1: USB disconnect, device number 2[/COLOR]
[   98.130423] cdc_acm 1-1:1.1: failed to set dtr/rts
If have modified it to :
Code:
 #define VENDOR_ID             0x16C0
  #define PRODUCT_ID        0x0476 //fake an include everything device
  #define RAWHID_USAGE_PAGE    0xFFAB  // recommended: 0xFF00 to 0xFFFF
  #define RAWHID_USAGE        0x0200  // recommended: 0x0100 to 0xFFFF
  #define DEVICE_CLASS        0xEF
  #define DEVICE_SUBCLASS    0x02
  #define DEVICE_PROTOCOL    0x01


  #define MANUFACTURER_NAME     {'T','e','e','n','s','y','d','u','i','n','o'}
  #define MANUFACTURER_NAME_LEN 11
  #define PRODUCT_NAME          {'T','e','e','n','s','y',' ','M','T','P',' ','D','i','s','k','/','S','e','r','i','a','l'}
  #define PRODUCT_NAME_LEN      22
  #define EP0_SIZE              64


  #define NUM_INTERFACE        3
  #define NUM_ENDPOINTS         5


  #define CDC_IAD_DESCRIPTOR      1 //1
  #define CDC_STATUS_INTERFACE    0 //1


  #define CDC_DATA_INTERFACE      1    // Serial //2
  #define CDC_ACM_ENDPOINT        2 //2
  #define CDC_RX_ENDPOINT       3 //3
  #define CDC_TX_ENDPOINT       3 //3
  #define CDC_ACM_SIZE          16
  #define CDC_RX_SIZE_480       512
  #define CDC_TX_SIZE_480       512
  #define CDC_RX_SIZE_12        64
  #define CDC_TX_SIZE_12        64
  #define ENDPOINT2_CONFIG    ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
  #define ENDPOINT3_CONFIG    ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK


  #define MTP_INTERFACE         2 // MTP Disk
  #define MTP_TX_ENDPOINT       4
  #define MTP_RX_ENDPOINT       4
  #define MTP_EVENT_ENDPOINT    5
  #define MTP_TX_SIZE_480       512
  #define MTP_RX_SIZE_480       512
  #define MTP_TX_SIZE_12        64
  #define MTP_RX_SIZE_12        64
  #define MTP_EVENT_SIZE        32


  #define MTP_EVENT_INTERVAL_12    10    // 10 = 10 ms
  #define MTP_EVENT_INTERVAL_480 7    // 7 = 8 ms


  #define ENDPOINT4_CONFIG    ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
  #define ENDPOINT5_CONFIG    ENDPOINT_RECEIVE_INTERRUPT + ENDPOINT_TRANSMIT_INTERRUPT  // ????
Now, Linux seems to be happy, but I'm not entirly sure, that it is correct now.
Thank you!

Edit: After a while, it continous to write:
Code:
cdc_acm 1-1:1.1: failed to set dtr/rts
Not sure, if this is normal.

Then, lsusb needs a long time (several seconds) to display the verbose info for the Teensy (tested with USB_MTPDISK_SERIAL only) and sometimes fails to prints the strings (serial-no, manufacturer etc)


Frank,

I will take a look. I believe this is not stuff in the current build, but stuff you added in from @WMXZ files in the MTP_t4 project? There are probably a few other things I want to double check to see as it compares to some other fixes I did for the
SEREMU one which is in the build.

And I may want to try it out anyway on Ubuntu as to get some debug working.
 
Code:
kurt@kurt-XPS-8300:~/github/MTP_t4$ dmesg | tail -30
[...]
[14017.066497] usb 1-1.4.1: new high-speed USB device number 21 using ehci-pci
[14017.175062] usb 1-1.4.1: New USB device found, idVendor=16c0, idProduct=0478, bcdDevice= 1.05
[14017.175064] usb 1-1.4.1: New USB device strings: [COLOR=#ff0000]Mfr=0, Product=0, SerialNumber=1[/COLOR]
[14017.175065] usb 1-1.4.1: SerialNumber: [COLOR=#ff0000]000D1E60[/COLOR]
[14017.176116] hid-generic 0003:16C0:0478.001E: hidraw3: USB HID v1.11 Device [HID 16c0:0478] on usb-0000:00:1a.0-1.4.1/input0

It can't read the device strings, sometimes.
 
Hi Paul,
I think FreqCount() is flawed. The gating period appears to not be set by the call to FreqCount.begin(NuSec).
Or am I being stupid (as usual)?

T4.1 on custom PCB with very good signal conditioning.
Main code is many thousands of lines... but boils down to this:


Code:
/*
    Name:       FreqCountBug_01.ino
    Created:    10/02/2021 17:42:50
    Author:     DESKTOP-KBCLAD0\Richard
*/
#include <FreqCount.h>


void myDelay(int milliseconds) {
	long time_end = millis() + milliseconds;
	while (millis() < time_end) {}
}


void setup() {
	Serial.begin(57600);
	Serial.println("Hello....");
	FreqCount.begin(100);  // Gate time in uSec.
}


void loop() {
	unsigned long count;
	if (FreqCount.available()) {
		count = FreqCount.read();
		Serial.println(count);  // Display the measured frequency


		/* Displayed frequency shows the gate time is NOT
		set by <FreqCount.begin(100)> but DOES correspond
		with the interval set by myDelay()


		Ex : 10MHz input should show 100 * 10 = 1000
		Actual value is 17000139


		Comment out the call to myDelay() and all is well.
		*/


	}


	// This delay simulate a lot of other things happening in real app.
	myDelay(1700); // Strange delay time makes malfunction obvious.
}
 

My updated version is:
Code:
#elif defined(USB_MTPDISK_SERIAL)
  #define VENDOR_ID             0x16C0
  #define PRODUCT_ID            0x0476 //fake an include everything device
  #define RAWHID_USAGE_PAGE 0xFFAB  // recommended: 0xFF00 to 0xFFFF
  #define RAWHID_USAGE    0x0200  // recommended: 0x0100 to 0xFFFF
  #define DEVICE_CLASS    0xEF
  #define DEVICE_SUBCLASS 0x02
  #define DEVICE_PROTOCOL 0x01

  #define MANUFACTURER_NAME     {'T','e','e','n','s','y','d','u','i','n','o'}
  #define MANUFACTURER_NAME_LEN 11
  #define PRODUCT_NAME          {'T','e','e','n','s','y',' ','M','T','P',' ','D','i','s','k','/','S','e','r','i','a','l'}
  #define PRODUCT_NAME_LEN      22
  #define EP0_SIZE    64

  #define NUM_ENDPOINTS         5
  #define NUM_INTERFACE   3
  #define CDC_IAD_DESCRIPTOR  1
  #define CDC_STATUS_INTERFACE  0
  #define CDC_DATA_INTERFACE  1 // Serial
  #define CDC_ACM_ENDPOINT  2
  #define CDC_RX_ENDPOINT       3
  #define CDC_TX_ENDPOINT       3
  #define CDC_ACM_SIZE          16
  #define CDC_RX_SIZE_480       512
  #define CDC_TX_SIZE_480       512
  #define CDC_RX_SIZE_12        64
  #define CDC_TX_SIZE_12        64
  
  #define ENDPOINT2_CONFIG  ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
  #define ENDPOINT3_CONFIG  ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK

  #define MTP_INTERFACE         2 // MTP Disk
  #define MTP_TX_ENDPOINT       4
  #define MTP_RX_ENDPOINT       4
  #define MTP_EVENT_ENDPOINT    5
  #define MTP_TX_SIZE_480       512
  #define MTP_RX_SIZE_480       512
  #define MTP_TX_SIZE_12        64
  #define MTP_RX_SIZE_12        64
  #define MTP_EVENT_SIZE        32

  #define MTP_EVENT_INTERVAL_12 10  // 10 = 10 ms
  #define MTP_EVENT_INTERVAL_480 7  // 7 = 8 ms

  #define ENDPOINT4_CONFIG  ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
  #define ENDPOINT5_CONFIG  ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT  // ????

And my boards.local.txt
Code:
teensy41.menu.usb.mtpserial=MTP Disk Serial (Experimental)
teensy41.menu.usb.mtpserial.build.usbtype=USB_MTPDISK_SERIAL

teensy40.menu.usb.mtpserial=MTP Disk Serial (Experimental)
teensy40.menu.usb.mtpserial.build.usbtype=USB_MTPDISK_SERIAL

teensy36.menu.usb.mtpserial=MTP Disk SERIAL (Experimental)
teensy36.menu.usb.mtpserial.build.usbtype=USB_MTPDISK_SERIAL

teensy35.menu.usb.mtpserial=MTP Disk SERIAL (Experimental)
teensy35.menu.usb.mtpserial.build.usbtype=USB_MTPDISK_SERIAL

teensy31.menu.usb.mtpserial=MTP Disk SERIAL (Experimental)
teensy31.menu.usb.mtpserial.build.usbtype=USB_MTPDISK_SERIAL

This got rid of that Linux error message. I updated the interface to match the MIDI versions, and I did verify on Ubutu that the Serial monitor is working with this setup...
 
(EDIT: you probably should skip ahead to my followup post before sinking time into reading this...)

I'm trying to adapt some filesystem code that was SD-specific to be filesystem agnostic, so it can be used with SD and LittleFS on both the Teensy and ESP32. I need to be able to pass a FS reference to a function. A function like this (taken from ESP32 example code) compiles on the ESP32 but not with Teensyduino 1.54 beta 6.

Code:
void listDir(fs::FS &fs, const char * dirname, uint8_t levels);

This level of C++ is beyond me; I'm not sure what that code does let alone how to troubleshoot the errors. I get these errors when compiling:

Code:
SD_FS_test:8: error: variable or field 'listDir' declared void
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
              ^
SD_FS_test:8: error: 'fs' has not been declared
SD_FS_test:8: error: 'fs' was not declared in this scope
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                      ^
SD_FS_test:8: error: expected primary-expression before 'const'
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                          ^
SD_FS_test:8: error: expected primary-expression before 'levels'
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                                                        ^
SD_FS_test:8: error: variable or field 'listDir' declared void
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
              ^
SD_FS_test:8: error: 'fs' has not been declared
SD_FS_test:8: error: 'fs' was not declared in this scope
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                      ^
SD_FS_test:8: error: expected primary-expression before 'const'
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                          ^
SD_FS_test:8: error: expected primary-expression before 'levels'
 void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
                                                        ^
Multiple libraries were found for "SD.h"
 Used: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/hardware/teensy/avr/libraries/SD
 Not used: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/libraries/SD
Multiple libraries were found for "SdFat.h"
 Used: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/hardware/teensy/avr/libraries/SdFat
 Not used: /Users/louis/Dropbox/Dev/Arduino/libraries/SdFat_-_Adafruit_Fork
Using library SD at version 2.0.0 in folder: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/hardware/teensy/avr/libraries/SD 
Using library SdFat at version 2.0.5-beta.1 in folder: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/hardware/teensy/avr/libraries/SdFat 
Using library SPI at version 1.0 in folder: /Applications/Teensyduino_1_54_Beta_6.app/Contents/Java/hardware/teensy/avr/libraries/SPI 
variable or field 'listDir' declared void

Here's the full test sketch that works on ESP32 and doesn't compile for Teensy 3.6:

Code:
#include <FS.h>
#include <SD.h>

#define SD_CS BUILTIN_SDCARD
//#define SD_CS 5

void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
  Serial.printf("Listing directory: %s\n", dirname);

  File root = fs.open(dirname);
  if(!root){
    Serial.println("Failed to open directory");
    return;
  }
  if(!root.isDirectory()){
    Serial.println("Not a directory");
    return;
  }

  File file = root.openNextFile();
  while(file){
    if(file.isDirectory()){
      Serial.print("  DIR : ");
      Serial.println(file.name());
      if(levels){
        listDir(fs, file.name(), levels -1);
      }
    } else {
      Serial.print("  FILE: ");
      Serial.print(file.name());
      Serial.print("  SIZE: ");
      Serial.println(file.size());
    }
    file = root.openNextFile();
  }
}


void setup() {
  Serial.begin(115200);
  delay(1000);
  
  if (SD_CS >= 0) {
    pinMode(SD_CS, OUTPUT);
  }

  // initialize the SD card at full speed
  if (!SD.begin(SD_CS)) {
    Serial.println("Card Mount Failed");
    while(1);
  }

  listDir(SD, "/", 0);
}

void loop() {
}

I specifically need this for improvements to the GifDecoder library

Is there something missing from the SD to SdFat wrapper code that could be added to get this to compile?
 
Last edited:
Sure enough directly after posting this I found the issue... The ESP32 FS library uses a namespace for some reason. If I change
Code:
fs::FS &fs
to
Code:
FS &fs
it works fine. I don't know why they are using a namespace or if it's a good or bad thing. Based on my other experience with ESP32 libraries I'm guessing making their code compatible with existing Arduino libraries wasn't a priority.

This line might be relevant: https://github.com/espressif/arduino-esp32/blob/master/libraries/FS/src/FS.h#L117

I think my issue is fixed and I'll just remove the namespace from GifDecoder. I'm leaving this here in case it's actually a good thing to add namespaces to the Teensyduino version of the FS library.
 
@PaulStoffregen - Again wondering has anyone had any luck with Ubuntu 20.04 with USB Types that include SEREMU to have the Arduino Terminal Monitor?
As I posted earlier in this thread. It did not work for me with the MTP disk one, and then tried with Keyboard and again Arduino monitor shows offline...

Note: when I added the stuff for MTP with Serial, that works...
 
wondering has anyone had any luck with Ubuntu 20.04 with USB Types that include SEREMU to have the Arduino Terminal Monitor?

I don't know. The only Ubuntu 20 issue on my radar is the problem you found with ARM64 on Raspberry Pi. Are there threads where people have reported problems on normal x86 Ubuntu 20?

I'm still on Ubuntu 18 here, but considering updating to 20 soon. Maybe it's time....
 
I don't know. The only Ubuntu 20 issue on my radar is the problem you found with ARM64 on Raspberry Pi. Are there threads where people have reported problems on normal x86 Ubuntu 20?

I'm still on Ubuntu 18 here, but considering updating to 20 soon. Maybe it's time....

Maybe? First off you might try running a simple keyboard test (I commented out the outputs to keyboard ...) and see if it work there...

Note: code I ran in #29
 
Hm I thought I try the Teensy LC audio again.. something seems to be broken with the current code from Beta6.
I'll look.... maybe my PR did not include all needed changes.
 
Hm I thought I try the Teensy LC audio again.. something seems to be broken with the current code from Beta6.

Windows can restore old versions. I replaced the current core with an older one, from december... and LC Audio works again.
Any Idea what has changed that can cause problems? With the current core I hear distorted audio.
It is NOT the Audio Library.

Edit: ok. I'll find that...
 
Last edited:
Maybe? First off you might try running a simple keyboard test (I commented out the outputs to keyboard ...) and see if it work there...

Note: code I ran in #29

I thought I would mention I installed on MAC (the big whole version of Arduino installed...) and the keyboard test I mentioned, the SEREMU appears to work.
I do get the apple system saying it wont install the keyboard until it knows what type of keyboard and I supposed to press the button to the right of ...
But Teensy Monitor showed the pass numbers.

Now Mac is doing an update...
 
@Paul on the test I grabbed an old portable that had Ubuntu 14.04 and installed Ubunt 18.04 installed latest Arduino and this beta build and then tried plugging in the T4.1 with the keyboard app that I programmed on the Mac and it shows I believe same issues as the Ubuntu 20.04.
a Screenshot from 2021-02-12 16-13-36.jpg
It is showing in arduino terminal monitor as offline

Edit: I should mention I also did switch to T4.1 and reprogrammed the Teensy. It failed to reboot the Teensy, I had to hit the program button, which programmed it.

It still showed the Teensy offline. I tried programming again and again I had to hit the program button
 
Code:
[COLOR=#333333]warning: #warning "Please include TimeLib.h, not Time.h.  Future versions will remove Time.h" [-Wcpp]
[/COLOR]Has existed for years.
Isn't it time to finally do that....?
 
Teensy 4.1
USB Type "Serial + MIDI"
It shows up in Linux as MTP device, which is obviously not fuctional. Is this by intention?
 
Hi all,

I hope this is the right place to post this issue with the Entropy Library.

The implementations of these two defined functions in the Entropy.h are missing in the Entropy.cpp file:
Code:
uint8_t randomByte(void);
uint16_t randomWord(void);


I added them in to my local files like this (in case anyone needs this):
Code:
uint8_t EntropyClass::randomByte(void)
{
  return random8();
}

uint16_t EntropyClass::randomWord(void)
{
  return random16();
}

Thanks :)
 
Tested B6 with Radiohead library and two NRF24LO1 modules with LNA and power amplifiers. Good comms between T4.0 and T4.1 at default power and SPI settings over about 30 feet inside the house. The Teensies and modules are on plugboards and powered by the T4X 3.3V power.

I did the default RH_NRF24 instantiation and initialization:
Code:
#include <SPI.h>
#include <RH_NRF24.h>

const char compileTime [] = " Compiled on " __DATE__ " " __TIME__;
// Singleton instance of the radio driver
RH_NRF24 nrf24;
// RH_NRF24 nrf24(8, 7); // use this to be electrically compatible with Mirf
// RH_NRF24 nrf24(8, 10);// For Leonardo, need explicit SS pin
// RH_NRF24 nrf24(8, 7); // For RFM73 on Anarduino Mini

void setup() {
  Serial.begin(9600);
  delay(400);
   Serial.printf("NRF_24 Server %s\n", compileTime); 
  if (!nrf24.init())
    Serial.println("init failed");
  // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
  if (!nrf24.setChannel(1))
    Serial.println("setChannel failed");
  if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))
    Serial.println("setRF failed");    
}

An important note: With this default initialization, the library expects the CE signal to be connected to Pin 8 on the Teensy. I think it is possible that some of the earlier posts noting difficulties with the NRF24 may have connected the CE signal to the wrong pin, or were mixing up the CE and SPI CS pins.


A less important note: A lot of the the examples in the Radiohead library supplied with the TD install still have sketches with the .pde extension. That's so 2014!!!
 
Hi,

Just to say thanks for this release.
Band limited waveforms + clean Freeverb = big improvement for synths projects !
Emmanuel
 
@Paul:
NOTE for SD update to SdFat : transferred Arduino/Teensy drive contents to new machine here
> Build pulled in Adafruit_SDFAT library instead of the Teensy one, had to delete that ( used for their NRF family )
 
Status
Not open for further replies.
Back
Top