FKM349VL Benchtop Mill: control, EMC2 LinuxCNC interface

The FKM349VL is one of many similar benchtop mills, Made in China. It’s size and power requirements make it quite suitable if you need a small machine that is still capable of machining aluminum alloy, and to some degree, even steel.

General characteristics – X travel = 490 mm, Y travel = 160 mm, Z travel = about 330 mm.
Table size is 700×180 mm

Spindle is MK3 with M12 draw-bar (this is the most significant limitation – only manual tool change!).

fkm349vl mill

The linear stages use 16 mm, 4 mm pitch ball screws. Motors are 4.5 Nm, 6 Amp nominal. These are quite powerful, plenty of torque for this machine. This allows velocities of about 1800-2200 mm/min with no steps lost.

The control electronics are all housed in a cabinet attached to the machine. All pretty nicely made (motors powered by roughly 50 VDC, from the toroidal transformer; the blue transformer provides 12 VDC for the control circuits):

fkm349vl control overview

The stepper drivers – Leadshine units, up to about 5.5 Amps, configured for 4.3 Amp peak, 3.1 Amp RMS. Type MD556, V2.5. The units are similar to the Leadshine M542 and M752 units. Aka, KL-5056, aka, Rhino RMCS-1102 – many similar units exist.
The stepper motors have 200 steps/rev; the drivers are configured for 8 microsteps per full step – this results in 1600 steps per rev.

fkm349vl stepper driver

By default, this machine came with a “CNC-Workbench” CNC controller, offered by W+W Automatisierung (www.ib-weigelt.de). I gave it a try but soon found out that it is not up to my requirements; it’s a nice little controller, for what it is, no complaints, but really only for very basic uses, and difficult to interface with other CAD/CAM software. Most of my other machinery either uses industrial control, or EMC2 (LinuxCNC), so the decision was soon made to adapt the control to EMC2.

EMC2 has a powerful hardware layer, using the parallel port for control input and output. To allow proper speed and noise immunity (very important if you don’t want to run into issues!), a little interface circuit was fabricated, on a piece of perf board:

fkm349vl interface brd

fkm349vl interface brd solder

fkm349vl control schematic

Nothing too fancy – low pass filter, Schmitt trigger, LED driver (the stepper driver use optocoupler inputs). The limit switches are combined by diode OR connections, switches are normally closed – to prevent machine damage in case of a broken wire.

The internal interface of the machine, originally used by the “CNC-workbench” controller uses a pretty uncommon high density D-SUB connector – 44 pins!

fkm349vl high density plug

First time I have seen this type of connector, but it offers a fair number of contacts, for a pretty reasonable price, and quite a bit of soldering effort!

The software implementation – let me know in case you need the EMC2 HAL files for reference. Also attached a little incremental encoder as a “handwheel”, using a second parallel port. Quite amazing what you can do with a second hand computer, a few parts, and free software!

Anodizing 7075 Alloy: Micro-Tel handles

Quite a few good tutorials exist for anodizing of aluminum, and pretty decent results can be achieved in any home shop equipped with a a sink and a few chemicals. For good results, with all the basic items mastered, the most critical item is the aluminum alloy. Generally speaking, any type of pure aluminum, and Al-Mg alloys are very much suitable for the anodization process. Zn, Si, Mn (and to some extend, Cu containing) alloys don’t work well.

The handles for the Micro-Tel MSR-904A receiver were machined from 7075 alloy, because of its strenght, and availability. 7075 has about 6% Zn, and 1.5% Cu, both of these elements are known to cause trouble when anodized. However, one can still try.

A quick, step-wise description of the process:

Step (1) – throughly clean/degrease the workpiece: first, I use methylated spirits, then, hot water and detergent, then rinse with water. Wear clean gloves.

Step (2) – etch with about 10% caustic soda. Room temperature.

eloxal naoh bath

As you can see, the part will turn black. This is typical for certain alloys.

Step (3) – use about 5% nitric acid to remove the black layer. Dip for a few minutes only. There will be some faint grey residue which needs to be brushed of mechanically (use a very clean brush – otherwise, it will contaminate the surface). Had to repeat the caustic etch twice to get a uniform and shiny surface.

eloxal hno3 bath

Step (4) – anodize. Mount the piece with heavy aluminum wire. For 7075 alloy, pure aluminum wire works. Alternatively, use thick titanium wire. Current needed is about 1.5-2.0 Amps per 100 cm2. I used 2 A, for the handle. As cathode, use a sheet of aluminum, lead, or titanium. I use just plain aluminum and it is working just fine. For the liquid, about 15-20% sulfuric acid (dilute 37% battery acid with destilled water 1:1 ratio). Keep at room temperature, cool with some ice (applied to the outside) if it heats up too much. Typical time needed is 30-60 minutes, depending on the temperature and layer thickness. Don’t let the acid heat up too much – the layer will stop growing.

eloxal oxidizing

eloxal pwr supply

Step (5) – densify by boiling in distilled water. Needs to be really boiling, not just hot!

eloxal boiling

After the first attempt – everything looked fine after step 4, but the handles turned pretty dark after densification.

eloxal handle too dark

Pretty much, a full failure.

So, etched off the oxide layer with 10% caustic soda, and repeated the process, with two modifications:

(1) Keeping the acid rather warm, about 30°C, and reduced anodizing time to 20 minutes. This will give a thinner layer.

(2) Added a bit of ammonium acetate to the water used for densification. You may also add a very small amount of acetic acid. Keeping the bath slightly acidic prevents darkening during the densification process for Zn/Cu containing alloys.

The final result:

eloxal handles final

It’s not perfectly silvery color, but a slight yellow-orange color (like lightly colored wood). And the layer is certainly not very thick. But good enough to protect the 7075 alloy from forming corrosion spots over time.

German Bakery: sourdough bread, ‘quark’ variety

Living in the US, I don’t want to miss good home-style bread. Sure, all kinds of bread are available here, but at a price, and you never really know what is inside.

This bread is about 60% rye, 40% wheet. Rye flour always requires the use of sourdough, and we have to consider two cases:

(1) You are the proud owner of some sourdough, or have a friend that has some.

(2) No sourdough at hand. Don’t worry. Sourdoug can be prepared, without any starters, at home.

(a) mix 50 g of dark or semi-dark rye flour with 50 g of water; stirr; leave at room temperature for 24 hours.
(b) add 100 g of dark or semi-dark rye flour and 100 g of water; stirr; leave at room temperature for 24 hours.
(c) add 100 g of dark or semi-dark rye flour and 100 g of water; stirr; leave at room temperature for 24 hours.
(d) add 100 g of dark or semi-dark rye flour and 100 g of water; stirr; leave at room temperature for 24 hours.
At this point, you should have quite a bit of sourdough ready, with small bubbles, and with no mold.

Some key items:
(1) Use boiled or otherwise chlorine-free water; tap water is perfectly fine but boil and let cool before use to remove any chlorination
(2) Use very clean utensils; store at a clean place – away from any sources of mold.
(3) Use a plain plastic or porcellain dish; don’t cover it; don’t use a metal dish.
(4) Temperature is fairly important – not too hot, not too cold.

For later use, best put some sourdough (~100 g) into the freezer.

Now, as you have sourdough now, let’s get started.

Step (1) – Take 100 g of sourdough, add 200 g of rye flour, and 200 g of water; leave at room temperature for 24 hours.

Step (2) – Add 400 g of rye flour, 500 g of water. Leave at room temperature for 24 hours.

Step (3) – Add 750 g wheet flour, 200 g of (warm) water, 30 g of salt (measure accurately!, mix in with the flour), 1 cube of yeast (available mainly in Europe – 42 g each; can be substituted by one package of active dry yeast), 500 g of ‘quark’ = curd cheese – low fat type.

Step (4) Knead properly, using your hands or strong machine; cover the dough with a towel, let the dough sit for about 1 to 1-1/2 hour to rise.

Step (5) Form any shape and size of bread. I prefer multiple small pieces. Use some wheet flour – the dough is fairly sticky.

Step (6) Let rise for about 30 minutes; preheat oven to 220-230°C.

Step (7) Bake. After 10 minutes. Reduce temperature to 170-180°C (depending on oven; I use a forced convection type: 170°C). Bake for another 45-60 minutes, depending on size of loaf. If you prefer a shiny crust brush with water (with a bit of corn starch added) immediately after removing from oven.

Step (8) Let cool. Don’t cut off pieces for at least 1 hours – other wise, steam will escape.

Enjoy!

Note – rye flour refers to semi-dark rye flour (not whole grain). In Germany, known as Type 1150. Wheat flour – best use any ‘bread flour’, in Germany, known as Type 1050. I use Type 405 because it is commonly available and it is amazingly cheap (currently EUR 0.32 per kg!!).

bread full

bread cut

Micro-Tel MSR-904A Microwave Receiver: a set of new handles

For a while I have been looking for a set of of spare handles for the MSR-904A, but to no avail; the unit was missing the handles – had some rough rack-mounting fixtures. Fortunately, most of the Micro-Tel equipment uses the same kind of handle, so at least I know how they should look like.

handle micro-tel

These handles are actually of a very nice design, and don’t look too complicated to fabricate. So I thought I would give it a try and machine a set of spares.

For the material I selected a piece of 7075 alloy T651 temper (fully hardened, stress relieved). This is a quite strong alloy, and it needs to be because the MSR-904A is heavy, and the full weight rests on handles if it is set down on the floor/carried around, etc.

How to machine such handles – well, it is best done using a CNC mill, and luckily, I have one in the basement, even if it is just a small machine.
fkm349vl mill

It is a FKM349VL table-top mill, not a very heavy machine, but pretty capable if used correctly. This is not for heavy loads and throughput-optimized toolpaths, but it can yield very usable accuracy, and the surface finish is very nice, provided that good tools are used. Typically, I get parts that are reproducible to within 0.01 mm, and absolute accuracy typically better than 0.03 mm, depending on how the machining goes.

handle intermediate pieces

Starting from a plate, first, the opening of the handle was machines, and chamfered. The original handle uses a radius chamfer, but well, I only have tooling for 45° chamfers around, fair enough.

Then, the holes were drilled, and countersunk, followed by machining of the left and right (short) edge.

A bit more tricky, the piece where the handle is mounted to the case. This is fairly thin, and some excess metal was left to allow easy clamping of the piece. Sure, there are other ways of achieving the same result, but it saves a lot of time if the vice doesn’t need to be re-adjusted, and if everything can be done in two or three clamp positions.

As one of the last steps, the excess metal is taken off.

handle removing excess

All in all, considerably more effort than I thought:

(1) Cut the plate to approximate size; machine one long side flat

(2) Machine handle cut-out

(3) Machine chamfer (upper side)

(4) Machine left and right edge (short sides)

(5) Spot drill, drill, and countersink holes

(6) Turn around – align

(7) Machine other chamfer

(8) Machine mounting piece

(9) Mount set of 4 pcs upside in vice

(10) Cut-off excess

(11) Cut recess of mount piece, left and right

(12) Machine front chamfer, 2x

(13) Deburr, finish

handles final

These were the tools used –

handle tools

And, not to forget, EMC2 with the Axis interface. Thank You EMC2 (LinuxCNC) team for providing such great software, free of charge!

handle axis

I might still anodize the handles – but first need to do some tests with 7075 alloy (never anodized this alloy before, and don’t want to waste the handles!).

Xmas Bakery: Nougat Plätzchen(=small cookies)

These are one of my favorite Christmas “Plätzchen”(=small cookies). A kind of nougat shortbread, covered with chocolate.
First, prepare a dough by thoroughy mixing/kneading (no machine needed, best use your hands):


250 g nougat (soften in microwave)

80 g butter (soft)

60 g sugar

300 g plain flour, German Type 405

1/2 teespoon baking poweder (throughly mix with flour)

a little bit of salt

1 egg

some vanillin powder (or vanilla essence)

Once properly mixed, make two rolls, and wrap in some plastic foil:
nougat

Let rest for several hours in the fridge, or overnight.

Then, form nice cookies, either manually, or by rolling it to about 3/16″-1/4″ thickness. Don’t roll too thin!

nougat ausstechen

nougat ready for oven

Bake in oven at medium temperature. For best result, use 165°C circulating air. Baking time is 10-12 minutes.

Let the cookies cool to room temperature. Eventually, your efforts will result in a pile of cookies ready to be chocolate-coated.
nougat baked

Then, melt

200 g baking chocolate

150 g of really dark chocolate

using a water bath (also to keep the chocolate warm during the coating process).

nougat chocolate application

For guests that are worried about too much chocolate, it always is a good idea to leave some of the cookies partially covered.

nougat final steps

Use non-stick paper, and let the cholocate solidify for at least 18 hours before packaging.
Store in odor-free, dry place. For best taste, let them rest for at least a few days.

Xmas Bakery: Christstollen

The time is right to get started with some Christmas bakery. Stollen, a long standing German Christmas tradition. It comes in various kinds and modifications, but there is only one truely original recipe.
Don’t use any self-rising flour, or baking powder – really Stollen always uses yeast to rise.

1 kg plain wheat flour, Type 405 according to German industrial norm (DIN) no. 10355

60 g of baking yeast (about 1.5 regular yeast cubes), can be subsituted by active dry yeast, but the real thing is always baked with fresh yeast, commonly available at all German supermarkets.

250 mL milk (warm up; not too hot!)

First, to get the yeast started, put all flour in a suitable bowl (plastic bowl most prefered), make a hole in the center, put in the yeast and mix with some milk to form a semi-liquid dough. Cover with some of the flour, and let it sit for 30 minutes.

stollen yeast

This is how it should look like.

Add:
1 egg, 1 egg yolk (some traditional recipes don’t use eggs, but I highly recommend it, otherwise, it will be a pretty ‘flat’ Stollen, unless you have a suitable mould)

180 g sugar (extra pure saccharose – just kidding; refilled with ordinary, plain sugar)
stollen extra pure saccharose

200 g butter (room temperature!)

and, the remaining part of the milk.

My traditional recipe doesn’t need any almonds – but these are common additions to other Stollens. Therefore, you might add 125 g of ground sweet almonds, and 50 g of ground bitter almonds, along with some more milk.
Also, you can add mace spice, but not too much!

Knead to a firm dough. If too dry, add some more milk. Don’t add too much, dough should not be sticky or too soft! Properly knead with your hands. No machines are required for this recipe.
Let this dough raise for at least 60 minutes at a warm place.

In the meantime, we prepare the additions:
200 g citronat (rather finely cut!) – candied peal of a special type of lemon
100 g orangeat (finely cut!) – candied orange peal
500 g raisins (wash throughly with at least 1 liter of boiling water, and pick out any that don’t look 100% perfect)

stollen ingredients

Key thing is that the citronat and orangeat are finely cut, nothing is worse than big chunks of this in the final Stollen.

Once the dough has rested long enough, the citronat, orangeat and raisins are added – best by flattening out the dough to about 3/4″ thickness, additing the ingredients, and then folding the dough – this will reduce the effort to form a uniform dough.

Finally, form a Stollen:
stollen ready for oven

Make sure to remove any raisins from the surface (these will scorch and give bitter taste) – just push them in, or remove and eat.

Let the Stollen raise for about 30-45 minutes (avoid air drafts, keep in well-heated room).

Then, bake in a pre-heated oven. Temperature: For best result, an electric baking oven is much prefered, circulating air type. Pre-heat to 200°C.
Insert the Stollen. This will help with retaining the shape.
After 10 minutes, set temperature to 165°C, and bake for another 60 minutes (cover with a piece of aluminum foil after 30 minutes).
Test with a wooden stick – if no dough adheres, everything went fine. Otherwise, leave for another 10-15 minutes.

stollen baked

While still hot, apply about 200 g of molten butter with a soft brush.
Cover with a layer of powdered sugar (prefereably, use pure powdered sugar without any other ingredients that are commonly use in ‘icing sugar’).
Carefully wrap in aluminum foil to provide a good seal.

stollen ready for storage

Now, the most difficult part, let it rest for about 4 weeks at a reasonably cool and dry place (guest bedroom, corridor, or similar place that is free of strong odors and free of damp).

Note: this recipe is all in metric units, rather than cups, ounces, etc, because this is about exact replication of a traditional Stollen. This will only work if done accurately, with precise weights, and well-controlled temperatures all throughout the process.

Wiltron 6659A Programmable Sweep Generator: EPROM images captured, some rubber items

The 6659A is running on no more than 10 kilobytes of code, stored in 5 pcs 2716 EPROMs. These were programmed in 1984 – just about 30 years ago. Just in time to capture a copy. Well, not just of their exteriors.

6659a eproms

Their contents –
wiltron6659a
-also contained are the data of the 4 frequency correction EPROMs.

Looking through the board, a very intriguing part: a DAC72C-CSB-I
6659a dac72c-csb-i

It is a 16 bit DAC, 30 ppm INL, 7 ppm/K gain drift. Merely, a resistance ladder, with a build-in 6.3 V reference. Still going for about 40-50 USD each! Very impressive case, for 1984 vintage, and still working just fine, to the current day.

While silicon chips last, rubber is subject to aging – in particular, the 4 rubber stand-offs that were holding the fan. Removal was no easy task – they were glued in with some Loctite, but eventually, I could remove them, and they were replaced by regular screws – not too much vibration anyway.

6659a rubber standoffs

USB RTL SDR 28.8 MHz Reference: VCXO

One of the shortcomings of the USB RTL SDR devices is the build-in oscillator. It is actually very stable and sufficient for all kinds of everyday uses, but I am using these SDR devices for narrowband applications, with down-converted microwave signals. So utmost frequency stability is a must.

Not only needs to frequency be stable, it is also a good idea lock all oscillators to a common reference, which typically is derived from a 10 MHz rubidium source (like in my lab), or a GPS-controlled VCXO.

How to get from 10 MHz to 28.8 MHz – well, not all that difficult, but needs quite a few parts. First, we need a circuit that can receive 10 Mhz signals, and clean them up and prepare them to be used by a PLL. Then, we need a VCXO (voltage controlled quarz oscillator) that can be tuned by the loop filter of the PLL to keep it at 28.8 MHz. The loop BW will be very very narrow, a few Hz at maximum. Comparator frequency can be up to 400 kHz, the largest common divider of 10000 and 28800; but I might select a value more like 100 kHz which can be readily derived from a 10 Mhz reference. There are plenty of programmable PLLs around, but I might just use a hardware solution here (only need to put together :288 and :100 dividers using some TTL logic).

The circuit-
rtl sdr 28-800 MHz ref pll

– nothing too fancy, and still needs some fine tuning. The xtal, it’s the original part de-soldered from the RTL SDR stick. These are actually pretty stable and well-behaved, at least for the devices I sourced from China.

The circuit employs a Pierce oscillator, build around a J310 FET. This is coupled into a common-bias amplifier, another J310, which provides the low output impedance. A matching network is added the make the circuit rather insensitive to changes in the load impedance. The circuits draws about 20 mA at 12 V. Not quite a power safer, hey, but this is not the objective here.

The items circled are just temporary parts, will need further optimization.

The big question – tuning range (pullability) of the xtal. Ideally, it should be a few 10s of ppm, to give the PLL some room to operate, and to account for aging effects over the years. Temperature-induced changes are on the order of a few ppm (see earlier post); but there is also drift, and other factors.

A quick test with some capacitors, and, stable oscillation can be found in a range of -1.8 to about 1.8 kHz around the 28.8 center frequency, this is quite satisfactory.

rtl sdr ref vcxo circuit

At the moment, still run with fixed capacitors, but I will add a varactor network to provide about 8 to 40 pF tuning capacity, by voltage input.
In an effort to keep phase noise down, I might employ a circuit used a lot for earlier projects, with anti-parallel varactor diodes.

rtl sdr ref 10 pf

rtl sdr ref 37 pF

The spectra look pretty clean, and the power is as expected, about -10..-6 dBm. I will use this output to drive the PLL, and add another amplifier to drive the RTL SDR R820T reference input – well shielded from everything else to avoid spurs from the divider and PLL circuits.

A quick test of the phase noise – hooked it up to a 3585A Spectrum Analyzer – there are some mains spurs, which will be reduced by adequate filtering once the circuit is fitted to a shielded box. Other than that, nothing really suspicious. All very close or at the noise floor of the 3585A.

10 pF sdr ref0

3585a noise floor

HPAK 3455A Digital Voltmeter, 34401A Digital Multimeter: switch-on behavior

It is often assumed that high precision instruments are better not switched off but left on running 24/7, just because it is to tedious to wait for the specified “warm-up” period. Mostly, this seems to be more of a habit than a real requirement, at least for multimeters and their build-in references. Let put it to a test.

With all good references back in Germany, we first need to fabricate a little substitute, a +5 V reference based on a MAX6350. This has roughly 0 ppm tempco around ambient temperatures, and +-0.02% initial accuracy.

max6350 5 v reference

Some caps were added to keep noise down.

With this reference fully ‘warmed up’, two instruments were used to monitor the output, a 34401A, with current calibration, and the recently repaired 3455A, with about 4 years old calibration.

The result:
3455a vs 34401a switch on

The 3455A provides 10 µV resolution, in the 10 V range. The 34401A – the displays shows 6.5 digits, same as for the 3455A, but the build in resolution, when read through GPIB, is about 1.3 µV.

As you can see, there is really no warm up. It is stable to ppm level, after a few seconds.

The offset of the two meters:

3455a switch on

About 4 ppm difference – not too bad; certainly, well within spec of these two instruments.

HPAK 3455A Digital Voltmeter: some cleaning, and a really low drift reference

The 3455A is a really nice unit if you are looking for a digital voltmeter/multimeter that is really accurate, and if you don’t want to spend too much. These units go for about USD 100 to 150, not bad, considering their performance – 6.5 digits.

This unit just needed some de-dusting, and was missing some screws. Build some time early 1979 (judging from the data codes, rather than the serial number), this unit doesn’t seem to have hand any issues over the last 35 years – while in service at Northrop Grumman.

Last calibration:
3455a cal sticker

Did a quick check vs the best reference I have in the lab, a 34401A.
3455a check

For a bit more through test, the 3455A was monitored for about 1 hour, with a low noise 9 V source at the input, and the differences logged.

3455a cal offset

Apparently, the 3455A is about 6.7 ppm low, vs. the 34401A. Which one is right, I can’t tell – the 34401A stability specification is about 20 ppm, after 90 days, far worse than the difference of the two meters.

The 3455A has a 11177B reference assembly. It has option S01 – no idea what option this is. HP P/N 03455-66520 Rev B.

The active part, a HP 1902-0926 thermostated Zener – very similar to the LM399, but not in the typical isolated (white) case. One thing is for sure, this part is now well aged!

3455a ref assy

3455a 11177b s01 ref assy board

The reference assembly has some remarkable 0.01% tracking resistors, with 1 ppm tempco – it doesn’t get much better even nowadays, and the resistors are in hermetically sealed cans, with glass seal, except one 1.0020 k +-0.01% resistor in the red resin package.

AC measurements were also carried out in the 10 Hz to 500 kHz range – it seems the 3455A even outperforms the 344401A for flatness, especially at the low end of frequencies.

SimonsDialogs – A wild collection of random thoughts, observations and learnings. Presented by Simon.