PT01A WingXine which can convert PPM to Analog AND vice verse
According the manual it can, but their usage of the PPM acronym is unclear.
Pulse Position Modulation encodes an analog value in the time between the rising or falling edge of two pulses. This is typically used in hobby radio control systems to send multiple servo signals over a single wire or rf link.
The servos themselves accept a form of Pulse Width Modulation which has a nominal duration of 1~2ms with a cycle time of approximately 16~22ms (60~45Hz). Analog position is encoded in the 1~2ms pulse width only, so the time between pulses (cycle time) is not important as long as the servo can handle the repetition rate (warning:- 'analog' servos may become unstable or even burn out at rates above 60Hz!).
When the PT01A is set to "Analog Voltage to PPM signal" mode it accepts two analog voltages ranging from 0~5V on input channels 2 and 3, and converts them to 1~2ms servo pulses on output channels 2 and 3. So this is a conversion from analog voltage to PWM, not PPM.
In "PPM Signal to Analog Voltage" mode, a PPM input is shown being applied to channel 1 only. The input signal is described as '1ms to 2ms positive pulse width' which is PWM not PPM, however this may refer to the PWM pulses encoded in the PPM stream.
In this mode the outputs are described as being a 0~5V analog voltage on channel 1, and 0~100% PWM on channels 2 and 3. This implies that the input is a 3 channel PPM pulse stream (consisting of a start pulse followed by 3 channel duration pulses, then a synchronizing gap before the next start pulse). So in this case it appears they are using the PPM acronym correctly.
there is only 1 single IC on there so I was wondering how it
It is probably a microcontroller (MCU) with an internal ADC and timer (and perhaps a DAC and/or PWM peripherals) running firmware that performs the various conversion functions.
With suitable code an Arduino could do the same job, though since it doesn't have a DAC the 0-5V analog output would have to be produced using PWM (which is what the Arduino's 'analog' output function actually does) passed through an RC filter to produce a (relatively) smooth DC voltage.