MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

Robaux 16 DIY
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author Robaux 16 DIY
feedbackl00p
Im fiddling around with the schematics and code for this, in learning about and building arduino trigger sequencers.

I cant find a contact email for the company, so thought Id try here.

The schematics are a bit vague when it comes to denoting which led or jack corresponds to which IC or nano pin. Nothing is really numbered.

https://robaux.io/assets/files/swt16schematicRev1.pdf

Does anyone have any idea how to trace say each led to which pin on which 74hc595, and which switch to which pin on the CD4021?

Is there a way of divining it from the Arduino INO?

https://github.com/robaux/swt16
joem
feedbackl00p wrote:
Nothing is really numbered.


True. It's even better! cool

I say it's better than being numbered, since it shows what the microcontroller pins are. That way, you just need an Arduino Nano pinout (just google for it) to know which pins those match to, but you can also just as easily figure out what pins they match to on any other Arduino (at least the ones using Atmega 328's). It helps bring you one step closer to understanding the microcontrollers that the Arduinos are based on. (The Arduino hardware - at least in the atmega168/328 ones - is pretty much just a breakout board for the microcontrollers, anyway.)
feedbackl00p
joem wrote:
feedbackl00p wrote:
Nothing is really numbered.


True. It's even better! cool

I say it's better than being numbered, since it shows what the microcontroller pins are. That way, you just need an Arduino Nano pinout (just google for it) to know which pins those match to, but you can also just as easily figure out what pins they match to on any other Arduino (at least the ones using Atmega 328's). It helps bring you one step closer to understanding the microcontrollers that the Arduinos are based on. (The Arduino hardware - at least in the atmega168/328 ones - is pretty much just a breakout board for the microcontrollers, anyway.)


Have you looked at the schematic?

The switches connect to a pair of 74HC595 which then feed into the Nano. So there is no direct connection.

How can you work out from the code what number switch is coming out of what number pin on the 74HC595?

Looking at the datasheet, it appears pins 1-7 of the 595 are the outputs. Im building it currently hoping the first 7 pins of the first 595 are output leds 1-7 of the actual trigger circuit.

But a question for the Arduino gurus. How can I tell from the code which range of led are being fed into which 74HC595?
cackland
Generally when using a multiplexer or shift register, there is only one data pin that is read for each ic. It’s the sequence of high / low or truth table sequence sent to the ic address pins that determines which pin is being read. This usually happens in a ‘for loop’. In other words, during a loop, the micro controller is continually sending out a binary sequence to all pins rapidly, then when the voltage is high (meaning one of the buttons has gone 5v), the micro controller knows which pin on the ic has been selected. This happens in a linear fashion, left to right or right to left.

You can test which order the programmer has set this up by manually sending a sequence of high / low to to check to the data pin of each ic
for eg:
digitalWrite(ic address pin A LOW)
digitalWrite(ic address pin B, LOW)
digitalWrite(ic address pin C, LOW)

This would equal pin 1 on the mux for example.

Then press all the buttons one by one to check which one is giving you a response. Or send it to the LED’s to see which one lights up at that given address.
Then from there you can figure out in order they are linked to the ic.

I would suggest reading up on the truth tables in the Datasheet for more info.
fg
hello, not 100% sure but following the tracks of pcb it looks like that

feedbackl00p
fg wrote:
hello, not 100% sure but following the tracks of pcb it looks like that



Many many thanks for taking the time to do that. It sped up my build, and reduced my head scratching hugely.

I’ve now got this built out and working, and it’s a treat to use. It’s really well thought out from firmware and just a fun unit all round.

I’ve also learned a lot about shift registers and finally started laying way th aduino code. The build actually makes a fun platform to play with programming leds and switches on, even though the numbering of the output pins seems to be non standard.

Thanks again.

Big shout out to Robaux for making the hardware and software open. It’s been a great learning tool for me, and I just wanted build the commercial version more now.
feedbackl00p
cackland wrote:
Generally when using a multiplexer or shift register, there is only one data pin that is read for each ic. It’s the sequence of high / low or truth table sequence sent to the ic address pins that determines which pin is being read. This usually happens in a ‘for loop’. In other words, during a loop, the micro controller is continually sending out a binary sequence to all pins rapidly, then when the voltage is high (meaning one of the buttons has gone 5v), the micro controller knows which pin on the ic has been selected. This happens in a linear fashion, left to right or right to left.

You can test which order the programmer has set this up by manually sending a sequence of high / low to to check to the data pin of each ic
for eg:
digitalWrite(ic address pin A LOW)
digitalWrite(ic address pin B, LOW)
digitalWrite(ic address pin C, LOW)

This would equal pin 1 on the mux for example.

Then press all the buttons one by one to check which one is giving you a response. Or send it to the LED’s to see which one lights up at that given address.
Then from there you can figure out in order they are linked to the ic.

I would suggest reading up on the truth tables in the Datasheet for more info.


Thanks for this, it sent me on a lot of reading and experimenting, I don’t know enough about basic arduino codmg to use your suggestions unfortunately.

How do you specify the pin address in this command?
digitalWrite(ic address pin A LOW)

Thanks again for taking the time to help!
fg
it's nothing !
if you find errors do not hesitate to tell us, I intend to build it also
cackland
It is just an assigned PIN number on the microcontroller. Chosen by you.

8 I/O multiplexers have 3 address pins

16 I/O multiplexers have 4 address pins.

32 I/O multiplexers have 5 address pins.

For example.. you could choose pin 2, pin 3, pin 4 etc or whatever you like. The example I gave previously was addressing it manually for example sake. A more efficient way would be to use 'Bitwise Operators' in a continual loop.

Read up on multiplexers to understand them a little better.
feedbackl00p
cackland wrote:
It is just an assigned PIN number on the microcontroller. Chosen by you.

8 I/O multiplexers have 3 address pins

16 I/O multiplexers have 4 address pins.

32 I/O multiplexers have 5 address pins.

For example.. you could choose pin 2, pin 3, pin 4 etc or whatever you like. The example I gave previously was addressing it manually for example sake. A more efficient way would be to use 'Bitwise Operators' in a continual loop.

Read up on multiplexers to understand them a little better.


Hi, i understand that now after working with the shift registers. I was looking for specific help with the code in identifying the pins and leds. Im currently starting from zero with coding and every guide im reading for multiplexing assumes far too much previous knowledge.

Ive got this unit built out and working, but Im now kinda fascinated by leds and shift registers and will be continuing my studies in that direction.

Do you have some specific code examples that can be used to address single pins?
cackland
Single pins on multiplexers?
feedbackl00p
cackland wrote:
Single pins on multiplexers?


Single pins on shift registers, yes.
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 1
Powered by phpBB © phpBB Group