(Teletype) IN / PARAM Calibration (Done)


#3

Will try to have a proper think about this later if I get time.

But before I forget, how about a method to erase the existing calibration data (PARAM.CAL.RESET). I know it can be done by typing in the correct values for min and max, but I suspect that will be too much cognitive overload for most people (myself included). Also having a reset OP signals that it’s a safe thing to experiment with.


#4

Mordax Data can be a voltage source. It also has a calibration procedure. Who wins?


#5

As a TT outsider: risky to consider that max of PARAM will always incontrovertably be 16383. There’s wiggle and mechanical issues and all sorts with pots.

Also: it feels like operators are for musical/logical functions, and this feels like Something Else; whilst I’m sure there are interesting creative misuses of this, I can also see lots of false positives - accidentally running this in a loop and getting in a knot. I think @Galapagoose is about right.

I also know that whilst most TT users are fairly advanced Euro users, the number of times I’ve read about people calibrating modules by assuming the output of their MIDI-CV converter is accurate and that C2 is a neat 2V is alarmingly high. Making this an op feels like a bit of a red rag.

Are you imagining this replacing factory calibration data (if there is any), or acting as an offset on whatever the ‘hardwired’ calibration is?


#6

There is none currently, and yes.

That’s how we got here! From the config menu thread:

Points about accuracy and 5V vs 10V taken.


#7

@sliderule - I have a similar function implemented for the IN and PARAM on the TXi expander. (I do not calibrate the units on shipping, btw.) You can set 2 points for the PARAM knob and 3 for the IN jack as, on the TXi, it is bipolar.

This is not to be confused with the MAP functions which allow you to remap the range of the inputs (you can use the INIT operator to reset the mappings without wiping any calibration settings).

You can find them in the documentation here (with examples):

https://monome.org/docs/modular/teletype/manual/#ti.param.calib

TI.PARAM.CALIB x y	TI.PRM.CALIB	calibrates the scaling for PARAM knob x; y of 0 sets the bottom bound; y of 1 sets the top bound
TI.IN.CALIB x y		calibrates the scaling for IN jack x; y of -1 sets the -10V point; y of 0 sets the 0V point; y of 1 sets the +10V point
TI.STORE d			stores the calibration data for TXi number d (1-8) to its internal flash memory
TI.RESET d			resets the calibration data for TXi number d (1-8) to its factory defaults (no calibration)

#8

I guess we need @tehn’s weigh-in to determine what to do here:

  • Dedicated .MIN and .MAX, or
  • Parameterized min/max argument on CAL

and

  • Auto flash storage
  • Manual flash storage

I’m for dedicated / auto for simplicity.


#9

Please don’t feel constrained by what I’ve done in the past for the expanders - just wanted to share my experimentation/implementation. The functionality clearly was developed in a more agile manner.

:slight_smile:

Where appropriate, I do want to make sure that we bring the command structure for the TELEX along for the ride. I’d hate to have similar features operating one way on the TELEX and in another way completely on the Teletype. That would be madness!! :wink:


#10

This feature has been implemented in 2.2.0-alpha.6

Implementation notes:

  • Separate .MIN and .MAX for both IN.CAL and PARAM.CAL
  • Values are both set and returned to the console
  • Auto-saved to flash

#11

Did we get a PARAM.CAL.RESET and IN.CAL.RESET?

I do think being able to easily reset the calibration back to default will be a useful safety net.


#12

Done, tested, and in alpha 7 build.

I’m actually finding CAL very useful for IN. Hook up an offset source, calibrate, and BOOM, the knob works perfectly.

This plus IN/PARAM .SCALE makes scripting way way better. Less code dedicated to parsing knobs. Knob setup is now a patch setup task instead of a scripted event.


#13

Testing IN.CAL.MIN and IN.CAL.MAX I get zero on MIN with a 0V signal.

On MAX I send a 10.0V signal and I get 16382, so I nudged it up to 10.01V and finally 10.10V and still I max out at 16382. It’s not until I get to 10.20V that IN delivers 16383.

In between I also tried PARAM.SCALE.RESET and IN.SCALE.RESET

I recalibrated my MORDAX Data just to be sure and tried again only to get the exact same results.


#14

Did you follow the calibration procedure above?

The goal of this feature is to accurately map known ranges to 0-16383. After calibrating, sending 10.00V from your Data should produce an IN value of 16383. Is this not happening?


#15

Correct, after running the calibration procedure listed above multiple times with 10.00V I get 16382, but at 10.20V and running IN.CAL.MAX I see 16382 after typing IN.

I rebooted my rack and same results.

I tried a second voltage source, same results.

Then this got strange, I turned up the voltage source to 10.20V and got a correct reading. Tried 10.15V and still correct so I jumped to 10.00V and again I get 16382, but now when I turn the voltage to 10.05V I’m getting a reading of 16383!


#16

As I do not have a calibrated source available, I was not able to truly test this feature. I just threw a 10V offset from my rack and it worked.

Does the calibration procedure work properly for PARAM for you?


#17

Yes it works for PARAM. And I too have to use a 10V offset. First one was from Maths and the second was Maths and O/A/x2 being used across different inputs/outputs of the MORDAX in case their were variations in the accuracy across jack ports.


#18

I have seen that at overage of the ADC limit, there is a little reflection. Maybe your hardware can’t actually take 10V? I wouldn’t know.


#19

There is a conversation over at Orthogonal Devices that was dealing with differences in input voltages and Brian Clarkson has to update the firmware on the ER-301 to bring it inline with his ER-101. The ER-301 was dealing with 10.24V on the +1 side of voltages while +1 on the ER-101 was operating at 10.00V on the +1 side of things. I’m sure there was more to it, but I thought the thread might be helpful:


#20

did anyone ever asked for an implementation of floating point numbers into teletype?
this could solve many CV-related issues, we could write our desired calibration routines ourselves…


#21

and what about calibration of the 4 CV outs?


#22

I’m on part 4 of the teletype studies which involve knob + PARAM. I’m not getting the correct max reading. Should calibrate? And how is that done using Maths? Thank you!