How many grams or ounces a pulling force are we talking about? I imagine the filament to be quite delicate especially right after the extrusion nozzle. And a chain (or filament) is only as strong as it's weakest link. I see it supports a number of feet of itself, so that kind of puts a ballpark figure to it, the weight of roughly 6 feet of filament?
We want the sensitivity of the measuring instrument to be well-matched to the order of magnitude of the force we are measuring. As a silly example, if I step on a scale intended for weighing tractor-trailers, I would not have the same absolute precision as if I stepped onto a medical scale at the doctor's office. And I would overload a postal scale intended for weighing letters. So, yes, the measuring instrument and it's opposing force, should be tailored to match the magnitude of the force we are attempting to measure.
With regards to the "pulling device" of choice, I think a two wheel pincher is likely the best, because winding filament around a wheel to pull it adds additional mechanical noise due to increased contact area, and god forbid using a spooler as the puller, wrapping over previous windings, etc.
Spooling should be done downstream of the traction wheel, and deliberately isolated by a length of untensioned filament, to remove it's noise from the tension measurement.
We get noise from friction, noise from bumps of previous windings, etc. If one can avoid that, we dodged a bullet.
The sensor should measure the pulling force directly as possible; free from sharp bends in the filament from extruder to tractor wheels.
If the filament goes over a pulley first, even slightly, then we are adding more mechanical noise, and we are losing some of the original tension force to the pulley angle.
(I am rusty in force vector math, the force remaining after changing direction over the pulley, is only the sine of the angle, if I remember that trig right?)
So by using a pulley anywhere, we carelessly give away the most precious resource, the original delicate pulling force.
I suggest we "keep" as much of the tension force as possible, so that kills any pulley ideas, at least ones with filament rolling over them.
As far as single photodiode sensors, I think a two photodiode sensor is better than a single one, because you can run sub pixel interpolation against a pair of pixel values, whereas with only one pixel value you are out of luck on that extra ability.
With a ccd, no average brightness is needed, because the pixels are fine grained compared to the shadow, we get a nice notch in the brightness plot and can measure the width in pixels and in sub-pixels. Smoothing or averaging or convolution with a gaussian kernel, can remove outliers, but too much can hurt the signal to noise ratio by over smoothing it.
As you sum a pile of things, the needle gets more blended into the haystack, despite being "present" across more pixels. There is a sweet spot between no averaging- but noisy data, and overly-smoothed data where the signal is overly smoothed into oblivion.
Like the sharpness or sigma of a Gaussian bell curve. Which by the way, if you try my latest Processing visualizer, I have it all set to show the kernel shape, the results of using it at each stage in the pipeline, and you can adjust sigma of the smoothing Gaussian kernel with your mouse-wheel.
The sketch uses simulated data by default, so you don't need a real sensor to see it work.
I animate the simulated position, so it seems to move back and forth by one pixel peak to peak, and you can see the sub pixel mechanism at work too.
See:
https://github.com/Mr-Mayhem/Linear_Array_Sensor_Subpixel_Visualizer
Here's a variation of my earlier hanging weight on fine wire over two pulleys idea...
You could mount a traction wheel assembly via "flexures" to the main chassis, which bend in the flat direction but are rigid in the other directions.
This removes the need for a rail, or shaft, etc and would support the traction wheel-pair carriage entirely.
The carriage would stay aligned to the filament, (resists twisting), but allows delicate movement parallel to the filament line.
See video below for a spring steel flexture example. Choose a material which is flexible but having low "spring memory".
My first guess is mylar sheet of one of many thicknesses available. Maybe you can fold-heat-crimp it into H shapes, etc.
My second is to make use of your laser cutter to make flextures from some springy sheet material.
No matter how you do it, you want to end up with a spring movement that stays aligned to the filament pull axis, but is delicate enough to respond to the pull, and stuff enough to limit motion to an inch or so.
Try different length flextures to find a sweet spot around the sensor size of choice.
I suspect the 256 pixel TSL1402R might be fine for this; it's pixel line is like an inch or a bit less in length.
Use a linear photodiode array to measure the carriage motion. Just have a slotted plate or wire cast the shadow onto the sensor from the moving carriage.
Ok, the video about flextures:
Building Prototypes Dan Gelbart part 10 of 18 Flexures
jump ahead to time 5:40 in the video to see a flexture example that is closer to your needs...
That example is made using a press brake and an electric spot welder.
By the way, that video above is part on an excellent little series of videos intended for anyone doing serious prototyping work.
Here is the full set of his videos:
https://www.youtube.com/user/dgelbart/videos
Also you should YouTube search "flexture", to see other materials and shapes, they get pretty sophisticated and fancy, or can be dirt-simple, and take on many unique and interesting forms.
They are hobby friendly too... see they can be laser cut or cnc cut. Dial in what you need...
https://www.youtube.com/watch?v=H2gJuuhCV7w
Or 3d print them...(shows a diy 3d printed flexure for a dial indicator, of all things, ha)
https://www.youtube.com/watch?v=OK_o7MRmC3s
A key take-away on flextures, is that they are flexible in one plane only, rigid in other planes, and can be easily tailored to have the right spring force and the right range of motion, and this provides high repeatability in behavior between finished assemblies. Also, note flextures generally have extremely low backlash.
Flextures are commonly used in cameras or optical assemblies due to their relative simplicity and reliability.
It occurred to me that a flexture is really a load cell without the sensor. It's a customizable uni-directional spring you can cut out from a sheet, 3d print, or build up from strips fixed to frames like in the video above.
So I am assuming we are measuring a pull force of a few dozen grams?