Alternate usb or midi inputs?

controllers
midi

#1

I've rigged up a midi controller using a Teensy LC board today and it is capable of outputting cc signals via USB....unfortunately my USB input is currently occupied by my midi controller (Oxygen 49 MKIII)

I'm wondering if there are some pins on the board that I can solder an additional USB input to so I can connect my Teensy while my Oxygen controller is plugged into the main USB input....Also hoping this is possible so I can attach my Oxygen directly to the Axoloti and still have the usb accessible when I eventually throw them both into a custom enclosure....

I'm also wondering if I could even just wire the Teensy directly to the board through rather than adding another USB....the Teensy can be powered using 3.3v off the Axoloti and I'm certain it can output its midi signals through a pin rather than through USB.

Here are some HD pictures of the Axoloti board...if anyone can point out where the USB/MIDI pins are ---- assuming the exist ---- I'd be very grateful and will have a really cool looking synth to show everyone soon!

:slight_smile:

EDIT: the photos are wonky looking because I photo-merged them so the text printed on the PCB would be legible
EDIT2: in case anyone is wondering, Im using the Teensy because the Oxygen just doesn't have enough knobs and sliders and buttons and whatnot for what I want to do...


#2

if I remember correctly, the midi din connections are just behind the midi plug, but I don't think you can easily get to the usb (host) connection, I think they are underneath the plug ?!
(and if you reuse the usb connection, you wont be able to use it for another device, so not much point in hard wiring something to it)

it might be easier/less destructive to the axo board, to connect via UART to the teensy.
I recognise this might be a bit of extra code, but that's how it goes with embedded systems, its a marriage of hardware and software :wink:

also, be aware, USB hubs will be supported in the next release of Axoloti
(assuming no showstoppers on the new usb stack, which is now looking pretty good, with only a couple of outstanding issues)


#3

Yeah, you can connect directly to the uart Rx on the Axo, there is a great little help patch with everything you need to get started in the "axoloti-contrib" patch library under "hug/midi_io/extra_midi_io.axp".
It works great, the only problem I encountered was it stoped working everytime I tried to change patches when using the Axo in standalone mode. You can also connect your Uart directly to the midi input 5 pin din. Which is what I did.
This has my adventure, details and my solution if you are interested..


#4

Huge! Haha thanks I'll be sure to try this out when I get home. Thanks!


#5

I'm definitely going to try out the midi in method. Seems simple enough and according to @gavin's comment it seems like it'll present the fewest possible problems.

When I get things up and running I'll post a couple pictures (hopefully I'll have the time within the next couple days)


#6

Hi! (This is actually my first post! Just got an Axoloti and currently trying to learn as much as i can on this forum)

I think it might be possible to use a USB host shield with your teensy and and plug it to the other USB device jack on your Axoloti. It seems like this jack only gets used when programming the Axoloti with a computer, so it's free to use as an extra MIDI i/o.

You only need a MIDI controller capable of hosting the Axoloti via USB. It can be a smart phone, a computer, an arduino compatible device with USB MIDI hosting capabilities, or even another Axoloti!

Thankfully Axoloti is so powerful and deep when it comes to Midi. In fact I'm planning to use an Arduino Due with two Axoloti boards, so Due is hosting the first Axoloti and the the first Axoloti is hosting the second Axoloti. Not a hundred percent sure how to make it work but I don't think it's impossible.

Cheers!


#7

The Axoloti will act as a host only for things plugged into the larger usb port. The smaller usb is used to plug the Axoloti into other hosts only as far as I know


#8

Exactly, And that's why it's possible to use teensy with usb host shield and connect it to the SMALL usb port of the Axoloti. This way the LARGE usb port of the Axoloti is free to host other things, including other axolotis! (I think)

Also USB host shield runs at 31250 BAUD but UART and MIDI DIN runs at 9600 BAUD. Not sure if possible to implement MIDI communication at higher transfer rates though.


#9

that's inaccurate...
MIDI DIN runs at 31250, and also teensy supports this over uart, see here , the usable buad rates sections , it states 31250 (midi) at 0% error rates.

the advantage of USB midi is it can run much higher than this... see usb 1.0 is a min of (low speed) 1.5 mBit/s, but can do (high speed) 12mBit/s or higher with 2.0/3.0.. and given USB midi is a protocol over the transports, afaik it can run at any of these higher rates.

though frankly, only MPE type devices are going to need anything over the 31250, and even those, if they are written well can work.

given Axoloti is going to support hubs, I don't see much advantage of using a teensy usb host shield, unless you happen to have one lying around doing nothing :wink:


#10

Thanks for providing the correct information. I have an arduino due that can host midi usb but i haven't tried it yet. There is still so much to learn!

It's so great to know that axoloti is going to support usb hubs! Do you think it is going to be possible for an axoloti board to host other axoloti boards on the same usb hub? (I'm thinking of a situation where one axoloti is connected to a usb hub via it's large usb port, and other axolotis are connected to the same hub via their small usb ports)


#11

Yes the hub will be able to host other axolotis


#12

When you say -
" if you reuse the usb connection, you wont be able to use it for another device, so not much point in hard wiring something to it" -
are you confirming that if I wired a female usb A port to the back of my axoloti sharing the solder points of the existing USB A port on the axo, there would be issues receiving midi from both shared ports? I was worried about a potential voltage problem, but this seems equally as discouraging.

I have an enclosure with an axoloti and Arduino Mega. The mega is sending Midi over USB , which I'd love to connect to the axo via usb and not UART, as I've been warned I'd need an octo-coupler to handle the voltage differences of the 2 MCUs. That, as well as the advantages you point out in this thread of USB midi being able to run at a higher data rate.

I suppose if the trade off is not being able to wire in an additional removable controller, its not the end of the world... though it would be sad. I'd choose higher data rate/less latency over connectivity for this project.


#13

Exactly. Physical USB connections are always between one host port and one device port. Wiring two devices to the same host port will not work; that's what hubs are for. Unfortunately the Axoloti firmware does not support hubs, so we are limited to one USB device.

Actually, the voltage difference is not that big of a problem with UART connections. The optocoupler would be the proper way to do it, allowing hot-plugging and long cables and preventing ground loops, but if both devices are close (in the same enclosure) and share the same power supply (thus having a common ground and being switched on and off at the same time), a series resistor (10k Ohms) in the data line will let enough of the UART signal through while limiting the current (resulting from the voltage difference) to harmless levels.


#14

okay thank you for the input! :slight_smile:


#15

told this in another thread, but will repeat here: RetroKits RK-006

unlike Axo, it does support USB hubs, so the rest is just a matter of routing
(and USB MIDI is fast enough)


#16

Hey I've been wondering about this device for a while.

Can it be host and device at the same time? Or how do you connect it to axoloti?


#17

i use it as a standalone USB host, since it supports USB hubs and can set routing rules by USB IDs — this allows routing between USB devices.
rules can be set via its web interface (WebMIDI-capable browser required).

so in my rig Axo works as MIDI processor/arpeggiator for Circuit Tracks and MC-101 connected to the same USB hub with Axo – all three are used as USB devices. Axo's USB host is used for Launchpad Pro, which works as input device/user interface for Axo patch.

on the other hand, RK-006 can be USB device too, so other scenarios are also possible.


#18

Yes I read about the hub funtionality.

But I would like the option open to hook up axo to my computer and either route midi from there or program it.

So I was wondering if the rk006 could be both usb host and device.

Somehow like this.

Computer <---- Axo <------Rk006 <-----Hub


#19

ok it seems the rk006 can either be host or be hosted.

this thing looks interesting though! allthough I'd prefer minijacks for midi ports...

Imagine this thing being hosted by an axoloti board. and then a usb hub attached. then axoloti could still be hosted by computer for programming. very powerful setup