Build a high voltage power supply with load regulation and current limiting using easy obtainable parts. The output voltage is adjustable between ca. 100V and 500V. The output current is in the range of milliamperes @ 100V to several hundreds of micro amperes @ 500V.

There are times where you need higher voltages than the usual range up to 15V, 24V or 48V.When you are working with nixie tubes, Geiger-Muller tubes, photomultipliers or when you want to build a time domain reflectometer, you will need DC voltages of 200V or higher. Also when you want to check zener diodes with a zener voltages going up to 200V or you want to check the leakage current of capacitors with voltage ratings up to 630V, you will need a power supply that is capable of generating fairly high voltages.
So how do we start ? Well, first of all we need to decide what direction we want to go. My target was to aim for a voltage of maximum 500V because that would be enough for most of the applications. We don't want to die instantly when touching the output, so lets choose for severe pain in the range of milli-amperes, which also will be enough for most of the mentioned applications.
The easiest way to generate high voltage is to use a flyback transformer with a suitable primary-to-secondary-winding-ratio to boost up the voltage using an oscillator, like a blocking oscillator, a royer oscillator, a Mazzilli Zero Voltage Switching oscillator or a simple 555 oscillator with a driver transistor.
Hm, but projects with flyback transformers are more difficult for others to build, because you either need to wind your own transformer or buy a similar one.
So let's keep it simple and go for a boost converter using an inductor to step up the voltage to what we need.

See figure 1 for the boost converter concept.

The MOSFET Q1 is used as a switch and is controlled by a PWM signal. When the MOSFET is switched on, a constant voltage (in this case +12V) is put over the inductor L1. When a constant voltage is put over an inductor, the current through the inductor will rise linear. The duty cycle of the PWM signal determines how long the MOSFET is switched on, thus how long we allow the current through the inductor to rise.  Meanwhile the current is rising, the magnetic field in the core of the inductor is increasing and this way energy is stored by the inductor. As long as the MOSFET is conducting, the diode D1 is reversed biased and will not conduct.
When the MOSFET is switched off, the current through the inductor suddenly comes to a stop. The build up magnetic field in the core of the inductor will collapse and the stored energy is released. This release of energy causes a sudden voltage jump (kick-back) at the junction between the inductor and the drain of the MOSFET. The height of this voltage is proportional to the time that we allowed the current through the inductor rise, in other words, proportional to the time that the MOSFET was switched on. The released energy is stored in C2 via D1, because D1 will be forward biased by the high voltage at the drain of the MOSFET.

But will we be able to step up a voltage of lets say 12V up to 500V with an inductor ?
 Theoretically it should be possible when we take a big lumpy inductor with a nice big core, so it can store lots of energy. Lets take a big inductor of 10mH and take a fast switch so we can switch the current on and off in 10us, then we should end up with a voltage of :
V = L * di/dt => 10 mH * 1 A / 10us = 1000V
Ok, done !
But wait a minute. when we take a big lumpy inductor of 10mH, it will have a resistance of tens of Ohms, so to push 1A through the inductor, we need a voltage of tens of volts. Maybe we find a good big inductor with a lower resistance, so that problem is solved.
We forgot another effect that comes into play : core-saturation. When you have a big lumpy inductor, that means there are lots of windings that all generate their own magnetic field. The more windings the stronger the magnetic field will be. Also the more current you push through the inductor, the stronger the magnetic field will be. But you can not keep on increasing the current and expect the inductor to store the energy as a magnetic field in it's stomach, being the magnetic core.  This core also has its limit in housevesting magnetic flux so when increasing the current through an inductor, at a certain moment, the core will be saturated by the overwhelming magnetic field and because the magnetic field then stops building up, the inductor is not an inductor anymore, but becomes a short-circuit. It is the magnetic field that raises together with the raising current that puts a handbrake on the current-flow, forcing the current to change slowly. When this brake suddenly falls away, because the magnetic field can not keep up anymore, the current can flow unhindered and will raise to the maximum that is determined by supply voltage. In other words : smoke signals will arise at the horizon.
So we will need to find a compromise between inductor value and the current rating of the inductor and see what is common available.
I chose to put 2 inductors of 330uH/1A in series because they are easy to obtain and can handle enough current, being 1A. With 1A, we'll end up with at least some milliamperes at the output, if the efficiency of the boost converter is not too bad. With an input voltage of 12V and an output voltage of 500V, we have a voltage multiplication of about 41.5, so 1A through the inductor should result in some tens of milliamperes at the output if we don't waste too much power.
The next problem is to find a switch that can handle 500V. When we use a MOSFET or a transistor as a switching device, it's voltage rating should be at least 500V. Of course there are all kinds of high voltage MOSFETs and transistors, but that also makes the project more difficult to reproduce because these are not the most common parts.
So what if we want to stick to lets say a more common type of MOSFET ? I guess we need to make some cascode configuration in which we put 2 of the MOSFETS on top of eachother, so each MOSFET only has to handle half of the voltage.

See figure 2 for the boost configuration with 2 MOSFETs on top of each other and using 2 inductors in series.

The bottom MOSFET Q2 is controlled by the PWM signal. The gate of the upper MOSFET Q1 is connected to the supply rail via R1. This means that Q1 will conduct when its source voltage is at least 3V (the threshold gate voltage) lower than its gate voltage. This condition is met when Q2 is switched on. So when Q2 is switched on, Q1 will also be switched on.
When Q2 is switched off, its drain voltage will be pulled up by the kickback voltage of the inductor L1, which can be hundreds of volts. The source of Q1 is connected to the drain of Q2, so the source of Q1 will surely become higher than its gate voltage, meaning that Q1 will switch off. To prevent that the gate-source voltage of Q1 can become too high,  zener diode ZD1 is added to protect Q1. Without the zener diode, the MOSFET Q1 would certainly die, because the source voltage can go up to hundreds of volts, while the gate can not be higher than 12V. The zener diode protects against too high positive and too high negative voltage differences between the gate and the source.
Both R2 and R3 are added to help balancing the high voltage so it is divided equally over both MOSFETs when they are both switched off.

But with 2 MOSFETs on top of eachother, each would still have to handle at least 500V/2 = 250V when we need a maximum output of 500V.
Ok, that is not too bad, but maybe there is another trick to further decrease the voltage that both MOSFETs need to survive.
What if we use a voltage doubler to store the energy released by the inductor. Then the boost converter only needs to step up the voltage from 12V to 250V, because the voltage double would do the dirty work of doubling this voltage to 500V. The 2 MOSFETs would only have to be able to handle at least 125V each.  Now we are getting there.

See figure 3 for the boost converter with a voltage doubler to store the energy.

The voltage doubler consists of D1, D2, D3 and C2, C3, C4. When the MOSFETs are switched off, the inductor kickback voltage will make D1 conduct, so C3 is  charged up to the kickback voltage. When next the MOSFETs are switched on, the drain of Q1 will be at ground level. Because C3 is charge up to a high voltage, D2 will now conduct and C2 is charged by the voltage on C3. When next the MOSFETs are switched off again,  the inductor kickback voltage is again present at the drain of Q1, charging C3 again. C2 was still charged up to the kickback voltage from the previous cycle, so the voltage at the junction of D2 and D3 will now be 2x the inductor kickback voltage. D3 will pass this voltage to C4.
So both C2 and C3 will charge up to 1x the inductor kickback voltage, while C4 will have to handle 2x the inductor kickback voltage.

But next we'd also like some kind of feedback loop to control the output voltage in order to have some load regulation. Especially because the output can only deliver currents in the range of milliampere, we don't want the voltage to change too much when the current demand changes.
We know that the output voltage can be controlled by changing the duty cycle of the PWM signal, because that determines how long the MOSFETs are switched on and off. The higher the duty cycle, the higher the output voltage will be. So if we can feedback a part of the output voltage to a voltage controlled PWM oscillator and we can arrange this so the duty cycle of the PWM signal decreases when the fed back output voltage increases, we have made ourselves a control loop that will keep the output voltage steady within certain limits.

See figure 4 for the voltage feedback concept of a voltage controlled PWM oscillator.

The oscillator is using a sawtooth signal that is compared against a voltage level that is derived from the output voltage. This comparison results in a PWM signal with a duty cycle proportional to that voltage level. When the output voltage rises, the voltage level rises and the sawtooth signal is compared against a higher voltage. This results in a smaller duty cycle (shorter high going pulses) meaning that the MOSFET is switched on for a shorter time. This causes the output voltage to decrease because less energy was stored in the inductor. So we got ourselves a voltage stabilising feedback loop that will react when the output voltage is increasing or decreasing.The only extra thing we want is to protect the inductor and MOSFETs from too high currents. When the voltage feedback loop tries to make the duty cycle 100% because of a heavy load on the output, the MOSFETs will be switched on continuously and the inductor will be driven into saturation. This will certainly cause either the inductor or the MOSFETs to die prematurely. So it would be good to have some kind of current limiting to prevent this from happening.

See figure 5 for the implementation of the current limiting.

Rsense is added to measure the current through the MOSFETs and the inductor. The voltage drop over Rsense is proportional to the current flowing through it. When this voltage drop becomes higher than 0.7V (one Vbe : base-emitter voltage drop) , Q3 will start conducting and short circuits the PWM signal to ground, so the MOSFETs are forced to switch off until the current is low enough to make Q3 cut off again. This way we have a crude current limiter that will protect the inductor and MOSFETs from over-current.

See figure 6 for the final practical implementation of all the goodies.

The PWM generator is not using a sawtooth oscillator as mentioned before, but i choose to use an old workhorse that is easily available, namely the NE555. The PWM generator is build around 2x NE555, U1 and U2. U1 is configured as a free running astable multivibrator with a frequency of around 21kHz and a duty cycle of about 97%. This means that the output of U1 stays high most of the time and only goes low very shortly. This short low going pulse is used to kick the monostable multivibrator build around U2 via it's low active trigger input. We are using the control voltage input pin 5 of U2 to control the duty cycle via Q3. When the output voltage is too high, Q3 will start conducting and will pull the control voltage pin 5 of U2 down to ground. This will decrease the ON time of the signal at the output pin 3 of the monostable U2 and thus decreases the duty cycle. 
 The voltage at pin 5 determines the time that the output of the monostable stays high, so that way we can control the duty cycle of the output signal at pin 3 of U2. The frequency of the PWM signal is defined by frequency at pin 3 of U1 because this one triggers the monostable U2 over and over again. 

In some circuits you see that 1x NE555 does all the work and that the control voltage pin 5 is used to change the frequency of the oscillator instead of the directly controlling the duty cycle. Changing the frequency also works, because the time that the MOSFET is switched on will also change along with the frequency. The disadvantage of changing the frequency is that the efficiency of the power transfer and thus of the boost converter as a whole changes with frequency.
The method applied here with 2x NE555 gives direct control of the duty cycle without affecting the frequency of the oscillator and is a true PWM signal

The current limiting is implemented using the reset input of U2. When the current through the MOSFETs and inductor comes close to 0.7A, Q4 will start conducting and will pull the reset input (pin 4) of U2 low. Because the reset input of U2 is low active, the signal at the output pin 3 will be low as long as we apply a low level at the reset input. Thus when the current is too high, the PWM output is cut off so the current can not rise any further. 
A red LED is added to give some feedback about when the current limiting is active, so you can see if the boost converter is getting close to the limit of what it can handle.
With potmeter P1 we define how much of the output voltage is fed back and used to control the output voltage. This allows us to adjust the output voltage somewhere between 100V and 500V. When adjusting the output voltage to 100V, the output can deliver more output current than when adjusting the output voltage to 500V, because you can not generate more power than you feed in at the input.

P.S. : 
  • The 2 MOSFETs should be placed on a cooling bracket that is capable of dissipating a few Watts of power.
  • The capacitor at the output should have a voltage rating that is at least the maximum output voltage.
  • The diodes at the output should have a reverse voltage rating that is at least the maximum output voltage.
  • Don't touch the output when the power supply is switched on because i know how it feels and smells and i can not recommend it.
  • Don't use high value capacitors at the output, because driven by high voltages they can store lots of energy. The more energy you store the more painful and even lethal the power supply becomes. The energy is 1/2 * C * V^2.and should stay below 1 Joule to keep things safe enough,, especially for people wearing a pacemaker..