TK.

Upcoming MBHP_MF_NG module

348 posts in this topic

Hello Thorsten
Tks for explanation
yes I'm on Mac, G5 10.3.8 running Digital performer, i'm not realy up-to-date regarding digital side of my studio...
I have a laptop whitebook running 10.6.8 for everything else including MIOS for setting up my fader proto
I have no clue on software programming an compilation...last "programming" was at school on PB15... 20 years ago :p
But I can learn!
Is your programme allowing adjustment for each fader, in something like a table or matrix, or is it a fixed value translating both way all pitch bend info ?
Zam

 

I go to look google "how to compile" and i'm back :)

Share this post


Link to post
Share on other sites

I just got an alternative idea - we could hard-code the tables into the MIDIbox NG application.

In this case it will be programmed into flash memory.

It would still require to compile the version at your side (because you've to adapt the tables) - with the MIOS32 toolchain based on this flow: http://www.midibox.org/dokuwiki/doku.php?id=macos_mios32_toolchain_core

 

Currently there is around 200k free, but this would only be sufficient for 6 individual tables (mapping 14bit values)

 

But: if the mapping tables would only consider 10bit resolution, the memory consumption would only be 2k per table

Which means that individual tables for all faders are feasible.

 

I guess that you wouldn't change a difference compared to 14bit anyhow, because the PIC ADCs convert at 10bit resolution.

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

hello Thorsten

 

I have to admit I'm little lost with this, but in the mean time I think I understand what you say.

 

When you say flash memory you mean the SD card with core system (for the moment I only run MF board standalone), or some memory available in the PIC I have now?

 

I think 10bit is enough for motor position, it's less than 1/10mm for 100mm fader, my hand never do such repositioning when I recall a mix to the desk :smile:

 

So your option is a fixed table, but previously set for each fader log characteristic according to measurement i made like previously in this topic, right?

So each time i want to recalibrate the fader (saying with time the resistive track characteristic change) I have to do measurement again, and compile new table for each fader?

 

How it will be complicated to add a new function in the MF tool (like a new tag or window) with a matrix or table where you can set the value for 12 point (0-5-10-15-20-25-30-40-50-60-70-inf).

The table have only to be adjusted at one side. The fader position pitchbend value in the DAW will never change, except if different DAW have different log curve for the fader?

Or better, a learn command! when you clic, it record the motor fader position in the table, so a routine calibration (say each month) take less than 10 min

 

Just send a test tone in all channel

set all fader at top--> one clic--> all "0dB" data are stored (usually 1023)

set all fader at -5 (real dB analogue attenuation read at my peak meter)--> one clic--> all "-5dB" data stored

set all fader at -10 etc...

 

maybe I'm dreaming ?

 

by the way I attach 2 pict of my work :smile:

second prototype have button and led, but it's just for mechanical test.

Also need nice front panel...

 

Best

 

Zam

 

 

 

 

post-20897-0-48200100-1404246968_thumb.j

post-20897-0-53682800-1404246979_thumb.j

Share this post


Link to post
Share on other sites

Ah, you are using the MBHP_MF_NG module standalone (without a MIOS32 based module where MIDIbox NG could run) - in this case forget my idea.

 

Microcontrollers typically have an embedded flash memory. For a LPC17 or STM32F4 enough flash would be available, for the PIC we've two problems: it's much more time consuming to add code there (especially since the firmware is implemented in assembly language), and there is much less flash memory. Not enough for individual tables for all faders.

 

The SD Card approach would only work, if a table could be loaded into RAM, but as mentioned earlier, neither a PIC, nor a typical MIOS32 compatible microcontroller (which you are not using anyhow...) would have enough for your intentions.

 

 

How it will be complicated to add a new function in the MF tool (like a new tag or window) with a matrix or table where you can set the value for 12 point (0-5-10-15-20-25-30-40-50-60-70-inf).

 

This would require an interpolation routine which consumes too much CPU time on a PIC, especially when multiple faders have to be handled in parallel.

In order to overcome the execution speed limitation, somebody would typically precalculate tables based on these "points" and store it in RAM... if enough would be available.

 

Ok, if somebody would spend some hours or (depending on his programming skills) days on this topic, he could be able to achieve this regardless of the hardware limitations.

But actually I'm not really interested on such a topic by myself, and sparetime is also not sufficiently available for such a "private" solution for you... 

 

In other words: I'm not trying to find a perfect solution, just something which consumes as less as possible effort at my side.

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
Ah, you are using the MBHP_MF_NG module standalone (without a MIOS32 based module where MIDIbox NG could run) - in this case forget my idea.

 

No I don't forget your idea :smile: at the end I need button and led so I need a core system.

 

This would require an interpolation routine which consumes too much CPU time on a PIC, especially when multiple faders have to be handled in parallel.

In order to overcome the execution speed limitation, somebody would typically precalculate tables based on these "points" and store it in RAM... if enough would be available.

 

The 0, -5 , -10 etc... have direct and linear correlation with DAW fader pitch bend value at one side, but maybe you talk about "interpolation" between this points at the other side? which is not linear but like one of the graph I post before?

 

-----

 

All this is just to have an efficient grouping fader possibility that track well at the analogue side...maybe i'm too ambitious :sad: and don't have the skill to build (program) what I want. Or the system can't handle this in any way? is that you saying?

I understand you are not interested on this, and by the way, I don't buy you a beer :tongue:

 

Best

 

Zam

Share this post


Link to post
Share on other sites

Hello

some update

I connect and run the two fader I show before, and perform more test and calibration setup
Good new is now I can say only one hard coded(fixed) table for all fader is need, fader tolerance are good, no need for individual correction, and I'm using cheap ALPS, will be better with P&G or TKD

I still have problem regarding noise.
Now I connect each 0v servo to individual module enclosure, it's better for motor noise in audio, but I wish It could be even better. Grounding and ref voltage is not easy when interfacing digital device in a large analogue desk, I have to try different grounding.
Other one, way louder and problematic, is noise produced by touch sensor. When I touch the caps it become quieter, and close to silent if I touch my console frame at the same time. If I set sensor sensitivity to 1 (minimum) noise disappear, but fader is not usable at this setting.
I don't record frequency yet, but sound like fraction of the digital clock. What kind of signal is use for touchsensor? just DC? do you think I can filter this with some LPF to avoid HF leaking here?

regrading fader move i'm not 100% happy with settings I try, I like the fader fast when I read a square automation. But I can't in the mean time stop the fader knob to have crazy shake when reading a slow sin wave automation.

Zam

 

Share this post


Link to post
Share on other sites
Good new is now I can say only one hard coded(fixed) table for all fader is need, fader tolerance are good, no need for individual correction, and I'm using cheap ALPS, will be better with P&G or TKD

 

These are good news indeed! It means that the two 10bit based calibration tables could be stored into the embedded flash memory of the PIC, so that no additional SW or HW is required.

 

What I also could provide is a small perl script which generates a look-up table based on given points:

fader_cali.png

 

Build process would be:

- adapt and generate the table in/with the perl script -> this will generate an include file

- rebuild the mbhp_mf_ng firmware with a PIC assember

- upload the new firmware (.hex file) with MIOS Studio

 

The whole update process will take ca. 30 seconds... fast enough to try out various settings.

 

Required tools: perl (scripting language), gputils (PIC assembler), text editor

And if you would install "gnuplot" on your computer as well, the perl script would spit out a diagram with the calibration curve as shown above

 

What kind of signal is use for touchsensor? just DC? do you think I can filter this with some LPF to avoid HF leaking here?

 

It's a pulse of n*1 uS (n = touch sensor sensitivity value) which is triggered each mS

 

I'm unsure if/how this could be filtered. You could start with caps against ground at pin #27 (RD4) of the PIC (this is the pulse output)

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

I was able to solve that shivering with grounding the shell of my fader and the Frontpanel properly.

Share this post


Link to post
Share on other sites
What kind of desk is that?

 

my lovely Studer 289 :smile:

 

--------------

 

Thorsten, what you could provide sound good to me, i think it deserve a try.

As i say previously I'm new to programming, I already install X11 on my laptop, and will instal dev tool,

I need time to be efficient at this task (learning the tools), but solving this problem and find the good solution could really open a new world for all ple like me using old desk, I already have two friend/studer x89 owner folowing my modification.

I will look closer and download the tools.

I keep you informed about this.

 

It's a pulse of n*1 uS (n = touch sensor sensitivity value) which is triggered each mS

 

I'm unsure if/how this could be filtered. You could start with caps against ground at pin #27 (RD4) of the PIC (this is the pulse output)

 

Best Regards, Thorsten.

I have a look at my noise frequency, it's 1K (and harmonics 2k 4K etc...) so it's the 1ms trigger for sure.

I wish It will be some subharmonic artefact I can filter, but it's not, and it's in the audio range :(

I put a 100n across 5V and 0v at the J2 (like in MF V1) but without success, I will try your suggestion.

I have to investigate more (disconnecting the touchsens ribbon sound worst...), it's also could be a fader design issue, audio, servo, and touch track are close...

 

Zam

Edited by Zam

Share this post


Link to post
Share on other sites

I'm just thinking about another strange thing I don't understand.

When I hit slash and backslash button in MF Tool my two fader don't go to the same position.

I swap the fader at J2 and it don't folow, but stay at the same PIC output???

 

Zam

Share this post


Link to post
Share on other sites
I was able to solve that shivering with grounding the shell of my fader and the Frontpanel properly.

 I will try this. On my side the fader and front panel are well screwed, but at this location of the desk the electonic inside the fader module could be considered as floating, no contact to the frame. I have to manage this.

Today I reduce the voltage and find some compromise with new duty setup, also change the deadband.

 

Zam

Share this post


Link to post
Share on other sites
I swap the fader at J2 and it don't folow, but stay at the same PIC output???

 

When you swap J2:A0 and J2:A1, you also have to swap the motor control outputs (J3 and J4)

It's a servo loop...

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
When you swap J2:A0 and J2:A1, you also have to swap the motor control outputs (J3 and J4)

It's a servo loop...

 

Best Regards, Thorsten.

 

Of course... i miss that :p

My fault !

Share this post


Link to post
Share on other sites

Thorsten

 

I'm still having trouble to reduce noise.

The 1kHz is very problematic (more than 10 dB louder than my noise floor with only one fader)

I try various cap around ground, noise disappear but sensor become active so...

 

It's not possible to filter this as it is the main data modulation, 1kH digital trigger is really not analog audio friendly

And the signal is electronically floating.

 

I ask anyway, is it possible to setup this pulse over 20kH, say 50kH to be safe? even if the PIC only analyse data every mS

 

I will try optimising wire now, It's the last thing I have in mind

 

As soon as I find solution for this, I come back for the software side

 

----------------------------------------

 

I have a look at the scope just to know and see how this works,

it's more a n*1uS where n=is touch sensor n°,  with time distribution from pulse start +1uS

I attach 2 pict, second wave form is when sensor of fader 1,2,3 and 5 are touched.

 

 

post-20897-0-45208800-1404923389_thumb.j

post-20897-0-68051100-1404923391_thumb.j

Share this post


Link to post
Share on other sites
When you swap J2:A0 and J2:A1, you also have to swap the motor control outputs (J3 and J4)

It's a servo loop...

 

Best Regards, Thorsten.

 

 

Forget my previous post, of course I swap the motor too as each fader have a separate ribbon for servo, motor and sens...

so I have a problem somewhere!?!

 

--------

 

Another question come in mind,

Is it possible to add a resistive load in series with the motor?

I wana try a simple RC LPF filter to smooth the PWM

Share this post


Link to post
Share on other sites

Did you alredy tried to connect the shell of all Faders together to GND?

Share this post


Link to post
Share on other sites
Did you alredy tried to connect the shell of all Faders together to GND?

 Yes they are, maybe not the best GND pass possible for the moment but thy are

-On the fader side the 0V servo is screwed to the front panel (get me better motor noise result), and the fader is also screwed to frontpanel so shell is refered to 0V

-As my console is modular each 0V and 5V sevo go separately to a daughter board for main 0-5v distribution to fader, 0-5V picked at J2

-0V is refered to GND at J11 with wire to chassis lug where I also attach main Earth

 

By the way I just short cut 0 and 5v at J2 by mistake when measuring other things

My fuse don't blow up (i forget to reduce it's value after first test...) something is dead , have 0V everywhere, hope it's not the PIC :( ,but just the 7805 or the bridge rectifier...

 

Zam

Share this post


Link to post
Share on other sites

ok it was just the 7805 thermal protection

 

I get interesting test with various big cap at -/+ motor, actually 1000uF improve the motor mechanic and electronic noise

 

Zam

Share this post


Link to post
Share on other sites

Where did you insert that Cap? Between +/- of the motor connections? I have to try this on my deaigns too! 😀

Share this post


Link to post
Share on other sites
Where did you insert that Cap? Between +/- of the motor connections? I have to try this on my deaigns too!

 

yes between +/- but 50 cm from the motor pin at the other side of the two wire in my connection board.

1000uF polarized, not sure it's good with the time as it take reverse voltage in one fader move direction, better use 2 pces with negative pin together to make a big non polarized caps.

Global PWM reduced around 10-20. 0 is the best but with big caps you have jumping fader at the discharge

I also increase the motor voltage to 8V

 

It really improve the mechanical/acoustic noise of the PWM/motor noise, but target shoot seem less accurate.

Let me know your report if you test this.

 

I'm at a corner regrading my project, i feel your interface system really good, all the software side is so friendly with HUI/MCU.

But in the mean time i'm not happy with the motor systeme, PWM is good for DAW remote only, but not for fader passing real audio.

I don't know how flying fader© or moving fader© system are done at this stage, PWM or not but, for sure it's silent at analog side. Later SSL and other various automation use VCA so it's another world

 

I try to find a solution to convert the PWM into a nice variable analog DC signal, inserting big caps is the first step.

I want to try RC filter, but I find noting in the L293 datasheet regarding resistive load :(

Maybe I can try 10 ohm (with 1000uF for 15hZ cutoff), it's "just" twice the motor coil ?

I'm also looking for other motor driver able to output a smooth DC from the PWM

 

Touch 1kH trig still a BIG problem...

 

--------------

 

I think in just understand the slash/backslash\ and sine function in MF tool, and why faders don't reach the same target (at the same time)

As I have only two fader for my proto, result is not behind your eyes, this functions just visually show  / , \ , and moving wave with 8 fader right ?

 

Best

 

Zam

Share this post


Link to post
Share on other sites

@novski

Did you try the capacitor?

 

@thorsten

I just instal Xcode and dev tool on my macbook

also gputils, and i saw perl is already installed

I don't find gnuplot compiled, maybe I can try to compile this to enter in the programming world ...

Share this post


Link to post
Share on other sites

Hi Zam I still didn't had enough time to check that. What im wondering is how it is placed because i dont think its a good idea to connect the minus of a pol-cap to the output of the motor. The voltage has to switch polarity to be abe to drive the fader back and forward. What capacity and volatge did you use for your tests? br, novski

Share this post


Link to post
Share on other sites
Hi Zam I still didn't had enough time to check that. What im wondering is how it is placed because i dont think its a good idea to connect the minus of a pol-cap to the output of the motor. The voltage has to switch polarity to be abe to drive the fader back and forward. What capacity and volatge did you use for your tests? br, novski

 hey Novski

 

that's exactly what I say previously, reverse voltage half the time, not good at all for definitive choices and long time use.

But it's a good start point test.

The best result I have is with 1000u (25v by memory) so to achieve the same with safety operation regarding reverse voltage you have to use 2x 2200u (10v is enough)  in series with negative pin hooked together, so you have a 1100uF non-polarized capacitor.

 

I'm not at the studio, but will try a snubber RC filter soon.

Also an active integrator/low pass filter between pic output and H-bridge input, i saw this kind of design in later automated 990 studer desk

I just don't know if I can add a resistive load at the pic output, do you have an idea about this?

 

best

 

Zam

Edited by Zam

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