This project is based on an Arduino microcontroller. I used a seeeduino mega because I had it at hand, but it will work with any Arduino compatible (careful with  the PWM pin).
I started with an unregulated power supply, based on transformer, diodes and capacitors. It provides the following voltages:

* +6 VDC for the filament power supply
* +30 VDC for screen grid and plates
* +60 VDC if needed for power pentodes
* -15 VDC for bias
Since Arduino works at 5V, a number of interfaces were needed. The complete scheme is the following:
Curve Tracer
Switching Voltage Regulator
It is based on a LM3475 chip. I have used the circuit in its application note, just replacing RFB1 with a 562 Ohm resistor.
Voltage regulator for screen grid.
This grid is usually kept at a fixed voltage during measurement, so a simple circuit based on a trimpot and a transistor is enough.
Precise voltage regulator.
In order to achieve better precision in the measurements I added a precise shunt LM4030 that provides a 4093 mV reference to Arduino for the analog inputs. The resistor, connected to the 5 V, is 1.5 kOhm.
Multiplier circuit.
The DAC ( MCP4716 controlled via I2C lines from the Arduino)  only can provide a tension between 0 and nearly 5 volt. So in order to provide the plate voltage I selected a high voltage OpAmp OPA445. It is used in a classic circuit with R1 = 1.05 K and R2 = 20 K to provide a multiplier factor of 20. The output is connected to a partitioner (19K and 1K) that reduce the voltage to a range again suitable for the Arduino analog input.
Inverter
The control grid voltage is also generated via a DAC. This one is the simple version making use of the PWM feature filtered out by a resistor (56 K) and a capacitor (.1 uF). It generates a voltage between 0 and 5 V that goes to the inverter, again based on the OPA445, also in a classic circuit. In this case the two resistors have a value of 1 K and 4.02 K providing a multiplier of (nearly) 4. The actual voltage value can range from 0 to -13 V, more than enough for this kind of tubes.
Current measurement.
This circuit required several attempts and I ended up with a circuit based on a LM358N. The OpAmp is stressed to its limit in this circuit, so a inserted three diodes 1N4001 on its VCC pin to reduce the unregulated voltage that can swing to more than 31 V. As a result the circuit only works if the Plate voltage is below 26-27 V, depending on the load on the PS. Otherwise is quite good also at low values, much better than the usual differential circuit. The voltage drop on the shunt (10 Ohm) is minimal at the current required by these tubes, so I neglegted it in the measurement.
Thwe following are sets of curves for a Raytheon 6418. The first one is a triode configuration and the second one as a pentode.
These are a good match for the published curved. However, a lot of noise can be appreciated especially in the pentode configuration. This despite  filtering at the hardware level with capacitors and at software level. It is certaily due to the prototype wiring method:
The prototype is functional, albeit up to plate voltage of 27 V, while the PS can provide 60 V. To complete the project one should design the printed circuit, changing the component that cannot withstand the 60 V: OpAmp LM358N and 2N3904. Since I was able to retrieve online the missing parameters for the other tubes, I halted here this project and moved on to the radio design.