This project is to convert a 1/2 ton or 1 ton arbor press to check valve spring height
vs PSI using a load cell and rotary encoder. This project uses a 1/2 ton arbor press
to compress a valve spring to it's working or test length and give a readout of
compression force in Pounds Per Square Inch (PSI) to compare to specifications. A one
ton arbor press version is in progress but the issue with the 1 ton from Harbor
Freight is that the gear, housing and rack are quite sloppy which makes it difficult
to hold the start-up calibration. Either version of the the arbor press has a few
modifications as described below.
The arbor press base has only one mod, that being one of the ram adjustment
screws is drilled and tapped for a small bolt to fix the rotary encoder body
stationary while its shaft rotates with the gear shaft.
The ram was removed and the bottom end drilled and tapped to fix a 2 1/2"
aluminum disk approximately 0.225" thick with a countersunk 1/4"-20 flat head hex
drive bolt. This disk will accomodate most spring diameters and the
countersunk fastener will allow the disk to mate flat to the load cell surface for
zeroing.
The rotary encoder has an 8mm bore. To attach the encoder to the gear shaft the
gear shaft is removed, placed in the lathe and an 8mm hole/bore is drilled in the
smaller end of the shaft. An appropriate length of 8mm round stock is cut and fitted
to connect the encoder bore and the 8mm bore in the gear shaft. The encoder has grub
screws but fit in the gear shaft can easily be made as a press fit or can also be
drilled and tapped for grub screws. To keep the rotary encoder housing fixed to
the arbor press, the provided encoder bracket is attached to the encoder with a
4mm hex drive screw/bolt and a small spacer of the correct thickness and then
screwed into the hole we drilled and tapped in one of the ram adjustment bolts.
The load cell is easy as it just rests on the arbor base under the ram and
disk. It could use some way to keep it centered under the disk that was affixed
to the bottom of the ram. Note: there is a warning on the load cell that would
indicate readings may not be accurate unless any pressure is centered on the load
cell disc. With the load cell in place on the base, this particular 1/2
ton press is limited to springs of not more than 3.1" of free spring length.
The electronics of the unit consists of a XIAO ESP32S3 SOC collecting and
processing the inputs from an HX711 load cell amplifier and the rotary encoder.
There is a capacitive touch switch mounted at the top and inside of the case for
tare operations and that 'zeros' the readings anytime after the unit is turned on.
The processor reads the load cell continuously but the rotary encoder used for the
length/distance reading is interrupt driven. The HX711 load cell amplifier is a
common part used for load cells and scales. There are other chips available but
this one appears to be a favorite. The display is an I2C 2004 LCD, 4 lines of 20
characters and was easy to use. Any number of alternative displays can be use
depending on your own creativity. My 1 ton arbor press in progress uses a CYD,
cheap yellow display, that has a graphics based 2.8" TFT LCD and is or will be
touch screen based.
There are endless ways to put the electronics together depending on which
ESP32 board you use. I used an ElectroCookie Mini 6P circuit board with an
ESP32C6 mini and the HX711 boards mounted and soldered directly to the 6P then
wired accordingly. The ElectroCookie circuit board can be soldered and the
traces lent itself nicely for the wiring. There are better ways to do this
but this is how mine wound up. Schematic to follow along with some pics in
the appropriate directory.
(in progress, more to come)
taking the load cell output and feeding the result to the ESP32S3, and the rotary
encoder feeding the spring height/length data also to the ESP32S3. The encoder
and load cell wiring are attached to a small generic circuit board that house the
ESP32S3 and the HX711 boards. This board and the I2C 2004 LCD are mounted in a
custom 3D printed case designed with Freecad. There is also a capacitive touch
switch cemented to the inside of the case specifically for a tare adjustment if
needed after startup. The capacitive touch switch appears to operate with about
a 1cm proximity and works fine through the 3mm thick case. The leads from the
sensors can be soldered directly to their connection point although I used
miniature 4 adn 5 pin male/female connectors.
The load cell is an LCF-6, 58mm 200kg (440lbs) unit that works very well.
Throughout the range of 0-440lbs there is not more than 0.01 inch of actual
compression of the cell and for that amount no correction is really necessary
when reading spring length. Most length and compression data specs are noted
with a 10% variation and spring lengths noted to 0.01". The load cell is required
to be calibrated with a separate app to get a calibration number for accurate
readings. This needs yet to be inserted into the code. Since the load cell i
s not 100% completely linear, this calibration number and some code to 'massage'
any variations are needed to increase accuracy. This code is not in the current
sketch. As mentioned, a HX711 generic load cell amplifier that supplies a 24 bit
DAC is generally used with load cells of this type.
The rotary encoder is a GHB-38, incremental, NPN output unit with 2048 PPR.
This needs to be calibrated for linear length movement of the arbor ram. Since
the gearing of the ram and horizontal shaft can vary from arbor to arbor the rotary
encoder needs to be calbrated. We can do this accurately measuring the movement
of the arbor ram and counting the number of pulses per inch for that distance using
a simple sketch, or by rotating the shaft a known number of degrees and computing
at 2048 pulses per 360 degrees of movement. In either case, some simple
calculations will give us the needed display numbers. Readout for length is to 0.01"
as most, if not all, spring specs are to hundreths. Since there is roughly 700
pulses per inch, accuracy to the 0.01" is an easy goal.