Pro Mini, USB MIDI chip and sending and receiving MIDI

I built a MIDI controller based on Arduino Pro Mini. Everything works fine, and so far, I’ve used the serial conversion to MIDI. Both sending and receiving the MIDI works as expected. To explain the previous setup a bit more:

  1. Pro Mini is connected to PC via CP2102 module
  2. I convert serial messages from Arduino with hairless-midi application
  3. I route converted messages to my MIDI software via virtual MIDI cable (loopBe30)

Everything works fine. Therefore, I ordered a USB MIDI chip, more specifically, Altmustech AU-123. I’ve designed a PCB for it. Datasheet (attached) says it’s TTL compatible, so, only change I did in my code was to change the serial baud rate from 38400 to standard MIDI speed, 31250. I’ve connected RX/TX pins directly to that chip, and my PC recognizes the device as USB MIDI. A good start. Sending MIDI data from Arduino to PC via that chip works perfectly fine, however, receiving does not. It’s as if the messages sent to that chip are somehow inverted, except they’re not. For instance, sending MIDI note 0 on channel 1 with 127 velocity should result in following message:

144 0 127

However, on Arduino end I’m receiving this:

243 1 0

I can’t find any sense in that. Any suggestions? Note that my code for this test consists merely of this:

void loop()	{
	if (Serial.available() > 0)	Serial.write(;

If I go back to previous method, 38400 baud rate with serial-to-midi conversion, I receive the expected input on Arduino end.

au123_datasheet.pdf (507 KB)

Okay so, datasheet says for MIDI out that is an "active high" pin. Can someone please explain what does that mean? Does that require connecting the pin to +5V or some other thing?

The output data of Altmustech AU-123 USB MIDI controller should be inverted. Check attached picture. If you need ready to use USB to MIDI solution - see this page 403 Forbidden very cheap ultra miniature USB MIDI module from Altmustech - just install and connect to any platform.