Since there are quite a few changes since the last release and there are quite a few possible combinations (as you can see below), it is possible that there are still some bugs present. I have tested each features with many test cases and combinations but a full coverage is practically impossible since there will be differences depending on which devices are connected to the CAN bus. So use some caution when you use a new feature for the first time with a new setup.
This release introduces quite a few new features. As you can see from the new menu, there are now 4 generic PWM outputs, a push button start feature, programmable on/off outputs (with the option of selecting which outputs are used), and CAN broadcasting. Also, all the PWM outputs can be set to output a signal that is compatible with an RC servo.

The generic PWM outputs allow you to select any of the IOx data as the load. The load can also be selected as any of the MS (MS2 or MS3) data or any other CAN device connected to the CAN bus and which is part of the same TunerStudio project. The duty cycle can be defined in an 8x8 table with the load as a function of RPM (the RPM is assumed to be from an MS with a CAN ID of 0) or as a 16 entry array. The output port can be any of the 8 channels from timer 1 and timer 2 (PTD0-7). You can also set the output signal to be compatible with an RC servo.





The push button start feature has been ported from the TinyIOx and is discussed here: http://forum.jbperf.com/viewtopic.php?f=9&t=1195#p6043.


The programmable on/off outputs are similar to what is available on the MS2 and MS3 (spare ports). The difference is that there are 8 outputs which can be selected to be any of the available outputs on the IOx, there are 3 conditions for each output and you can select the output channel from any controller on the CAN bus (as long as they are part of the TunerStudio project).


The CAN broadcasting allows the IOx to broadcast up to 8 frames 20 times per second. This is intended to be use with non-MS device which need to get some IOx data. The frame ID is defined from 4 bytes in hexadecimal which allows each frame to be an 11-bit or 29-bit ID of any value. If this is used with other MS protocol compatible devices on the CAN bus, care should be taken when selecting a frame ID so that there is no conflict with the MS protocol.


The way to set some PWM output as an RC servo signal involves setting the frequency of the timer corresponding to the output to 50Hz: this automatically sets the prescale (8) and frequency divider (233) to get a 50Hz frequency that allows the best accuracy for the RC servo signal. All the PWM outputs using a timer set like this but without the RC servo setting will have a normal 50Hz output that varies from 0 to 100%. Each specific PWM output needs to set as an RC servo signal as shown in the generic PWM outputs above and as shown below in the port settings (for MS2/Extra) and PWM outputs (for MS3).



Jean