Teensy Micromod downloads

jerryk

Well-known member
Hello!

I just got one of these bad boys. A micromod Teensy card, and an "All ports brought out" micromod motherboard. Put the two boards together, plugged it into a USB C. OK, the micromod port came up in my Arduino IDE. Just to see if I could download something, I set the IDE to "Teensy MicroMod" and downloaded my current project. The download was apparently successful. The downloader was happy, and the blinking lights on the board changed.

What about another download? No luck, now the "Teensy MicroMod" port is gone from the USB listing. Not entirely unexpected; the traditional Teensy card has a boot processor that takes over the SWD/JTAG pins. This doesn't have that, so I'm guessing that a boot program was loaded into the IMXRT1062 itself during manufacture. So you get to download once.

I have a "Segger EDU Mini" on order. I expect and hope that downloads can be done through that. Really, the main advantage to me of the MicroMod ecosystem is that the SWD is available. I am so sick of debug printf()'s!
 
The micromod works the same as the regular Teensys, it still has the helper chip attached to the JTAG port.
 
The plot sickens... Apparently it does have the boot chip. Says so right on the schematic. So have I bricked it? When I momentarily hit the "boot" switch, the "prog" light starts to blink on the Teensy card. But there is no USB device. If I press and hold the boot switch for say 10 seconds, then the prog light comes on solid. Still no USB device.
 
Which OS are you using?
The USB VID/PID is configurable and can vary between the default blink sketch, prog mode and regular sketches. If you're using a linux-based OS the default teensy udev rules file should include all of them, but maybe that setup step was skipped...
 
When I momentarily hit the "boot" switch, the "prog" light starts to blink on the Teensy card.

Same as with Teensy 4.0 and Teensy 4.1 (the red LED near their USB connector), this LED blinks in different ways to indicate different problems.

A slow steady blink means no USB communication while in bootloader mode. This is by far the most common problem with manufactured boards. It almost always means a defective or not fully plugged USB cable. If make sure none of the software is running on your PC and then you power up MicroMod and there's no blinking on the boot LED (the normal condition) and then you press the Boot button on that carrier boards, the Boot LED is supposed to turn on steady (not blinking). Even without the software, your operating system will perform some communication to detect the USB device after you release the button. If MicroMod heads absolutely zero USB communication from your PC after going into bootloader mode, it blinks the slow steady pattern to tell you it's not hearing anything from your PC.

The LED can also blink in patterns of 2 to 13 quick blinks. Most of these happen with various hardware problems. They're meant for troubleshooting DIY circuit boards. A full list is on the T4 bootloader chip page. Scroll to the end for "Troubleshooting & Diagnostic Blink Codes".
 
Ubuntu Linux. I did accomplish one download. Now lsusb shows nothing when I plug it in. In /etc/udev/rules.d, I see 00-teensy.rules,
dated March 19, 2023.

I have a Teensy 4.1 also on the desk. That one works fine.

This device shows up in lsusb:
Bus 001 Device 080: ID 16c0:0483 Van Ooijen Technische Informatica Teensyduino Serial

OK - it's some sort of USB strangeness. I unplugged it from the USB hub, and plugged it directly into the computer - and we have our USB device,
and a successful upload.
 
Bus 001 Device 080: ID 16c0:0483 Van Ooijen Technische Informatica Teensyduino Serial
That looks weird. USB device addresses are only 7 bits wide so 128 isn't a usable value. Unless linux just "works that way" by storing addresses internally by mashing the hub address and device address together.
 
I unplugged it from the USB hub, and plugged it directly into the computer - and we have our USB device

Care to name & shame the problematic USB hub?

Can it still be purchased anywhere? And is it relatively new? Often manufacturers change the internal design but keep the model number and package identical, so if it's more than a couple years old odds of buying a new one coming with the same design are slim.
 
One other possibility, which might fit the circumstances of it worked at least once, is this could be a rare USB hub with actually good over-current detection. And the carrier board plus other stuff connected might have too much capacitance, with an inrush current over the limit. Maybe. Really just a blind guess. But if you want to talk of the details of what might have gone wrong, looking at what's on that carrier board and any other stuff you have connected might be useful.
 
It's a Unitek Y-3198 6-port USB-3.0 hub. I bought it in November of 2019. Works fine with my cell phone.
 
I just got one of these bad boys. A micromod Teensy card, and an "All ports brought out" micromod motherboard
When you are saying this, is it some new carrier board, or the old ATP board: https://www.sparkfun.com/sparkfun-micromod-atp-carrier-board.html

I have at least a couple of these and so far no problems. Although sometimes have some flaky issue, which I could resolve by unplugging the MMOD board, and then plug it back in, like maybe some contact was not making a good contact.

Note: one of the ATPs I use has a quick and dirty shield in it:
1773610827798.png

Which is setup for playing with Arducam cameras, also has the pins brought out showing Teensy pin numbers...
 
It's the ATP board. Now I need to figure out what goes where. First of all, I need SPI for my display. And, I think an I2C for touch.
 
Not sure if this one will help you: This is one of the pages in my Teensy 4.x excel document...

PinMM PinOV767X ShieldMM ATPMM FuncNameGPIOSerialI2CSPIPWMCANAudioXBARFlexIOAnalogSD/CSI/LCD
0019UART_TX1*AD_B0_031.3Serial1(6) RXSPI1(3) CS0PWM1_X12_RXIO-17
0117UART_RX1*AD_B0_021.2Serial1(6) TXSPI1(3) MISOPWM1_X02_TXIO-16
0247TFT_RSTPWM1*EMC_044.4PWM4_A22:TX_DATAIO-061:4
0332TFT_BACKLIGHTPWM0*EMC_054.5PWM4_B22:TX_SYNCIO-071:5
0410TFT_DCD0*EMC_064.6PWM2_A02:TX_BCLKIO-081:6
0518TFT_CSD1*EMC_084.8PWM2_A12:RX_DATAIO-171:8
0671CAMERA_D6G6/BUS6*B0_102.10PWM2_A2, QT4_11:TX3_RX12:10LCD_DATA6
0756AUDIOAUD_OUTB1_012.17Serial4(4) RXPWM1_B31:TX_DATAIO-152:17, 3:17
0854AUDIOAUD_INB1_002.16Serial4(4) TXPWM1_A31:RX_DATAIO-142:16, 3:16
0969CAMERA_D7G7/BUS7*B0_112.11PWM2_B2,QT4_21:TX2_RX22:11LCD_DATA7
1055CAMERA_PCLKSPI_CSFNCS0B0_002.0SPI(4) CS0QT1_0MQS_RIGHT2:0LCD_CLK
1159SPI_MOSISPI_SCOPI*B0_022.2SPI(4) MOSIQT1_21_TX2:2LCD_HSYNC
1261SPI_MISOSPI_CIPO*B0_012.1SPI(4) MISOQT1_1MQS_LEFT2:1LCD_ENABLE
1357SPI_CLKSPI_SCK*B0_032.3SPI(4) SCKQT2_01_RX2:3LCD_VSYNC
14/A034A0*AD_B1_021.18Serial3(2) TXQT3_2SPDIF_OUT3:2A1:7, A2:7
15/A138TFT_ADA_CS_SDA1*AD_B1_031.19Serial3(2) RXQT3_3SPDIF_IN3:3A1:8, A2:8
16/A220UART_RX2*AD_B1_071.23Serial2(3) RXWire2(3) SCLSPDIF_EXTCLK3:7A1:12, A2:12USDHC2_DATA3
17/A322UART_TX2*AD_B1_061.22Serial2(3) TXWire2(3) SDASPDIF_LOCK3:6A1:11, A2:11USDHC2_DATA2
18/A412WIRE(CAM/AUD)I2C_SDA*AD_B1_011.17Serial3(2) RTSWire(1) SDAQT3_13:1A1:6, A2:6
19/A514WIRE(CAM/AUD)I2C_SCL*AD_B1_001.16Serial3(2) CTSWire(1) SCLQT3_03:0A1:5, A2:5
20/A652AUDIOAUD_LRCLKAD_B1_101.26Serial5(8) TX1:RX_SYNC3:10A1:15, A2:15
21/A750AUDIOAUD_BCLKAD_B1_111.27Serial5(8) RX1:RX_BCLK3:11A1:0, A2:0
22/A849<NO EDGE PIN>BATT_VIN3*AD_B1_081.24PWM4_A01_TX3:8A1:13, A2:13USDHC2_CMD
23/A958AUDIOAUD_MCLKAD_B1_091.25PWM4_A11_RX1:MCLK3:9A1:14, A2:14USDHC2_CLK
24/A1053I2C_SCL1AD_B0_121.12Serial6(1) TXWire1(4) SCLPWM1_X2A1:1
25/A1151I2C_SDA1AD_B0_131.13Serial6(1) RXWire1(4) SDAPWM1_X3GPT1_CLKA1:2
26/A1267TOUCH_CSG8AD_B1_141.30SPI1(3) MOSI1:TX_BCLK3:14A2:3
27/A138TOUCH_IRQG11AD_B1_151.31SPI1(3) SCK1:TX_SYNC3:15A2:4
284<NO EDGE PIN>3.3V_EN(no edge pin)EMC_323.18Serial7(7) RXPWM3_B1
2916CAMERA_MCLKI2C_INT#*EMC_314.31Serial7(7) TXSPI2(1) CS1PWM3_A1
3041CAMERA_PDNCAN_RX*0EMC_373.23GPT1_33_RX3:MCLKIO-23
3143CAMERA_PENCAN_TX*0EMC_363.22GPT1_23_TX3:TX_DATAIO-22
3265CAMERA_HSYNCG9B0_122.121:TX1_RX3IO-102:12LCD_DATA8
3363CAMERA_VSYNCG10EMC_074.7PWM2_B02:MCLKIO-091:7
3466SDIOSDIO_DATA1FPE1SD_B0_033.15Serial5(8) RTSSPI2(1) MISOPWM1_B1IO-07DATA1
3564SDIOSDIO_DATA1SD_B0_023.14Serial5(8) CTSSPI2(1) MOSIPWM1_A1IO-06DATA0
3660SDIOSDIO_SCK*SD_B0_013.13Wire2(3) SDASPI2(1) CS0PWM1_B0IO-05CLK
3762SDIOSDIO_CMD*SD_B0_003.12Wire2(3) SCLSPI2(1) SCKPWM1_A0IO-04CMD
3868SDIOSDIO_DATA3FPE0SD_B0_043.16Serial5(8) TXFLEXSPI B_SSO_BPWM1_A2IO-08DATA2
3970SDIOSDIO_DATA2FNCS1SD_B0_053.17Serial5(8) RXFLEXSPI B_DQSPWM1_B2IO-09DATA3
4040CAMERA_D0G0/BUS0*B0_042:04Wire3(2) SCLQT2_12:4LCD_DATA0
4142CAMERA_D1G1/BUS1*B0_052:05Wire3(2) SDAQT2_22:5LCD_DATA1
4244CAMERA_D2G2/BUS2*B0_062:06QT3_02:6LCD_DATA2
4346CAMERA_D3G3/BUS3*B0_072:07QT3_12:7LCD_DATA3
4448CAMERA_D4G4/BUS4*B0_082:08QT3_22:8LCD_DATA4
4573CAMERA_D5G5/BUS5*B0_092:09QT4_02:9LCD_DATA5
HUSB D-37USBHOST_D-*0
HUSB D+35USBHOST_D+*0
USB D-5USB_D-
USB D+3USB_D+
 
Back
Top