novski Posted July 24, 2014 Report Share Posted July 24, 2014 Hi Zam I didn't forget you yet but i just made my front and will be able to test in a more handy way soon. Its quite hard to test without a solid "fixed" solution. It will take about 3 Weeks so im back to this task in August. best regards novski Quote Link to comment Share on other sites More sharing options...
Zam Posted July 25, 2014 Report Share Posted July 25, 2014 Hi Novski No pb actually I reduce around 220u (two 470 in series) I made a new proto front panel in 3mm alu, it also improve mechanical noise. I redone wiring with separate shilded cable for the 3 functions servo, motor, and sensor the servo 1kHz still there in my audio path :( I'm out of idea. I think I read somewhere here, about grounding unused servo output and/or sensor can someone confirm ? best Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted July 28, 2014 Report Share Posted July 28, 2014 I'm f...ing lost in the programming side I just try to compil by myself (as a training) the basic mbhp_mf_ng_v1_004 (without touching any code), I just have few day reading all I can on wiki and install tools I'm so lost, that I don't know where to start to tel my situation, I feel so stupid... I just want to change MIOS_SRIO_NumberSet in the main.inc file to test different touch sensor pulse regarding my noise Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted July 28, 2014 Author Report Share Posted July 28, 2014 If you are not able to execute the Makefile, try to execute following command in the mbhp_mf_ng_v* directory directly: gpasm -p p18f452 -I./src -I ./include/asm -I ./include/share -I ./modules/app_lcd/dummy setup_mbhp_mf_ng_standard.asm Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Zam Posted July 29, 2014 Report Share Posted July 29, 2014 If you are not able to execute the Makefile, try to execute following command in the mbhp_mf_ng_v* directory directly: gpasm -p p18f452 -I./src -I ./include/asm -I ./include/share -I ./modules/app_lcd/dummy setup_mbhp_mf_ng_standard.asm Best Regards, Thorsten. hello Thorsten tks for help 10 min to understand why terminal answer me "No such file or directory" when I send cd command... it need a space after...now you have my skill level :sad: I was finally able to execute your command, seem to work, I have a new .hex (regading the info date) also .cod and .ist I will try to change MIOS_SRIO_NumberSet number -------------------------------- Now some question to be sure I understand correctly. MIOS_SRIO_NumberSet is the trig clock from PIC RD4 right? so if I increase to let say 0x05, my noise frequency should go down to 200hz (5/1000sec) ? MIOS_SRIO_UpdateFrqSet is the time the shift register take info ? it determine the touch response time to standby the motor right? here we have 10ms Now, were is the parameter (if one) who set the master clock used by MIOS_SRIO_NumberSet? What can I do if I want MIOS_SRIO_NumberSet to be 0.05 ms (20kHz) or better 50kHz/0.02ms Best Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted July 29, 2014 Report Share Posted July 29, 2014 Man !!!! It work :rolleyes: HUGE improvement in audio noise, this f... 1Khz noise go away I still have the shift register 10us pulse clicking in audio (my PSI monitor are so efficient revealing fast transient), but as I lower MIOS_SRIO_NumberSet to 32ms (0x20) the intermodulation go down to 31.25hz in place of 1K, so just become inaudible back soon Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted August 4, 2014 Report Share Posted August 4, 2014 (edited) hello I try again to compile trough xcode without succes :( Zam Edited August 4, 2014 by Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted August 4, 2014 Author Report Share Posted August 4, 2014 Now some question to be sure I understand correctly. MIOS_SRIO_NumberSet is the trig clock from PIC RD4 right? so if I increase to let say 0x05, my noise frequency should go down to 200hz (5/1000sec) ? MIOS_SRIO_UpdateFrqSet is the time the shift register take info ? it determine the touch response time to standby the motor right? here we have 10ms Now, were is the parameter (if one) who set the master clock used by MIOS_SRIO_NumberSet? What can I do if I want MIOS_SRIO_NumberSet to be 0.05 ms (20kHz) or better 50kHz/0.02ms No, totally wrong... Without going into too much detail: this would work in MIOS32 projects where the SRIO is scanned via SPI, but it doesn't work on a PIC where the SRIO is scanned directly from the PIC via bit-bangning. This is done each mS, the number of SRIOs doesn't change this. And if somebody would try to reduce the timer period for the bit-banging routine, the PIC would be busy with scanning the SRIO, but wouldn't be able to do anything else (-> no motor control). So, forget this change please, embedded programming is sometimes not straightforward, you've to consider many limitations to come to a compromise which works in reality. I think that on a PIC the touch sensor handling can't be optimized anymore. HUGE improvement in audio noise, this f... 1Khz noise go away I still have the shift register 10us pulse clicking in audio (my PSI monitor are so efficient revealing fast transient), but as I lower MIOS_SRIO_NumberSet to 32ms (0x20) the intermodulation go down to 31.25hz in place of 1K, so just become inaudible MIOS_SRIO_NumberSet doesn't set the scan frequency, it sets the number of SRIO components modulo 16 Which means: 32 % 16 = 0 -> no SRIO is scanned anymore, no noise... but also no touchsensor scans, right? I try again to compile trough xcode without succes :( but you can compile in the terminal, right? (I don't use Xcode by myself, too complicated ;-)) Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Zam Posted August 4, 2014 Report Share Posted August 4, 2014 No, totally wrong... Without going into too much detail: this would work in MIOS32 projects where the SRIO is scanned via SPI, but it doesn't work on a PIC where the SRIO is scanned directly from the PIC via bit-bangning. This is done each mS, the number of SRIOs doesn't change this. And if somebody would try to reduce the timer period for the bit-banging routine, the PIC would be busy with scanning the SRIO, but wouldn't be able to do anything else (-> no motor control). ok, tks to correct me! So the question is, can I manage the shift register for touchsensor with MIOS32 if I use a 32 core (for button/led/touch) and PIC (MF) just for the motor ? What is the actual SRIO max scan frequency in MIOS32? the idea is to have it way upper 20/20khz range. Other option is to have an assigned button that switch the MIOS_SRIO_NumberSet between 1 and 0 when printing a mix. MIOS_SRIO_NumberSet doesn't set the scan frequency, it sets the number of SRIO components modulo 16 Which means: 32 % 16 = 0 -> no SRIO is scanned anymore, no noise... but also no touchsensor scans, right? Of course, my mistake sorry, I mean MIOS_SRIO_UpdateFrqSet !!! I set it to 0x20 (32ms) with improvement in noise, the slower detection response don't seem a problem right now but you can compile in the terminal, right? (I don't use Xcode by myself, too complicated ;-)) Ho! if it's too complicated for you, I better forget this for the moment... Yes I have success to compile, with the code you give me to copy/past in the terminal I just don't know/understand what I do, but it work :p ---------- Now it's time for next step can you help me with this ? What I also could provide is a small perl script which generates a look-up table based on given points: 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 I think perl is already installed with devtools on my computer? also a working gputils as I was able to compile with your terminal command. How many "given point" can we use? if possible 14 should be good. lets say 0-5-10-15-20-25-30-35-40-45-50-60-70-cut I will made new measurement for respective PB value at both side, fader DAW and analog fader ---- Also i just drop some update about analog side accuracy i'm able to reach with new setup. I'm less than +/- 0.5 dB between automation rec and automation play I'm around +/- 0,05 dB between two automation play (audio recorded two time trough automated fader, with phase cancellation test) The system miss shoot with 1 dB accuracy from the automation print, but always miss shoot the same with 1/10dB accuracy it's in the 1mm range! i'm close to the 1024 step in 10cm fader, i can't do better and I'm happy with that :smile: Best Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted August 4, 2014 Author Report Share Posted August 4, 2014 Of course, my mistake sorry, I mean MIOS_SRIO_UpdateFrqSet !!! Ok, this obsoletes all other questions and now I understand what you did. This of course reduces the scan frequency by x * 1 mS, results into 32 mS (as you've mentioned) and if you are saying that there is a HUGE improvement then let it like it is, everything else will overcomplicate the project. I've to add that this was a clever idea! I haven't expected that the pulse is weak enough so that it will be filtered out on lower frequencies! :) Now it's time for next step can you help me with this ? This hasn't been forgotten... but please be a little bit more patient. Before giving you any code I've to test it, because everything which hasn't been tested typically doesn't work due to unexpected reasons, especially when I'm doing changes in code that I wrote many years ago! I think perl is already installed with devtools on my computer? You can try this in the terminal: perl -version perl isn't installed if this command won't be found. How many "given point" can we use? if possible 14 should be good. lets say 0-5-10-15-20-25-30-35-40-45-50-60-70-cut I will made new measurement for respective PB value at both side, fader DAW and analog fader There is no limitation, because the perl script will do the calculation work, the PIC will only process pre-made tables. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Zam Posted August 5, 2014 Report Share Posted August 5, 2014 (edited) Thorsten increasing the MIOS_SRIO_UpdateFrqSet to 32ms result to intermodulation around 30hz (31.35 to be precise), of course way better than the 1ms/1khz. The "fundamental" pulse still there even 10us (i was able tu reduce a little to sensitivities at 5 with shielded wire). Usable at mixing process, but not when printing the mix so an easy solution to desactivate the SR with a single button is an option. How it is easy to ad button function that is not a part of the user parameter in MF_NG tool ? Also I run long wire (60/70cm) as mechanical integration is not easy, I think now I can't go to my first route with the pcb at the back of the console, I have to go with shorter wire and find room closer to the fader modules. I have 3 cm free under the armrest, needed to remove fader and channel by sliding in this modular system. I will find a solution to put the MF PCB here, with easy remove system to be able to service the desk. This hasn't been forgotten... but please be a little bit more patient. Before giving you any code I've to test it, because everything which hasn't been tested typically doesn't work due to unexpected reasons, especially when I'm doing changes in code that I wrote many years ago! Of course !!! just give me (if you can and without any pressure at all) some time range? ---- ordinateur-de-zam:~ Zam$ perl -version This is perl, v5.10.0 built for darwin-thread-multi-2level (with 2 registered patches, see perl -V for more detail) :smile: There is no limitation, because the perl script will do the calculation work, the PIC will only process pre-made tables. Cool ! you are cleaver :rolleyes: Best Zam Edited August 5, 2014 by Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted August 10, 2014 Author Report Share Posted August 10, 2014 Ok, please try this firmware: http://www.ucapps.de/mbhp/mbhp_mf_ng_v1_005.zip Once installed, follow the instructions of this README.txt: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmbhp_mf_ng%2Ftools%2FREADME.txt I will officially release this version if you can confirm that it's working at your side. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Jesy_par Posted August 11, 2014 Report Share Posted August 11, 2014 I really like the whole concept, just one PCB for faders, and it's looking so easy! Thanks for sharing, can't wait to built my own 'little home console' Quote Link to comment Share on other sites More sharing options...
Zam Posted August 11, 2014 Report Share Posted August 11, 2014 Ok, please try this firmware: http://www.ucapps.de/mbhp/mbhp_mf_ng_v1_005.zip Once installed, follow the instructions of this README.txt: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmbhp_mf_ng%2Ftools%2FREADME.txt I will officially release this version if you can confirm that it's working at your side. Best Regards, Thorsten. Hey Thosten I don't expect this so fast !!!! you are amazing I'm in the middle of mix session, I'm back to you asap :) best Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted August 11, 2014 Report Share Posted August 11, 2014 (edited) Thorsten I just have a quick test, here is my report: I was able to generate the table without any problem I understand (but I be wrong) that "cal_tables_only.hex" only change the table, but it reset the whole setting Fader respond fine to the new table when monitoring position data in MF tool curve Extreme setting for ex my @x = (0, 765, 1023); my @y = (0, 256, 1023); get the PID lost and fader have oscilation but I don't think some one use so extreme setting I don't try more than 3 point for now As I say i'm in the middle of mixing session, so i'm not able to put my motor fader in the desk frame, I can't check with audio passing trough and some 10 or more value table Now, one question! How can I monitor the 10 bits value data used, i can only monitor 14bits PB value to take and record the point I need for my table. anyway great job ! tks a lot man. Best Zam --------- edit: i have my answer done with openoffice calc and some brain burning :rofl: pitch bend value (+/- 14 bit) (say A data) then B=A+8192 (to have a 0 to 16384 as B data) then C=(B/16384)*1024 to have linear scale from14bits to 10bits result seem more than realistic so I hope I'm right ? now with "C" I have a direct value to edit my table :) OK now I write all this and feel stupide... here is the one formula conversion... C=((A/16384)*1024)+512 ... Edited August 11, 2014 by Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted August 14, 2014 Author Report Share Posted August 14, 2014 Ok, you already found out the required calculation by yourself! :) How can I monitor the 10 bits value data used, i can only monitor 14bits PB value to take and record the point I need for my table. For the case that it helps: in mf.inc you will find following lines MF_Tick_TraceFader movff ADRESL, MF_TRACE_VALUE_L ; take original value from ADC so that AIN deadband doesn't matter! movff ADRESH, MF_TRACE_VALUE_H You could replace them by: MF_Tick_TraceFader movff MF_VALUE_L, MF_TRACE_VALUE_L ; take original value from ADC so that AIN deadband doesn't matter! movff MF_VALUE_H, MF_TRACE_VALUE_H in order to display the translated response in MIOS Studio There is no alternative way how I can help you to visualize the changes. I know that the task to find a satisfying calibration table w/o further analysis is a challenge - but providing more sophisticated debugging helps would result into much more effort at my side. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Zam Posted August 15, 2014 Report Share Posted August 15, 2014 Thorsten It's fine, I don't need more. My only need is to know the 10bit value for a specific fader position to edit the table. I have the formula, and I will try your code to have a direct reading in MIOS in place of PB value On my side I will instantly visualize the change when monitoring the audio level, no need for other tools Hope I can load the fader tomorrow or monday, and giving you a definitive feedback Best regards Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted August 20, 2014 Report Share Posted August 20, 2014 hello sorry for the delay, lot of work at the studio currently testing the new table tool with the fader loaded, it work :) I will give more feedback this evening, when I optimise my table Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted August 21, 2014 Report Share Posted August 21, 2014 Ok!!! I made a 42 point table !!!, 1dB step from 0 (top) to -30 and 5dB from 30 to cut (bottom). the 0 to 30 dB is about 2/3 of the fader length. I start with a 10-12 point, 5dB step table, but the 0 to 20dB is critical and realize that the audio taper from my fader is strange in this area, for example the 5 to 10 dB distance is smaller than the 10 to 15dB. 5dB table is accurate at the 5dB step spot but not between, so I decide "super accurate table" Plus I have two fader so i measure both and made an average table I have some listening test with stereo track send to both fader, channel full paned L/R, but unmatched level is made pre fader (test for 5, 10 and 15 dB L/R differential) Then I compensate with fader, link them (group fader in DAW), and move one, the second fader follow the the touched one with accuracy and keep the relative gain with success. The result is a solid L/R balance without excessive floating center. I think the audio log taper tolerance is the most important factor in this effect. I don't measure this, but it sound excellent to me, let say not more than +/- 3 ° in my 60° equi triangle monitor installation. Of course it's not so accurate at the bottom of the fader, but I don't care, and I'm not sure a more accurate table will resolve this Anyway stereo tracking is WAY better compared to my actual stereo fader loaded in the desk. The matching between DAW fader value and real analogue attenuation is the other aspect of this new table tool, and it work fine I still have 4dB offset from reading value because my fader DAW is +6 max, but I don't care. I think "relative" (as dB are) and if I reduce 7dB in the DAW my audio fader move down at the right position to reduce 7dB too On side effect I think I can't solve, it's the DAW interpolation value when you are in the "positive" side of the fader (0 to +6) when you are in this area with one fader the other (linked) folow closer and closer to reach the +6 at the same time, killing the relative gain. For me this function is a FULL success, exactly what I'm looking for, Thorsten you are a MASTER. Maybe at the moment i'm the only one that have some interest in this but i'm sure all of you will find this useful for some function, like matching a specific dB scale label in your front panel even if it's only a DAW remote, or have some custom curve response under the finger, super accurate in some area... Tks a lot :thumbsup: I have lot of work in the next few week, but i'm still aroud. In september i will prototype an analog PI controller from latest 90' analog automated studer desk. No PWM, no H bridge, no motor noise... smoooooooth DC I have to think how to substitute the MF board with the AOUT and his DAC, but keep your wonderful soft side Is that easy to "just" remove the PID controller in the MF soft and assign output not to the PIC PWM but AOUT ? best Zam Quote Link to comment Share on other sites More sharing options...
TK. Posted August 24, 2014 Author Report Share Posted August 24, 2014 Great! Thanks also for the detailed report. I guess that sooner or later somebody else with similar interests will come back to us. :) > Is that easy to "just" remove the PID controller in the MF soft and assign output not to the PIC PWM but AOUT ? yes, this would be easy. Do you have a schematic of the PID controller? Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Zam Posted August 24, 2014 Report Share Posted August 24, 2014 (edited) hey Thorsten you can find the schematic here ftp://ftp.studer.ch/Public/Products/Mixing_Analog/990/Manuals/990_Serv.pdf page 115 Ufader (P9-7) come from the fader, servo track 0-5V (look at page 89, signal is also send to some Ain). Usoll (P9-1) come from the processor board, IntelMCU out, analog mux/demux and flipflop is folowing (starting page 141), don't know the signal but i think it's DAC 0-5V. That's here i'm thinking to plug some AOUT with "simple" PitchBend to CV (log with the new table tool). We just need one output, this is the the target position from 0-5v, the motor direction is given by the sum from this voltage value and Ufader voltage. With 2.5V offset I guess. The "stop motor" is also at analog side troughs Q5, don't know how to implement this right now I have to think about. You have the sensor detection circuit at the bottom of the shematic IC3 IC4 Q6 Q7, not sure how it work, but maybe we can use TOUCH (P9-6) going to some AIN or SR so computer and DAW know that something is touched, and route this trough another AOUT going to ENABLE (P9-2). There is no need for script that stop the PWM or (AOUT/Usoll) at this point, but send some CV to active the gate, and ground the driver input. Voilà ! I take time (and friend help me!) to understand the schematic, don't be fooled !!! it's not an H bridge (my first visual impression), the 4 transistor are just current helper for IC1-1 and IC2-1 output. Best Zam PS: I'm off link for the next 3 days Edited August 24, 2014 by Zam Quote Link to comment Share on other sites More sharing options...
novski Posted September 12, 2014 Report Share Posted September 12, 2014 Hi Zam Can you explain me more bout the advantage of this? I wold like to help you improve your Faders if i can learn something and maybe use it for my Fadercore afterwards.. br novski Quote Link to comment Share on other sites More sharing options...
Zam Posted September 13, 2014 Report Share Posted September 13, 2014 Hi Zam Can you explain me more bout the advantage of this? I wold like to help you improve your Faders if i can learn something and maybe use it for my Fadercore afterwards.. br novski Hello Novski i'm sorry to not be so active since few weeks, i announced analog PID proto for September, but I have lot of work at the studio, so it's delayed a little. The advantage of analog driver (if it's the question), is a real variable DC signal. I hope both mechanical and electrical noise will be lowered. After all test performed this summer I become convinced that analog audio signal and PWM/SH pulse are not friendly, I can't let this project with compromise. My "hi end" desk deserve the best. Regards Zam Quote Link to comment Share on other sites More sharing options...
Zam Posted November 3, 2014 Report Share Posted November 3, 2014 Hey all !!! I'm back to this :) I just ordered pcb from smashTV, in fact a 32 core, AIN, AOU, and DIO now have to order the BOM for all this, and finish the analog PI pcb under eagle, Phase II "Studer Motion" on the way :) Zam Quote Link to comment Share on other sites More sharing options...
facon Posted March 10, 2015 Report Share Posted March 10, 2015 I'm interested in using the MF_NG module to control a small fuzz effects pedal's pots. I was wondering if this would work find for motorized rotary poteniometers instead of high quality faders. I love to DIY, but after around 50 hours of day job and 30 hours running a studio, I don't have too much time to learn programming in depth. Could this provide a simple platform for me to send Midi CC's to individual motorized potentiometers to control them? I would be manipulating the pots real time with a controller as well as sending batch CC #s from a Midi preset box. It looks like that's exactly what it does, but since this entire world of digital/midi is a bit new to me I wanted to doublecheck. Also, I've read previous mention of noise making it's way into audio through using motorized pots. If I'm using this for a fuzz pedal, I'm assuming I should keep the power and ground from this circuit completely isolated from the fuzz pedal? Any other tips? Thank you! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.