## Time Constant (LAG) Final Value Predictor

In dynamic and control systems one of the most common elements is a lag. This is a first order slowing or delay of an action. It is generally modeled by a transfer from a constant potential to a storage element through a resistance. The key characteristic is that the rate of flow is proportional to the difference in potential between the source and the storage element. In electronics it is commonly charging a capacitor through a resistor from a constant voltage source. Other examples include: adding air to a tire from a constant pressure source, filling a water tank from the bottom using a constant pressure source, certain chemical reactions to equilibrium, spinning up a flywheel from a constant RPM drive through a fluid coupler, heat transfer by conduction from a constant temperature source to an object at a different temperature, or damped spring compression with a constant force. The response of these systems to a step change in potential looks like this:

Mathematically this response is the exponential shown below where b is the instantaneous value, f is the final value, t0 is the step time, T is the lag time constant, and t is the time variable. If you want to predict the future final value in a control system to speed up loop response time you have to sample three points and then solve these three equations to find f in real time. In the normal scheme of things this will involve calculating logarithms (inverse exponentials) which will take a lot of CPU time, time you may not have for a high speed control system. Here’s a surprising shortcut. If the three samples are at an equal time interval, typical of sampled data systems, you can finesse the transcendental functions and still get a mathematically exact solution. Equal time samples and the self-similarity of the exponential function allow the ugly stuff to cancel. The derivation of the solution follows.

Split and isolate the exponentials on one side.

Eliminate the common exponential term.

Eliminate the remaining exponential term by setting the fractions equal.

And solve for f. The final closed form solution has three multiplications, three subtractions, and one division, a much lower computational load for the control processor. One multiplication can be eliminated as shown in in the code sample.

Lag final value predictor performance. 1: Random input, 2: lag response, 3: Algorithm below run on the second line data in real time.

In the actual application the lag data is constantly sampled and processed. Each new sample takes the place of the oldest of three and the predicted value is recalculated allowing real time tracking as shown above. This algorithm was developed for a control system that needed to predict the final settling value of a temperature probe in a hot air stream. The thermal lag of the probe element inside its protective thermowell made the response much to slow to accurately keep the process temperature within limits.

## Low Latency Contact Debounce Circuit

Electrical switching contacts are not nearly as simple as they seem.  Both at make (on) and break (off) they produce various undesirable side effects.  Transition times in the nanosecond range can produce unexpected reflections, surges, and arcs in long lines.  As the contacts make and break they bounce microscopically causing rapid on and off pulses lasting up to tens of milliseconds.  Sliding of the deflecting contact surfaces causes fritting that generates even faster pulses in the microsecond range. At circuit potentials higher than a few volts the bounces produce arcs whose effects range from electromagnetic interference to ignition of explosive atmospheres. This applies to light switches, electromechanical relays, electromechanical timers, and indeed any contact between solid conductors at different potentials.

In our modern solid state low voltage world, contact bounce causes problems with switch interfaces to computers and data gathering systems.  If you try to count switch events with an electronic counter it will indicate tens or hundreds of counts for each actuation.  A typical computer can read the state of a switch hundreds or thousands of times during the contact bounce time resulting in multiple “clicks” as far as the computer is concerned.  The normal solution to this problem is some sort of “debounce” circuit that filters out short transitions and eventually settles to the desired state after 50 milliseconds or so.  This works well for mouse buttons or remote TV controls.

Unfortunately this is undesirable for instrumentation, test, or metrology applications, especially multi-channel applications.  The delay time will vary from channel to channel and will be affected by the bounce duty cycle.  This will make it impossible to accurately determine the time of the initial event closer than a few tens of milliseconds.  As an example, in industrial testing it is common to test cam switches at higher than normal speed and correlate the event timing with the cam dwell times which requires very accurate measurements of the initial event timing and sequences.

This circuit essentially solves the contact event measurement problem.  The switch signal passes through a spike filter and then through a transparent latch.  The output of this latch is the cleaned-up input signal and is applied to an exclusive-or gate with a delay on one input.  When a transition passes through the latch, the two inputs of the gate are briefly different.  This causes the output of the gate to pulse low, holding the state of the latch for the duration of the delayed channel of the exclusive-or gate.  This delay is selected to exceed the length of any expected contact bounce but to be shorter than any expected valid signal repetition.  At the end of this time the exclusive-or gate unlatches the transparent latch and it reverts to normal.  Note that since the contact will have completed its event the output of the latch does not change.  As the exclusive-or is not polarity sensitive, this circuit works the same way for rising or falling edges.  One consideration is that the data input to must hold steady until the exclusive-or signal is able to latch it.  This is about two propagation times or a few nanoseconds for typical logic families and is the purpose of the input spike filter.  Its input time constant should be just long enough to guarantee this condition.

This circuit enables contact event measurements with time resolutions of a few nanoseconds.

The jointer is the fundamental woodworking power tool for creating flat, square lumber without cup, bow, or twist.  It is the first step in preparing wood for woodworking.  The most critical jointer adjustment is ensuring that the cutter knives are precisely coplanar with the outfeed table.  Otherwise you will not be able to successfully produce lumber that is flat and free of scarfs.  The typical user guide instructions are to place a straightedge on the outfeed table overhanging the knives and then adjust the knives and/or the outfeed table until the knife edge just touches the straightedge across the width of the table, which is fairly imprecise and gets more difficult as your eyes age.  The illustrated jig allows you to easily adjust the alignment to within 0.001″ or so.

This one consists of an inexpensive (\$15 at Amazon) dial indicator mounted on an old surface gauge base.  Note the flat tip on the indicator plunger.  Dial indicator plungers come with ball ends which are not suitable for measuring a knife edge.  These ends are replaceable and all use 4-48 threads.  The flat one above is www.mcmaster.com part number 20625A661.  The mounting strut is a rod end blank, 6065K171.  You can save yourself some machining by cutting down a 6066K34.  It is important to get the axis of the plunger square to the surface.  This makes the measurement insensitive to small changes in position.

With the end of the plunger on the same surface as the base, turn the dial bezel until the indicator index (the small black triangle at the bottom of the dial in the top image) matches the dial reading.  The plunger tip is hardened…if you drop it on your cutter edge you may damage the cutter.  Pull up on the top of the plunger and slide plunger over the knife edge.  Then gently lower the plunger.

The base doesn’t need to be this fancy, just stable.  I happened to have this on hand.  A piece of angle iron with three screw adjustable support points to square it up would do as well.

## Fast Settling PLL Multiplier

Phase Lock Loops have long been used for clock recovery, fixed frequency multiplication, reducing clock jitter, frequency synthesis, FM modulation / demodulation, and other tasks.  The basic PLL consists of a Phase/Frequency Detector, loop filter, and Voltage Controlled Oscillator whose output is fed back to the detector through an optional digital frequency divider.  When the loop locks to the input frequency, the output frequency is equal to the input frequency times the divider ratio.

Direct Digital Synthesis circuits have supplanted PLLs in many synthesizer roles but the PLL has the advantages of cost, simplicity, and the ability to maintain constant phase lock to the source.  RCA application note ICAN-6101 describes the use of a CD4046 Phase-Locked-Loop IC as the heart of a 3 digit 1KHz to 1MHz synthesizer.  Note that for synthesizer applications it is necessary to use the Frequency detector PC2 rather than the simple Phase detector, PC1.  The biggest issue with this circuit is that the loop damping factor varies with the square root of the loop gain which is the product of the PFD and VCO gains divided by the division ratio.  The PFD gain is in volts per Hz and the VCO gain is in Hz per volt so the loop gain is dimensionless.  At high division ratios, i.e. high frequencies, the loop is under damped and is over damped at low frequencies.  This is a trace of a standard PLL synthesizer  VCO control input switching between 3KHz and 1.024MHz.

Note that the response at the high frequency end is oscillatory and highly under damped with a settling time of about 200 milliseconds.  The low frequency response is highly over damped with a similar settling time.  The loop filter constants were chosen to equalize settling times.  Improving either degrades the other.  This circuit uses a CD74HC4046 for a faster VCO at 5 volts.  Unlike the CD4046, the HC4046 VCO has a limited common mode range at the VCOin pin and is normally only capable of a  5 to 1 frequency ratio.  To get ratios of 300 to 1 or higher there is a simple workaround.

By grounding the VCOin pin and applying the VCO signal as a sinking current source to the frequency offset input the full range of the VCO is available down to essentially zero Hz.  R6 raises the low frequency voltage enough to avoid Vos problems with U2. R3 and R4 limit the Q1 common mode range to keep it under the pin 12 bias point.

The RCA application note suggests switching in different loop filter components for different frequency ranges but this doesn’t really fix the problem and is less practical with digital control.  Traditional PLL loops have linear VCO gains.  This is essential for applications such as FM modulator / demodulators.   The main insight here is that the settling time is determined by the loop gain at the target voltage.  The gain at other voltages is not relevant.  If, as the division ratio increases, the VCO gain could be increased, the two would cancel and the damping factor would be constant, allowing simple loop compensation.  The solution is an exponential VCO gain response with a low gain at low frequencies (low VCO input voltage) and high gain at high frequencies.

The exponential VCO gain is 4.5KHz per volt at 1KHz and 4.5MHz per volt at 1MHz.  One thousand times higher gain at one thousand times the frequency.  The question arises as to how to make such a VCO.  The obvious solution is to use the Vbe versus Ic relation of silicon junction transistors.

The 470 ohm resistors protect the transistors in case of fault or overload.  The diodes are Schottkys.  R provides a phase lead to the integrator to compensate for the propagation delay of the Schmitt gate at high frequencies.  The matched pair HFA3096 transistors have a gain-bandwidth product of 8GHz which precludes ordinary breadboarding due to parasitic oscillation.  A lower speed design was used for this implementation.

This circuit generated the gain graph above.  Q1 is sufficient for the exponential function.  As this is only needed for loop stabilization the Vbe temperature coefficient is irrelevant.  Note that the loop compensation filter capacitor is one fifth the size of the linear VCO circuit above.  The 3KHz to 1.024MHz step response of this circuit is:

The settling time for both transitions is 900uS and, when zoomed in, both edges are critically damped at high and low frequency.

These kinds of frequency multipliers are useful for synchronous sampling of repetitive signals such as FFT analysis of variable speed rotating equipment at varying resolutions.  While FFTs usually are preceded by a windowing  function to avoid asynchronous artifacts, these functions broaden spectral lines and reduce the spectrum resolution.  With the ability to select FFT sampling rates that are, for instance, 256, 1024, or 4096 times a repetitive signal with a phase locked sampling clock, the requirements for  windowing functions can be reduced or even eliminated.  This enables trading between resolution and data processing overhead for optimized real-time monitoring.

## Semaphores

Multiprocessor or multitasking systems need a mechanism to coordinate inter-processor or inter-task communication.  In shared memory architectures the lowest level parts of this mechanism are usually called semaphores.  These can be used to request a resource such as I/O.  Typically this is a memory location that is tested to see if the resource is free and then set to lock out other actors.  Unfortunately an interrupt or separate processor might intervene between the test and set.  Some, but not all, processors have implemented test-and-set instructions that cannot be interrupted.  This protects against other tasks but the test-and-set instruction must also work with dual port memory and cache systems to hold off other processors.  The main problem is allowing multiple actors simultaneous write access to the same memory location.  Various solutions have been tried.  Some years ago, the UNOS operating system developed by Charles River Data Systems implemented eventcounts for low level signaling.  These 32 bit objects could only be incremented, preventing some of the problems with test-and-set semaphores.

For real-time industrial control a much more robust solution is necessary that satisfies a set of requirements.  1. Semaphores must be deterministic without the possibility of race conditions or ambiguity.  2. The solution must not require special processor features to allow portability.  3. Each semaphore is an entire smallest memory object that is written with a single memory cycle, usually an 8 bit byte or alternately 16 bit word for pure 16 bit memories.  4. Semaphores are provided in Query (Q) / Response (R) pairs. 5. Only one client actor may write a Q semaphore and only a single different server actor may write the associated R semaphore.  6. Each resource, be it a memory buffer, I/O, master state machine, or other is under the control of a single actor.  7. Enough distinct Q/R pairs are allocated to each client/server channel to unambiguously control all transactions.  8. At system configuration, and later as needed, semaphore pairs are assigned to client/server channels to establish the required communication channels.  9. Different processors or tasks may be servers for different resources.  10. Query and Response actions are performed in a single memory cycle.

As an example, when a channel is inactive, Qa and Ra are equal.  The specific value is irrelevant.  The client compares Qa and Ra.  If they are equal, the client may place a Query to request access to a resource such as a shared memory buffer by writing the logical complement of Ra into Qa.  When the resource becomes available the server copies Qa into Ra which signals the client that the buffer is available for reading and writing.  When the client finishes its data/control access it sends a query to Qb by writing the complement of Rb to it.  This signals the server that the client is finished with the buffer.  The server copies the Qb to the respective Rb to signal that it has regained control of the resource.  Note that this last is useful as otherwise the client might think the buffer is already requestable since Qa = Ra.  Bidirectional control transmissions may be passed from the server back to the client using additional Qc/Rc, Qn/Rn, … semaphores where Q is the server side.

Alternately, the above transaction could be

Client: [Qa = not Ra] ->

Server: [Qc = not Rc] ->

Client: Access …  -> [Rc = Qc] ->

Server: [Ra = Qa]

Note that in either case, the source of the query always sets the semaphore pair to a different value and the responder to the query always sets the semaphore pair to the same value.  In other words, an actor is not allowed to change its mind.  An abort request must be handled by a separate Q/R pair.  This is absolutely necessary for deterministic behavior.

This strategy works well in main memory for separate tasks and threads, shared memory for multiprocessors, and in hardware for handshaking to control communication buffers.

## Knurling on a Small Lathe

First a short note on lathe safety.  Modern industrial CNC lathes and machining centers have comprehensive safety systems including guards and light curtains.  Hobby and bench lathes are a completely different animal.  While a table saw or band saw will take off fingers, carelessness with a lathe will kill you.  Do not wear long sleeves or jewelry to include rings, bracelets, wristwatches, or necklaces.  Do not wear gloves.  Do not wear a tie, Bolo, or scarf.  Tie your hair back if it’s long.  Do not wrap crocus or emery cloth around your fingers to polish a moving part.  If you’ve had a drink, put off the lathe work until tomorrow.  Operating a lathe requires continuous attention, concentration, and clear judgement.  If you are interrupted or distracted, disengage the feed and step away from the lathe before turning to address the issue.

Knurling on a lathe is usually performed with a push type toothed roller tool as shown in figure 1.  The tool is pushed into the rotating part using the cross-slide.  This works fairly well on 12 – 14 inch and larger lathes.  Scaled down versions are traditionally supplied with smaller 6 and 7 inch lathes.  Figure 1 illustrates the tool supplied with the 6 inch Atlas lathe.  Using Atlas as an example, the 6 inch lathe looks just like the 12 inch, only scaled down.  The problem here is that a 6 inch lathe is not adequate to press regular knurls into harder materials like steel or brass.  The lantern tool holder and the cross-slide are simply not strong enough.  While it looks like it ought to work,  for proportional cross sections, a 12 inch lathe is 8 times stiffer and stronger in bending and 16 times stiffer and stronger in twisting than a 6 inch.  On YouTube, mrpete222 (tubalcain) has videos (#333-#336 ) about making a new 6 inch Atlas cross-slide to replace a broken one that obviously had too much force applied to the tool post.  I speak as someone who has broken a 6 inch Atlas/Craftsman lantern, although not while knurling.  The one in figure 1 is a slightly beefed up O1 replacement tempered to RC50.

Another problem with push type knurlers is that the stock has to be strong enough to resist bending under the knurling force and may need to be supported with a live center or steady rest.

A solution to both problems is the pinch style knurler shown in figure 2.  In this style the part is trapped between an upper and lower roller.  Depending upon the model, the diameter is adjustable from 1 or 2 inches down to zero.  Since all the knurl force is due to the pinch between rollers there are no unbalanced forces against the work piece or the tool holder.  This allows knurls on unsupported long parts without difficulty.  The cross-slide simply centers the knurl wheels on the part and the carriage travel is used to make longer knurls.   As a result deep knurls on steel are easily produced even on the smallest lathes.  The remaining difficulty is that to start the knurl, the work piece needs to be turning while the clamping knob is tightened to the desired depth.   On short parts to be knurled near the chuck the small clearance between the spinning chuck and the hand adjust knob creates a major safety problem.  Figure 2 shows a stock tool.

Here is the solution I came up with for my lathe.  A 3 inch extension of the clamp knob moves my hand far enough from the chuck for comfort.  I am not suggesting that you do this, just reporting on my solution to a perceived hazard.

I used a through tapped spacer from McMaster-Carr for the thread as I didn’t have a deep hole M6 tap and didn’t feel like counter boring all the way from the top.

This is pretty mundane but now there’s one less thing for me to worry about.  By the way, the 0XA quick change tool holder as shown works well on the Atlas 6 inch.  Cutoffs are WAY better.  You will need to cut rabbets on the plate that comes with the tool holder as can be seen in figure 2.  A single piece of steel the thickness of the T-slot is not strong enough for a solid tool holder lock-down.  It flexes and doesn’t have enough thread engagement.

## Staying alive on Venus

The most hostile place in the entire solar system that it is possible to land on is the surface of Venus.  The airless sun-baked surface of the Moon only gets to 260°F during daylight.  The surface of Mercury, closest to the Sun, peaks at 801°F.  But the surface of Venus is at 872°F both day and night with a corrosive atmospheric at a pressure of 1350 psi or 93 times the Earth’s.  The Russians, famed for rugged equipment, have landed probes on Venus at least 11 times.  The record for lander survival was set by Venera 13 on March 1, 1982, at 2 hours and 7 minutes.  Venus survival is so difficult that NASA is soliciting outside ideas with their Venus Rover Design Competition.  They are looking for ways to control and maneuver rovers without computers or electronics.  The main problem is that modern electronic devices cannot stand this kind of heat and die completely at 400°F or so.  It is completely infeasible to try to refrigerate the sensitive electronics and sensors because of the power requirements and the very high thermal gradient any refrigeration system would have to fight through. Not just the semiconductors and processors, but even current insulation and substrates, will not work at anywhere near these temperatures.  Nor will ordinary power sources.  Any lander will be accompanied by one or more orbiters that can receive information if it can be gathered.  Some creative ideas involve radar reflective panels that can be moved mechanically to change the lander albedo to signal data to an orbiter.  Others involve purely mechanical means for using extended probes to steer around holes and obstacles.

If you assume a pressure vessel, so the internal parts of the lander can be maintained at low or zero pressure to eliminate corrosion issues, the remaining problem is temperature.  While 872°F exceeds the working temperature of most engineering technology, this environment is actually within the reach of the amateur.  A typical self-cleaning kitchen oven runs at 900°F for a 4+ hour cycle.  Not as fancy as NASA’s Venus Surface Simulator but useful for testing magnets, bearings, insulators, and mechanisms.  One proposed solution to the power source problem is a windmill.  While the average wind speed on Venus is only 3 MPH, the air density is 93 times higher than on Earth, providing plenty of power for a windmill.  The main problems are bearings and power transfer.  There are hybrid ceramic and carbon sleeve bearings which are rated for these temperatures although not these pressures in this atmosphere.  Magnetic bearings eliminate friction and corrosion issues.  Unfortunately, the current top magnet material, Neodymium-Iron-Boron, loses its magnetism at such temperatures.  The next best, Samarium-Cobalt, has some high temperature versions that will only lose part of their strength.  These can be preconditioned at temperature and then used.  The older ALNICO 9 is able to work at Venus temperatures but starts out with about 1/3 the strength of Samarium-Cobalt.  It’s not clear which of an ALNICO or SmCo solution would be lighter and/or smaller.  Power could be transferred into the pressure vessel through a magnetic coupler consisting of a permanent magnet rotor surrounding an internal stator/generator separated by a nonmagnetic stainless steel cup in the wall of the pressure vessel. The overall idea is to figure out how to accomplish the science goals with technology that can operate at 872°F.

While NASA is looking into silicon carbide semiconductors, there are other possibilities.  One possibility is old tech: vacuum tubes.  In 1959 RCA invented the nuvistor, an advanced 0.4”x0.8” subminiature metal/ceramic vacuum tube.  While the kinds of glass subminiature tubes used in the AN/PRC-6 “walkie-talkie” radio might work at these temperatures, the nuvistor technology would be a better starting point.  One interesting feature was the RCA “dark cathode” that operated 630 degrees cooler than standard filaments.  The reduced heater operating temperature resulted in greatly increased tube life and reliability.  Starting at Venus temperatures would significantly reduce filament power.  More advanced materials might allow a Venus ambient temperature cathode without heater power.  The main problem is thermionic emission leakage from the grid, which limited the maximum temperature for the nuvistor.  In an advanced design, vacuum depositing a silicon dioxide film on the grid might produce an analog of an insulated gate, suppressing grid leakage.  There are metal-ceramic transmitter tubes like the 4CX150 that could be used as a starting point for developing high-temperature transmitter finals.  Circuit connections would need to be welded rather than soldered.  Most components would need to be rethought since traditional insulators will not work.  Capacitors could be air, glass, mica, or suitable ceramics.  Resistors could be metal film on ceramic or wire-wound on ceramic cores.  Inductors would be printed on ceramic laminated substrates or air-wound on ceramic spacers.  This is mostly existing radio technology.

One application would be small instrument packages that could be dropped in large numbers, consisting of a few simple sensors, a vacuum tube transmitter, and a solid electrolyte battery.  These are batteries already in use by the military.  They are extremely rugged and are completely solid and inactive at room temperature.  They are intended to run at temperatures in the Venus range where the electrolyte melts and becomes active.  Normally these batteries are actuated by pyrotechnic charges in artillery shells, rockets, or such but they could be part of a constellation of small Venus probes reporting temperature, seismic activity, or other data over wide areas for a limited time.  They would easily survive a multi-year space flight prior to insertion.  Multiple waves of probes could be used for longer data sets.

A long-term lander with a wind power source could support a wider range of sensors over a longer time frame.  With a method to generate high enough voltages and development of a high temperature photo cathode, it should be possible to use an image or line orthicon to transmit spectra.  Sapphire, ALON, or quartz windows would allow light sensing and slow-scan imaging.  Decades of television before the 1960’s demonstrated that this is well within the range of tube technology.  Mechanical scanning from an even earlier era is another possibility.  With magnetic bearings in a vacuum environment the scanner power consumption could be very low.  An idea brought up by various people is that you don’t need a computer or controller on the surface; you just need a receiver and transmitter in the lander with a control computer in the orbiter or orbiters.  Kind of like a really expensive drone.

Although NASA is looking into making processor chips out of silicon carbide, a non-trivial task, for over a decade computers were designed with vacuum tubes.  All logic functions, nand, nor, register, etc, can be handled by tubes, which in modern guise could be very small and very low powered compared to the best of the tube era, the nuvistor. While the original tube computers were monsters, they needed to run fast to solve major problems in a reasonable amount of time.  You don’t need much of a computer to miss a rock or transmit some data.  Specifically, a one-bit architecture like the PDP-8/S, WANG 500, or Motorola MC14500B with a little memory can compute anything with a minimum of physical hardware.  While it would be slow, it would minimize size and power consumption while providing adequate control for the lander.  A high temperature version of the Mercury computer program store could be a possibility here.

## A23 Panel Mount Battery Holder

If you decide to use an A23 battery (small cylindrical 12V) in a project you will discover that there are no A23 panel mount holders available.  If you don’t want to open your enclosure to change batteries, here’s a suggestion.  The A23 fits in a Bussmann HPF fuse holder but is slightly too short.  You can use a 3/8″ (or 100 mm) diameter brass disk,  0.280″ (or 7.1mm) long, dropped into the panel side of the holder to extend the back contact.    Insert the negative end of the battery into the cap where it is held by friction and screw in the cap with the battery positive end against the brass spacer.  The internal spring will compress about 0.035″ as the cap is screwed in to maintain battery contact.  The Bussmann terminal labeled “LINE” will then be the +12 terminal.

Bussmann makes variants of the HPF holder for non-standard fuses that still require a (shorter) brass spacer but the plain HPF is the most common and easiest to find.  allfuses.com had by far the best price for these I could locate.

## Reinstalling screws into plastic

We live in a world of plastic consumer goods held together with screws.  These are thread-forming screws with sharp threads that cut threads into unthreaded holes in the molded plastic parts with the intention of never being removed.  Unfortunately sometimes removal is necessary for repair or, increasingly, simply to replace batteries in inexpensive goods.  The problem is that simply screwing the fasteners back in cuts new threads each time, destroying the integrity of the plastic threads and the strength of the joint.  All is not lost, however:

This technique works as well for reinstalling wood screws without damaging the threads in the wood.  It also works well to avoid cross threading things like wide-mouth cosmetic jars and threaded photographic filters, especially ones made from aluminum.

While I’ve done this for decades, I was reminded that it is not a universally known technique while working on my Dyson vacuum.  These are pricey vacuums with the subassemblies held together internally with screws that you really want to be careful with.  The subassemblies themselves snap to each other.  Dyson only sells subassemblies on their web site that can be replaced without removing and replacing screws.   As all I needed were beater bars and not the entire floor head I kept looking.  I found the smaller parts I needed at evacuum.com for much less than the assembly cost.  After carefully removing the old parts and installing the new screwed on parts without damage I realized why Dyson only sold snap-on parts to consumers but sold smaller parts to dealers.  They did not want consumers to inadvertently  damage their units trying to repair them, but assumed repair shops would know how to do this safely.

Hence this post.  I hope it helps you with future plastic and wood repairs.