Digital IO is useful when pushing beyond the normal wireless/CAN set-up. There are endless possibilities, from using an input button to request a pit stop to a logic output starting a data logger.
For products capable of digital IO, or for configuration help, see Feature IO Module.
NOTE: The Expansion IO Module is based on this module and the configuration options are the same.
The Pilot-CAN can use the following input modes:
- Set Value By State - sets the stream to zero (pin low) or one (pin high) but you can use the Lower/Upper limits to set a specific value.
- Increment When Low/High - If the pin is in the given state then the output stream value (say on the CAN bus) will continually increment, otherwise it stays the same.
- Set Value When Low/High - the system outputs a value according to the pin state.
- Bit Mask - the input pins combine as a bitmap
The Pilot-CAN can use the following output modes:
- Stream Value - the pin goes high if the received data is greater than a set value.
- Bit Mask - the output across multiple pins is derived from the stream value.
- Pulse Output - the output pin pulses as many times (per second) as the stream value. e.g. you could output 80 pulses per second if the user heart rate is 80.
- Pulse Width Modulation - PWM signals can be logged by many data systems and also smoothed into analogue signals.
Digital IO Pins Properties
Digital IO pin usage uses the (internal) "Feature Connector". The feature connector is labelled from 'A' to the number of pins available (e.g. the Pilot-CAN has six feature pins so has A to F). These pins are referred to as FeatureA, FeatureB etc or more succinctly IOA, IOB etc. Digital IO is controllable using the "Feature IO" module.
Offset IO - If, for example, you are using the first four pins for other modules (e.g. serial communications) then normally you would have to add four "VOID" entries in this module to ensure that this IO module doesn't try to take command of those (first four pins). This is not too taxing and only inconvenient if it's a few pins but becomes tedious if using yellowcog hardware with tens of IO pins (e.g. you would not want 31 "VOID" entries to use the 32nd pin!). To make everything clearer, just enter the number of pins to ignore before the configured IO streams start to apply. e.g. if Offset IO is "2" you would skip two pins and therefore the first configured stream is the third, IOC.
Address - the "Feature IO" module has been expanded by allowing one-or-more digital IO expanders to be connected. The "Expansion IO" variant of the feature module uses addressable expanders. Use this feature to set which you are addressing. '0' for the first, up to '7' for the eighth.
Digital IO Properties
The CPU can react to very short pulse of digital IO. The detection of IO state changes is a silicon-level hardware feature so detection is in the nanosecond range. Such a short pulse will cause the stream value to change state rapidly twice and if you are outputting on something like CAN then it might not ever appear on the bus. This "hold positive" option will force any (short-term) high pulse to be held in the data stream for the number of milliseconds specified.
All modules have this panel. Options are:
- Type – is determined when first adding the module and governs which module properties can be configured.
- Name – used to identify the module in the module list but may also play a part on the embedded device, for example it may be required for it to appear in the outputted data.
- Enable on Pilot – if this is set then this config item will be included and enabled when transferred to the Pilot. If not, then it will still be editable on the PC but will not be used by the Pilot.
- Default Filter – see Streams, Advanced Concepts.
- User Number – This can be used to identify this module elsewhere in the system. For example, by outputting this number whenever the device is connected. In general, it can be left as zero.