Alternatives to Livid Brain

Status
Not open for further replies.
Hello !
Do you have any idea of alternatives for such hardwares ? The V2 is quite interesting with its 64 analog inputs.

You can use the Teensy + 74HC4067 16:1 analog MUXs + 74HC595 shift registers to create your own. That's the combo of hardware I used in my TeensyMIDIPolySynth (https://forum.pjrc.com/threads/60690-TeensyMIDIPolySynth?p=237404&viewfull=1#post237404). My project took analog inputs (pots) & digital inputs (pushbuttons) thru the MUXs, & used that to adjust settings as a MIDI-to-sound instrument. It sends the current selection states thru the shift registers to display on LEDs. That's slightly different from what you seem to want to do (take inputs & generate MIDI outputs), but the point of my post is to pass along that with the Teensy & some minimal additional hardware (74HC4067 MUXs & 74HC595 shift registers), you could probably create an equivalent fairly quickly & easily.

The MUXs require one analog input/output & 4 digital addressing pins. You can cascade the MUXs (I used this approach in the TeensyMIDIPolySynth), so the primary MUX would use these 5 pins as described. The secondary MUX input/output pin would be wired to the 16 input/output pins on the primary MUX. Doing it this way, you would need an additional 4 addressing pins for the secondary MUXs. Therefore, you would only need 9 pins (4 primary addressing, 4 secondary addressing, & 1 input/output) to give you 256 analog inputs/outputs. The MUXs work for both analog signals & digital signals. You can use the 16 side of any MUX for either input or output, or any mix of both.

The shift registers require only 2 pins (clock & data). Or if you want, you might add a third pin for the output enable. I tied the output enable pin on the shift registers to a PWM pin from the Teensy & used the PWM duty cycle to control the brightness of the LEDs. You can cascade as many 74HC595s as you might need for your LED outputs (I am using seven 74HC595s, for a total of 56 outputs from only 3 pins in my case).

Feel free to ask any other related questions.

Good luck & have fun !!

Mark J Culross
KD5RXT
 
Do you have some kind of schematic of connections, and Arduino code for your project ?

A link to the source (located on my GoogleDrive) is available from the project link given earlier (TeensyMIDIPolySynth (https://forum.pjrc.com/threads/60690-TeensyMIDIPolySynth?p=237404&viewfull=1#post237404). I'm in the process of generating a pseudo schematic (it won't be a full schematic, but it will document the connections among the Teensy, the MUXs, & the shift registers). . . I'll post again once I've added this pseudo schematic to the file collection.

In the meantime, you can look at the pin definitions & the loop() function in the source to see how the input/output pin & the addressing pins are assigned & used. Don't get scared away by the 18000+ lines of code . . . it's lots of cut/paste/edit all over the place. I started out by abstracting lots of functionality (using array of structures containing addresses & pointers to objects, which made it easy to just iterate thru the array & perform "generic" operations on the referenced objects . . . see "bool *shiftreg_output_led_ref[]" as a simple example). Even though this approach greatly reduced the number of source lines & simplified control of the functionality, it really adversely impacted readability & the ability to be understood easily, so I went back to using strictly in-line code for everything.

As the project developed, I was sharing the code with a couple of fellow radio club members whose primary jobs are not necessarily as software engineers, so I tried to put extra emphasis on the ability for the code to be understood (at least, as much as possible !!). That original goal may have somewhat fallen into the side ditch as I made my way down the road to the final product that I have today, but the results have turned out to be quite pleasing.

Mark J Culross
KD5RXT
 
Status
Not open for further replies.
Back
Top