BIG BUTTON DIY build - Verified???

If I take the green wire from the big button and connect it directly to an out, I can trigger the out from the big button.

But when that wire is connected to A5, I get nothing, no matter which position the rotary switch is in.

This leaves me thinking something about the rotary switch is off.

I’ve tried switching which end is negative, and which is positive, in case I had that reversed (and if it mattered) and that hasn’t made a difference.

I don’t understand exactly what’s supposed to be happening with it, so I’m not really sure how to test it with the multimeter to make sure it’s doing what it’s supposed to.

It looks like some of the resistors are making connections before they hit the posts on the switch, so I guess the next thing I’ll do is just try cleaning that whole thing up.

I made a scribble:

To check that you’ve wired things up correctly, use a multimeter in voltage mode to measure the voltage between the 0V point (black lead) and one of the red points (red lead). You should see roughly the given voltages (*). Once you’ve verified that, measure the voltage between 0V and pin A0 on the Nano, and rotate the switch. You should see all the voltages you saw before, one at a time, as you rotate through the positions.

*) In practice it’s a bit less because the Nano is wired weirdly, with regulated 5V from the 78L05 connected to VIN instead of +5V, which results in a slightly lower voltage on the Arduino 5V pin.

5 Likes

for big button maybe a problem with the code

witch code do you use ?

“I’ve tried switching which end is negative, and which is positive, in case I had that reversed (and if it mattered) and that hasn’t made a difference” becarefull don’t try to invert + and - without know what you do, you can destroy something

I also remind you that this module cannot work without an input clock

1 Like

@fredrik thanks for that diagram, I’ll test this out and report back.

@Dud broken code is what I’m kinda most scared of! I do have an input clock signal from a Metropolis, do I need to have it plugged in just to test whether I can get any sound from the big button? Or just to get it looping?

1 Like

an external clock to “Clock in” for impulsion, and OUT 1 (for exemple) to trigger somethings (in the INPUT trigger of a kick for exemple) and after when you push one shot on the big button : you can ear one shot of a kick .

for the code look, open it and you must have some where : " int BigButton = 19; "

1 Like

Okay, this was super helpful!

Tested everything out, and the voltages are reading right. I seem to have a 0.02V drop on all values, so 4.98V instead of 5V, and 0.98V instead of 1V.

Pin A0 is getting the right voltage. So it’s something between A0 and a signal hitting one of the OUTs. Without this scribble I probablly would’ve been looking suspiciously at the rotary switch indefinitely.

@Dud I do have an int BigButton = 19…

I’m guessing my next step should be to put a multimeter pin on 0V (diagram above) and the OUT pin that a signal should be coming out of?

If no signal, then maybe a code problem, if a signal, then I must’ve screwed up my wiring from the OUT pin to the jack?

1 Like

That’s actually higher than I expected (but good, I think). Did you connect the output from the 78L05 to VIN or directly to the 5V on the Nano? Or are you using a Nano Every?

Using a Nano Every, and the output from the 78L05 is connected to the VIN.

Ah, that explains it, I think (no, see below) – the standard Nano (and its clones) have a low-dropout voltage regulator between VIN and 5V, but that still needs a margin of at least one volt, so if you pass in 5 V to VIN you get a lower voltage out (if you have 5 V, you’re supposed to connect it to 5V, not VIN). The processor still works, but odds are you’ll get something just below 4 V on the “5V” pin.

However, the newer Every design has a fancy switch-mode converter ($2.80 ea from Mouser) which apparently handles this better (it handles higher voltages a lot better). Cannot find any “drop-out equivalent” in the datasheet (all their examples use much higher supply voltages than the output voltages), but sounds like it’s close to zero for this case (or maybe not, see below). No, me read bad – it says max output is 80-85% of input, so with 5 V in you’d expect at least a 0.75 V drop. See below for more.

(but as long as everyone is using the same voltage, this should be neutral for the code – A0 and friends use the supply voltage as the reference voltage (= input value 1023) by default, and the voltage divider across the rotary switch splits up the same voltage, so the code will see the same values no matter the actual voltage on the “5V” pin. The important thing is that they’re evenly distributed.)

1 Like

I’ve had to step away from the bench but I vaguely recall I may have taken the 5V directly from the 78L05 rather than from the Nano. Will double check and report back in a few hours. Could this be a problem?

To clarify: the Nano is powered. But the rotary switch may be getting its power from the same source as the Nano, rather than from the Nano.

Check the voltage on the Arduino’s 5V pin – that’s what the Arduino considers as max level for A0. If that’s very different from what you feed into the resistors (which you measured as 4.98 V), you may not have a 1:1 mapping between rotary positions and channels. The sequencer should still do something, though, it’s just that the channel mapping might be a bit wonky.

EDIT: As I mentioned, I didn’t find anything in the datasheet for the converter, but I tried their simulator and it yelled at me when I was asking for more than 4.25 V out with 5 V in, so I guess you’ll see something close to that (the Every seems optimized for 8-21 V in, btw).

2 Likes

Reconfirmed that I do actually have the positive coming out of the +5V pin on the Arduino. It’s 4.95V right now.

Just added some Serial.println() comments to the Arduino code. It seems like the channels are properly being selected. Going to follow this code through and add printouts along the path to see if I can figure out if something is going wrong in there.

4.95 V is clearly a bit more than 85% of 5 V so not entirely clear what’s going on here, and I don’t have an Every here. Do you have the USB plugged in? What’s the voltage on the VIN pin?

(but as noted, this has nothing to do with the overall function, it just affects how the analog inputs are interpreted)

Code!

Following things around with Serial.prinln() ended up getting me suspicious of the section below, which was using buttonState instead of RecordButtonState. I couldn’t find buttonState being assigned to anything other than volatile int buttonState = LOW at the beginning of the code.

I swapped in RecordButtonState and now I’m getting some sound… but not as expected.

The fill button works, in a weird swung beat, for maybe… 4 beats. Then it just dies out. The big button isn’t giving me anything. But at least I’m getting sound triggered by the Arduino, which is further than I’d gotten previously.

This section is that I edited:
{ if (RecordButtonState == HIGH) {
looper = (looper + 1);
BankPush1 = (BankPush1 + 1);
BankPush2 = (BankPush2 + 1);
BankPush3 = (BankPush3 + 1);
BankPush4 = (BankPush4 + 1);
BankPush5 = (BankPush5 + 1);
BankPush6 = (BankPush6 + 1);
ClockKeep = (ClockKeep + 1);

  digitalWrite(OUT1, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill1)) ? HIGH : LOW);
  digitalWrite(OUT2, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill2)) ? HIGH : LOW);
  digitalWrite(OUT3, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill3)) ? HIGH : LOW);
  digitalWrite(OUT4, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill4)) ? HIGH : LOW);
  digitalWrite(OUT5, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill5)) ? HIGH : LOW);
  digitalWrite(OUT6, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill6)) ? HIGH : LOW);
  delay(10);
  digitalWrite(OUT1, LOW);
  digitalWrite(OUT2, LOW);
  digitalWrite(OUT3, LOW);
  digitalWrite(OUT4, LOW);
  digitalWrite(OUT5, LOW);
  digitalWrite(OUT6, LOW);
  RecordButtonState = LOW;
}
else
{
  looper = looper;
  ClockKeep = ClockKeep;
}

}

Here’s a link to the full code: https://create.arduino.cc/editor/emrysgraefe/570d3051-a9d6-4dd4-96f9-8bbe0581b05d/preview

(I’d still be interested in the voltages you’re seeing on the VIN and 5V Arduino pins)

I’ve got 5.82V going to the VIN, 4.94 coming out of the 5V pin.

I’m actually powering the Nano (Every) from the WAV Trigger’s VIN/GND pins. Feeding that is a 12V wall-wart adapter.

The more I muck about with this, the more I’m starting to think the issue here is the original code problem I encountered. I’ve set up Serial.println()s to show me that the Arduino is actually receiving all the inputs it should, and it is. At this point I’m fairly confident it’s wired up properly.

I was getting (way further up this thread) cannot convert “bool” to pinStatus for argument 2 on the below lines, until ? HIGH : LOW was added.

That made the errors go away, but I think it didn’t solve whatever the problem was, which isn’t letting the OUTs actually get triggered.

digitalWrite(OUT1, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill1)) ? HIGH : LOW);
  digitalWrite(OUT2, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill2)) ? HIGH : LOW);
  digitalWrite(OUT3, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill3)) ? HIGH : LOW);
  digitalWrite(OUT4, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill4)) ? HIGH : LOW);
  digitalWrite(OUT5, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill5)) ? HIGH : LOW);
  digitalWrite(OUT6, (Sequence[1+BankArrayShift1][BankPush1 + NewKnobValue1] || (Fill6)) ? HIGH : LOW);

I’m not a C guy, and it’s sometimes difficult enough reading and understand what’s going on in someone else’s code when it’s a programming language I understand…

I’ll keep plugging away in case this is a problem others face in the future and there’s a chance I can come across a solution, otherwise, guys, I’m at your mercy for assistance here.

2 Likes

4.94/5.82 = 0.85, so checks out. And I assume no 78L05 involved then, since 5.82 V from a 5 V regulator would be bad. Which makes me wonder why the WAV trigger gives you that? Is that a regulated output? Have you checked that the load is within spec for the WAV trigger?

2 Likes

Hi all!
I just finished my BIG BUTTON and I’m in trouble!
First the CLOCK input makes all 6 LEDs blink. I think it’s the ground which is badly connected to the LED but not sure…

But what doesn’t work at all is everything else…
I can’t do anything, the big button doesn’t blink. If I want to make a rhythm nothing either.

In fact I had some problems when I was lifting the arduino. I don’t know if it’s related but I really don’t know how to program with ARDUINO so if you could enlighten me a little bit…

1 Like