Teensy 4.1 MIDI circuit Help

Hello Guys!

Im here to ask for your advice and guidance on a project of mine. Im currently working on a MIDI circuit for my Teensy 4.1. The thing is had it working a few weeks ago so i know its possible. Just when i try to rebuild it nothing seems to work. Im going to add a picture of my breadboard and the circuit im using. I tried testing it with a midi test program i downloaded from this forum and like i said i had it working but i just cant get it to work again. If i run the program all it says is inactive. I would really appreciate any input and hope you guys are doing well!

Best regards :)


  • Unbenannt-1.jpg
    315.6 KB · Views: 29
  • midi h11l1.jpg
    midi h11l1.jpg
    41.2 KB · Views: 31
  • midi_test.ino
    4.8 KB · Views: 20
Time for debugging I guess...
To make sure the external MIDI receiving hardware and the attached MIDI device are OK, my first step would be to strip the program down to the MIDI related code. The 3 setHandle functions would only contain a Serial.print() of the parameters like channel, note and velocity.
Once that is working, it's time for the next step...

Try running File > Examples > Teensy > Serial > EchoBoth. Edit the baud rate to 31250 before upload.

When your MIDI device sends messages, if the bytes really are arriving this little will show you the raw data. Then you can at least know whether to focus on the circuitry or the rest of that audio synth code.
Thank you guys for your reply! It seems to be a problem with the hardware i think. Is it possible to use a different pin for the input other tan 0 (rx1) ?
Also i am using this code from the forum to test with the serial input. Like i said this has worked for me before.


  • midiserial.ino
    1.6 KB · Views: 16
It seems to be a problem with the hardware i think.
I assume you did not receive any data with the EchoBoth sketch? Are you sure your MIDI device is outputting data?

Is it possible to use a different pin for the input other tan 0 (rx1) ?
Yes. Change this line MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI); to MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI);. Then pin 7 is RX2 [pin 8 is TX2]. See here.

Before you use MIDI_CREATE_INSTANCE, save yourself a lot of time by first running EchoBoth with the code edited for whatever port you use. If EchoBoth can't show you the raw bytes, you'll only waste a lot of time by trying other more complicated software.
Yeah i tried to use the EchoBot also assigned different pins but i just wont work. Im thinking it must be a circuit problem but i replaced all the parts multiple times nothing seems to work.... What i don't understand is i did this before and i worked and i also took pictures of it now when i rebuild it exactly nothing works....
Two things I'd check

- does pin 6 of the H11L1 have 3.3V?

- the jumper which connects to the Teensy Pin 0 would have to be laying flat under the audio board. Have you bent the jumper pin at a right angle so that it will make proper contact with the breadboard pin?

I'm confused. #9 says "tried to use the EchoBot also assigned different pins but i just wont work" but #13 says "the midi device is outputting data".

Generally speaking, the process of troubleshooting usually involves testing each part of a project as separately as possible to try to isolate which part has a problem. That's why the suggestion to not use MIDI.h and just print the raw bytes to the Arduino Serial Monitor. If the bytes you receive are correct, then effort can focus on the software side that's processing those bytes. If the bytes are wrong or no bytes at all arrive, then effort can focus on the hardware portion.

Please understand we can't see your screen. We so far have only 1 photo of your breadboard (which looks good from that 1 camera angle). As you try things, we can't see precisely what you're doing and what real result appears on your screen unless you give us precise words or photos and screenshots. I want to help you get this working. So does everyone else here. We can probably help much better if you clearly show us what you're attempting and let us see the results. Or if that it too much work, please at least try to describe what actually happened rather than saying it did or did not work. Sometimes even a small detail can make all the difference for solving a technical problem, but if you omit details and just say something didn't work, we have very little extra info to help solve this problem.