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

temps_utile / 6 x clock generator [build thread etc]
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page Previous  1, 2, 3, ... 29, 30, 31  Next [all]
Author temps_utile / 6 x clock generator [build thread etc]
Sandrine
mxmxmx C'est bon que tu as utilize le nom d'origin francais, bien fait, mais une question:

Are the clocks sync'ed/syncable together and if so in what fashion?

Is the a manual?

Yay OLEDs!
mxmxmx
Sandrine wrote:
mxmxmx C'est bon que tu as utilize le nom d'origin francais, bien fait


yeah, sorry, i'm kind of bad with names... it sounded better than the english or german equivalents though; here's an explanation : https://github.com/mxmxmx/temps_utile-/wiki ... which is also where the manual is.

and here's a crap video where you can't see much (... ipad 1), so i lost interest. but you get the idea.


in this case, clock output #2 (LFSR mode) triggers one voice, #6 in LOGIC mode (channel 2 XOR channel 3) triggers another, with channel 3 in EUCLIDIAN mode. #5, also in LOGIC mode (channel 1 OR channel 3), triggers the ASR (the thing on the left). #4 doubles up as a 12 bit DAC, this goes into the ASR, too; here, the DAC simply tracks the state of the outputs (channel 1 = MSB, channel 6 = LSB). one of the ASR outputs modulates clock channel 2 (LFSR, tap position).

Quote:

Are the clocks sync'ed/syncable together and if so in what fashion?


yep, they're synced in that there's one main clock and all the outputs derive from that, much like any 'clock distributor' module only with a few more modes (division, random, lfsr, euclidian, logic). it's pretty basic: an interrupt happens, the outputs are updated, the next state is calculated; the display is updated, the thing waits for an interrupt. so it can't be clocked too fast (as in kHz), but that's not the point of it.

Quote:

Yay OLEDs!

!
flts
Finally building my Temps-Utile (yellow PCB). Question to mxmxmx in particular:

It's almost done, but I seem to be missing a 79L05 - either I don't have any around and didn't order them with rest of the parts, or I have them and they're just lost somewhere in the bins. My local stores are failing me, so it's either 1h+ trip for one component, hoping a friend has one, throwing the PCB to "will finish once I order the last part online and it arrives" bin or trying to be clever.

So. Can I kludge a full size 7905 on the backside (minding pinout and if I can fit one), or is there some kind of minimum current limit or similar that makes sure it won't work instead of 79L05? As far as I can understand they're basically the same circuit in different package, but just wanted to make sure.

Or if I can't fit one, what about substituting with a negative L-series regulator with a slightly higher voltage and pretrimming accordingly? As there's no schematic (?) I'm not 100% sure what that regulator is doing but based on quick look at the PCB it looks like it might be only used together with the trimmer for setting an offset for the CV inputs...?

Btw. The BOM in the Wiki seems to be missing a couple of extra 100K resistors (I counted more than 10, there's already 8 under the Teensy), and one 6K8 that are on the board. Also, I thought there were only 4x 330nF capacitors (one has a bigger footprint and says 0.33 instead of 330nF) and couldn't find a place for 1uF unlike in the BOM? Not sure if these are "hidden" somewhere in plain sight or just left out from the board revision. Looks like there's a newer (or older?) "blue board" BOM in the wiki as well but I have one of the yellow ones.
mxmxmx
ups, yeah, the BOM has a few errors. sorry, my bad. (and thanks for pointing it out). just use the 1uF where it says 0.33. (the "blue" one is newer, basically the same thing but not using any of the funny SMD pins on the belly of the teensy.)

about the 79L05: the input circuit is here (scroll down to "CV inputs"). so yes, it's for offsetting the CV (to 1.65V); if you have any, preferably i'd suggest using a LM4040 + resistor instead *. either sot-23 or TO-92 will work, and basically any value: 3v3, 5v, 10v, even 2v5 (you might need adjust the 49k9 resistor). ie *like so:



but if you can fit it, the 7905 should be fine. most parameters have only 32 steps or so, so noise etc isn't terribly important in any case.
flts
^- Great, thanks!

I think I _should_ have spare LM4040s of more than one value. Edit: Found a spare LM4040DIZ-5.0 in TO92! Now I'll just have to figure out which way the pins should be connected when replacing the 79L05. Clip NC leg off, anode (-) to common / GND pad, cathode (+) to output pad, and a resistor between input and output? Or anode and cathode in reverse?

How about the extra resistor - what does it do / between which pins should it go / how do I pick a sensible value for it? Not really familiar with LM4040 at all yet, I've just been using them in some DIY kits as instructed so far. Based on datasheet it looks like it sets an operating current for the shunt reg, but I'm not sure how it should be calculated in this circuit.

I'll replace the 0.33uF with 1uF in the spot with the bigger footprint.
mxmxmx
don't worry about the 1uF cap, .33uF should do.

and yep, it should be doable, but you can't solder it straight onto the TO-92 footprint. since we need a negative reference voltage, the cathode (pin 1) should go to the ground pin, pin 2 (anode) to the pad/trace connected to the trimpot ( = Vout pin); then solder the resistor across the remaining pad (Vin/middle pin) and the anode/Vout. ignore pin 3, it's NC.

as for the resistor, the formula given is R = Vs-Vr / Il-Iq. Vs = -12V; Vr depends on your reference. Il is the load current, Iq the current through the diode, which should be ~ 50 uA < Iq < 15mA. so if you have, say, a LM4040-10, a 510R resistor or so would be fine.
flts
mxmxmx wrote:
and yep, it should be doable, but you can't solder it straight onto the TO-92 footprint. since we need a negative reference voltage, the cathode (pin 1) should go to the ground pin, pin 2 (anode) to the pad/trace connected to the trimpot ( = Vout pin); then solder the resistor across the remaining pad (Vin/middle pin) and the anode/Vout. ignore pin 3, it's NC.


Thanks - makes sense, I got it the other way round when looking at the datasheet but I forgot it's a negative reference voltage.

Quote:
as for the resistor, the formula given is R = Vs-Vr / Il-Iq. Vs = -12V; Vr depends on your reference. Il is the load current, Iq the current through the diode, which should be ~ 50 uA < Iq < 15mA. so if you have, say, a LM4040-10, a 510R resistor or so would be fine.


How would I calculate / know the load current in this case? I have a LM4040-5 around. Something like 1.8K resistor for Vr = -5V?
Altitude909
Got an extra OLED for O_C so I guess this is next since a clock module is sorely needed in my setup. Anyone need boards? I'll have 2 spares..
mxmxmx
flts wrote:

How would I calculate / know the load current in this case? I have a LM4040-5 so would roughly the half (220R) do?


guestimation ... it'll not be much, ~ 1mA (there's the four 49k9 resistors in parallel + trimpot in series going into the op amps). you'll need to double or triple the resistor though ((12-5)/220 = 31mA). if you have a spare 1k2 or 1k8?
flts
^- Sorry, I was editing my previous reply as I recalculated and realized I did it wrong. So yep, have a 1.8K, just soldered it in smile
flts
Getting errors about multiple declarations while compiling. Arduino 1.6.6, Teensyduino 1.26, latest code from temps_utile- repository. Wonder what's wrong? The IDE gives error highlights in strange rows that seem to not be actually related to the issues.

/Users/vae/Documents/tmp/temps_utile/clocks.ino: In function 'void clocks_restore_channel(params*, const channel_settings*)':
/Users/vae/Documents/tmp/temps_utile/clocks.ino:130:93: error: 'void clocks_restore_channel(params*, const channel_settings*)' was declared 'extern' and later 'static' [-fpermissive]
static void clocks_restore_channel(struct params* p, const struct channel_settings* settings) {
^
/Users/vae/Documents/tmp/temps_utile/temps_utile.ino:120:6: error: previous declaration of 'void clocks_restore_channel(params*, const channel_settings*)' [-fpermissive]
volatile uint8_t _adc;
^
/Users/vae/Documents/tmp/temps_utile/clocks.ino: In function 'void clocks_store_channel(const params*, channel_settings*)':
/Users/vae/Documents/tmp/temps_utile/clocks.ino:138:91: error: 'void clocks_store_channel(const params*, channel_settings*)' was declared 'extern' and later 'static' [-fpermissive]
static void clocks_store_channel(const struct params* p, struct channel_settings* settings) {
^
/Users/vae/Documents/tmp/temps_utile/temps_utile.ino:121:6: error: previous declaration of 'void clocks_store_channel(const params*, channel_settings*)' [-fpermissive]
void adc_timerCallback() {
^
flts
FWIW works fine with Arduino 1.6.5 so probably 1.6.6 breaks something in linking or similar.
mxmxmx
flts wrote:
FWIW works fine with Arduino 1.6.5 so probably 1.6.6 breaks something in linking or similar.


ok, sorry for the hassle. their constant IDE updating makes things something of a moving target ...

can't really tell what's going on with 1.6.6. the error certainly is a bit weird ( ... /temps_utile.ino:120:6: error: previous declaration of 'void clocks_restore_channel ) . there's no mention of clocks_restore_channel etc near line 120 or 121
pld
Yeah, 1.6.6 seems to have changed a bunch of settings/warnings. I'll give it a look...
flts
I'd gladly help as well but living with configuration, linker, environment etc. issues at work 5 days a week makes me a bit hesitant to do that on free time. I tried throwing around ifdefs and other brute force stuff like that for a while before I gave up and tried an older version of Arduino, hope it's a simple fix.

Got firmware uploaded in mine (did that before cutting traces etc.) and Teensy in place, and sawed a 14HP panel - drilling and panel component fitting time tomorrow I guess!
pld
I can compile it on 1.6.6 with this fix but didn't try it with 1.6.5 or on hardware smile Arduino IDE collects/mangles the source files before they hit gcc, I guess that's why the error output doesn't always correspond well, but I've never really looked into it.
mxmxmx
compiles fine with 1.6.5, but i didn't try either -- any reason you declared them static?

btw @altitude909, if you haven't ordered yet, i still have plenty of said 'blue' pcbs (= temps_utile_rev_gerbers.zip); same thing, just touched up a few things:

flts
I guess it doesn't make much sense to declare out-of-class functions static as they aren't going to be per-object and their visibility is global anyway...? So can't see why it wouldn't work.
pld
They're static mostly out of habit I guess...

static in that case means "not global, used only in this source file", or correctly something like "only visible within this translation unit", so it's a hint to the linker as well as other programmers. "static" isn't compatible with the "extern" storage class, which their compiler process seems to be trying hmmm.....

tl;dr: pld == nerd, .ino != .c/.cpp smile
flts
pld wrote:
static in that case means "not global, used only in this source file", or correctly something like "only visible within this translation unit", so it's a hint to the linker as well as other programmers. "static" isn't compatible with the "extern" storage class, which their compiler process seems to be trying hmmm.....

tl;dr: pld == nerd, .ino != .c/.cpp smile


Yep, seems like Arduino sketches aren't considered compilation / translation units in the same way as C/C++ source files... That, or the postprocessor does weird things to the code.
sammy123
Max I'd like to grab a board.

Have you thought about a random clock mode?
mxmxmx
sammy123 wrote:
Max I'd like to grab a board.

Have you thought about a random clock mode?


sure.

... and there's two random modes already. one is plain 'random' (with threshold); the other some sort of linear feedback shift register, which can be fairly irregular, depending on length and tap positions. (the one obvious thing still missing is clock multiplication ... )
flts
Finally finished mine and as far as I can see everything works fine except

1) The encoders I used (Alps EC11 clones from eBay) work in reverse
2) The two tact buttons do nothing

Issue 1 can fix by tweaking firmware. The second issue is a tougher one.

I've used the recommended tact switches and made sure they're soldered OK, but nothing happens in UI when I press them. Any ideas where to start troubleshooting? If nothing else, I'll try to trace the PCB a bit tomorrow and see if there's something missing or wrong.

Edit: obviously I can't test all channels as the channel selection isn't working, but at least it eats external clock and spits out whatever is configured on channel 1 so I assume it's working otherwise smile
mxmxmx
re 2), so that's the two multimec switches, right? they should increment (top) or decrement (bottom) the channel that's being edited. long pressing the top one should take you to the CV menu, long pressing the lower one will just display the screen saver and frequency (if clocked externally)

the pins in question are GPIO 4 and 5, they should read 3v3 normally, and go low when pressing the buttons. there's just the two pull up resistors (the two right by the upper switch) and two caps involved, so there's all that much that could go wrong. weird though that it's both of them?
flts
mxmxmx wrote:
re 2), so that's the two multimec switches, right? they should increment (top) or decrement (bottom) the channel that's being edited. long pressing the top one should take you to the CV menu, long pressing the lower one will just display the screen saver and frequency (if clocked externally)


Yup, the Multimec ones specified in BOM (5GTH935). Measured that both make contact between upper and lower pin pairs when you press them. Tried pressing quickly, long press, etc., in both the trigger display screen and settings menu, they just do nothing at all.

Quote:
the pins in question are GPIO 4 and 5, they should read 3v3 normally, and go low when pressing the buttons. there's just the two pull up resistors (the two right by the upper switch) and two caps involved, so there's all that much that could go wrong. weird though that it's both of them?


Yeah, looks like neither of them works. Looked at underside of the board again - looks like the switch pins are all soldered OK, and the resistors + caps are in place. The caps (legend "0.1") should be 100n, right? And resistors 500R / 510R?

Otherwise I guess I'll have to start probing tomorrow.
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page Previous  1, 2, 3, ... 29, 30, 31  Next [all]
Page 2 of 31
Powered by phpBB © phpBB Group