Sign in to follow this  
Followers 0
Sasha

Ableton Live controler/audio mixer

116 posts in this topic

Those LEDs are lighting up in the correct pattern. That means the encoder wheel itself and optical components must be fine. The signal must be getting to the PIC OK too.

I reckon it must be a software problem - maybe try writing a simple test app? I have no experience with MB64E, for the scratch wheel I wrote my own C program. And I'm not using DINs for encoder inputs (shift registers don't switch fast enough for scratching...)

Either that or you just have the encoder connected to the wrong input pins of the switch register, or something. (I guess it must require the encoder to be on a certain pair of pins)

Share this post


Link to post
Share on other sites

I reckon it must be a software problem - maybe try writing a simple test app?

I`m out of any programming skills  :-[

Either that or you just have the encoder connected to the wrong input pins of the switch register, or something. (I guess it must require the encoder to be on a certain pair of pins)

Well, I connected it on right pins, and it works from time to time but mostly not good - very unreliable. I didn`t know DINs are not fast enough for scratching. I don`t spin it to fast but maybe it is still too fast for shift registers as the resolution is much bigger than it is on common mechanical encoders. I`ll try to move it very slow and see is there any change. I hope I wan`t be forced to lover the disc resolution even more.  :-\

Share this post


Link to post
Share on other sites

resolution is much bigger than it is on common mechanical encoders.

Oh that explains it. You could try increasing the SR update speed but... That's really something bet suited to your custom app.

Share this post


Link to post
Share on other sites

sasha why don t you take a video of when it DOESN T work? that could help troubleshooting

Simone

Share this post


Link to post
Share on other sites

Not sure is it problem but very possibly is. I probably couldn`t increase the SR update speed without some negative effects to the rest of box.. Could I? I will be using regular mechanical encoders with this one and alots of buttons and LEDs.

Share this post


Link to post
Share on other sites

sasha why don t you take a video of when it DOESN T work? that could help troubleshooting

Simone

It is easy to show it using MIDIO128 as the LEDs are well visible, but on MB64E isn`t much to show. I`ll try too shoot it. But first, I have to make sure is the maybe too much for SRs.

Share this post


Link to post
Share on other sites

I'd think you could speed up the DIN refresh without causing horror. - of course, I know nothing about this.

The DIN/DOUT chains have a large parallel-serial conversion to do (p-s for DIN, s-p for DOUT), this would tend to lead itself to timing issues, but not for most applications of a midi-controller.

Scratching might be the exception here.

If you could free up two pins of your core module (perhaps J7 or J10), then you could get better timing for a faster moving encoder.

-but again, I can't help with the code.

good at plugging things in, not so good with the 1s and 0s.  ;)

Share this post


Link to post
Share on other sites

Hallo Sasha

I use MB64E program too, and I'm quite asembler ready programer  ;)

If you tell me exactly what is your configuration of hartware of optical ENC I can maybe sovle your problem.

What is your output from optical ENC? like tipical ENC? 2xDIN?

Share this post


Link to post
Share on other sites

Hi there. Yes, the output is typical quadrature encoder and I`m probably doing to use 2x DINx4 but I could live with 1x DINx4. I could maybe use some other CORE pins for that jog. I`ll do some intensive testing today, and let you know the results. Thank for an offer for help mate.

Share this post


Link to post
Share on other sites

Just to let you know the last results. Encoder seams to work fine now, but only if connected on SR5 and not further SRs. (I didn`t tried SR1-SR4 as those are reserved for buttons by default)

I`m not sure could it be that registers further in chain could be more problematic because of the shifting speed, or something else is problem. On mentioned second DINx4 I used to hooked mechanical encoders before, but never optical transistors. Maybe the problem could be that I don`t have 100nF caps on module but as I never experienced problems with it I just didn`t bother to solder it. I need to do some more testing to locate the problem, but for now I have positive results.  :)

Share this post


Link to post
Share on other sites
Just to let you know the last results. Encoder seams to work fine now, but only if connected on SR5 and not further SRs. (I didn`t tried SR1-SR4 as those are reserved for buttons by default)

are SR6-8 working with "normal" buttons?

Share this post


Link to post
Share on other sites

Yes, they work perfectly with buttons.  ???

Share this post


Link to post
Share on other sites

[incompetent assuming]

Since you connect them to optotransistors and it s a DIY encoded wheel, it is possible that the transistors  are "flickering" creating problem with the SRs.

Try to use an higher debouncing value and see if anything change, or maybe using caps after the transistors.

[/incompetent assuming]

Share this post


Link to post
Share on other sites

You are maybe right. I`ll blame opto transistors and try increase debounce. Thanks for the advice.

But you must know flickering cannot have anything to do with my DIY wheel. Its precision, mechanical strength and stability is superb!!!  8) 

Share this post


Link to post
Share on other sites

I think you'll need debouncing OFF - otherwise it's gonna skip some of the inputs if you turn the wheel fast enough....

Share this post


Link to post
Share on other sites

I don`t need to set debouncing off with current 40 steps wheel. I tested it turning fast as I could (connected on SR5) without noticing any skipping. I used default MB64E setting.

Has anybody ever needed to increase debouncing for  common 24 steps mechanical encoders?

Share this post


Link to post
Share on other sites

Hi Sasa

I have conected 30 steps mechanical encodes to MB64E and all is good. Speed or number of steps of encoders is no problem. I think that your problem is setting of program. In your video I saw blink only 2 LEDs and it looks that you have at pin of your enc assigned standard button function. Watch your mios_tables.inc if you have at MIOS_ENC_PIN_TABLE set this row:

ENC_ENTRY 5, 0, MIOS_ENC_MODE_DETENTED ; (5 is the SR5 and 0 is assingned pins(0-1) of SR) position of this row in the ENC list is the nuber of ENC (when the row is first then ENC1)

Look to main.asm too if you have set good LEDrings assigment. In your cause I think that :

LEDRINGS_SR_ENC1_16_CATHODES_1  5

LEDRINGS_SR_ENC1_16_CATHODES_2  6

LEDRINGS_SR_ENC1_16_ANODES_1  7

LEDRINGS_SR_ENC1_16_ANODES_2  8

and on the bigin of main.asm - Number of connected encoders must not 0

So this is all what I remember, try to check this sets

and if you good know this setting sorry for this reply  ;)

B.R.

LX

Share this post


Link to post
Share on other sites

... I think that your problem is setting of program. In your video I saw blink only 2 LEDs and it looks that you have at pin of your enc assigned standard button function.

Lad, I used MIDIO128 to align the opto elements. So, transistors are connected to button inputs on video. Coresponding LEDs show the sequence. So, 2 LEDs that you see isn`t part of LED ring. After I aligned the opto elements I uploaded MB64E and connected transistors to second DINx4 module which is by default assigned to encoders, so it is not problem in configuration.

Share this post


Link to post
Share on other sites

I just tested other SRs with Voti`s encoder again and all are working fine. As I have no idea what could be a problem, I`ll use 5th SR for optical encoder and rest of SRs for mechanical and problem solved. Well, not in the right sense but at least I can make it functioning. 

Share this post


Link to post
Share on other sites

And, here are some winding testing results. I mounted the encoder onto sub-panel. Even 40 steps seams pretty sufficient, I wonder how cool would be 80 steps.  ::) I accidentally damaged first, 80 steps wheel.

Even I wan`t be ever doing any scratching I wanted to try it. Probably not very scratch friendly as the resolution is not so high but to me it felt great and pretty responsive. Very fun.

I must sad I`m extremely satisfied how rigid this HDD motor based platform is.

As I didn`t want disk endlessly spins, I made small spring and glued a piece of cloth that is usually used for that kind of thing (don`t know the English word)

2579555389_2e20f32c7c.jpg

As you may see, I started with wide spring but as it was too strong I needed to grind it down untill I was satisfied with it`s resistance.

2579554303_0ceb6708d2.jpg

Mechanism is simply mounted on the spacers and rotate with disc while cloth is aply some traction on the HDD motor body. Quadrature disc isn`t mounted so mechanism can be visible.

2580384690_88e83cfc22.jpg

Share this post


Link to post
Share on other sites

..watching in real time probably one of the world most refined DIY built midi controller, how cool is that?

Share this post


Link to post
Share on other sites

Man, it is still far from it. Alot of work still needs to be done.  ;)

Share this post


Link to post
Share on other sites

Man, it is still far from it. Alot of work still needs to be done.  ;)

I'm sure it feels that way from your end, (-I know we can be our own harshest critic) but it is amazing to watch from this end!

It looks like you are literally gripping the track, like it's coming off vinyl!

Fantastic work.

HDD motor, huh?

*/tilted/ looks around for more things to break...

Share this post


Link to post
Share on other sites

HDD motor, huh?

*/tilted/ looks around for more things to break...

Yes, I used floppy spinner motor before for this kind of job but HDD motor is much better as it is smaller. Some are berret than others. This particular one have big wider area that was perfect for mounting spacers for quadrature ring on one side, and top disk on another. Bad thing is that none of motors from HDDs are easy to fix to the rotor. All have very shallow non metric threads, so some improvisation is necessary.

Share this post


Link to post
Share on other sites

It is essential for my application to have detended encoders. So I would like to disable encoder quadroubling, so they are handled 1:1.

I tried to find it in a code but without much luck. :-\ Anybody know how to do it?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0