On the left, there's the STM32F101, on the right the Nokia LCD. The two are directly connected, with only a resistor on the PB2-pin: this pin has a double function on the STM32 as 'BOOT1' which has to be pulled down to get into the bootloader successfully. In a real phone, the LCD would be fed 1.8V on Vio and 2.5V on Vaux, but in most of the datasheets I read the Vio could be as high as 2.9V. The STM32 is happy with any voltage from 2.0 to 3.6V, so I decided to just feed everything off a single 2.5V line. This voltage is generated by a LM1117-1.8 linear power regulator, feeding off the 5V suplied to it by an USB-cable. This chip normally outputs 1.8V, but with the addition of a diode biasing it's ground pin by 0.7V, it happily outputs the needed 2.5V instead. The LCD is lit by a few internal white LEDs, which need a current-limited voltage of about 7.5V to function. This is generated by a very barebone boostconverter consisting of an 100uH inductor and the logic level N-channel-mosfet inside an IRF9952. (You can use any other logic level N-channel mosfet instead, by the way.) This boostconverter doesn't have any feedback: the STM32 just outputs a fixed square wave to feed it. The STM32 also needs to be programmed: I use the internal bootloader for that. The bootloader gets invoked when the STM32 resets and the BOOT0-pin is pulled high. Normally, the BOOT0-line is pulled down by the 10K resistor and the STM32 boots directly to it's program, but as soon as the serial port is connected, the idle voltage on it's TxD-pin will pull the BOOT0-pin high and the STM32 can be reprogrammed.