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

Triggerhappy - rhythm generator
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author Triggerhappy - rhythm generator
studiokpg
Here's a project I've been working on for over a year, and I think I can say at this point that it's done. Dono-Kun Dance It is an Arduino based rhythm generator that has six outputs, three available rhythm types (predefined, logic, and Euclidean) internal/external clock, and save function.

16 predefined patterns are available, each 16 beats long. You can adjust the length of the pattern from 1-16 beats and shift it earlier or later by 16 beats. To change the patterns is a simple matter of editing the sketch.
The logic patterns apply one of 7 logic states to any two other outputs, and can be delayed by up to 16 beats.
The Euclidean patterns can be as long as you want, with as many subdivisions as you want, and can be shifted forward or backward in time.
I'm not entirely sure what I want to do with this project now. I made it for my own use, but I'd like to put it out there for other people to use too. I would be glad to put up the sketch and schematics for others to use, or if there is a ton of interest, I would consider making and selling some. Let me know what you all think. w00t
xpmtl
That thing sounds great! I would be interested in building one. Do you plan to release your sketch and schematic?
READYdot
Put me up on the list, totally want! Love the one pot control! Really ingenious!
mOBiTh
yep would love to see the sketch and schem for sure. just got an arduino to pla with smile
SewerBadger
That thing is awesome! I'd like it in Eardrill ModuleModule or Buchla 200 format, please! we're not worthy
J3RK
That is insanely cool! I may interested in one of these. (format free most likely, as I'm not sure which system I'd put it in) w00t
Spandex
i like that a lot
equalpyramid
Very nice! That must be a super fun module indeed.
Dego
Want one
Emalot
YO!!
mckenic
Absolutely BEAUTIFUL - Want kit/module whatever! Beautiful! And I have to say I REALLY loved the demo sounds - great tune!

thumbs up
limpmeat
awesome, I would totally be interested
tokyomatik
can i have one? love
Boofin Moonrocks
Oh god...I have so many rhythm generating devices in my backlog, and it looks like I'm gonna have another one. I've been working on building modules for what was supposed to be a relatively small, complete system, and it just keeps growing and growing...
Matos
That looks and sounds fantastic. Great demo. Reminds me of ep7. I'd buy one depending on the price. Congrats.
rowman
Yes I would very much love one of these.
aladan
Count me in for one (PCB, parts kit if available, no panel) please!
studiokpg
Thanks for all the good vibes! What I'll do for now is put together a schematic and stick it up on the web somewhere, along with the Arduino sketch. I'll also put up some photos so you can see my mad building skillz. screaming goo yo I'll post details when it is up. May take a couple of days. Sun
Reptil
yup, interested
thnx RF for the headsup thumbs up
defenestration
WANT! hyper
READYdot
GROUP BUY!!!
regenbot
i'd definitely buy a pcb thumbs up
Paradigm X
Very cool.

As a noob, sorry, youd need an aurdino, which effectively would just be another component hidden behind the panel?
READYdot
Paradigm X wrote:
Very cool.

As a noob, sorry, youd need an aurdino, which effectively would just be another component hidden behind the panel?


Yes, like more and more modules use in different ways, which is actually a good thing. Just check the Ardcore, probably the "the white square on white background" of digital modules.
scozbor
registering my interest!

looks like fun 8_)
robotfunk
Very nice, hoping to see PCBs for this.
marvkaye
Cool project, I'd be interested in PCBs as well.

<marv>
bleeps
DIY Euclidean rhythms? Dancing Star
Juxwl
interested<<<<
NS4W
DIY pleez Rockin' Banana!
Barcode
This thing is rad! I'd love a pcb.
synaptech
Wow sweet! Nice work thumbs up

If a pcb/panel gets done I'm definitely interested. (I need to stop saying this very frustrating )
JJ
love

Want!
Emalot
studiokpg wrote:
Thanks for all the good vibes! What I'll do for now is put together a schematic and stick it up on the web somewhere, along with the Arduino sketch. I'll also put up some photos so you can see my mad building skillz. screaming goo yo I'll post details when it is up. May take a couple of days. Sun


YYiiiiiiiihaaaaaaaaaaAAAAAAAAA.
Merci beaucoup!!!!!
whitewulfe
Looks pretty damn interesting! Any word on kits or even MU modules? ^_^
Tombola
Nice one! Cool to see another Euclidean generator
thanatronique
very cool, want one
zoot horn rollo
Definately interested in a pcb if they become available.

Looks awesome!
madcap
MY ASS IS BLEEDING


which of course means... I would like one.

What other euclidians are currently available? I read about the vaporware intelijel and I saw an older diy post...
diablojoy
definitely interested in some boards if you do them
rico loverde
really cool. would love to buy a pcb or module
brother303
Sounds good!

Count me in for a pcb/chip when it comes to a run.

thumbs up
sicpaul
absolutely fantastic! love

I just feared to build many of Ken Stone's gate sequencers with DIP Switches to get a satisfying amount of rhythm patterns ...

Your Tiggerhappy will make my plans so much easier - I'd love to build at least one. If PCBs will be available some more.
Low-Gain
PM'd... Ninja Ninja
Emalot
...ET bientot une version francaise:
http://www.youtube.com/watch?feature=player_embedded&v=xx3miAiTuMw
janvanvolt
Definitely want one _-)
prinsen
Nice sounding demo. Looking forward to more details and sppecifications!
far gon
Yes!!! SlayerBadger!

This makes me very happy... Great project and design!

Im interested in PCBs or modules if they are available...

Thanks for sharing applause
glitchpop
Looks pretty neat and tidy too minimal hp is always nice too see 8_)
executiveBlaster
Awesome! Arduino is jam and jelly.

I would very much like to see the code and schematics as well!
studiokpg
Emalot wrote:
...ET bientot une version francaise:
http://www.youtube.com/watch?feature=player_embedded&v=xx3miAiTuMw

très impressionnant!
studiokpg
Just a quick update: I'm talking to someone about the possibility of producing these for sale. Hope to have more info soon!
xerxl
Hope you can make it happen. This is the nicest one I've seen. I'd stand in line to get one.
diablojoy
Quote:
Just a quick update: I'm talking to someone about the possibility of producing these for sale. Hope to have more info soon!

Are we talking pcb's and programed chips or complete modules ?
I prefer to build my own from a pcb due to custom format.
would be looking at 4
vstace
Damn, a poor man's Rene love
Low-Gain
studiokpg wrote:
Just a quick update: I'm talking to someone about the possibility of producing these for sale. Hope to have more info soon!


Ninja Ninja Ninja
zoot horn rollo
diablojoy wrote:
Quote:
Just a quick update: I'm talking to someone about the possibility of producing these for sale. Hope to have more info soon!

Are we talking pcb's and programed chips or complete modules ?
I prefer to build my own from a pcb due to custom format.


+1 if possible!
Peake
Want! (If I can afford) smile Congrats!

Kwestions...great demo! Were you using a spring reverb? If so which one...and I like the sounds and transpositions. Also, it's been way too long since I've listened to that track: "...Resplendent in Divergence!". Peace!
Navs
Just what I've been looking for applause
studiokpg
Peake wrote:
Want! (If I can afford) smile Congrats!

Kwestions...great demo! Were you using a spring reverb? If so which one...


The reverb is just a plain old A-199 with stock tank.
Peake
studiokpg wrote:
Peake wrote:
Want! (If I can afford) smile Congrats!

Kwestions...great demo! Were you using a spring reverb? If so which one...


The reverb is just a plain old A-199 with stock tank.


Wow, thanks!
stk
+1 for pcb
lematt
wow, awesome project,

I've been thinking about a midi synced arduino sequencer like that for a while now, but your sequencer is really well done !

can we see the arduino code ? just curious.

congratulations !
diablojoy
bump

Any news on this one ?
Etamin
bump2

Any news on sketch, schematic or PCB?

Thanks, Peter thumbs up
Votek_Mendo
Kent wrote:
That thing is awesome! I'd like it in Eardrill ModuleModule or Buchla 200 format, please! we're not worthy


That would be awesome Kent wink
Want one in MM format too. love
mig27
You can definitely count me in - even if it's just for a finished module.
I've been GASing for some euclidean polyrhythmic stuff for a while!
qu.one
can the sketch work if modified for an ARDCORE?
chinard
definitely interested..
add me to list
Low-Gain
very frustrating very frustrating so much to do... so little time. very frustrating very frustrating
bennybones
BUMP! Bump!

Not like I need more DIY on my hands, but whatever happened to the Triggerhappy? I still totally want a kit.
meatbeatz
cheers for the reminder. with the torrent of awesome module releases this year, I almost completely forgot about this. def interested. info's anyone?
logicgate
I want it too!!

Count me in
Microscopial
memememememememememememmemememememememe

eh yeah im in lol
withakay
This does look really cool... What happened to the project?
hexinverter
Nice work! Very cool project applause It's peanut butter jelly time!
wetterberg
withakay wrote:
This does look really cool... What happened to the project?
looks like a manufacturer stepped in and offered to commercialize the project?

In which case this has been taken out of the diy realm, it would seem.
I'd consider that a crying shame, but whatever...
diablojoy
Quote:
looks like a manufacturer stepped in and offered to commercialize the project?

In which case this has been taken out of the diy realm, it would seem.
I'd consider that a crying shame, but whatever.

damn hope that isnt the case.
I just wont buy a complete module , takes all the essence out of it.
hexinverter
wetterberg wrote:
looks like a manufacturer stepped in and offered to commercialize the project?

In which case this has been taken out of the diy realm, it would seem.
I'd consider that a crying shame, but whatever...


That really sucks! :(

My loyalties are to the DIY world and always will be. Even if I make modules out of my DIY projects, there will always be a PCB only/DIY version as well. I wish more manufacturers offered PCBs and kits of their designs!
logicgate
Damn, after watching the demo, I only know that I NEED THIS BADLY!!

Update, please!!

This is awesome
rowman
If kits would be too much of a time hole, open source would be bangin.
bennybones
From the OP, I think the intention was always to share the project with everyone, as long as there was interest.

So I guess it boils down to making some noise and getting studiokpg's attention w00t
studiokpg
I'm here! My excuse is that I've been avoiding Muffs lately because I filled up my cases, and don't want to get the bug again. zombie
Hang in there, I should have some news soon. Thank you so much for the interest!
Peake
we're not worthy
lombrose
studiokpg wrote:
I'm here! My excuse is that I've been avoiding Muffs lately because I filled up my cases, and don't want to get the bug again. zombie
Hang in there, I should have some news soon. Thank you so much for the interest!


But still DIY!?
studiokpg
lombrose wrote:


But still DIY!?


That's what I'm thinking. Would anyone mind if I wait until after the first of the year? You weren't seriously thinking about starting a new project before then anyway, were you? hihi
lombrose
studiokpg wrote:
lombrose wrote:


But still DIY!?


That's what I'm thinking. Would anyone mind if I wait until after the first of the year? You weren't seriously thinking about starting a new project before then anyway, were you? hihi


thumbs up
J3RK
studiokpg wrote:
lombrose wrote:


But still DIY!?


That's what I'm thinking. Would anyone mind if I wait until after the first of the year? You weren't seriously thinking about starting a new project before then anyway, were you? hihi


Perhaps you haven't seen the first few pages of the Gloat thread. Mr. Green Mr. Green Mr. Green

I actually finished a filter module at the stroke of midnight new year's eve last year. hehehehe
qu.one
This + CLOQ = SlayerBadger! w00t love
xonetacular
want
wotwot
hello,

i'd like two as well, please.

thank you Mr. Green
diablojoy
Quote:
You weren't seriously thinking about starting a new project before then anyway, were you?


haha yes i just put in an order for some prototype boards today actually
for a couple of other projects.
I guess i will be soldering something come new years eve as well
by the way glad you are back and still going DIY with this.
KnobHell
studiokpg wrote:
lombrose wrote:


But still DIY!?


That's what I'm thinking. Would anyone mind if I wait until after the first of the year? You weren't seriously thinking about starting a new project before then anyway, were you? hihi


I am very interested in building one, DIY if possible.



Len
wetterberg
lombrose wrote:
studiokpg wrote:
lombrose wrote:


But still DIY!?


That's what I'm thinking. Would anyone mind if I wait until after the first of the year? You weren't seriously thinking about starting a new project before then anyway, were you? hihi


thumbs up
this is seriously good news. If this is still arduino based then I'd be looking to build at least 2, more likely 4.
spotta
Very interested, feb would suit me, give my wallet a chance to recover thumbs up
JJ
Interested in buildin atleast one, and I'm sure my friends here want some too...
Ucture
headbang
Microscopial
Yep yep and yep
Snotrock
Another expression of (extreme) interest and subtle bump here too smile
studiokpg
Hey all, I'm getting ready to put this out there. I discovered an error in my Euclidean code though - higher number patterns don't come out quite right. As soon as I can track down the problem, I'll put it up on http://mimsywabe.blogspot.com/ . The circuit is pretty simple, not much point in doing a board for it. I've been using a couple of pieces of stripboard and point to point wiring. Don't expect a pretty diagram though, my circuit drawing skillz are pretty non-existent! hmmm.....
diablojoy
Quote:
The circuit is pretty simple, not much point in doing a board for it.

ah quite a bit of interest in this , i think maybe more than enough to warrant a board .
anyway good to see some progress thanks
I will want to try a couple for myself.
hexinverter
studiokpg wrote:
Hey all, I'm getting ready to put this out there. I discovered an error in my Euclidean code though - higher number patterns don't come out quite right. As soon as I can track down the problem, I'll put it up on http://mimsywabe.blogspot.com/ . The circuit is pretty simple, not much point in doing a board for it. I've been using a couple of pieces of stripboard and point to point wiring. Don't expect a pretty diagram though, my circuit drawing skillz are pretty non-existent! hmmm.....


Woot! Sounds awesome. I am excited to see this take shape. screaming goo yo screaming goo yo screaming goo yo

PS: If you need any assistance routing/producing a board and/or with distribution, I'd be happy to give a hand with that! A lot of folks really prefer the ease of a circuit board with a nice bit of assembly documentation to go along with it.

Feel free to PM or email if you need help or would like me to produce a board for you! I think a lot of people are interested in a project like this and even if you don't want to get your hands wet with it I am happy to work with you and take on the project myself. This is one of those projects that cannot be allowed to fly under the radar thumbs up
Peake
w00t hexinverter
logicgate
hexinverter wrote:
studiokpg wrote:
Hey all, I'm getting ready to put this out there. I discovered an error in my Euclidean code though - higher number patterns don't come out quite right. As soon as I can track down the problem, I'll put it up on http://mimsywabe.blogspot.com/ . The circuit is pretty simple, not much point in doing a board for it. I've been using a couple of pieces of stripboard and point to point wiring. Don't expect a pretty diagram though, my circuit drawing skillz are pretty non-existent! hmmm.....


Woot! Sounds awesome. I am excited to see this take shape. screaming goo yo screaming goo yo screaming goo yo

PS: If you need any assistance routing/producing a board and/or with distribution, I'd be happy to give a hand with that! A lot of folks really prefer the ease of a circuit board with a nice bit of assembly documentation to go along with it.

Feel free to PM or email if you need help or would like me to produce a board for you! I think a lot of people are interested in a project like this and even if you don't want to get your hands wet with it I am happy to work with you and take on the project myself. This is one of those projects that cannot be allowed to fly under the radar thumbs up



That's why I love this forum and people like Stacy, who makes these awesome stuff happens for us!! Hope this project come to life soon, this is really cool!
hpsounds
Peake wrote:
w00t hexinverter

+1 ! we're not worthy we're not worthy we're not worthy

hihi
Hédi K.
studiokpg
Ok, Hey! I put the schematic and sketch up on Dropbox. Here's the link:
http://dl.dropbox.com/u/7988413/Triggerhappy1_04.zip (Edit: new link!)
I'm interested to see what you all think. I have to say up front, that no one will ever mistake me for an electrical engineer! I just stick stuff together and see if it works. There a couple of electrical things that some of you smarter guys can weigh in on:
I am powering the Arduino from the rack's 5v power bus. Some people might not have 5v, and will need a converter. Also, when the Arduino is plugged in to USB, it appears that the power from the USB is also getting into the rack bus, and lighting up some other modules. I don't think this is a good thing. Maybe a diode is needed between the power supply and the Arduino.
I am running the trigger outputs and the LEDs directly from the Arduino's digital outs. Not sure if that was the best way to do it, but it seems to work.
A couple of other things I would change: I didn't put a USB port on the front panel. I figured I wouldn't need one once everything was worked out, but it seems like I always want to tweek something, and I have to pull the module out to do so. Also, the LEDs I used are too big and bright. Six of those big guys flashing in my eyes feels like I could be heading for a seizure at any moment.
As far as choice of which Arduino to use, it is pretty wide open. I started with the Nano by Gravitech http://www.gravitech.us/arna30wiatp.html which was fine until I burned it out by connecting it to +12v by mistake. Then I switched to an older model from Sparkfun that I had on hand, and that has been fine too.
So, anyway, hope you like it! It's motherfucking bacon yo
hexinverter
Rad! Thanks for sharing your project Studiokpg!

Unfortunately I am slammed with module orders and my designs to deal with right now, so I probably will not get to this project for awhile x__x

If anyone else wants to pick things up, please do thumbs up

I wish I could clone myself Dead Banana
KnobHell
I downloaded the zip file and am unable to unzip it. When doing so it tells me that it is invalid.

len
qu.one
qu.one wrote:
can the sketch work if modified for an ARDCORE?
diablojoy
Quote:
Rad! Thanks for sharing your project Studiokpg!

Unfortunately I am slammed with module orders and my designs to deal with right now, so I probably will not get to this project for awhile x__x

If anyone else wants to pick things up, please do

I will have a look at it , see if i cant at least get the ball rolling with a board layout.
arduino and coding is not my thing so testing would be a bugger but maybe by then you could pick it up again, perhaps a bit of a collaboration ?
I can do it in eagle if that suits looks like it would be small enough.
edit : yeah i get file corrupted or invalid on that zip file too. Dead Banana
samuraipizzacat29
I can pick it up and run with it. have an uno here for testing. all files will be shared w00t

just need that zip file fixed...
Jarno
+1

"unexpected end of file"
studiokpg
Ah, crap, sorry about the buggered zip file. Fixing now.
studiokpg
Ok, it looks like the zip works now. Let me know if there are any problems. I'm also putting it on an old blog of mine, for backup: http://mimsywabe.blogspot.com/
beeedy
I get a 404 error from dropbox when i click the link hmmm.....
studiokpg
Gawd I'm an idiot. I changed the file name on dropbox but forgot to update the link here's the new one:
http://dl.dropbox.com/u/7988413/Triggerhappy1_04.zip
hmmm..... very frustrating cry Dead Banana
samuraipizzacat29
So, I'm drawing it up and have a couple questions.
What encoder did you use?
exact # for 7 segment display?
do you see reprogramming the chip to be a function a generic user would want? the BOM says about bringing usb to front panel, but to me that would mean having a whole development board attached, which would not be cost effective. I was going to lay it out for a programmed atmega328 which could be programmed in an uno and then dropped in. I could also do an icsp header....

does smt 1206 work for everyone for the resistors? I like laying things out in 1206 package because they're still super easy to solder but can make use of both sides of the board if needs be.

pic to prove it happened, and for you to help catch mistakes.
Taylor
That looks awesome, samuraipizzacat. Thanks to you and studiokpg for working on this.

Are you doing a manufactured board or just an etchable layout? I would be up for SMD on a fabricated board but am less into it for an etched board as I find soldering SMD to bare copper a little annoying.

That schematic is not complete right? Like you at least need an xtal don't you? I'm an Arduino noob, but.

What I'd really like to see somebody do for this is a panel. I hate cutting rectangles. A smoked acrylic one ala the Turing Machine would be fine and cost-effective.
samuraipizzacat29
yeah, there's a lot of things missing from the schem. I just started working on it because I had time.

There's a fpd file in the download zip already, so, yeah, I would imagine however it all works out a panel would come too.

if I lay out the pcb, I'd want to make it as easy as possible to build into any format, but as quick to assemble as possible and as small as reasonably possible in Euro. word.
J3RK
I would probably buffer the outputs. I know they're just pulses, but if something yanks it down, it could... ...misbehave... Mr. Green Maybe. Just a thought anyway. Looks good!
diablojoy
+1 on output buffers
1206 smt fine by me
hmm 2 free i/o left.... just sayin
KnobHell
Agree on the output buffers. I think just a transistor should be good.

len
Jarno
Very nice! Looking forward to trying this myself, I have a few unused arduino nano's.
Those could sit on a pcb and have the usb stick out through the panel.
Using a display is new to me, sounds this is also a good project to learn that sort of stuff.

Thanks for this project Karl!
studiokpg
samuraipizzacat29 wrote:

What encoder did you use?
BI Technologies EN11-HSM1AQ20 (Mouser part #858-EN11-HSM1AQ20)
samuraipizzacat29 wrote:

exact # for 7 segment display?

Sparkfun 7-segment serial display COM-11443. $12.95 This includes a built-in ATMega328 for the serial control, so for cost-effectiveness, not the best chioce. Good for 1-off DIYers though.
samuraipizzacat29 wrote:

do you see reprogramming the chip to be a function a generic user would want? the BOM says about bringing usb to front panel, but to me that would mean having a whole development board attached, which would not be cost effective.

I have the 16 predefined patterns coded into the software, so to change them, you have to change the program. It might be possible to add the ability to change them through the front panel, but I haven't felt the need for it yet. Changing the menu system is a little tedious.
studiokpg
qu.one wrote:
can the sketch work if modified for an ARDCORE?

Parts of it could, but without the encoder and display, the menu system won't work, and you wouldn't have control over the various options.
KnobHell
Studiokpg

Do you have a sketch of the menu navigation you could post?

Len
studiokpg
KnobHell wrote:
Studiokpg

Do you have a sketch of the menu navigation you could post?

Len


Good idea - I'll start working on it!
KnobHell
studiokpg wrote:
KnobHell wrote:
Studiokpg

Do you have a sketch of the menu navigation you could post?

Len


Good idea - I'll start working on it!


Awesome!

My parts should come from mouser tomorrow so I can start on a prototype. If everything goes as expected I'm just building up from atmega328 chips, not using the arduino boards. Should be pretty economical to build, including the display.

Len
scriptstyle
This is fun!
studiokpg
Ok - here's the link to the menu schematic:
https://www.dropbox.com/s/aezih60mrinx6oo/MenuSchematic.jpg
KnobHell
studiokpg wrote:
Ok - here's the link to the menu schematic:
https://www.dropbox.com/s/aezih60mrinx6oo/MenuSchematic.jpg


Awesome! Thank you.

I should post my work this week. I have the basic circuit breadboarded and just need the time to complete the input and output buffers.

I'm using 328p chips and not using arduino boards. If people have a programmer it will cut the cost down a bit. Two unprogrammed chips are around 5$ from mouser. Near the end of the week I can post the updated code for the display.
KnobHell
Ok guys, I have completed a prototype and everything appears to work ok. Attached are the schematics and firmware for the display. The original trigger happy schematic had S1 and S2 swapped. I made mine agree with the firmware.

My display uses a modified version of the SparkFun firmware. I downloaded the master branch and made modification to that, as well as the SevSeg lib. I could never get the pin definitions working as defined in the SparkFun code. I instead used the definitions and wiring used in the counter example. The baud rate also seemed to be setup for a 16Mhz clock, the display runs the internal 8mzh clock. To get the baud setting correct I added a *2 to the baud setup in the library. (Im new to Arduino, if someone knows where I need to change a def to match the clock speed, let me know. I was just being lazy and didn't look very hard.)...

To burn the chips I used Atmel Studio 6 and an AVRISP MKII. To upload the Arduino code I used the current Arduino 1.0.3 suite. My "burner" was all done on a breadboard.

I've added a comparator for the clock input that is + and - 15 volt tolerant. And buffered the outputs with a TL074/TL072 and then out a 100 ohm resistor.

My leds are high efficient white. Adjust your limiting resistors to what ever you use...

The 4x7 seg display is from mouser. I can put together a parts list.

Last... I had a dotcom system, so my 5vs come from the power buss. Otherwise you'll need a regulator. You'll notice caps on the reset circuit. I have a larger cap on the triggerhappy chip to have it come up after the display stabilizes. If you don't do that you will not see the initial BPM setting.

Please give me feedback anywhere necessary and I can adjust schematics and firmware.

I haven't started on a board layout.

len



Main Board Schematic

Display Schematic

Seven Segment Library

Seven Segment Firmware
samuraipizzacat29
nice, I can get a board layout done quickly once I wrap my head around the details and figure out exactly what components to use (encoder and display mostly).
KnobHell
samuraipizzacat29 wrote:
nice, I can get a board layout done quickly once I wrap my head around the details and figure out exactly what components to use (encoder and display mostly).


I debated on display. The one I used has a small pin count, but is taller than the encoder. It would be nice to use a taller encoder so it could be bolted to the panel. Or use shorter leds.

Should probably include space on the board for a regulator. I'll see if I can get a good draw spec on the current tonight so you can size the regulator. I have mine on the dim side, display included.

Let me know if you need anything else from me.
Jarno
Nice work!
Was hoping to use the arduino nano's i still have, but having the controllers separately is fine as well.
Can't wait to try this, the demo video is very nice.

So, can you still program the controllers once they are on the pcb? (the only one needed is the one doing the io, not the display one of course).
KnobHell
Jarno wrote:
Nice work!
Was hoping to use the arduino nano's i still have, but having the controllers separately is fine as well.
Can't wait to try this, the demo video is very nice.

So, can you still program the controllers once they are on the pcb? (the only one needed is the one doing the io, not the display one of course).


Although I haven't tried it, there is no reason why you couldn't add a programming header on rx/tx/rst, and add in a .1 cap between rst and your dtr from your programming header.

The only reason I went chips and not Arduino boards was to get a smaller footprint. The "stock" boards would work fine. If you want the input and output buffering you could just use some perfboard. Once it's behind a panel it all looks good.
KnobHell
Hey, just thoughts a to options.

1. Add a display brightness option to the SW menu. Should be relatively straight forward. If I get time to play I can also add this.

2. With the op amps as buffers a builder could opt for 10 volt gates/triggers.
diablojoy
Quote:
. With the op amps as buffers a builder could opt for 10 volt gates/triggers.

that is good i can match with all my other modules then.
KnobHell
FYI

I removed the caps on the reset lines of both the main and the display schematics.

To compensate for the display board booting slower and not getting initialized correctly by the trigger happy program I put a:

delay(2000);

At the top of the display setup function above the call that sets the baud rate of the display board. Everything works as expected.

len
limpmeat
this is exciting!
KnobHell
This may help those who are not in to Arduino. Since I am doing everything at a chip level I needed a programmer. I originally had this in a breadboard, but figured I'd commit it to a real project for future use.

To write the boot-loader to a blank ATMEGA329 chip you need something like the Atmel AVRISP MkII. The MkII has a hard time with windows 7 and the Arduino development environment, so I just use the dev software free from Atmel. (Connected to my programmer with the smaller black header.)

The blue connector just connects to a USB to serial port. The programmer uses a RS232 to TTL chip to make the serial connection to the chip to write the "sketches" once the chip has a boot loader.

Some of the stock Arduino boards can be used as an ISP. I did this because I had other "junk" laying around that made it easy to go this route.



Programmer Schematic
KnobHell
I was rocking tonight!!! Rockin' Banana!

I had the prototype controlling three oscillators and my klee!!! Had kinda a bell, wood block, and a cymbal going. And the klee doing a pattern. Everything was timed nicely by the trigger happy!

This is a really cool module!!! I can't wait to have it done and mounted!

I'm starting to learn my way around the menu.

nuckabean
looks very cool!
KnobHell
Ok everyone... Here is my progress.

I have a panel and circuit board ordered. My design is in MU. My circuit board should work for euro, but is to wide for a single width MOTM, sorry, I tired to get it as narrow as I could but in the length I was shooting for it is 2 inches wide. The display/control board can be narrowed and the main board be mounted at 90 degrees if you need to go narrower. Otherwise my layout is designed to be stacked.

Both the display board and main board are designed as one board and need to be cut exactly in half. I do this to save money....

The display and the rotary encoder are mounted to the solder side. So if you are proofing the boards you'll notice that the display pins are backwards.

I am using resistor arrays for most of the resistors. To save on space the resistors are mounted vertically.

After I verify the build I will publish an updated schematic that reflects what is actually going on, and a front panel wiring diagram. I will also publish a BOM.

The display being slightly taller than the encoder will come into the panel with a small distance remaining. I plan on putting a thin piece of plastic on the front of the display. The panel cutout is a few thousandths larger than the display. The round corners will need to be squared before the display will pass through.

The rotary encode will bolt to the front panel. I will also attach the "bottom" (power) end of the board to an angle bracket that mounts to the panel using the two push button switches. Pictures will follow at the end of next week if all goes well.

I'm attaching everything here, use as you please.

len





Trigger Happy fpd

Express PCB File
KnobHell
Hey studiokpg,

I just wanted to say THANK YOU for putting your code and original work out there to hack on. This has been a really fun project to work on.

applause

I don't take any credit for this other than just trying to help move it along to a production state. All the credit should stay with studiokpg.

Sincerely,

len a.k.a. KnobHell!
marvkaye
KnobHell wrote:
Hey studiokpg,

I just wanted to say THANK YOU for putting your code and original work out there to hack on. This has been a really fun project to work on.

applause

I don't take any credit for this other than just trying to help move it along to a production state. All the credit should stay with studiokpg.

Sincerely,

len a.k.a. KnobHell!



Nice work, you guys. I hadn't been following this as closely as I should have been... have lots of catching up to do.

I appreciate your sharing what you've done, Len... very nice stuff. In keeping with your saving approach I decided to modify your FPD slightly to get the board size down to the 2.5 x 3.8 limit set by ExpressPCB for their Mini-Board service. I left the main PCB portion of the board pretty much intact, but changed the display half by making its outline a bit smaller, changing the size and locations of the mounting pads, and moving the power header over a bit.... these few minor changes got the board down to the required size to use their less expensive service. I hope you don't mind.

Triggerhappy Mini-Board

<marv>
KnobHell
No problem at all. I was originally going to do the same thing. I just shifted the mounting holes out on the display board to make it both halves the same size. It was originally laid out on a mini board.

Like I said, use it as you please. I wanting it to get out there so people could make cool changes to the firmware.

Although not marked... The main board does have a programming header.

I ordered a blue common anode display from sparkfun that is the same form factor and pinout as the CC display. To use the CA display you just need to change the option in the display firmware.

len
studiokpg
This is fabulous work guys! Thanks for running with it. This is just what I hoped would happen, people with real electronic skills taking it to the next level. It's peanut butter jelly time!
diablojoy
nice work thumbs up
though expresspcb are very expensive for boards
might try to redraw in eagle or freepcb to get gerber files
that would free it up to use someone like itead studio
which would be a lot cheaper
unless samuraipizzacat is still doing an eagle version ?
marvkaye
diablojoy wrote:
nice work thumbs up
though expresspcb are very expensive for boards
might try to redraw in eagle or freepcb to get gerber files
that would free it up to use someone like itead studio
which would be a lot cheaper
unless samuraipizzacat is still doing an eagle version ?


I agree on principle that compared to Itead Studio, ExpressPCB is quite expensive. However, if you compare their $27/PCB delivered in the US within 4-5 days with many of the other offerings both here and at E-M, that's not such a bad deal for double-sided PCBs with plated thru holes and silkscreened layouts. It's certainly not what I'd want to pay if I was buying boards for resale, but to go in with another wiggler or two and share the cost of the 3-PCB service to come up with another backlog builder would be quite acceptable. It's also a nice deal for folks whose skills with Eagle aren't quite up to speed, as the ExpressPCB layout software is pretty intuitive and easy to maneuver. Just thought I'd share my perspective....

<marv>
logicgate
Hey guys, I know a place even cheaper than iteadstudio:

http://www.szgpc.com/


Send the gerber files and ask for a quotation and you'll be surprised!


I really wanna see this project coming to life!
diablojoy
Quote:
However, if you compare their $27/PCB delivered in the US within 4-5 days with many of the other offerings both here and at E-M, that's not such a bad deal for double-sided PCBs with plated thru holes and silkscreened layouts

yes that is a reasonable deal for 3 boards if you live in the US however for anyone outside the US they also hit you up for a mninmum $55 in shipping on that deal, which is ridiculous.
Anyone can get 10 similar boards for under $35 all up from china,
if the design is in gerber format as with tombola's RLS project which worked out incredibly well for a lot of people.
I use expresspcb , eagle or freepcb at different times for different reasons , so its not that difficult for me to convert it over and just release the gerber files.
marvkaye
diablojoy wrote:
yes that is a reasonable deal for 3 boards if you live in the US however for anyone outside the US they also hit you up for a mninmum $55 in shipping on that deal, which is ridiculous.


You're absolutely right, no argument there at all. In this regard I'm lucky to be in the US, have used them a number of times for "chiclet" sized PCBs that I can layout multiples on their mini-board form factor. If I can get 8-10 chiclets per PCB, 24 - 30 pcs for $80 is not that bad either (unless they're single side boards... those are a completely different matter.. I CNC those myself. thumbs up )

Quote:
Anyone can get 10 similar boards for under $35 all up from china,
if the design is in gerber format as with tombola's RLS project which worked out incredibly well for a lot of people.


Yeah, I know... I bought 3 RLS runs myself, still have some spares on hand. Itead's prices & service is the bomb. I need to get my Eagle chops up and my brain wrapped around gerbers... I like that 20 PCBs for $51 delivered deal.


<marv>
diablojoy
Quote:
I need to get my Eagle chops up and my brain wrapped around gerbers...

yeah its a bit of a steep learning curve .
I use the free version of eagle if the board is under 100 x 80 mm
but you cant trust the stock libraries, you have to draw a lot of your own parts
if the board will end up bigger than that i use FREEPCB
if i am self etching i use expresspcb.
futurlec will do boards from expresspcb files and are cheaper generally however its a very long wait.
KnobHell
My experience with futurlec was terrible. One small little board took over a month. It took two or three days a cycle to get one email loop complete. When they shipped they selected the slowest method available without tracking. I'd never even consider them again.

I know expressPCB is pricy, but they are fast and reliable. Since I only ever need one or two boards per project they work fine. It would be nice if I could export to Gerber for larger quantities, though I accept the limitation. I've used them for years.

I guess it's like using FPE... Pay a premium for fast one off designs.

Anyway, I'm glad to see someone doing a Gerber file. It'll be cool to get a bunch of TriggerHappy modules out there. I'll send pictures next week of my completed module.

My blue 7 Seg displays showed up today. They looked really cool. With the brightness set low they are not overwhelming. The only change was to define COMMON_ANODE in the seven segment firmware.

len
eonz
Right on!
Thank you!
KnobHell
NOTICE!

I have one "foot print" error on my display board.

I used a standard .3 socket. The display is on a .4 foot print.

There is actually enough room behind the display to bend the pins. But it should be fixed on any future runs.

len
KnobHell
I've re uploaded the corrected PCB file for the .4 inch footprint of the display.

Last night I did mount my display to the board and it fits ok. So if you already made boards based on the original layout don't be disheartened.

TO get the display to align in the smaller footprint I first bent all the pins from one side inward and then carefully straight back with around a .05 inch offset. Then I did the same for the remaining pins on the other row. It took a little fiddling but I got the pins in the holes and the display flat against the board.

I am going to wait to solder the leads to the display until I mount the board to my front panel to make sure the display board is not skewed.

If you are squeamish about building "beta", then wait a week till I report on how everything else goes together.

len
KnobHell
Guys! Look what I finished tonight! The only issue with the PCB was the footprint on the display, which has been corrected in the currently linked file.

Enjoy the pictures!







studiokpg
So awesome! I can hardly wait to see a demo! Congrats!
Jarno
That's hot!
Very nice!
limpmeat
WOW! good work!!
Bishop Dust
Jeez ! you did a great work ! SlayerBadger!
KnobHell
Bishop Dust wrote:
Jeez ! you did a great work ! SlayerBadger!


Thanks guys. Hanging out here is like taking art lessons from the masters.

we're not worthy
marvkaye
KnobHell wrote:

I ordered a blue common anode display from sparkfun that is the same form factor and pinout as the CC display. To use the CA display you just need to change the option in the display firmware.

len


Hi Len... been all tied up but managed to change my miniboard PCB file to reflect the .4 pin spacing as well, just haven't uploaded that file yet... I'll try to later today.

Would you care to share the Sparkfun part number for your display? Make things easier......... thanx..........

<marv>
KnobHell
marvkaye wrote:
KnobHell wrote:

I ordered a blue common anode display from sparkfun that is the same form factor and pinout as the CC display. To use the CA display you just need to change the option in the display firmware.

len


Hi Len... been all tied up but managed to change my miniboard PCB file to reflect the .4 pin spacing as well, just haven't uploaded that file yet... I'll try to later today.

Would you care to share the Sparkfun part number for your display? Make things easier......... thanx..........

<marv>



These are the ones

Display

These are common anode. You'll need to change the define in the display firmware from common cathode to common anode. I originally developed with common cathode displays.

Nothing else changes.

Len
diablojoy
last night i made a start on laying this out in freepcb [gerber file output]
I am trying to get it down to a single board 100 x 48 mm
with everything on it barring only the actual output jacks , this would allow for very little wiring and be compatible with euro at roughly 12HP width if the output jacks are mounted down the left side of the panel
the clock input would be a choice of a 1/8 board mounted kobicon jack or a 2 pin 2.54 header for those of us who prefer 1/4 inch jacks.
there will probably need to be some 1206 SMT decoupling caps and maybe also a few 1206 resistors.
anyway i should have something to show soon .
before i go much further
any comments or other suggestions would be appreciated.
J3RK
Nice work! I'd love to build one of these at some point. Hadn't checked in on this thread for a little bit. This is fun! thumbs up
Peake
diablojoy wrote:

any comments or other suggestions would be appreciated.


Desperate cries of "Hurry" are not helpful? hmmm.....

hihi Thanks for this, looking forward to it, especially to advance melodic sequences!
diablojoy
Quote:
Desperate cries of "Hurry" are not helpful?


Haha I am notoriously slow and the board will be incredibly tight i think
however knobhell already has a proven layout if you need it sooner.
just thought to lower the wiring and provide more choice when it comes to
board manufacturers.
I will once i have it done post the layout for inspection and comment then get it prototyped once i know it is working i will release the gerber and drill files here.
KnobHell
Can't wait to see others builds

Len
diablojoy
Ok seems this layout may have went better then i expected.
if anyone spots any obvious stupids let me know , I will probably play around a bit with it yet in any case
not the best way to display it but ya get that lol
I managed to get a 5v reg in there and some protection for U2 as well.
fair bit of 1206 SMT on both sides of the board, still 1206 is easy to solder with a normal iron.
Jarno
Nice style of layout, so rectangle-ish pads are smt, rounds pads are through hole?
Do wonder about some of the ground connections, some ground planes are connected with bigger planes with very thin tracks.
logicgate
Does this project have a BOM already?

I'm putting together a mouser order and I could add the components needed for this project.

Does anyone have the mouser part number for the display??

Cheers

EDIT:

I wonder if this one will work?


630-HDSP-B03E (mouser)
KnobHell
Awesome work, cool to see this comming along.
diablojoy
Quote:
Do wonder about some of the ground connections, some ground planes are connected with bigger planes with very thin tracks.

some of that is the default thermal connections which seem smaller than neccessary but yeah i do need to play with it some more and there are some islands i still need to lose .
Not all the squarish pads are SMT only the 1206 stuff , the drills dont show up unfortuantely in any of these renderings , i will try and post a pic later of the screen shot which should help .
diablojoy
hopefully this will make more sense
ground planes removed for clarity.
edit :the sharp eyed will pick the board mount 1/8 jack footprint is incorrect d'oh! fixed it but no new pic .


diablojoy
finally happy enough with the design so its is off to the prototypers
will be at least couple of weeks before i get something back .
I also ordered parts and an uno , now to learn that bit , well i got a couple of weeks i guess lol
diablojoy
prototype boards just arrived
stuffing them will take a bit of forethought but not too bad
panel controls and display must be done last
and i just noticed that scheme for a programer [thanks knobhell]
very usefull, will etch a board for that programer on the weekend
if i get a chance. then we shall see what needs fixing or if i actually got it all right lol
there is one error i already picked up just that little bit late
the trace from R18 should have gone to pin 24 not pin 25. Apparently i temporarily lost the ability to count at some point , however i think that is easily remedied in the sketch . please correct me if i am wrong here , this is my first project involving arduino.
KnobHell
Lol, don't be to hard on yourself, I messed up on the display foot print on my prototype...

If you have any issues burning chips ping me.

On the main chip don't forget to comment out the defaults, as stated in the code.
diablojoy
Quote:
If you have any issues burning chips ping me.

On the main chip don't forget to comment out the defaults, as stated in the code.

haha no doubt i will probably need to , always something new to learn
and thanks for the tip.
boards came out looking good anyway and i should have 6 or so spare
once proven
Mdashdotdashn
very nice !
diablojoy
managed to get the bootloader onto my first chip so small win
pic of programmer board i made up on the weekend thanks again for the scheme Knobhell
here's a pic
and printable pdf of the bottom foil layout for PNP
use the top foil to work out straps for single sided boards
and print the silk out with a bubbljet and stick it to the top face of the board with either PVA or board laquer
diablojoy
And a couple of pics of my build so far
Jarno
Very nice, not crazy about the knob on the encoder though, but a nice build!
The PCB's to mount jacks are nice.

Nice birdseye maple table as well, DIY?
KnobHell
Wow, that's looking beautiful!

You don't supposed to show me up... applause
diablojoy
Quote:
not crazy about the knob on the encoder tho

Haha yeah neither am i really bit of a last minute expriment made from casting resin, will have to have another go at it.
yes birdseye top is DIY my dvd storage unit built back when i thought dvd's would be around for ages lol but a nice very large piece of furniture anyway.

Knobhell : I dont think i could , its like the 3rd sequel , anyway not at the finish line quite yet, still have to get my head fully around the programming part. only had to replace the keyboard for my computer
once so far , I finally worked out they are cheaper than screens.

anyone know how you get Atmel studio 6 to see the USB to serial connection ? I really am a newbie to this . seriously, i just don't get it
must spend some time googling tonight.
KnobHell
[quote="diablojoy"]
Quote:


anyone know how you get Atmel studio 6 to see the USB to serial connection ? I really am a newbie to this . seriously, i just don't get it
must spend some time googling tonight.


What OS are you running? I'm in windows 7. This was the first time for the Arudino for me as well. In your picture I can see we have the same programmer. You said you got the bootloader in?

I used Atmel Studio to upload the bootloader.

Then I uploaded the sketch using the arduino SW.

I could never see the atmel programmer from the arduino dev SW.

I just had a usb to serial convertor I had sitting around a long time, and it worked fine with W 7.

If you can give me more detail I can try things on my end.

len
diablojoy
OS = windows XP
bootloader -atmel studio 6 - 328 opti from the arduino hardware library 1.0.4
[once i realised i actually had to also seperately download and install that as well ]
via AVRISP mk2
came back -with a bunch of ok's
Quote:
Then I uploaded the sketch using the arduino SW.

arduino SW - will have to look that up
maybe the hint i needed
USB to serial i bought a cable locally
downloaded and installed an XP driver for it.
I also have an UNO rev3 so at worst i can fall back to that just a bit harder to swap chips over.

new to any sort of programming so a lot of seemingly obvious stuff to some people is well hmmm..... google is my friend though

edit : ah arduino SW : I see i think, its all in the 1.0.4 download i did will look at it again once i get home tonight.
KnobHell
Correct 1.0.4 is the current version.


If you have issues I can look at my config options.

There are also the config bits on the chip that need setting when you burn the bot loader.
diablojoy
fuses ?
yeah i think i got them ok
tried loading the blink sketch into the uno got that working fine ,
played around with that a bit ok.
got the comm port worked out for both the uno and the usb to serial
tried the triggerhappy sketch but it fails during the compiling about a quarter of the way through with a bunch of errors and does not load on either the uno or the made up board , so i must be missing a step somewhere,
oh yeah i did remember to comment out the default that is expressly mentioned . maybe there is more i missed ?
this is what i am seeing
'setupDisplay' was not declared in this scope
this comes up at void setup()(
serial begin(9600);
setupDisplay();
KnobHell
Could be that you need to download the seven segment library to get it to compile.
diablojoy
Quote:
Could be that you need to download the seven segment library to get it to compile.

Ahh yes that would make sense .
thankyou so much
KnobHell
Look bak on page 7. I have a link to it on my site.

I made some mods so simplify to code to support what we needed here.

Youll have to set the common anode/ cathod define. Let me know if you have any issues. I'm pretty sure I have the final version posted.
diablojoy
cool and thanks again.
diablojoy
I dropped using the programmer board for the moment as i keep getting sync errors when loading, i think i will get back to that at some later point
and stick to the main issue of getting some chips programmed [wrong board type selection maybe]
knobhell wrote
Quote:
I could never see the atmel programmer from the arduino dev SW
hmm not sure if this is my issue or not


I also managed to prove the bootloader i did by putting the chip i put the bootloader on into the UNO and loading the blink sketch successfully.
So now back to the main chip , still getting the same errors showing up
at the same point as before trying to load the triggerhappy main program . So i am still missing something basic i think with that one.
there is a small program in another folder marked display with the main program
is that perhaps something to do with what i am missing ?
please excuse if that question is just dumb, but obviously seriously, i just don't get it

I then tried to load the display chip and i believe i managed to load it correctly using the UNO R3 with the mysevsegment display program. at least it came back with a load finished anyway and no errors.
KnobHell
If the display chip works properly it should display four dashes on startup, I believe...

Let me look at my environment tomorrow and get back to you.

I know you need to put the seven segment lib in the library directory, or somehthing like that...
diablojoy
Quote:
If the display chip works properly it should display four dashes on startup, I believe...

will see if thats what i get once i get home ran out of time last night for much checking of things
yes did get the seven segment library in last night cheers for that
diablojoy
hmm no dashes at startup.
compiling problem sorted just needed to take that small display program out of its lonely folder and put it in with the the rest that way it gets included when opening the triggerhappy program in arduino sw
main program now seems to load ok but still no joy with the module as a whole
perhaps config bit settings ?
knobhell can you tell me which fuse and lock settings you used please ?

edit: I am a dumbass d'oh! woke up this morning with the realisation i had not reset the fuse for the display chip to use its internal oscillator, so of course no heartbeat, i will redo it tonight.
KnobHell
Ok, a few things to try.

For the display, make sure you are using the correct bootloader. You want to use the one supplied with the display file. Path something like this:

C:\tmp\Synth\Modules\Trigger Happy\Display\Serial7SegmentDisplay-master\Serial7SegmentDisplay-maste r\firmware\hardware\Serial7Seg\bootloaders\optiboot\optiboot_atmega328 _serial7Seg.hex

In the file somewhere you'll see a boards.txt file. It will specify the lock bits.

low_fuses=0xE2

high_fuses=0xDE

extended_fuses=0xFF

Load the bootloader, set the fuses. Then use the Arduino envroment to load the sketch.

I looked, I am actually running version 1.0.3, but I can't imagine that is much different form 1.0.4.

In the libraries directory I have, SoftwareSerial and SevSeg.

I don't remember having to add anything to get TriggerHappy going. But try to get the display working first. If you can get the four ---- on bootup you have a good start.


If you are working with the the correct version the sketch will look like this: (I cut a LOT of the code out to simplify it for what we needed.

/* Serial 7 Segment Display Firmware
Version: 3.0.1
By: Jim Lindblom (SparkFun Electronics)
Date: August 24, 2012
License: This code is beerware: feel free to use it, with or without attribution,
in your own projects. If you find it helpful, buy me a beer next time you see me
at the local pub.

Description: This firmware goes on the SparkFun Serial 7-Segment displays.
https://www.sparkfun.com/search/results?term=serial+7+segment&what=pro ducts

You can send the display serial data over either UART, SPI, or I2C. It'll
sequentially display what it reads. There are special commands to control
individual segments, clear the display, reset the cursor, adjust the display's
brightness, UART baud rate, i2c address or factory reset.

Note: To use the additional pins, PB6 and PB7, on the ATmega328 we have to add
some maps to the pins_arduino.h file. This allows Arduino to identify PB6 and
digital pin 22, and PB7 as digital pin 23. Because the Serial 7-Segment runs on
the ATmega328's internal oscillator, these two pins open up for our use.

Hardware: You can find the Serial 7-Segment Display Schematic here:
!!! Add schematic link

*/
#include <EEPROM.h> // Brightness and Baud rate are stored in EEPROM
#include "settings.h" // Defines command bytes, EEPROM addresses, display data
#include "SevSeg.h" //Library to control generic seven segment displays

SevSeg myDisplay; //Create an instance of the object


//Global variables
unsigned int analogValue6 = 0; //These are used in analog meter mode
unsigned int analogValue7 = 0;
unsigned char deviceMode; // This variable is useds to select which mode the device should be in
unsigned char commandMode = 0; // Used to indicate if a commandMode byte has been received

// Struct for circular data buffer data received over UART, SPI and I2C are all sent into a single buffer
struct dataBuffer
{
unsigned char data[BUFFER_SIZE]; // THE data buffer
unsigned int head; // store new data at this index
unsigned int tail; // read oldest data from this index
}
buffer; // our data buffer is creatively named - buffer

// Struct for 4-digit, 7-segment display
// Stores display value (digits), decimal status (decimals) for each digit, and cursor for overall display
struct display
{
char digits[4];
unsigned char decimals;
unsigned char cursor;
}
display; // displays be displays

void setup()
{
setupDisplay(); //Initialize display stuff (common cathode, digits, brightness, etc)

//We need to check emergency after we have initialized the display so that we can use the display during an emergency reset
checkEmergencyReset(); //Look to see if the RX pin is being pulled low

setupTimer(); // Setup timer to control interval reading from buffer
setupUART(); // initialize UART stuff (interrupts, enable, baud)


interrupts(); // Turn interrupts on, and les' go

//Preload the display buffer with a default
display.digits[0] = 45;
display.digits[1] = 45;
display.digits[2] = 45;
display.digits[3] = 45;
}

// The display is constantly PWM'd in the loop()
void loop()
{

displayData();

}

//This is the normal mode where we display whatever data is coming in over UART
void displayData()
{
while(1)
{
//Just hang out and update the display as new data comes in
myDisplay.DisplayString(display.digits, display.decimals); //(numberToDisplay, decimal point location)

serialEvent(); //Check the serial buffer for new data
}
}



// updateBufferData(): This beast of a function is called by the Timer 1 ISR if there is new data in the buffer.
// If the data controls display data, that'll be updated.
// If the data relates to a command, commandmode will be set accordingly or a command
// will be executed from this function.
void updateBufferData()
{

// First we read from the oldest data in the buffer
unsigned char c = buffer.data[buffer.tail];
buffer.tail = (buffer.tail + 1) % BUFFER_SIZE; // and update the tail to the next oldest

// if the last byte received wasn't a command byte (commandMode=0)
// and if the data is displayable (0-0x76 or 0x78), the display will be updated
if ((commandMode == 0) && ((c < 0x76) || (c == 0x78)))
{
display.digits[display.cursor] = c; // just store the read data into the cursor-active digit
display.cursor = ((display.cursor + 1) % 4); // Increment cursor, set back to 0 if necessary
}
else if (c == RESET_CMD) // If the received char is the reset command
{
for(int i = 0 ; i < 4 ; i++)
display.digits[i] = 'x'; // clear all digits
display.decimals = 0; // clear all decimals
display.cursor = 0; // reset the cursor
}
else if (commandMode != 0) // Otherwise, if data is non-displayable and we're in a commandMode
{
switch (commandMode)
{
case DECIMAL_CMD: // Decimal setting mode
display.decimals = c; // decimals are set by one byte
break;
case BRIGHTNESS_CMD: // Brightness setting mode
EEPROM.write(BRIGHTNESS_ADDRESS, c); // write the new value to EEPROM
myDisplay.SetBrightness(c); //Set the display to this brightness level
break;
case BAUD_CMD: // Baud setting mode
EEPROM.write(BAUD_ADDRESS, c); // Update EEPROM with new baud setting
setupUART(); //Checks to see if this baud rate is valid and turns on UART at this speed
break;
case CURSOR_CMD: // Set the cursor
if (c <= 3) // Limited error checking, if >3 cursor command will have no effect
display.cursor = c; // Update the cursor value
break;
case FACTORY_RESET_CMD: // Factory reset
setDefaultSettings(); // Reset baud, brightness, and TWI address
break;
case DIGIT1_CMD: // Single-digit control for digit 1
display.digits[0] = c | 0x80; // set msb to indicate single digit control mode
break;
case DIGIT2_CMD: // Single-digit control for digit 2
display.digits[1] = c | 0x80;
break;
case DIGIT3_CMD: // Single-digit control for digit 3
display.digits[2] = c | 0x80;
break;
case DIGIT4_CMD: // Single-digit control for digit 4
display.digits[3] = c | 0x80;
break;
}
// Leaving commandMode
// !!! If the commandMode isn't a valid command, we'll leave command mode, should be checked below?
commandMode = 0;
}
else // Finally, if we weren't in command mode, if the byte isn't displayable, we'll enter command mode
{
commandMode = c; // which command mode is reflected by value of commandMode
}
}
diablojoy
Orsm thank you very much for posting that .
I can already see a few things i may have got wrong.
diablojoy
hmm seems to be the bootloader that is the issue- my best guess anyway

Quote:
C:\tmp\Synth\Modules\Trigger Happy\Display\Serial7SegmentDisplay-master\Serial7SegmentDisplay-maste r\firmware\hardware\Serial7Seg\bootloaders\optiboot\optiboot_atmega328 _serial7Seg.hex

I am not finding this exact bootload file . Well not with the added _serial7Seg.hex part anyways just the normal optiboot_atmega328
also i have some confusion i think on the SUT_CKSEL fuse setting
I would have thought the default setting for using the internal clock
would be correct for use with the display as there is no external crystal
employed for it on the board however this setting prevents me from loading the display program successfully ..avrdude: stk500():not in sync: resp=0x00 response - which is not debuggable,but suggests the bootloader may not be set correctly tried to get past that by doubling up on the chip socket but with pins 9 and 10 removed on my UNO R3 to remove the on board crystal from the equation but that didnt work. seems it's not as simple as that. Checked the display sketch against the one you posted - at least that looks right .
KnobHell
The boot loader is in the same distribution that the sketch is.

I still have my prototype striped up. I'll burn a chip from scratch and post the details.
KnobHell
P.s. I did not program my display chip in circuit, I did it on my programmer.
KnobHell
Ok, here is a concise file list and instructions for the display. If you've downloaded files, grab these to make sure you have current SW.

The Seven Segment library. This needs to go in your Arduino libraries directory.

SevenSegLib

The Sparkfun "original" seven segment display software. This is my copy with a renamed file for the 328P bootloader. This will match my instructions.

Bootloader

This file contains the modified sketch.

Skectch

###############################################

I used AtmelStudio 6 to burn the bootloader and set the fuses.

Connect your programmer, insert a 328P, power it up. If everything is configured correctly your programmer will see the device.

From the menu:

Tools -> Device Programmer

Tool -> AVRISP (Is what I own)
Device -> Atmega328p
Interface -> ISP

The click on apply

Clock frequency 250 Khz

Click on "Memories" from the left menu.

Select the bootloader in the "Flash" area. (The ... are the path where you unziped the file from above.)

.....\Serial7SegmentDisplay-master\Serial7SegmentDisplay-master\firmwa re\hardware\Serial7Seg\bootloaders\optiboot\optiboot_atmega328_serial7 Seg.hex


I tick the "Erase device" and "Verify Flash" boxes.

Click on "Program"

Next select the "Fuses" menu. Set your fuses according to boards.txt file below. (I just set the extended, high, and low) This file is included within the bootloader file.

###############################################

Serial7Seg.name=Serial 7-Segment Display
Serial7Seg.upload.protocol=arduino
Serial7Seg.upload.maximum_size=32256
Serial7Seg.upload.speed=57600
Serial7Seg.bootloader.low_fuses=0xE2
Serial7Seg.bootloader.high_fuses=0xDE
Serial7Seg.bootloader.extended_fuses=0xFF
Serial7Seg.bootloader.path=optiboot
Serial7Seg.bootloader.file=optiboot_serial7Seg.hex
Serial7Seg.bootloader.unlock_bits=0x3F
Serial7Seg.bootloader.lock_bits=0x0F
Serial7Seg.build.mcu=atmega328p
Serial7Seg.build.f_cpu=8000000L
Serial7Seg.build.core=arduino
Serial7Seg.build.variant=standard

###############################################


Ok, if the bootloader loaded without erors you are ready to upload the sketch.

Make sure that you put a copy of the unziped seven segment library in your Arduino libraries directory.

Open the sketch, downloaded from above, in the Serial_7_Segment_Display_firmware directory.

Upload the sketch to the 328p.

If everything is wired correctly the display will show ---- upon bootup.

Let me know if you get that far. I will post the instructions for the main TriggerHappy chip if you need it.

len
diablojoy
love your work display is now up at least
It loaded ok now using the homemade programmer board in audino SW
board selection = audino mini with atmega 328
and it needed a reset just before it finished compiling and loading
display seems very glitchy , i think i read somewhere there was a fix for that ?
booted up with the ---- on display then went to display what i guess is the rate, pushing the encoder button brings up each of the outputs ,save , load and so forth. will need to play with it to get my head around the menu. so i guess that also means the main program is in successfully
as well maybe.
KnobHell
What do you mean glitchy?

Do the menu items display correctly?

If the baud rates match you should be ok.

The options in the display code that stabilize things are the scan rate and the brightness. I found that trying to have the brightness to high does cause glitches. I keep the brightness low, helps with then power consumption.

I don't have any issus with mine. I "believe" that the settings in the code base match mine.
KnobHell
p.s. Some of the display options get set in the actual seven segment library, and then need a recompile.
diablojoy
Quote:
What do you mean glitchy?

just some random extra segments flickering on and off .
display is still readable
thought the display glitch might be due to the delay 2000 you mentioned adding
but not sure.
also still need to fix the code for the pin swap i have so not all buttons are doing what they should yet
really didnt get much time yesterday to look properly an emergency came up mid afternoon.
had to rush geoffrey the cat to the vet .does not look like he will make it.
KnobHell
Make sure you are defining your display properly, common anode or cathode.

I don't see that at all on mine.
diablojoy
Quote:
Make sure you are defining your display properly, common anode or cathode.

hmm i think if i had that wrong i would see nothing at all surely
with the pins acting as current source or current drain the wrong way
round, the display would not light up at all i would think.
I did not check the seven segment library or do a recompile yet so maybe problem lies there .
KnobHell
Can't hurt to recompile. Look ant mane sure that the defines for the segments and such meet the defines. I spent a lot of time mucking with that. Spark fun used a different display. When I simplified things I changed the pins to drive the display.

My schematic, and pcb, are correct. Since I just burned a virgin chip the sw appears to be correct.

What display are you using?
KnobHell
I just looked at the code. The defines are in the system_functions of the sketch for the pins and LED type. They are correct for the common anode display I used.

len
diablojoy
Quote:
What display are you using?

yellow version of the same display you used i believed but I also got it from sparkfun
#COM-09480
Ah there is a difference in the forward voltage to the blue
2.1vdc versus 3.4vdc for the blue
KnobHell
I don't think the voltage makes a difference. I had a bunch of different colored displays when I was testing things.

There is a refresh rate setting in the seven set lib, what is that set at?
diablojoy
Quote:
p.s. Some of the display options get set in the actual seven segment library, and then need a recompile.

havent managed to get back to this been a very busy week
So anyway display options - is this in the .h file or the C++ file
I am just not sure , i think it is the .h file from just looking at it
if so - I would edit out the things i dont want ?
eg common cathode entry
delay entries leaving only the delay =2000
then recompile
I obviously have a woeful lack of knowledge with this

I think if i dont get a break thru soon i will need to offer a fully stuffed board out to someone with good coding experiance to check out.
at the end of the day proving the board design is more important than me getting my own build working at the moment , i want to get this out there
KnobHell
Hi, I'm kind of at a loss. The files I posted last are the ones I'm running...

The only time I got the flickering segments was when the led type was incorrect just for fun try defining it as common cathode and see what happens.

The other option is for me to send you a programmed chip to try.

Let me know.

Len
inlifeindeath
hoping to DIY this project! let me know if i can help prototype at all!
KnobHell
inlifeindeath wrote:
hoping to DIY this project! let me know if i can help prototype at all!


If you can breadboard up the display and see if you can get it working from my posting above that would be really helpful.
KnobHell
Any updates on this?
studiokpg
I've had an inquiry from someone who would like to sell these. I can't produce them because shipping times to U.S. from my location are 2 weeks minimum. Anyone else interested?
KnobHell
Sorry, I was checking to see if they had got the quirks out of the display. Mine works perfect.

Len
diablojoy
Hi
Sorry no further progress yet, work is getting in the way.
hopefully i can get some time back again soon.
diablojoy
Ok i believe i have the display chip programmed correctly now
---- displayed on startup and no flickering any more
with the main program , the bootloader is just the standard optiboot328 ?
and the fuses should be set at ?
diablojoy
OK
board works Rockin' Banana! well almost just need to sort the external clock out- thats not working yet

programming issue came down to having to get my pin defines right for my missplaced trace , module didnt like the open pin it wasnt expecting to have .
I also ended up increasing the cap values to 47uf around the 5volt reg .

many many thanks to Knobhell for his help, simply would not have got there without it.
and also my thanks to studiokpg for an orsm module
hopefully i will get it all tidied up on the weekend and ready to release
the board files
KnobHell
diablojoy wrote:
Ok i believe i have the display chip programmed correctly now
---- displayed on startup and no flickering any more
with the main program , the bootloader is just the standard optiboot328 ?
and the fuses should be set at ?


I used the bootloader that was in the display zip that I posted.
KnobHell
diablojoy wrote:
OK
board works Rockin' Banana! well almost just need to sort the external clock out- thats not working yet

programming issue came down to having to get my pin defines right for my missplaced trace , module didnt like the open pin it wasnt expecting to have .
I also ended up increasing the cap values to 47uf around the 5volt reg .

many many thanks to Knobhell for his help, simply would not have got there without it.
and also my thanks to studiokpg for an orsm module
hopefully i will get it all tidied up on the weekend and ready to release
the board files


Awesome diablojoy!

The ext clock works for me. If you followed my schematic, you should be good.

This is a really cool module! Thanks again studiokpg.



len
diablojoy
Quote:
The ext clock works for me. If you followed my schematic, you should be good

Haha yeah i actually added schotky diode protection to the input
so i will need to check that part out properly but otherwise its the same

With the display flickering there were 2 causes
1. I originally had only 10uf before and after the 5 v reg changed that to 47 uf caps and that removed some of the flickering
2. the open pin that the triggerhappy main program wasnt expecting to see (this was the major cause)all good once i re-did the pin defines in the sketch to suit my board and reloaded it.
with the main program 328 chip i used the standard optiboot
on the display 328 chip i used the modified bootloader from your zip
anyway i will go over it all some more , write some docs and release the files as soon as i can.
Aveface
Great work! You should be proud!
diablojoy
hmm
definite issue with the external clocking
I am using an LM393 which should be the same as LM2903
unless i am missing something on the data sheets
using a 10v clock pulse into jack
schotky diode protection is working as it should
pulse level is clamped to supply level and negative voltages are stopped (tried a +/-5v LFO square wave)
seeing 5.1v supply and ground ok on pins 8 and 4
seeing 5.1v clock pulses at pin 3
reference voltage is ok at 3.7v on pin 2 should be fine but
pin 1 shows no output
tried 3 chips (unfortuantely same manufacturer) but I get the same result.
removed the schotky diodes and tested again same result with a full 10volt clock pulse
replaced the schotky diodes and continued testing
I then tried clocking directly by removing LM393 and shorting the socket between pins 3 and 1
external clocking then works fine ( even using the LFO).
very strange that 3 brand new chips are seemingly bad.
I will have to think on this some more and perhaps also source some new comparator chips before i can continue testing much further.
one question : Knobhell if you could check please what is the level of the external clock you are sending into your build ?
KnobHell
Hi

It'll be Sunday before I can check this out.
diablojoy
Ok solved the external clock issue
the LM393 I have are fine but I had to add some hysterysis to get a clock pulse at the output
this involves adding 2 resistors ,
a 10K from pin 8 to pin 1
and a 1M from pin 3 to pin 1
perhaps LM2903 is slightly better on some specs and wouldnt need this , but as LM393 is more common I will redraw the board to include these resistors.
diablojoy
Cam files and BOM and other info attached EDIT : 10/06/13 added scheme's and FPD file , the panel is what i used but is a custom size, easy to modify in front panel designer however.
I simplified the Bom somewhat in that very few different values are required.
just send the cam files zipped up as they are to your board house,
they are in gerber274 format. I used Itead studio.
Obviously when soldering start with the SMT on both sides then do the
main components , the display , encoder, switches and the LED's should be done last of all. Its not a hard build just a bit tight.
only wiring required is for the power and output jacks.
edit: 26/6/13 fixed error on main scheme and posted a slightly modified main sketch.
mxmxmx
nice. thanks for sharing. anyone in euroland (geographically) interested in a group buy/order? i won't need 10 pcbs.
Jarno
I would appreciate some help on the programming of the AVR's since I've never done such a thing, but I'm definitely interested in building this/ participating in a group buy of boards.
sicpaul
Hi Mxmxmx,

I'd love to participate with 3 PCBs .....
nd595
Hi mxmxmx, I would like to participate with 2 PCBs please!
mxmxmx
okay, i was going to put in an order with them anyways, so i've added it. i went for unfancy green, i hope that's okay. i only need one, so, minus sicpaul and nd595 (and jarno?), there's 3 or 4 left

looks like good fun. i think i'll try to coax something zorlon cannon-esque out of it, where you can dial in the taps of the lfsr
Jarno
Yes, I'd like one or two, definitely!
Dego
I want two smile
spotta
I'd grab one if there's still one left. Guinness ftw!
KnobHell
diablojoy wrote:
Ok solved the external clock issue
the LM393 I have are fine but I had to add some hysterysis to get a clock pulse at the output
this involves adding 2 resistors ,
a 10K from pin 8 to pin 1
and a 1M from pin 3 to pin 1
perhaps LM2903 is slightly better on some specs and wouldnt need this , but as LM393 is more common I will redraw the board to include these resistors.


Nice job, looks like you got this handeled.
mxmxmx
@ sicpaul, nd595, jarno, dego, spotta - okay, looks like that'll be about 10. i'll pm you once the boards have arrived. mid june, i'd guess
diablojoy
nice looks like this is going forward with a few people now.
will try to get as much build info out there soon as i can
redoing the schematic at the moment to reflect part numbers
and the small change to the clock comparator.
the original sketches as posted will work with this board.
with the DIY programmer board - board selection in Arduino 1.0.4 is
arduino mini w/atmega328
So to program will require an ISP mk11 for the bootloader , a USB to serial cable and the DIY programming board to load the sketches or an UNO rev3 which will also work.
sicpaul
It's peanut butter jelly time!

thanks to studiokpg, KnobHell, diablojoy and mxmxmx my system seems to be not far from happy triggering
mxmxmx
well, no need to thank me, i merely clicked through a few buttons.

one thing i was wondering about though - is there any noticeable latency when clocked externally? i've had a quick look and seen that both default external interrupts are used up by the encoder, whereas the clock/comparator goes into one of the adc pins, and then there's an if clause somewhere (there's libraries i think to make any pin behave interrupt-style but i guess we're talking about +/- a few hundred microseconds only, ... just wondering, for some reason i always had difficulties making atmegas play nice when not using interrupts).
Dego
Mxmxmx: love thx man
diablojoy
Quote:
one thing i was wondering about though - is there any noticeable latency when clocked externally? i've had a quick look and seen that both default external interrupts are used up by the encoder, whereas the clock/comparator goes into one of the adc pins, and then there's an if clause somewhere (there's libraries i think to make any pin behave interrupt-style but i guess we're talking about +/- a few hundred microseconds only, ... just wondering,

With latency on the external clock , hmm good point i havent checked for that
will see if i can get some sort of measurement on it tonight.

So far I only did a few tests, one was to run an odd external clock
into this , a syncopated clock where the BPM would be undefinable
at times , with small changes it was ok say a few bpm variation between clock pulses, alternating between 75 and 80 bpm. Any larger changes result in the triggerhappy bouncing wildly from a slow bpm to 500 bpm which is where it maxes out. So there is a limit to how well it will track a quickly varying external clock, but that is a fairly extreme test which it handled far better than i thought it would. I didnt expect it to handle any variation in time between clock pulses at all.
with manual rate changes , tracking seems solid enough with perhaps a tiny lag, nothing i would complain about anyways.
I also tried a +/-5v square wave out of an LFO which clocked it fine.
that was done to check how well the input was protected from negative voltages - no problems there.
KnobHell
Yep, that's why I added the comparator. I didn't want to blow the at mega chip going negative.
diablojoy
Quote:
Yep, that's why I added the comparator. I didn't want to blow the at mega chip going negative.

yes the front end is pretty much bullet proof. (I have tried pretty hard to kill it) and it works very well just tried a bunch of different LFO waveforms to provide clocking they all worked even a sine wave, so pretty much anything will do as long as it gets above 2.5v at some point in its cycle.

Latency on external clocking - yes there is some, At 100 BPM something around 400 to 500 microseconds I think, but dont hold me to it my scope is over 30 years old and has no storage ability so its a little hard to be precise .
spotta
mxmxmx wrote:
@ sicpaul, nd595, jarno, dego, spotta - okay, looks like that'll be about 10. i'll pm you once the boards have arrived. mid june, i'd guess


Thanks thumbs up nice one
mxmxmx
Quote:
Yep, that's why I added the comparator. I didn't want to blow the at mega chip going negative.


i see, i had assumed it was to derive a square wave...

anyways, thanks for looking into this!
nd595
for those of us who is going to build Triggerhappy and live in Europe - 7-segment Sparkfun LED displays are available at http://www.hobbytronics.co.uk/4digit-7segment-red
Postage to Europe from them is definitely less than from US.
logicgate
This module won't be offered as a kit or something??
smidirin
I was lucky enough to get a spare PCB from diablojoy ( :-) thanks again)
It has shown some signs of life tonight & that itself is a joy.
I had to klugde the 7 seg display from ebay , that took 2 attempts!
Main thing that slowed me down was the boot loader for the display..
It needed a crystal to re-burn it since I had bought chips with bootloader pre loaded.
Then I had to give it the 3V3 NOT THE 5V to flash the sketch.. d'oh!
So I learned something & got my iron onto some 1206's
thumbs up

Now some questions for anyone that might of built on the same PCB:

What is J11 for?

Where should the 5V5 jumper be set?

Which way is int/ext clock if I mounted the switch onto the PCB?
(I have no comparator stuffed, all leds flash together one way, nothing the other)

@diablojoy is the switch swap done in your updated sketch (..1.04 mod2realeased)?
diablojoy
Quote:
What is J11 for?

4 pin header for programing , never tried it out though, knobhells version had it also so i left it in , maybe it will be useful hmmm.....

Quote:
Where should the 5V5 jumper be set?

this depends on 5 volt supply if you are using the 6 pin power header J1 and have 5v already coming in then jumper between the lower and center pads looking at the board held with the display atmega chip topmost.
so basically the 2 pads closest to the silkscreening actually saying 5vS
in this case the onboard reg and C4 is not required.
J1 reads top to bottom +15v _ open _ +5v _ GND _ -15v _open . when viewed with the board held the same way.
IF you wish to use the onboard regulator then jumper between the upper (the pad closest to R15) and the center pad and install reg1 and C4
obviously do not also wire in an external 5v supply

Quote:
Which way is int/ext clock if I mounted the switch onto the PCB?

looking from the front of the switch ie as if you were looking at the front panel left is internal clock right is external clock.

Quote:
@diablojoy is the switch swap done in your updated sketch (..1.04 mod2realeased)?
that relates to the board i released the gerber files for, not one of the first run prototype boards . I will pm you with the details so as not to confuse anyone else here.
smidirin
thanks diablojoy, sorted the jumper - when nothing happened i put it the same as yours in the pictures above. i use the 4 pin .156 (no 5 volts)
i'll try that prog header later.
so thats got tx/rx/dtr and is it gnd? so i still use psu with that?
diablojoy
Quote:
i'll try that prog header later.
so thats got tx/rx/dtr and is it gnd? so i still use psu with that?

yes .
KnobHell
I assume that the programming header should work, though I never tried it. I just pop out the chip to burn it.

I lost the program several times and had to reburn the chip. I changed out the filter caps increasing them from 10 uf to 22uf and haven't had at glitches so far.

I use mine all the time to clock my sequencers.

A really nice feature would to add a midi in port for a clock source. Though I'm not sure where I'd put the connector... Maybe use a third uP to derive the clock and strap it to the current clock input. Just a thought.
diablojoy
Quote:
A really nice feature would to add a midi in port for a clock source. Though I'm not sure where I'd put the connector... Maybe use a third uP to derive the clock and strap it to the current clock input. Just a thought.

yes I thought that would be a good idea for an add on as well.

After playing with mine for awhile now, i came up with
some idea's as well recently though as yet un sure if they would work. just idea's and just putting them out there.

first would be extra alternative tables and a couple of gate inputs to decide which table is in use - would be good for auto variation on the fly eg - fills
2 gate inputs might give us 4 different tables to choose from, working from logic on the inputs as 0,0 or 1,0 or 0,1 or 1,1.


A start/stop input, either gated where input high =run low = stop or triggered where alternate triggers start and stop the module from outputting .
anyway would like to hear of any other idea's out there
trainspotter
just in case anyone wants pcbs i have a 6 available.
vonkhades
can I haz 2? smile, ill pm you.
wotwot
if possible i'd like to have two as well pleaz, pm'ing you
KnobHell
Quick question.

Have any of you had your display go belly up and need reprogramming?

My build was done early and on a different pcb.

Anyway from what I can tell the config for the baud rate appears to be getting corrupted. I did a fix to my code where I add a statement that will always override the config memory and set the baud rate to 9600 baud. If the config goes bad it becomes moot.

Anyway, I someone needs a code sniping, let me know.

Len
diablojoy
haven't had that on any of mine so far. touch wood
not sure if anyone else has completed any builds
except for smidirin who i have been helping a bit
but he only just got 2 going on the weekend though so too early to tell
from his i guess

hmm lockbits ?
i have left mine all unlocked so far.

I am getting my head round programming chips for this better now
just using an AVR SPI MK11 and a zif socket from atmel studio 6
I decided to do yet another prototype test unit with an SPI header and access to the unused pins so i can explore adding some extra features .
those unused pins were bugging me lol
I am also going to make use of the other half of the comparator for a thru clock for chaining. should be sending gerbers off soon for the test board.
smidirin
Yeah diablojoy is right in that it is too soon for me to say much other than this is a very useful module and one i will be testing as much as possible. I didn't try the prog header either but thought about using that for midi since its already connected to what i have seen to be the default pin(s). Then maybe a on-off-on toggle for int/ext/midi?

With the display i have a random 'less than normal' brightness happening. I've left it going today and it hasn't dimmed at all. Seems its a bootup issue, would that be baudrate related?

[Much respect to studiokpg for some awesome algo development]
KnobHell
Cool, that's good to know. It it were happening you'd see it within two weeks.

Might be my layout, a flaky chip, on a ps glitch. It's just easy to handle it in the sw.

Glad you guys are making progress.

Len
nd595
Done programming using AVRISPII, Arduino Uno board and Atmel Studio 6.1 - following Knobhell walkthrough from Sat Apr 20 (https://www.muffwiggler.com/forum/viewtopic.php?t=61472&postdays=0&po storder=asc&start=200). It worked for me flawless, and my Triggerhappy works - HOORAY! Million Thanks!!!
P.S. I provided separate .+5V to Arduino Uno via USB and an iPad power supply
KnobHell
Thought up a cool feature for the trigger happy. I'd have to look at the schematic, but if there is an extra input... Have a trigger to step through the saved patterns.

I recorded this today using the trigger happy to trigger the drums

[s]http://soundcloud.com/knobhell/1-800-555-1212-wav[/s]
diablojoy
huh didnt get a topic reply again

Quote:
Thought up a cool feature for the trigger happy. I'd have to look at the schematic, but if there is an extra input... Have a trigger to step through the saved patterns.

there are a few free pins so you could even use 2 inputs one for step forward and one for step back possibly. pins 25 , 27 are candidates
also maybe useable are pins 2 ,3 , 6, and 12
I had thought to use 2 extra gate inputs to choose between 4 different pattern tables but perhaps there is not enough memory for that. hmmm.....
my other thought was a stop /run input but perhaps even easier to implement would be to just mute all outputs if input X is high , i think i would find that very useful especially when running more than 1 triggerhappy .
oh also here is a recording quick and dirty mp3 triggerhappy is running the timing on all of it
neinonein kick snare and rimshot and 2 VCO's thru an LPG edit eek!h an a liquid hihat, nearly forgot lol
mxmxmx
diablojoy wrote:

I had thought to use 2 extra gate inputs to choose between 4 different pattern tables but perhaps there is not enough memory for that. :hmm:


... mmh, reminds me i still have to finish this one. hated sourcing that display (shipping rates to/within Germany being 3x the price of that thing).

as for memory, i haven't digged into that code yet, so can't tell if things are getting tight. but if so, you could load off some tables into flash / PROGMEM ? [edit: nevermind, looking at the code again, memory doesn't seem to be an issue; +/- a few boolean tables won't make much of a difference]


also, though that won't save you a great deal, here's how to do euclidian without tables:

boolean euclidian(long _counter, int _k, int _n) {

int temp = (_counter * _k) % _n;
if (temp < _k) {return HIGH;}
else {return LOW;}

}

where n is length of bar, k the beats, _counter counting the clocks. returns a clock (HIGH) or no (LOW). you'd have to adapt that to the code, obviously (i use this in one of my own trigger modules, it works, found it somewhere on http://puredata.hurleur.com/, can't remember where exactly.)


ps. speaking of features, here is roughly what i want to add, but i still need to figure out how to integrate it with the menu (attached sketch will only output to serial, plus might still be buggy, neither very elegant, but you get the idea). in "lfsr mode" you'd be then able to adjust the taps and lfsr lengths for each of the 6 outputs ... i was keen on doing that ever since i've seen a triadex muse but zorlon cannon mkII comes to mind, too.
vonkhades
Hi Guys,

so I just received my two pcbs REV2 by Diablojoy, and made this mouser BOM. (ALL PIN HEADERS ARE NOT INCLUDED, NOR THE DIGIT DISPLAY and SWITCH SPDT).

http://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=c5012 2a1ae

Im sharing it because Im unsure with a lot of parts (quite unexperienced with Mouser).

I have doubts about:

Diodes (BAT85) these are standard 4148????
the SPDT switch (actually couldnt find one)
LM393 (**there are some versions with a letter at the end, I choose all TexasInstruments, thruhole).
TL074 **same
TL072 **same
Encoder (dont know if is this one....)
16MHz CRYSTAL (I chose 20pf... but unsure if should be this or 18pf or 16pf or other??)

Also Im checking the pcbs, and Im having very serious doubts on how to mount it with a panel, since there are no screw mounts, and no component (neither the encoder and Im not using the mini jack) have no NUTs for panel mount, so dont know how Im supposed to to attach it firmly.... I can use duck tape razz

thanks in advance!
smidirin
hey vonkhades, i'll help with what i know..

bat85 look the same but are different. you have selected correctly.

its just a normal panel mount 'mini' toggle you're looking for. check ebay.
it has a thread. as should the encoder, then use them both to mount it to panel.
diablojoy gave me the part number but i get mine at ebay..

IC selection is ok.

the crystal should be fine too but i never saw any pf options (on ebay).

those 1206 resistors seem expensive! hmmm.....

i got mine from (you guessed it) ebay


hihi
mxmxmx
yep, a few pages back you can see how he mounted it. the switch and encoder are/should be panel mount, obviously. it's a bit tricky only if you were building it in 3U.

4148 no, bat85 (schottky) yes. you want a diode with a low forward voltage. it's explained here, for example: http://www.doepfer.de/DIY/a100_diy.htm (Voltage clamping / limiting / clipping). the encoder would work in principle, i guess, but as there's no provision being made for using illuminated encoders ... this series i believe should do http://www.mouser.com/ds/2/54/pec16-245034.pdf
vonkhades
Then I guess any of these should work for the encoder:

http://es.mouser.com/ProductDetail/Bourns/PEC11R-4220F-S0012/?qs=sGAEp iMZZMsWp46O%252bq11WUFm4YUtE9euiURlZLpo%252b10%3d

http://es.mouser.com/ProductDetail/Bourns/PEC11R-4215K-S0024/?qs=sGAEp iMZZMsWp46O%252bq11WUFm4YUtE9eud2haPt5%252bKYQ%3d

I would prefer these because I can use a nut to hold them on the panel... plus they dont have leds.

The resolution is relevant or should be either 12ppr or 24ppr?? The output I guess is ok Quadrature?

thanks!
mxmxmx
right, these look nicer. BOM says 24, but either one would do the job; they'll behave a little differently, of course. higher resolution ones might create problems.
vonkhades
mxmxmx wrote:
right, these look nicer. BOM says 24, but either one would do the job; they'll behave a little differently, of course. higher resolution ones might create problems.


bom says 24 detents... not 24 resolution soy im still unsure... actually they are actually different things I think, in mouser you can pick encoders with 24 detents of 12ppr or 24ppr
vonkhades
maybe I'm wrong hehe
vonkhades
maybe I'm mistaken hehe
vonkhades
maybe I'm mistaken hehe
mxmxmx
..who isn't.

anyways, as you seem to be adverse to risk-taking: if you look up the code, there the resolution appears to be halfed in that it'll need 2 pulses (same direction) until anything happens. so ideally, but not necessarily, you'd get a 12 detent 24 ppr encoder, ie 2 pulses per detent.

edit: looking a bit closer, the code as is generates 2 interrupts per pulse, so the above isn't quite correct. if you wanted to line up detents and actual changes, you'd want 24 detents. but then again, in practice it doesn't seems to work quite as it should (sb)
diablojoy
huh still no topic reply nitifications
thanks for the heads up smidirin
mxmxmx and smidirin seem to have covered it well though
yes bourns PEC16 series encoders will work. get a spare nut
that will help to match up the height to the switch
The ones i used originally were bourns PEC16 -4230F-S0024
which are a little hard to dial in exact BPM with. trying to dial in say 70bpm you get 69 or 71 which can be annoying. i think the code could possibly do with improving there as well though.
KnobHell
Nice jon on the sound sample!

diablojoy wrote:
huh didnt get a topic reply again

Quote:
Thought up a cool feature for the trigger happy. I'd have to look at the schematic, but if there is an extra input... Have a trigger to step through the saved patterns.

there are a few free pins so you could even use 2 inputs one for step forward and one for step back possibly. pins 25 , 27 are candidates
also maybe useable are pins 2 ,3 , 6, and 12
I had thought to use 2 extra gate inputs to choose between 4 different pattern tables but perhaps there is not enough memory for that. hmmm.....
my other thought was a stop /run input but perhaps even easier to implement would be to just mute all outputs if input X is high , i think i would find that very useful especially when running more than 1 triggerhappy .
oh also here is a recording quick and dirty mp3 triggerhappy is running the timing on all of it
neinonein kick snare and rimshot and 2 VCO's thru an LPG edit eek!h an a liquid hihat, nearly forgot lol
KnobHell
Yep, I noticed that as well on the "tuning". Next time I think of it I'll look at the code and see how the increment/decrement is written. It happens other places as well.

Len

diablojoy wrote:
huh still no topic reply nitifications
thanks for the heads up smidirin
mxmxmx and smidirin seem to have covered it well though
yes bourns PEC16 series encoders will work. get a spare nut
that will help to match up the height to the switch
The ones i used originally were bourns PEC16 -4230F-S0024
which are a little hard to dial in exact BPM with. trying to dial in say 70bpm you get 69 or 71 which can be annoying. i think the code could possibly do with improving there as well though.
mxmxmx
diablojoy wrote:

The ones i used originally were bourns PEC16 -4230F-S0024
which are a little hard to dial in exact BPM with. trying to dial in say 70bpm you get 69 or 71 which can be annoying. i think the code could possibly do with improving there as well though.


alright, i see. i haven't noticed yet as i'm still waiting for my panel. so perhaps a 12ppr encoder would behave nicer.

in the software, as an obvious quick fix, one might try to average more, say 3 not 2 times (in doEncoder()); or try with attachInterrupt(0, doEncoder, RISING); instead of attachInterrupt(0, doEncoder, CHANGE);
diablojoy
yeah was thinking easiest thing to try would be 3 instead of 2 for the
average will see if i have time to try that on the weekend.
smidirin
i changed the 2 to 3 and get bigger jumps! it maybe just my encoder so could someone else try this? i'll try the RISING now..

also noticed another glitch in the euclid mode, when b=50 or more the display freezes. you can keep changing settings but the display is stuck, after some time the module resets seriously, i just don't get it
smidirin
hmmm..... RISING seems to have the same effect. jumps around 3 ticks.
just tried changing the 2 to 4 as well. not sure if its always like this but it is ok at slower tempos with 1 tick precision but as you go up in tempo the jumps increase all the way to 5 & 6 bpm at a time above 200!! any other ideas besides a different encoder?
mxmxmx
fyi --

here's a few extensions to the triggerhappy software.

https://www.dropbox.com/s/61y6c7fa33lf35k/triggerhappy_v1_04_MOD_x_LFS Retc.zip

this adds 3 modes: clock division (/1,/2, ... /16); linear feedback shift registers; and random (which is basically random(n) > some threshold).

it's also possible now to adjust trigger lengths individually/per output (5ms - 99ms); as it is, i've disabled the "gate" option, but it's easily re-enabled by adding/modifying a few lines to the menu sub-sketch (triggers > 99 then should/will be treated as gates, or adjust that value to your liking). ditto for the "ARRAY" mode, which i've disabled.

i might have introduced a few bugs, esp. as regards saving and loading settings. also, on powering up, i always have to change the rate before entering the submenus, otherwise the LED display gets screwed up. not sure why that is, but i found serial communication on my built a bit finicky quite generally ..
diablojoy
nice work thumbs up

Quote:
this adds 3 modes: clock division (/1,/2, ... /16); linear feedback shift registers; and random (which is basically random(n) > some threshold).

will look at it when i get a chance
Linear feedback shift registers ? care to expand on that one a bit
sounds interesting

Quote:
it's also possible now to adjust trigger lengths individually/per output (5ms - 99ms); as it is, i've disabled the "gate" option, but it's easily re-enabled by adding/modifying a few lines to the menu sub-sketch (triggers > 99 then should/will be treated as gates, or adjust that value to your liking). ditto for the "ARRAY" mode, which i've disabled.

hmm I would like to explore that a bit more but for varying the gate length not the trigger length
smidirin
@mxmxmx thanks for the mod! Gonna try later today. How is your encoder , did you try those changes?

@diablojoy this one is a good start http://www.electricdruid.net/index.php?page=techniques.practicalLFSRs
diablojoy
thanks for the link smidirin .
KnobHell
Btw

My display has been stable since I put the extra line of codein to always set the speed on init. Might be something in my pcb layout that was causing noise.

Anyway, if anyone else is having issues, let me know and I'll post my patch.

I'm interested in the updated TH code as well.
mxmxmx
smidirin wrote:
@mxmxmx thanks for the mod! Gonna try later today. How is your encoder , did you try those changes?

@diablojoy this one is a good start http://www.electricdruid.net/index.php?page=techniques.practicalLFSRs


yep, the encoder triggers only on RISING edges now; this improved things, at least for me. i didn't mess with the averaging.

as to the LFSRs: as the electruid page says, they're mostly about generating pseudo-randomness. in the code i posted, the idea isn't so much to generate maximum-length sequences though, just more or less regular sequences of 0s and 1s. as i've mentioned previously, the idea of including it was somewhat inspired by the triadex muse (which generates sequences (of notes) on the basis of some combination of clock divisions and LFRS); not sure yet how musically useful it is, actually, in terms of triggers. (I'm toying with the idea of a parallel 8bit DAC expansion board though)

in the menu, when you pick "LFSR", the first item adjusts the length of the register ("SR" 4-16), the second the position of tap 1 ("T1"), then tap 2 ("T2"). the other two modes work as follows:

"d--n" (divide by N): "D" = choose divisor (1-16); "OFF" = offset.
"rand" (random): "N" = choose threshold value (0-8) (where: you get a clock if random(N+2)>N is true).
diablojoy
Quote:
(I'm toying with the idea of a parallel 8bit DAC expansion board though)

look at the tombola RLS and its voltages expansion
I did my own similar version of that expansion but as a seperate identity. 8 gate ins to 2 CV outs. using sliders instead of a DAC, 1 or 2 clock ins. if only one is used it can be delayed, each slider can be switched to either clock source. used together with a triggerhappy , RLS or other multiple gate source it makes a nice dual output sequencer.
vonkhades
Im almost there... but have a few questions about the final assembly of my modules.

http://i.imgur.com/yTWW2ga.jpg

I didn't want embed the image because its BIG! razz

1. it may be a silly question, but I never seen those diode draws on pcb they are new to me so I don't know how to put them (polarization). The black stripe on the diode matches the circle or the "S"?

2. Im missing the c15 and c16 values, even on the BOM they are not used?? I cant find them on the schematic, so I guess they are not connected for a reason but want confirmation.

3 & 5. I have a +12V/-12V/+5 Vpower supply (eurorack standard...) so Im wondering what exactly is the this pin for also wanted to know if I need to make any mods because this version PCB seems to be for +15V, not +12V

4. what is J11 for?

anyone has any updated schematic or doc? I have I guess the old ones posted somewhere in the middle of this thread.

thankks!!!
diablojoy
1. symbol is for schotky diode, black stripe matches the s shape
circle is to only indicate body of component as it is vertically placed.

2. i will get back to you on C15 i am no where near my notes at the moment ( at work)

3. no mods needed should run fine on +12v/-12v the gate outs will be slightly lower voltage is all which shouldn't be an issue. where you indicated 3. is a 3 pin sil header for selecting wether the +5v is from the onboard regulator or from an external supply. from memory the pin closet to the display and the centre pin selects external +5v and the other pin and centre select to use the on board 5v regulator but i will double check that

4. J11 - 4 pin serial port for programing main atmega - c16 (0.1uf i believe) is associated with it. I left it in from knobhell's version. In theory you should be able to reprogram in situ with an SPI though i have not tried it myself.
mxmxmx
yep, it runs fine on +/-12V.

i abused J1 as a 5 pin header, so that i can plug a standard eurorack 2x5 connector (starting from the top, at 12V, obviously). in that case you'll need the 7805 regulator, and snip of the middle pin or whichever pin would be carrying 5V (3rd from top, i *think* -- this is from memory, i can't check now.)

C15 also is 0.1uf, according to the schematic.
KnobHell
mxmxmx wrote:


i might have introduced a few bugs, esp. as regards saving and loading settings. also, on powering up, i always have to change the rate before entering the submenus, otherwise the LED display gets screwed up. not sure why that is, but i found serial communication on my built a bit finicky quite generally ..


This may be the same bug I was seeing.

I fixed it by adding a line to hard code the baud rate in the display code.

Once I did that the display has been solid. It seems that once the baud rate has been set on the display chip it gets saved to EEPROM. Somehow that gets corrupted and the bad value gets read and messes everything up. I just added a line of code to set the baud rate to 9600, I believe it was 9600.. after the code that reads it from memory. Being lazy I didn't bother to comment out the other code for the test.

Anyway, if you want me to post the code segment, let me know.

Len
diablojoy
C15 and C16 are both definitely 0.1uf .

I had remembered it wrong d'oh! must be old timers disease
for external 5v supply, on the 3 pin sil header marked 5VS short together the 2 pins closest to C3 so the 2 pins further from the display
on the power header J1 pin 1 would be your +15v or +12v pin 3 would be external +5v in
pin 4 is ground and pin 5 is -15v or -12v pins 2 and 6 are not used
obviously if using an external +5v source do not install REG1

good luck with the build thumbs up
vonkhades
diablojoy wrote:
C15 and C16 are both definitely 0.1uf .

I had remembered it wrong d'oh! must be old timers disease
for external 5v supply, on the 3 pin sil header marked 5VS short together the 2 pins closest to C3 so the 2 pins further from the display
on the power header J1 pin 1 would be your +15v or +12v pin 3 would be external +5v in
pin 4 is ground and pin 5 is -15v or -12v pins 2 and 6 are not used
obviously if using an external +5v source do not install REG1

good luck with the build thumbs up



many thanks diablo Ill post how all this ends up... in the mean time I would like to see some pics of panels just to know how you guys distributed the jacks and leds (bananas in my case) smile
mxmxmx
the pcb isn't ideal for 3U, so i ended up with this. (the thing on the right, obviously)




edit: @knobhell: why yes, if you could post that piece of code, that'll be great.
vonkhades
So the main atmel seems to be working... but the the 7segdisplay isnt!

Im almost sure ITS because the sketch Im uploading to the second atmel... I think I may have the wrong one, does anyone has the right sketch or I need to changes something one the sketch???

Im using the sketch named "Serial_7_Segment_Display_Firmware"

Im a bit lost here since I don't have any schematics of the display....
diablojoy
what are you seeing on the display ? anything at all ?
vonkhades
I dont see anything at all in the screen...

Im pretty sure I burned the 7-seg-display firmware correctly since I tested several times, by erasing and re uploading a simple blinking sketch and it seems to work...

The main atmega seem to be working as the "trigger" leds blink and if I turn the encoder the tempo is changed correctly back and forward.

I also checked the orientation of the led display (cathodes-anodes) and even tested every individual segment to check the for dead leds.

I purchased this ones as mentioned on this thread somewhere...

https://www.hobbytronics.co.uk/index.php?route=product/search&keyword= 7%20segment%20display

ill keep investigating I guess I must me something silly...

could be related that Im using 12v instead of 15v?

I know that arduino goes on 5v (and so the leds... supposedly) but Im unsure if any other components are affected by this voltage difference...
mxmxmx
vonkhades wrote:
I dont see anything at all in the screen...


in that case i suspect you may have used the wrong bootloader? the second atmega needs to be run off the internal 8mhz oscillator.

anyways, the schematic you can find a few pages back. not much that can go wrong, certainly nothing to do with the 12v.
diablojoy
Quote:
I purchased this ones as mentioned on this thread somewhere...

Ok that looks like the correct display
12 volt is no problem
if you used an incorrect bootloader ie and it is expecting an external clock it wont work even with the correct sketch loaded afterward.
there is a setting for that chosen from a table when doing the bootloader
settings in atmel studio , however i am not in front of my home computer at the moment so i cant tell you for certain what that setting is with any confidence. but it would be one of the internal 8mhz listed on the table
also did you install the correct seven segment library file into your library folder ?
it is needed there to refer to to when uploading.
vonkhades
so I re read the full thread and found you diabloj had the same issues... its all explained here

https://www.muffwiggler.com/forum/viewtopic.php?p=1146294#1146294

Its all about burning the RIGHT bootloader to the display atmega, which has NO crystal, so it can use its internal oscillator (and less reliable, but irrelevant on this case) silly me, I have work to do now smile.

hopefully post some images of it working.

and SUPER THANKS for the heads up and quick answers guys!
diablojoy
has anyone found much use in the sync button ?
I dont think it seems to serve any great purpose and could be better utilised,
Thinking of repurposing it as an all or perhaps an incremental output mute
if there were also an associated input jack and very perhaps a scale pot to the switch and the pin were configured for analogue input there just might be a way of having an incremental output mute .
thoughts anyone ?
mxmxmx
diablojoy wrote:
has anyone found much use in the sync button ?
I dont think it seems to serve any great purpose and could be better utilised,
Thinking of repurposing it as an all or perhaps an incremental output mute
if there were also an associated input jack and very perhaps a scale pot to the switch and the pin were configured for analogue input there just might be a way of having an incremental output mute .
thoughts anyone ?


nope ... actually i don't use the file save/load thing either. i found myself thinking i could use a menu "back" button; and/or maybe reset on long press, so i won't sync so much accidentally. mute-all is a good idea too.

having played around with it for a while, if i find the time i think i even might end up doing a slightly extended version ... with a few more buttons, ie to reduce menu depth. accessing each output instantly in the menu would be really nice; muting them too.
diablojoy
Quote:
having played around with it for a while, if i find the time i think i even might end up doing a slightly extended version ... with a few more buttons, ie to reduce menu depth. accessing each output instantly in the menu would be really nice;

hmm would need to add quite a bit more circuitry i think to gain that
I was working on a 10hp version with no wiring, with a couple of extra additions 3 extra input jacks and a clock through using a prototype of 2 stacked boards, but then i am out of I/O pins , which is why i wanted to lose the sync function
14 useable I/O pins
6 for outputs
2 for the encoder
1 for sync button
1 for menu /save button
1 for external clock input
1 for ext /int clk selection
which leaves 2 unused I/O pins 25 and 27- A2 and A4.
stealing back the sync I/O gives me 3 spare pins
an incremental output mute would be incredibly useful
and the other 2 i was thinking would be good for changing the actual rythym patterns on the fly, possibly also incrementally.
static beats are ok but if you can change them by CV much better.
I am not a huge fan of menu's generally but as it stands i can live with it.
would rather concentrate on getting the most out of whats there.
mxmxmx
diablojoy wrote:
Quote:
having played around with it for a while, if i find the time i think i even might end up doing a slightly extended version ... with a few more buttons, ie to reduce menu depth. accessing each output instantly in the menu would be really nice;

hmm would need to add quite a bit more circuitry i think to gain that


sure, but it's not so bad. i was thinking of simply putting in one or two 74HC165s. true though, it definitely would need a little extra work. it would make things more playable ...

Quote:
I was working on a 10hp version with no wiring, with a couple of extra additions 3 extra input jacks and a clock through using a prototype of 2 stacked boards, but then i am out of I/O pins , which is why i wanted to lose the sync function
14 useable I/O pins
6 for outputs
2 for the encoder
1 for sync button
1 for menu /save button
1 for external clock input
1 for ext /int clk selection
which leaves 2 unused I/O pins 25 and 27- A2 and A4.
stealing back the sync I/O gives me 3 spare pins
an incremental output mute would be incredibly useful
and the other 2 i was thinking would be good for changing the actual rythym patterns on the fly, possibly also incrementally.
static beats are ok but if you can change them by CV much better.
I am not a huge fan of menu's generally but as it stands i can live with it.
would rather concentrate on getting the most out of whats there.


sounds good. some CV inputs definitely can't hurt. as to saving pins .. it might be possible to get rid of the ext/int clk selection switch, too, if, in the code, one were to shut down the internal timer when an external clock is present, and time out the external clock mode after, say, 3 seconds or so when no clocks are coming in.
diablojoy
Quote:
sure, but it's not so bad. i was thinking of simply putting in one or two 74HC165s.

multiplex some of the I/O yeah ok , looks like i have some reading up to do. havent tried that before
the 6 outputs might also be a good candidate for multiplexing using a 74HC595 and would allow for increasing the number of outputs to 8 or perhaps even 16. then we gain another 3 pins edit :hmm at that point a euro panel would need to increase to say 16-20 HP
to cover all the extra bits, that would actually help a lot though for board realestate.
Quote:
it might be possible to get rid of the ext/int clk selection switch, too, if, in the code, one were to shut down the internal timer when an external clock is present, and time out the external clock mode after, say, 3 seconds or so when no clocks are coming in.

now thats a good idea thumbs up
mxmxmx
diablojoy wrote:

multiplex some of the I/O yeah ok , looks like i have some reading up to do. havent tried that before


neither have i .. but since 50% of all diy things out there seem to be about lighting up this or that LED strip, i figured it won't be a big deal.

diablojoy wrote:

the 6 outputs might also be a good candidate for multiplexing using a 74HC595 and would allow for increasing the number of outputs to 8 or perhaps even 16. then we gain another 3 pins edit :hmm at that point a euro panel would need to increase to say 16-20 HP
to cover all the extra bits, that would actually help a lot though for board realestate.


16 ... huh. sounds like overkill, at least for my purposes. i'd rather stick to 6 (and maybe, if need be, build a second one to chain up, .. courtesy of itead one would end up with plenty of pcbs anyway).

i was thinking along the lines of this, 14HP or so (edit: improved ergonomics ..)

Autophase
this looks really interesting, I had a brief sweep of the thread, to save me time could anyone tell me a few things.
Can I buy a board, faceplate or kit for this in the UK?
If it is available how much would it be?

Thanks guys
mxmxmx
Autophase wrote:
this looks really interesting, I had a brief sweep of the thread, to save me time could anyone tell me a few things.
Can I buy a board, faceplate or kit for this in the UK?
If it is available how much would it be?


thanks to diablojoy (and the rise of small run CNC manufacturing), it can be bought everywhere (the triggerhappy, that is. the last few posts are entirely about vapourware.) a few pages back, you'll see he posted all the cam files and info you need to get a pcb and frontpanel made. if you build in eurorack, it'll require a few tweaks, but nothing major. no kits though, i believe.

costs: really depends on how you go about it. the pcbs are dirt cheap, in theory. display, encoder and micros: perhaps 10-15$. the other parts are all standard, just a few resistors and caps. as usual, the most expensive thing will be the panel, difficult to diy this one.
diablojoy
vapour ware applause I like that
haha yeah 16 outputs would be well overkill
much better to chain modules
nice render though 6 x 3.5mm jacks across 14HP is really too tight
so 6 menu buttons plus the encoder , hmm not sure of the 6 buttons implementation for mute I was thinking of an analogue solution - input jack, a swich and a level pot providing the switch with 0-5V to one I/O pin
set to analogue input
with 6 buttons could be better , certainly more direct in use but i am guessing this is a multiplexed solution ? in that case as the
jack for muting outputs was my main focus and the panel control secondary
ooh just had a thought perhaps 6 matching trigger input jacks in a row beneath the switches
Something like this perhaps ? it is 18HP
So whenever MOD A , MOD B or MUTE inputs are high whichever outputs are selected by either the switches or the jacks are then modified accordingly . how does that sound ? there are some limitations of course
hmm also wondering about the switch marked l/s ?
diablojoy
hmm CD4051
may work for multiplexing an analogue voltage input
8 inputs per chip
if the 6 mod selection jacks were multiplexed this way then voltage level can determine which mods are applied to each output the mod A, mod B and mute inputs only need to be driven by gates then and can be digital pins
variation levels could be set like
normal <1v
mod A >1v
mod B >2v
mod A + B >3v
mute- >4v
so when mod A input is high , mod B input is high and mute input also high if at
input 1 =0.8v -output A = normal
input 2 =2.1v -output B = mod B
input 3 =4.2v -output C = muted
input 4 =3.2v -output D = mod A+B
input 5 =1.2v -output E = mod A
input 6 =4.8v -output F = muted
seems like a bit of a plan or at least worthy of some more looking into.

edit : if the 6 mute switches were replaced with 9mm board mount pots and summed edit (ah normaled to the input jacks) on those inputs then turning a knob decides what happens to the corresponding output edit (when no plug inserted), that would be nice.
mxmxmx
diablojoy wrote:
hmm CD4051
may work for multiplexing an analogue voltage input
8 inputs per chip
if the 6 mod selection jacks were multiplexed this way then voltage level can determine which mods are applied to each output the mod A, mod B and mute inputs only need to be driven by gates then and can be digital pins
variation levels could be set like
normal <1v
mod A >1v
mod B >2v
mod A + B >3v
mute- >4v
so when mod A input is high , mod B input is high and mute input also high if at
input 1 =0.8v -output A = normal
input 2 =2.1v -output B = mod B
input 3 =4.2v -output C = muted
input 4 =3.2v -output D = mod A+B
input 5 =1.2v -output E = mod A
input 6 =4.8v -output F = muted
seems like a bit of a plan or at least worthy of some more looking into.

edit : if the 6 mute switches were replaced with 9mm board mount pots and summed edit (ah normaled to the input jacks) on those inputs then turning a knob decides what happens to the corresponding output edit (when no plug inserted), that would be nice.


looks nice...! i'm still trying to get my head round the mute/mod thing though. so i figure the "modify output selection inputs" are per channel, whereas the "modifier" inputs are global?

if so, muting-by-CV definitely sounds nice. but what, for example, would/could mod A be made to do? or is this simply some kind of logic (XOR, etc)? in which case you'd have to use attenuated gates to hit some specific mode (say B)? or is the idea to cycle through those various levels?

similarly, if the "modify output select" row were pots, one thing that might be annoying: in case you just wanted to mute a channel, you'd cycle through all those modes (A, B, A+B) first rather than mute instantly? (mmm, if there were such a row of pots, i'd probably use it to the assign it to some parameter, say, # beats, in euclidian mode, or trigger lengths, so it could be changed on the fly)

i don't know whether that's what you were having in mind, but if you wanted to bring various parameters under CV control, one thing that comes to mind is keeping the "modify output select" row simply as mute buttons, whereas you'd assign functions such as "mute", "modA" etc to the "modifier" inputs via the menu. these could be simple digital inputs then, .. well, depending on what it is you want to mod (euclidian sequence length, or clock division etc obviously would require something continuous). so you'd have a page for each channel saying "mod", and it would let you choose "mute", or "modA", etc.

[edit: oh, "l/s" was that load/save button. as i said, i'm not wedded to this.]
diablojoy
Quote:
so i figure the "modify output selection inputs" are per channel, whereas the "modifier" inputs are global?

yes sort of , see below

Quote:
but what, for example, would/could mod A be made to do? or is this simply some kind of logic (XOR, etc)? in which case you'd have to use attenuated gates to hit some specific mode (say B)? or is the idea to cycle through those various levels?

hmm yeah i have not quite exactly decided yet mod A, mod B functions
was thinking logic would be a good direction to go perhaps defined against a table, but overall my thought was they should add or subract bits from the output patterns and not make complete wholesale changes rather provide variations on a theme. so yes probably something like A = AND, B = OR and A+B = XOR

hmm attenuated gates - I was thinking 0-5v CV's
applied to the modify output selection input jacks but any modifing action only occurs when a gate signal is also applied to mod A, mod B or mute inputs . the pots being normalled to the input jacks would allow for variations to be made without any patching to the input jacks but you would still need 3 incoming gate signals for the mod A , B and mute inputs
hmm maybe i should find room for an additional three switches then as well. they can be normalled to the mod A , B and mute jack inputs
should have thought of that earlier but I am not so performance based, generally setting up more automated patches so yes going in this direction is more a case of plan ahead then direct immediate action

Quote:
[edit: oh, "l/s" was that load/save button. as i said, i'm not wedded to this.]

Ahh of course hmm yeah it can be nice to just load from the start but i invariably play around with settings anyway I am leaning towards keeping it for the moment until it gets in the way at least.

one additional thought was :
If the mod A and mod B inputs were also analogue
CV level could determine the table that is used to compare logic against
brings in yet another level of variation however perhaps this is getting to the point of too much complexity , my fear here is it may detract rather than enhance
mxmxmx
[quote="diablojoy"]
Quote:
perhaps this is getting to the point of too much complexity , my fear here is it may detract rather than enhance


... maybe!

anyways, thinking about it, i think if i get round to doing the board, i'll probably stick to the i/o scheme more or less as sketched out above. not that i'm such a performer, but a little more immediacy would be nice.

as would a few more automation options, though i can't really think up a scenario where i'd really needed 6 external CVs, esp. since the thing allows one to set up quite a bit of logic action already, internally. so bringing out two ADC pins or so should do; at least for most purposes. and then map them, in the menu, to whichever channel/parameter you feel like modifying: mute, XOR, divisor, sequence length etc. i'd probably also re-dedicate the load/save button for that purpose, ie as the enter "cv-mod-menu" button or something. that strikes me as a fairly ok solution, with not too much additional circuitry involved.
diablojoy
I think i will explore the I/O multiplexing a bit further .
but in the background.
As I am no programmer this will take quite awhile. lol
vonkhades
So its up and running...



and loving it.... its just what I needed on my box.

I digged a bit on the code to fix what ppl said about the encoder skipping some BPM values when editing it... and found that its not a bug or anything its actually something coded that way on purpose to make the bpm more exact, so there is not much it can be done in that regard. and it actually doesnt bug me.[/img]
diablojoy
Quote:
So its up and running...

applause
really diggin the cool graphics too. thumbs up
vonkhades
diablojoy wrote:
Quote:
So its up and running...

applause
really diggin the cool graphics too. thumbs up

W

When I saw this badd ass robot, I couldnt resist to make a panel with it... here is the original, sadly I messed up the panel and didnt consider the final layout to center better the robot.

mxmxmx
nice, vonkhades. rather HP-efficient, too!

meanwhile .. i've drawn up something with more buttons and wanted to run it by some triggerhappy users before sending it off to china ... (ie, suggestions, etc?)




i managed to squeeze in only 5 outputs, in a little less than 14HP but each one of them comes with its own mute and menu-select buttons now (via two 74HC165). there's also a "mod-menu"-select button plus 3 associated CV inputs (-5/5v), still debating whether i should get rid one of them and replace it with clock-thru or something. the idea, as mentioned, is to route the CVs to some parameter in that mod-menu.

also, for now, assuming i didn't mess up too much, this will be using a teensy2, mostly because it'll make coding more convenient (tedious menu stuff, almost entirely) and, well, i need to use up mine. on the other hand, it;ll make it a usb-hid device, if need be.
diablojoy
nice work thumbs up
hmm clock thru would be good but wouldnt want to lose a cv in to get it
besides easy enough to add a buffer and jack after the fact for those that really want it and can afford the extra 2HP.
would like to see a panel render for this i think more people will gain a better understanding of where your headed from that.
SMT sizes look easy enough to work with.
ohh are those LED tact switches ? nice more blinkin lights !
hmm 4 jacks on board i guess that means the output jacks are off board ?
looks like the display will end up pretty close to the left edge of the panel
mxmxmx
here's a mock up, to illustrate. it's pretty similar to the one above. 15 HP, i think does make a better fit, unless one were to use smallish buttons



so yes, the upper row of buttons is for 5x5 LED tact switches. i figured it'll make it easier to keep track of which channel is on/muted. the lower row isn't, i was just too lazy and used the same footprint.

i guess you're right about the clock through, i've added pads anyways for tapping the clock, and one for the clock jack switch. and true about the display, i've moved it a bit further to the right. it's all 1206 and soic parts, so no headaches here. the output jacks are off board, i wanted to stay < 100mm (ie itead sizes)

diablojoy
Quote:
so yes, the upper row of buttons is for 5x5 LED tact switches. i figured it'll make it easier to keep track of which channel is on/muted.

yes good idea. i have buttons with a LED to fit that footprint i think
they are actually quite small but have good height - 5mm panel hole from memory

Quote:
the output jacks are off board, i wanted to stay < 100mm (ie itead sizes)

I couldnt agree more keeps the price down and easy ordering , it's only a few jacks to wire after all.

only one thing i can see and its only an aesthetic thing
maybe move the encoder up a little if possible to better line up with the display,
otherwise i think its all good.
looking forward to this incarnation. thumbs up
mxmxmx
diablojoy wrote:
Quote:
so yes, the upper row of buttons is for 5x5 LED tact switches. i figured it'll make it easier to keep track of which channel is on/muted.

yes good idea. i have buttons with a LED to fit that footprint i think
they are actually quite small but have good height - 5mm panel hole from memory

Quote:
the output jacks are off board, i wanted to stay < 100mm (ie itead sizes)

I couldnt agree more keeps the price down and easy ordering , it's only a few jacks to wire after all.

only one thing i can see and its only an aesthetic thing
maybe move the encoder up a little if possible to better line up with the display,
otherwise i think its all good.
looking forward to this incarnation. :tu:


thanks for the input!
now it waits to be seen whether it was worth the trouble...
scriptstyle
Hey i have a arduino Micro on the breadboard right now i am having difficult time uploading the sketch.(triggerhappy_v1_04 on arduino 1.0.3)

I am a total noob to arduino code so sorry hmmm..... ...
Can someone put me in the right direction?

1.Need to define the non connected pins on the micro within the sketch and then recompile? If so how do i do this?

Or do I need to do this and how????

2. IMPORTANT: When putting this software on a new Arduino, you need to comment out the loadSettings()
call in setup(). Otherwise, you will have garbage settings and things may not work. Save the default
settings to slot 0, then you can re-enable the loadSettings() line.
KnobHell
With you breadboard did you first try a simple setup like the blink led program?

If you are just starting out you'll want to verify your programming environment first with something simple, then move to more complex programs and circuits.



scriptstyle wrote:
Hey i have a arduino Micro on the breadboard right now i am having difficult time uploading the sketch.(triggerhappy_v1_04 on arduino 1.0.3)

I am a total noob to arduino code so sorry hmmm..... ...
Can someone put me in the right direction?

1.Need to define the non connected pins on the micro within the sketch and then recompile? If so how do i do this?

Or do I need to do this and how????

2. IMPORTANT: When putting this software on a new Arduino, you need to comment out the loadSettings()
call in setup(). Otherwise, you will have garbage settings and things may not work. Save the default
settings to slot 0, then you can re-enable the loadSettings() line.
scriptstyle
thanks knobhell i did try out the blinking LED off digital pin13 and i am good, I am almost 100% that something in the code needs to be changed but not sure what this means"comment out the loadSettings()
call in setup()" I am trying to read up but its like i keep reading in the wrong direction seriously, i just don't get it
diablojoy
It means to change that line to a comment line (black writing to grey)
i think you just simply highlight that whole line and right click to bring up options then select "comment" but it's been awhile since i did it and i dont have an arduino program on this computer to check, will have to wait till i get home tonight.
did you breadboard the display part as well ?
scriptstyle
diablojoy wrote:
It means to change that line to a comment line (black writing to grey)
i think you just simply highlight that whole line and right click to bring up options then select "comment" but it's been awhile since i did it and i dont have an arduino program on this computer to check, will have to wait till i get home tonight.
did you breadboard the display part as well ?


thanks so i tried to highlight and "comment" but it still dosnt seem right...

Yes i have the sparkfun display, i am getting: file, save, aout, 60, Arr, and its glitchy...

i really have no menu though no BPM access or what i would expect , when i hold the sync button E&F LEDs light...??
diablojoy
Quote:
Yes i have the sparkfun display, i am getting: file, save, aout, 60, Arr, and its glitchy...

hmm if you can read that on the display even glitchy then it looks promising, never had any luck with breadboards myself
there was a small fix someone posted for a glitchy display
i didnt need it but maybe on a bread board it might be .
It is important to get your pin defines right especially the inputs
perhaps double check all of them are correct .
unused pins shouldnt be an issue if they are not defined
any defined pins that are floating are an issue though.
is your 5v reg getting hot at all ?
scriptstyle
So now i have tried all three versions of the sketch with the loadsettings commented on and off, I am able to run blinking sketch and simple dimming PWM sketch but every time i run the triggerhappy sketch it loads, i got the display reading the number 60 but i can not rotate the number, i click rotary i get things like aout, file, etc...

I am programing the micro through the USB, I think i have figured out the display glitch can be attributed to that specifically. I read that when USB is powering and writing constant messages will flicker the display.


Dead Banana
diablojoy
Quote:
but every time i run the triggerhappy sketch it loads, i got the display reading the number 60 but i can not rotate the number, i click rotary i get things like aout, file, etc...

Ok well that sounds like the sketch is indeed loading correctly
which narrows things down considerably.
a) what type of rotary encoder are you using ?
b) Is the centre pin of the rotary part of the encoder definitely connected to Ground ?
c) check the 10K pullup resistors on the 2 associated inputs.

Its pretty much going to be one of these things that is incorrect.
mxmxmx
scriptstyle wrote:
i can not rotate the number, i click rotary i get things like aout, file, etc...



hmm, sounds as if you've wired your encoder to the wrong pins? (edit, for clarity: should read - sounds as if you've got a little hardware/software mismatch) the arduino micro (=atmega32u4), i gather, has 4 external interrupt pins: 0(RX), 1(TX), 2 and 3. so pin 2 and 3 on the micro likely map to interrupts 2 and 3, whereas for the atmega328 (expected by the code), pins labelled 2 and 3 map to interrupts 0 and 1.

in the code (encoder.ino), try changing
// encoder pin on interrupt 0 (pin 2)
attachInterrupt(0, doEncoder, RISING);

// encoder pin on interrupt 1 (pin 3)
attachInterrupt(1, doEncoder, RISING);

to
// encoder pin on interrupt 2 (pin 2)
attachInterrupt(2, doEncoder, RISING);

// encoder pin on interrupt 3 (pin 3)
attachInterrupt(3, doEncoder, RISING);
KnobHell
When I built it originally I did so on the breadboard without any issues. I've built switching power supplies before and they work fine. Just use short leads and keep frequency generating circuits laid out to where they make sense.

A while ago, just for fun, I put my capacitance meter on the breadboard to see what the capacitance was for ajasent traces. From what I remember it was in the nano farad range. You're probably good up to 50 MHz or even a bit higher.. Though u will probably radiate some rf with the natural antenna. I've striped up micro controllers running at 40 MHz and they worked fine.

Although when you commit to a pcb you may have to tweak things a bit to compensate for the different environment.
scriptstyle
// encoder pin on interrupt 2 (pin 2)
attachInterrupt(2, doEncoder, RISING);

// encoder pin on interrupt 3 (pin 3)
attachInterrupt(3, doEncoder, RISING);

so i tried this and noticed the original code states:CHANGE not RISING, either way i still get the same out come with either setup.

just so i know that i am doing this correct... every time i change something in the code i should compile correct? Also for some reason everytime i load the micro it fails says how the leonardo couldn't be found even though i have it connected as a micro. I just reset the board during loading and it works.

As for the breadboard i keep things tidy with such a small part count. Once i moved things closer to power the glitchyness/fade went away.

thanks for the help so far fellas
mxmxmx
scriptstyle wrote:
// encoder pin on interrupt 2 (pin 2)
attachInterrupt(2, doEncoder, RISING);

// encoder pin on interrupt 3 (pin 3)
attachInterrupt(3, doEncoder, RISING);

so i tried this and noticed the original code states:CHANGE not RISING, either way i still get the same out come with either setup.

just so i know that i am doing this correct... every time i change something in the code i should compile correct? Also for some reason everytime i load the micro it fails says how the leonardo couldn't be found even though i have it connected as a micro. I just reset the board during loading and it works.

As for the breadboard i keep things tidy with such a small part count. Once i moved things closer to power the glitchyness/fade went away.

thanks for the help so far fellas


sorry, my bad. never used a micro. turns out the pin mapping is consistent with previous versions, so D2 and D3 actually map to int0 and int1, so the that bit of the original code shouldn't cause any issues (assuming your encoder pins are connected to D2 and D3).

i notice there's a little more direct port manipulation going on in the code though, and that's likely to be a/the reason. (PD2 and PD3 on atmega328 is D2 and D3, on the 32u4 its D0 and D1). sorry if that's confusing -- it *might* work if you try to connect your encoder pins to D0 and D1, and do:

attachInterrupt(2, doEncoder, RISING);
attachInterrupt(3, doEncoder, RISING);

?

(there's no difference in principle between RISING and CHANGE, just your encoder will respond a little differently when you turn it)
scriptstyle
Sorry double post
scriptstyle
so i changed the pins on the breadboard to 0 & 1, and followed changes for the sketch.

Now I can access more of the functions in the menu eg: Aout, Bout, etc, and I was able to turn rotary to change increment well sort of...

It seems like when i touch the short ribbon cable the rotary goes frantic, well it seems kind of frantic in all situations now, still no LEDs/clock etc confused

I feel closer... Am I wrong? hmmm.....
mxmxmx
scriptstyle wrote:
so i changed the pins on the breadboard to 0 & 1, and followed changes for the sketch.

Now I can access more of the functions in the menu eg: Aout, Bout, etc, and I was able to turn rotary to change increment well sort of...

It seems like when i touch the short ribbon cable the rotary goes frantic, well it seems kind of frantic in all situations now, still no LEDs/clock etc :/

I feel closer... Am I wrong? :hmm:


sounds promising. though this should really only affect the encoder behaviour, not the tact switch. as to the former - did you adapt the remainders of the sketch ?

ie
#define ENC_A 0 //encoder pins
#define ENC_B 1

about the LEDs/clocks: this is likely to cause further troubles, as the clock stuff is done with port manipulations, too. ie fairly hardware specific code. any reason why you're not using a nano or atmega328? would make your life somewhat easier.
djthopa
vonkhades wrote:
So its up and running...



and loving it.... its just what I needed on my box.

I digged a bit on the code to fix what ppl said about the encoder skipping some BPM values when editing it... and found that its not a bug or anything its actually something coded that way on purpose to make the bpm more exact, so there is not much it can be done in that regard. and it actually doesnt bug me.[/img]


Vamos ya!!! Puede que haya visto esto en algun taller de Befaco?
Te ha quedado guay thumbs up
scriptstyle
mxmxmx wrote:

about the LEDs/clocks: this is likely to cause further troubles, as the clock stuff is done with port manipulations, too. ie fairly hardware specific code. any reason why you're not using a nano or atmega328? would make your life somewhat easier.


d'oh! haha cause i had one laying around and just kind of wanted to jump in haha thanks for all the help so far seriously!


my next step is going to be find search the sketch for other instances and changing thanks, and i will report back.
scriptstyle


so do i need to change the D8 — D13 to A9, A10, A11, and then D11,D12,D13??

so confused after looking at the code

Also if i hold down either file or sync not to sure what one right now, i can get LEDs A and B to blink at the rate of the BPM. So i do feel super close
mxmxmx
so is the encoder working now?

anyways, it's no big deal to make the whole thing work on a micro:
as to the clocks, are you sure you have A3 pulled high? (to enable the internal BPM timer?) or are you clocking externally? further, if you look at the code, the clocks are handled through "PORTB" or pins PB0-PB5. on the atmega32u4, that should be: rxled, sck, mosi, miso, 8 and 9 (see here: http://arduino.cc/en/Hacking/PinMapping32u4). (8 and 9 overlap, so two blinking LEDs makes sense.)
scriptstyle
mxmxmx wrote:
so is the encoder working now?

anyways, it's no big deal to make the whole thing work on a micro:
as to the clocks, are you sure you have A3 pulled high? (to enable the internal BPM timer?) or are you clocking externally? further, if you look at the code, the clocks are handled through "PORTB" or pins PB0-PB5. on the atmega32u4, that should be: rxled, sck, mosi, miso, 8 and 9 (see here: http://arduino.cc/en/Hacking/PinMapping32u4). (8 and 9 overlap, so two blinking LEDs makes sense.)


I do have the encoder working perfect, so the 10k pulldown resistor in the schematic on A3 needs to be a pullup for internal BPM? I dont want to externally clock this, as i mostly want to use this as a main clock source.

I am checking the link to see what changes need to be made along with the pullup resistor and i will let you guys know how it goes.
scriptstyle
ok so the pullup resistor solved the internal clocking issue,

I tried to swap in:
#define OUT_PORT PORTB //pins PB0-PB5 as outputs

and i get LEDs attached to (d-f) PB0-PB2 to work, i tried all different combos calling out pins 28 and 29 too but nothing seems to get them going. I am probably missing something simple i feel so close.
scriptstyle
I got it working thanks guys just changed the pinout for the outputs and i am good to go
spotta
Has anyone got a FPD design for this in Euro they fancy sharing? I may take advantage of the discount they are offering at the moment.
If if it just includes the panel mounted components that would be good, I reckon I could probably add the jacks myself, although with no design talent that program does do my 'ead in at times very frustrating
mxmxmx
spotta wrote:
Has anyone got a FPD design for this in Euro they fancy sharing? I may take advantage of the discount they are offering at the moment.
If if it just includes the panel mounted components that would be good, I reckon I could probably add the jacks myself, although with no design talent that program does do my 'ead in at times :bang:


i would, but i can't find the fpd file. guess i must have trashed it.
anyways, i simply had used the 4U fpd one a few pages back, moved the jacks and resized to 128.4mm. the jacks are no big deal, they can go anywhere.
scriptstyle
if it brings the price down i would be interested in one? seriously, i just don't get it
spotta
I ended up doing similar and copying the 4U one onto one of Fonik's FPD designs to make sure I got the screw slots correct.
Hopefully I'll finish it tonight.

Where abouts are you in the world scriptstyle? Depending on that it might make more sense to order it directly.
scriptstyle
yeah probably wouldn't make sense to ship to the states.
spotta
scriptstyle wrote:
yeah probably wouldn't make sense to ship to the states.

I'll attach it when done thumbs up
spotta


DISCLAIMER.
I never professed to being a designer - first ever front panel!
Started with a Fonik .fpd from his great site to make sure the mounting slots were correct,
All board mounted parts are copied from the 4U panel earlier in this thread so should be correct.
Everything has only been checked by my MK1 eyeball, I THINK there will be enough room for jacks beside the board - Hopefully someone who's actually made a panel before can check wink. I put the jacks on the left hand side to share the LED legend and keep the panel to 12hp.
I also know there's a thread about either here or e-m about tricks to keep your panel cheap. I haven't found this yet!
The current cost with Raw alu and no infill is €25.73+Vat

removed attachment as after checking, pcb protrudes from side ;(
diablojoy
damn topic replies very frustrating
jacks will fit in 2 HP so 12 HP all up will work ok i think
however i am no expert at euro sizes
I do use FPD to draw up panels but make my own
hmm clock through is not properly supported on board so either passive multiple from the input ( not really recommended ) or add a buffer for it .
mxmxmx
spotta wrote:
[img]

removed attachment as after checking, pcb protrudes from side


yeah, w/ 12HP you have to watch out a little bit. i was a bit too generous with the clocks/LEDs, so i did end up with the pcb protruding a few millimeters on the right. it's not so bad, but only certain modules will fit next to it. if i did it again, i'd probably place the LEDs somewhere closer to the jacks/in the space between them.

spotta
That's as good as my one's getting!



hope it helps someone thumbs up
spotta
mxmxmx wrote:
yeah, w/ 12HP you have to watch out a little bit. i was a bit too generous with the clocks/LEDs, so i did end up with the pcb protruding a few millimeters on the right. it's not so bad, but only certain modules will fit next to it. if i did it again, i'd probably place the LEDs somewhere closer to the jacks/in the space between them.


Would you have a part number or source for the tactile switches you used there, not a big fan of the green ones in the BOM.
mxmxmx
spotta wrote:

Would you have a part number or source for the tactile switches you used there, not a big fan of the green ones in the BOM.


it's the same switch ("D6"), only in black:

http://www.ck-components.com/d6/key-switch,10464,en.html

the ones you'll get at the usual places are called D6R90F1LFS, i think.

as an aside -- i got mine at the local conrad store, or these ones here but they're not particularly nice to push (very little travel and a bit flimsy). what i don't get is they do look exactly like the ones you'd find on certain makenoise modules or the ones used in the toppobrillo quantimator (which are fine). so either the conrad ones are cheap imitations, or the MN etc not using C+K.
mxmxmx
ps:

just occurs to me i recently got a whole bunch from here:

http://www.tme.eu/en/details/d6r-b/microswitches-tact-pcb/ck-component s/d6r-90-f1-lfs/

cheaper and seem to be C+K. i haven't used them yet, so can't tell whether they're any better. (i have more than i need but i guess sending them from germany to the UK won't be much cheaper?)
spotta
I'm surprised Mouser only stock the green tbh. I know my Mouser skills are not 100% but I searched pretty thoroughly.
TME would want €8 to ship me two, so if you could possibly put two in a jiffy bag and post for less than that, I would say thank you very much and paypal you some funds.
thumbs up
dfiction
i'm sorry i'm so late to this thread; there's a lot to read. i downloaded the code and i'm grooving with some LEDs on my breadboard at home. but are there still PCBs for sale?
Electronic Battle
I've just come across it too - I'd also like a PCB. Failing that, is there a de facto latest gerber and NC drill file anywhere? I can get ten boards made via iteadstudio if so (Eurorack format).

Although I'm an electronics engineer and the analogue aspects/construction represent no particular trouble, the Arduino/Atmega/AVR aspects are quite daunting seeing as I have zero recent code/uP experience. I do have a recently-acquired "Arduino Duemilanove" which I presume I can use as a kind of dev board to program the onboard Atmega328P, and then lever it out for deployment in the "triggerhappy"?

I'm looking to use the Arduino approach in a modular and this is exactly what I was hoping to do - but with code which is about a hundred times more complex than I can deal with!
puzo
love this project, i'm up for whats produced SlayerBadger!
c1t1zen
Cool project, I'd be in for a DIY pcb + panel.
All these Arduino builds are starting to create it's own eurorack ecosystem.
euromorcego
that looks great! want! DIY pcb + panel!

There are two many pages to read, unfortunately. Is there any chance that the pcb show up in europe to grab one? Looks like a very nice little project.
logicgate
In which page is the latest code to download???
mxmxmx
logicgate wrote:
In which page is the latest code to download???


any luck? i think this project is somewhat disbanded. on mine i'm using code based off of the version diablojoy posted on "Sat May 25, 2013 8:25 am".



... i'm having much fun with oleds atm so i'm wondering whether i shouldn't repurpose my DAC board for clocks. i'd just have to ditch the DAC and reroute a few things here and there. would make it a little pricier but improve the userfriendlyness i think:




edit, well here we go:




there were two spare op amps, so i also brought out the DAC/A14.
puzo
thats looks great, that looks like something is moving ahead?
mxmxmx
puzo wrote:
that looks like something is moving ahead?


well, yes and no. if you're after the triggerhappy module, that you can build already. the code and cam files have been posted somewhere further up the thread.

the thing right above is, or will be, something else, it just occurred to me it wouldn't be much extra work to slightly repurpose a board i did recently. it'll do clocks and have a display, but i don't know yet how similar or dissimilar it's going to turn out, probably not that similar as i'm not into stored patterns and such, and porting the code would be mainly a pita. i really liked the logic stuff though. it'll take a teensy 3.x, so that'll make it more expensive to build, ditto for the oled. it'll also be somewhat wider (14HP vs 10-12HP). on the bright side, there'll be a couple of improvements:

- clock inputs are interrupts, reset clock added.
- nicer push buttons
- 4 bipolar CV inputs added, assignable.
- more convenient to reprogram; also easy to turn it into an usb-midi device (say)
- reduced menu depth (i hope) or at least things should be easier to keep track of
- one optional DAC output that could be used to reflect the outputs, ie some binary sequencer type thing.
- laid out for eurorack

well, i guess i'll report once i got the pcbs and built one up.
puzo
something else? even better, that'll be two things to build hihi

i'm just at the beginning of my SDIY journey and my projects need to be pretty easy, one step at a time. if a pcb is available it may just be within my current skill level. Getting breadboard to start experimenting and developing my abilities. aurdino is another step to learn
makro
arduino noob to join smile

Please answer a few of my questions:

Which arduino board should i use?
...i guess arduino nano?

On which page of this thread can i find the latest support files (bom,pcb,wirings...) and code?

Are future upgrades/updates in fact just subsequent writes on the atmega chip(s)?

Any body knows a cheap supplier for custom frontplates in the EU?

Thanks Mr. Green
mxmxmx
makro wrote:


Please answer a few of my questions:

Which arduino board should i use?
...i guess arduino nano?


there's two atmega328s involved; so nano would work. the pcbs that were floating around didn't use any arduino boards.

Quote:

On which page of this thread can i find the latest support files (bom,pcb,wirings...) and code?


that would be diablojoy's post on "Sat May 25, 2013 8:25 am", i guess.

Quote:

Are future upgrades/updates in fact just subsequent writes on the atmega chip(s)?


not sure anyone is working on this any longer; but, in theory, yes.

Quote:

Any body knows a cheap supplier for custom frontplates in the EU?


if frontplates = aluminium: no.
midirobot
@mxmxmx

hello:)
i saw you realise some version of this project,are you satisfied by it?
cause i just discover it and it interess me a lot for my rack.
for now i am using a LXR to do the job,but this seems to be nice alternative.
mxmxmx
midirobot wrote:

i saw you realise some version of this project,are you satisfied by it?
cause i just discover it and it interess me a lot for my rack.
for now i am using a LXR to do the job,but this seems to be nice alternative.


true, there's this thread about it. as to the Satisfaction ... well, it was more of a side-project, i'd say, but it turned out quite ok. useful for dialing in clock patterns. it has 4 CV inputs and one DAC output, so it's a bit more flexible than the trigger-happy one; and it's ARM-based, which doesn't hurt either.
midirobot
thanks for the reply

i read the thread on temps utile,interesant module!

so if i get it right it s quite the same as trigger happy with
cv control that can be assigned and some more improvement,right?
but found anything how much pattern can be create
and how you can modify them with the cv,
etc...
if you have more information should be kind from you smile
makro
mxmxmx wrote:

there's two atmega328s involved; so nano would work. the pcbs that were floating around didn't use any arduino boards.


Thanks for reply.
I'd just use the single board to conveniently write to the atmegas via usb.

Quote:

that would be diablojoy's post on "Sat May 25, 2013 8:25 am", i guess.


Thanks. The set of files i downloaded contained a 5U panel design, so i was a little confused.

Quote:

not sure anyone is working on this any longer; but, in theory, yes.


I was thinking about working on it, no more than changing patterns in the first place.

Quote:

if frontplates = aluminium: no.


Don't care if it's acrylic, epoxy or wood either. Right now, i'm caught by the wood idea. That's something i could do on my own with likely decent results.
Recently, i cut down an old oak, so i have plenty of raw material at hand smile

Thanks for all the answers so far, i'll seek some help for starting with arduino at a nearby electronics school. Seems like i have everything i need to get this party started nanners
mxmxmx
midirobot wrote:

so if i get it right it s quite the same as trigger happy with
cv control that can be assigned and some more improvement,right?
but found anything how much pattern can be create
and how you can modify them with the cv,
etc...


yep, it's fairly similar with some improvements. i've ditched everything preset patterns; the code is written from scratch. take a look at the github page, there's some rudimentary information there; somewhat dispersed admittedly.

but then it's quite straightforward, much like a clock distributor with various settings. you can't create specific patterns per se; what you can do is select various clock modes (division, logic, random, euclidian, etc), and adjust some/the respective parameters. the 6 channels are independent, but you can make them interact by using the logic modes. assigning CVs: that depends. but basically it does what it says: the incoming CV will change the value of whatever parameter the CV input is assigned to; some parameters are on/off only, so in those cases CV works more like a on/off switch.

makro wrote:
The set of files i downloaded contained a 5U panel design, so i was a little confused.


oh, i see. well, there never was a euro-pcb. the one by diablojoy is small enough though, so that'll work fine. a few pages back in the thread i think there's pictures of some euro-builds using that board (and probably even some fpd files? -- i seem to have lost mine). if acrylic is ok, formulor.de is always an option.
makro
mxmxmx wrote:

oh, i see. well, there never was a euro-pcb. the one by diablojoy is small enough though, so that'll work fine. a few pages back in the thread i think there's pictures of some euro-builds using that board (and probably even some fpd files? -- i seem to have lost mine). if acrylic is ok, formulor.de is always an option.


Hi, thanks for the tip. I already ordered the PCBs (bilex 1mm) and now i am torn between formulor's acrylic or plywood. I tend to acrylic, already know it from my own DIY turing kits. I even copied a turing extension module, because it was out of stock back then. A german guy made the acrylic panel for me, but he no more does so. On the other hand, plywood would be exclusive and rad too...

EDIT: Additional question: should i buy atmegas with included bootloader (16mhz) or without?

Thanks,
makro
mxmxmx
makro wrote:


EDIT: Additional question: should i buy atmegas with included bootloader (16mhz) or without?


i'd say don't bother, one of the atmegas needs to be run off the internal 8MHz osc; so you'd have to re-set the fuses anyways.
midirobot
thanks a lot mxmxmx for the explanation,it s make it more clear!!

as i see you have no more board maybe i will make an order to osh park,
if somebody want to join for a board tell me.

or tell me if think to make a batch was thinkin to take you a terminal tedium also.
makro
mxmxmx wrote:
makro wrote:


EDIT: Additional question: should i buy atmegas with included bootloader (16mhz) or without?


i'd say don't bother, one of the atmegas needs to be run off the internal 8MHz osc; so you'd have to re-set the fuses anyways.


Thanks smile
I'll best get away using chips without a bootloader.

One more question after looking through the BOM: Which LEDs to use for the trigger outputs? 3mm diameter is clear, but with which forward current? 3,2V or 2,4V? Can you please supply a mouser link (since i order most of the components there).

The knobs on your pic of the Terminal Tedium module (in its DIY thread) are exactly what i am looking for to refine my Greyscale mockup of my Furthrrrr Generator. Would you mind to post your source, please?

I have problems getting Formulor to accept my SVG file (exported from Front Panel Designer). Any tips, please?
Schaeffer is much more expensive (aluminium) but the FPD file from this thread would work out-of-the-box.

This info should be all i'd need to order parts, pcb and panels thumbs up

Cheers,
makro
mxmxmx
midirobot wrote:

as i see you have no more board maybe i will make an order to osh park,
if somebody want to join for a board tell me.

or tell me if think to make a batch was thinkin to take you a terminal tedium also.


the boards are < 100mm so you'd get a better deal using itead et al.

if you're not in a hurry, i guess i'd just do it myself though; i had a few more requests. as for terminal tedium, a new batch should make it here fairly soon.

makro wrote:
One more question after looking through the BOM: Which LEDs to use for the trigger outputs? 3mm diameter is clear, but with which forward current? 3,2V or 2,4V? Can you please supply a mouser link (since i order most of the components there).

The knobs on your pic of the Terminal Tedium module (in its DIY thread) are exactly what i am looking for to refine my Greyscale mockup of my Furthrrrr Generator. Would you mind to post your source, please?

I have problems getting Formulor to accept my SVG file (exported from Front Panel Designer). Any tips, please?
Schaeffer is much more expensive (aluminium) but the FPD file from this thread would work out-of-the-box.


knobs: do you mean the large ones? or the small ones? anyways, the big ones are from musikding.de, part # rikno18sw (for 6.3mm/solid shaft) ; the small ones from uk-electronic.de, part # KMK10B (T18)

don't know about the LEDs, i've used yellow ones, because that's what i had. so more like 2.4V i guess. re formulor: all i know it can be a pita; make sure everything complies with their rules, i guess.
makro
mxmxmx wrote:

don't know about the LEDs, i've used yellow ones, because that's what i had. so more like 2.4V i guess. re formulor: all i know it can be a pita; make sure everything complies with their rules, i guess.


So far, i would have to hack the FPD file from this thread almost to death to follow formulors rules, so i decided to f*ck it and use floorboard (german: parkett). It has some tough and beautyful finish, consists of rugged woodsorts (oak) and is 2,5mm in thickness - just perfect for DIY panels.

Thanks again thumbs up
midirobot
@mxmxmx,

thanks for the tips i didn t looked to size of the board wink
so i m gone wait for the new batch you can already reserve two of this and a terminal tedium board.

see you soon.
mxmxmx
midirobot wrote:

so i m gone wait for the new batch you can already reserve two of this and a terminal tedium board.


no problem, i'll post in the respective threads when they get it.
makro
Hi,

now i got the arduino uno, the ide software (arduino 1.01) and the files.
I included the 7SegDisplay Libraries, updated the boards.txt file of the IDE and added the 7Seg bootloader files to the bootloaders/optiboot/ directory inside the IDE tree too. I got my breadboard wired up to the Uno R3 using the 16MHz crystal and standard wiring.
I read some tutorials and if i'm not a complete nut, the following plan should succeed to burn the atmega328p for the display:

1. upload the ArduinoISP sketch to the UNO R3
2. select the 7SegDisplay board in the "tools" menu (IDE)
3. execute "upload firmware" from the "tools" menu (IDE)

here i maybe have to select my "Breadboard Arduino (Arduino UNO as ISP)" board (customized for breadboard setup) from "tools..." menu before i execute the next step?
(Please help)

4. upload the 7SegDisplay sketch (without removing the atmega328 on the UNO R3 board)

after that, i should have a working display microcontroller, right?

To burn the main triggerhappy chip, i'd just pull out the atmega chip on the UNO and insert a fresh 328P there, and just upload the triggerhappy sketch. I inserted a 28p ZIF socket for convenience.

Would this likely work?
For a complete noob, which are the common pitfalls?

Thanks for help thumbs up
makro
So i had to burn the chips using the ArduinoISP variant and it worked flawlessly, to the point where i had to burn the bootloader. Arduino IDE (avrdude) gave a rant about 0xFF != 0x07 on verify, but the write seemed to got through. After that i burned the 7SegDisplay sketch and lucky me got the PCBs delivered today too smile

There are some minor mismatches between silkscreen and mouser BOM, i am missing the voltage regulators, the rotary encoders don't fit on one side, because the leg spacing is bigger, my on/off switches are too big and there seem to be more SMT resistors on the PCB than in the BOM. Most all of these quirks are resolvable easily. Keep you updated about my build.
So far i say thanks to all that helped me getting this started thumbs up

EDIT: Sorry, i didn't mean the BOM but the "mouser project" cart somebody posted around page 10-12 in this thread. The BOM is correct.

Cheers,
makro
makro
Finally made it.

It was a PITA most of the time, that's why i'm going to give some tips how to burn the atmega328p chips using an arduino UNO R3 and breadboard with arduino IDE (1.0.1):


1. Wire up the breadboard with an Atmega328p, like in the "using Arduino UNO to burn atmega328" tutorials, install the IDE, the code and the 3rd party libs as well as the modified bootloader from this thread. Update the boards.txt file to include board configurations for the two bootloaders in "standalone" (breadboard) mode.

2. The key to success was to burn the bootloaders using the breadboard and uploading the sketches with the UNO directly. I used a ZIF Socket on the UNO for swapping things. It was a matter of creating and switching board configurations.

3. Upload sketches afterwards: Pop out the Atmega on the UNO board, insert the triggerhappy or display chip and upload the prepared sketches. Didn't work for some reason in breadboard mode, with a variety of avrdude errors.

Hope this helps someone.

Problems i have encountered so far:
1. On the first two tries of connecting the module to the eurorack power bus, the display digits where pushed to the right by 1 step. For example at start it was showing 5---, and then like "EGAT" instead of "GATE" and so on. When connecting the module the third time, the display was working correctly. So far i only had time to do these three tests, so next time who knows if it's offset or not hmmm.....

2. The external sync switch position doesn't work. No pulses at the outputs.

3. The encoder sometimes doesn't advance. On tempo change: 128 then one detent to the right, one more, and after the third it jumps to 131.

4. The outputs are assigned from bottom to top. So if i change outA, the lowest output signal/lead is adjusting to the settings. top down.

Otherwise, the unit is working fine. If somebody can give me a hint where to look to resolve these problems, it would help me a lot thumbs up
makro
It's me again.

Now i managed to resolve all the bugs and built two Triggerhappy modules for me and a friend with wooden panels (see below). There will be also one spare or maybe two spare modules for sale, because i had four PCBs and component sets. Feel free to contact me if you want one.

At the same time, i publish the updated code with some enhancements to mxmxmx's modded 1.04 version (therefore called 1.05):

1. Setting the Tempo is now BPM based, no more based on frequency. This makes the rotary encoder work much more precise when setting tempo.

2. Re-enabled "Array Mode" (patterns)

3. One thing that you should know: When switching from internal to external clock sync the first time after powering up, the trigger LED's are "always on", while the trigger signals come out as defined by menu or defaults.
Workaround: Just switch back to internal clock and then again to external clock sync, the problem disappears.

Dogma
Are there any video demos of what the final module ended up being capable of? I mean the first video made me very interested - theres so many projects around im getting them all muddled up but this one id really like to see a demo of smile
makro
Hi,

i didn't have the time yet to do a video, but i planned to make at least one.
Might take a couple of days, since i have to assemble two more modules. I was playing a lot with TH today and i lost myself playing around with its options, seems not to get boring too quickly smile

Keep you updated.
makro
Now here's the final version, fixed some minor bugs, especially when switching from ext to int clock mode after startup of the module.
There's also a Reset function now, which resets the setting to default mode, so you don't have to switch off power.

I also modded the hardware encoder pins with two 0.1uF caps for hardware debouncing, which makes it feel more natural/precise.
BPM Display goes up and down -/+1 when clocked externally, but the timing of the audio is quite good and stable.

Now, up to building and extending "Temps Utile" smile
yoho
I have some bugfixes and an addition for a different display. Should I post it here or somewhere on a github?
makro
Great :tu:

Please post it here, i have to install the arduino software on my new laptop to write a chip and send it to my man in vienna for testing (since i don't have a modular system any more). I could also build one last module, since i got all the needed parts and a PCB. ...but so little time.

Anyway, thanks for contributing and keeping that neat little project alive!
May i ask you for a list of fixed bugs?

EDIT: Maybe you can send the display additions to mxmxmx for publishing them on the triggerhappy github page?
studiokpg
Thanks for keeping this going guys!
diablojoy
wow been a while

Yes post it here by all means
there's a GitHub page ? when did that happen lol
I did do another board version long ago with 3 extra inputs but it's in limbo
I got seriously sidetracked and really don't have the time to debug it or the programming skills to make use of the extra inputs. was thinking table selection for fills and cv'able output muting where the muting is progressive
if anyone wants to have go they are welcome to try I have some spare board sets somewhere here just send me a PM, probably will be mission fail but if someone is willing to try and get this board version running it would be nice.
makro
Oh, sh*t :oops:
I confused trigger happy with "temps utile" regarding the github and username, sorry diablojoy!
My fault.
diablojoy
That's ok
if anyone wants to post code improvements then please post them here.
diablojoy
Triggerhappy Redux prototype



yoho
Here's the short list:

v1.05 -> v1.06
- added support for TM1637 based display boards (that have 4 digits)
- bug fix for saving and loading. EEPROM supports 1024 bytes max (Uno) and thus will only 10 presets fit in memory. Introduction of const int saveSlotMax that contains last selectable preset no.
- added turnaround for preset save and load number. Going up from saveSlotMax (9) will select 0 instead of staying at 9 and going down from 0 will select saveSlotMax (9) instead of staying at 0

I will be creating a Github repo as soon as possible, and even include older versions (for educational purposes :-))

Edit: Github repository is located at: https://github.com/emast42/triggerhappy
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 17
Powered by phpBB © phpBB Group