PSoC Torch Height Sensing
Cypress PSoC4 Pioneer Board for Capacitive Torch Height Sensing
We are evaluating whether this board can provide operating height sensing for an oxyfuel torch and initial height sensing for a plasma torch. This is an important funtion required in the CNC Torch Table.
The PSoc4 ("Programmable System on a Chip") is a small ARM microcontroller with flexible peripherals. One of the peripheral functions is Cypress' "CapSense" capacitive touch sensing. A relevant demo project, using the Arduino-form-factor "Pioneer" board is here.
Update: there is a smaller Cypress dev board now for only $ 4
10 Jan 2014
Important note on PSoC4 capacitance sensing: must use PRS clock mode to avoid nonlinear "dead spots" in sigma-delta A to D conversion.
12 August 2013
Make 4-sector ring for testing.
29 July 2013
- Coil spring support (see 24-July pics) is nifty for tolerating side impacts, but it swivels too freely about its vertical axis. Maybe it's just too cute and we should use a solid piece of conduit instead.
- I am skeptical about the performance of the ring sensor over edges, holes, and anything else that is not a simple uniform plate of metal.
- Simple minded control would cause torch to dive down when approaching an edge or passing a cutout
- Logic could tell z-axis to "hold position" (i.e. stop tracking) if we know that an edge or gap is coming up, but this would require much more sophisticated and brittle CAM programming
- My preferred solution would be a 4-sector ring, and assuming that at least one sector will be over solid metal. There may still be corner cases missed by a "track Z by the closest sector reading" policy but not many.
- Most commercial cap-sense ICs are set up to handle lots of inputs (i.e. keypads) so this is only a ring-fabrication and wiring issue. Making the ring out of PC-board material sounds good.
27 July 2013
Results from new flat aluminum sensing ring
- Signal is large, had to adjust PSoC A to D parameters to avoid overload
- Easily discriminates .050 inch steps, verified up to 0.5 inch standoff
- Loss of signal strength at edge of plate: 0.25 inch standoff over solid plate measures the same as 0.10 inch standoff centered over plate edge.
24 July 2013
Working on a new sensing ring featuring
- Made from sheet metal, the larger electrode area should provide more signal
- Coil spring mount
- Protects against accidental damage because it bends when hit but springs back to original position
- Coax signal line runs through hollow center of coil spring, providing a grounded secondary shield
- Wood split clamp provides electrical insulation for ring
21 July 2013
We would like to place the circuit board in a shielded enclosure a foot or so from the torch itself, especially in the case of plasma torch application. Therefore I tried connecting the sensing electrode through about 2ft of coaxial cable. I used RG6/U type "CATV" coax (used with cable TV and antennas) because it is a foam core, low-capacitance cable, nominally ~16pf/ft. The PSoC chip supports "driven shield" so I used it. There are two subtypes of driven shield, "precharge by Vref buffer" and "precharge by IO buffer", it is not yet clear which is most appropriate.
To help protect the CapSense input pin from noise spikes (specifically a concern about plasma torch RF noise damaging the chip) I placed a 12pf capacitor in series with the sensing electrode. I made a ring shape out of insulated 14AWG solid house wiring:
Initial tests show plenty of signal close to the plate (the steps in this staircase are 0.050 inch movements), but sensitivity dropping off by 1/4" or so:
However the following technical issues need to be explored:
- Is the sensor adequately protected against plasma noise damage?
- How should the system reject long-term (time, temperature, etc.) drift?
- Will there be enough signal for oxyfuel cutting height tracking?
- Despite using shielded (coax), there is still some sensitivity to objects near the cable and circuit board.
- How will the system respond to sensing near the edge of a workpiece (where only half of the ring is over the work)? An informal check showed significant signal loss.
In addition we have to develop code which uses the distance sensing information to control a z-axis motor. This could run on the RAMPS Arduino, or it would be possible to execute this code on the PSoC4 Pioneer board; it has a pretty capable microprocessor. For that matter, the PSoC could also handle arc voltage sensing for a plasma torch.