Skip to content

Commit 7d3f556

Browse files
Update Analog/Digital Input HW and SW articles for Systemcore (#3079)
* Update Analog Input HW and SW articles for Systemcore * Update Digital Input HW and SW articles for Systemcore * fix typo Co-authored-by: Jason Daming <[email protected]> --------- Co-authored-by: Jason Daming <[email protected]>
1 parent c886c47 commit 7d3f556

16 files changed

+78
-126
lines changed

.github/workflows/inspector.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@
3939
"source/docs/software/pathplanning/trajectory-tutorial/entering-constants.rst",
4040
"source/docs/software/convenience-features/event-based.rst",
4141
"source/docs/software/dashboards/glass/field2d-widget.rst",
42-
"source/docs/software/hardware-apis/sensors/analog-inputs-software.rst",
43-
"source/docs/software/hardware-apis/sensors/digital-inputs-software.rst",
4442
"source/docs/software/hardware-apis/sensors/encoders-software.rst"
4543
]
4644
}

source/docs/hardware/sensors/accelerometers-hardware.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Peripheral multi-axis accelerometers may simply output multiple analog voltages
3131

3232
#### roboRIO built-in accelerometer
3333

34-
.. image:: images/roborio/roborio-accelerometer.svg
34+
.. image:: images/systemcore/roborio-accelerometer.svg
3535
:alt: The details of this accelerometer are printed on the roboRIO to the right of the NI logo.
3636

3737
The roboRIO has a built-in accelerometer, which does not need any external connections. You can find more details about how to use it in the :ref:`Built-in Accelerometer section <docs/software/hardware-apis/sensors/accelerometers-software:BuiltInAccelerometer>` of the software documentation.

source/docs/hardware/sensors/analog-inputs-hardware.rst

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,46 @@
22

33
.. note:: This section covers analog input hardware. For a software guide to analog inputs, see :ref:`docs/software/hardware-apis/sensors/analog-inputs-software:Analog Inputs - Software`.
44

5-
An [analog signal](https://en.wikipedia.org/wiki/Analog_signal) is a signal whose value can lie anywhere in a continuous interval. This lies in stark contrast to a :doc:`digital signal <digital-inputs-hardware>`, which can take only one of several discrete values. The roboRIO's analog input ports allow the measurement of analog signals with values from 0V to 5V.
5+
An [analog signal](https://en.wikipedia.org/wiki/Analog_signal) is a signal whose value can lie anywhere in a continuous interval. This lies in stark contrast to a :doc:`digital signal <digital-inputs-hardware>`, which can take only one of several discrete values. The Systemcore's analog input ports allow the measurement of analog signals with values from 0V to 3.3V.
66

7-
In practice, there is no way to measure a "true" analog signal with a digital device such as a computer (like the roboRIO). Accordingly, the analog inputs are actually measured as a 12-bit digital signal - however, this is quite a high resolution [1]_.
7+
.. important:: Systemcore Analog Inputs are 3.3 volts, whereas the roboRIO was 5 volts.
88

9-
Analog inputs are typically (but not always!) used for sensors whose measurements vary continuously over a range, such as :doc:`potentiometers <analog-potentiometers-hardware>`, as they can communicate by outputting a voltage proportional to their measurements.
9+
In practice, there is no way to measure a "true" analog signal with a digital device such as a computer (like the Systemcore). Accordingly, the analog inputs are actually measured as a 12-bit digital signal - however, this is quite a high resolution [1]_.
1010

11-
## Connecting to roboRIO analog input ports
11+
Analog inputs are typically used with sensors that produce continuously varying measurements. :doc:`Potentiometers <analog-potentiometers-hardware>` are a good example, as they can communicate by outputting a voltage proportional to their measurements.
1212

13-
.. note:: An additional four analog inputs are available via the "MXP" expansion port. To use these, a breakout board of some sort that connects to the MXP is needed.
13+
## Connecting to Systemcore analog input ports
1414

1515
.. warning:: Always consult the technical specifications of the sensor you are using *before* wiring the sensor, to ensure that the correct wire is being connected to each pin. Failure to do so can result in damage to the sensor or the RIO.
1616

17-
.. warning:: **Never** directly connect the power pin to the ground pin on any port on the roboRIO! This will trigger protection features on the roboRIO and may result in unexpected behavior.
17+
.. warning:: **Never** directly connect the power pin to the ground pin on any port on the Systemcore! This will trigger protection features on the Systemcore and may result in unexpected behavior.
1818

19-
.. image:: images/roborio/roborio-aio.svg
20-
:alt: The roboRIO, with the location of the Analog Inputs highlighted.
19+
.. image:: images/systemcore/systemcore-smartio.png
20+
:alt: The Systemcore, with the location of the Smart I/O ports highlighted.
2121

22-
The roboRIO has 4 built-in analog input ports (numbered 0-3), as seen in the image above. Each port has three pins - signal ("S"), power ("V"), and ground ("|ground|"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the analog input ports - there is a constant 5V potential difference between the "power" and the "ground" pins [2]_. The signal pin is the pin on which the signal is actually measured.
22+
The Systemcore has 6 Smart I/O ports (numbered 0-5), as seen in the image above. Each port has three pins - signal, power ("3.3V"), and ground ("gnd"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the analog input ports - there is a constant 3.3V potential difference between the "power" and the "ground" pins [2]_. The signal pin is the pin on which the signal is actually measured.
2323

2424
### Connecting a sensor to a single analog input port
2525

2626
.. note:: Some sensors (such as :doc:`potentiometers <analog-potentiometers-hardware>`) may have interchangeable power and ground connections.
2727

28-
Most sensors that connect to analog input ports will have three wires - signal, power, and ground - corresponding precisely to the three pins of the analog input ports. They should be connected accordingly.
28+
Most analog sensors will have three wires - signal, power, and ground - corresponding precisely to the three pins of the Smart I/O ports. They should be connected accordingly.
2929

3030
.. image:: images/accelerometers-hardware/adxl193-single-axis-accelerometer-to-roborio.svg
3131
:alt: Hooking a ADXL193 single axis accelerometer to an analog input on the roboRIO.
3232

33+
.. todo:: Update above image to use the Systemcore Smart I/O ports.
34+
3335
### Connecting a sensor to multiple analog input ports
3436

3537
Some sensors may need to connect to multiple analog input ports in order to function. In general, these sensors will only ever require a single power and a single ground pin - only the signal pin of the additional port(s) will be needed. The image below is shows an analog accelerometer that requires three analog input ports, but similar wiring can be used for analog sensors requiring two analog input ports.
3638

3739
.. image:: images/analog-inputs-hardware/triple-axis-accelerometer-to-roborio.svg
3840
:alt: Hooking a triple axis accelerometer to three different analog input channels of the roboRIO.
3941

40-
.. |ground| unicode:: 0x23DA
42+
.. todo:: Update above image to use the Systemcore Smart I/O ports.
4143

4244
## Footnotes
4345

44-
.. [1] A 12-bit resolution yields $2^{12}$, or 4096 different values. For a 5V range, that's an effective resolution of approximately 1.2 mV, or .0012V. The actual accuracy specification is plus-or-minus 50mV, so the discretization is not the limiting factor in the measurement accuracy.
46+
.. [1] A 12-bit resolution yields $2^{12}$, or 4096 different values. For a 3.3V range, that's an effective resolution of approximately 0.8 mV, or .0008V. The actual accuracy of the measurement will be less, so the discretization is not the limiting factor in the measurement accuracy.
4547
.. [2] All power pins are actually connected to a single rail, as are all ground pins - there is no need to use the power/ground pins corresponding to a given signal pin.

source/docs/hardware/sensors/digital-inputs-hardware.rst

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,55 @@
44

55
A [digital signal](https://en.wikipedia.org/wiki/Digital_signal) is a signal that can be in one of several discrete states. In the vast majority of cases, the signal is the voltage in a wire, and there are only two states for a digital signal - high, or low (also denoted 1 and 0, or true and false, respectively).
66

7-
The roboRIO's built-in digital input-output ports (or "DIO") ports function on 5V, so "high" corresponds to a signal of 5V, and "low" to a signal of 0V [1]_ [2]_.
7+
The Systemcore's built-in Smart Input/Output ports (or "Smart I/O") ports function on 3.3V, so "high" corresponds to a signal of 3.3V, and "low" to a signal of 0V [1]_.
88

9-
## Connecting to the roboRIO DIO ports
10-
11-
.. note:: Additional DIO ports are available through the "MXP" expansion port. To use these, a breakout board of some sort that connects to the MXP is needed.
9+
## Connecting to the Systemcore Smart I/O ports
1210

1311
.. warning:: Always consult the technical specifications of the sensor you are using *before* wiring the sensor, to ensure that the correct wire is being connected to each pin. Failure to do so can result in damage to the device.
1412

15-
.. warning:: **Never** directly connect the power pin to the ground pin on any port on the roboRIO! This will trigger protection features on the roboRIO and may result in unexpected behavior.
13+
.. warning:: **Never** directly connect the power pin to the ground pin on any port on the Systemcore! This will trigger protection features on the Systemcore and may result in unexpected behavior.
14+
15+
.. image:: images/systemcore/systemcore-smartio.png
16+
:alt: The Systemcore, with the location of the Smart I/O ports highlighted.
1617

17-
.. image:: images/roborio/roborio-dio.svg
18-
:alt: roboRIO showing the DIO pins on the left side.
18+
The Systemcore has 6 Smart I/O ports (numbered 0-5), as seen in the image above. Each port has three pins - signal, power ("3.3V"), and ground ("gnd"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the analog input ports - there is a constant 3.3V potential difference between the "power" and the "ground" pins [2]_. The signal pin is the pin on which the signal is actually measured.
1919

20-
The roboRIO has 10 built-in DIO ports (numbered 0-9), as seen in the image above. Each port has three pins - signal ("S"), power ("V"), and ground ("|ground|"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the DIO ports - there is a constant 5V potential difference between the "power" and the "ground" pins [3]_ - the "power" pin corresponds to the "high" state (5V), and the "ground" to "low" (0V). The signal pin is the pin on which the signal is actually measured (or, when used as an output, the pin that sends the signal).
20+
All Smart I/O ports have built-in "pull-down" resistors between the power pins and the signal pins - these ensure that when the signal pin is "floating" (i.e. is not connected to any circuit), they consistently remain in a "low" state.
2121

22-
All DIO ports have built-in "pull-up" resistors between the power pins and the signal pins - these ensure that when the signal pin is "floating" (i.e. is not connected to any circuit), they consistently remain in a "high" state.
22+
.. warning:: The roboRIO had pull-up resistors instead of pull-down resistors, so the behavior of the Smart I/O ports is different from that of the roboRIO's digital input ports. This means that sensors designed for the roboRIO's digital input ports may have different wiring for the Smart I/O ports.
2323

2424
### Connecting a simple switch to a DIO port
2525

26-
The simplest device that can be connected to a DIO port is a switch (such as a :ref:`limit switch <docs/hardware/sensors/proximity-switches:Mechanical proximity switches ("limit switches")>`). When a switch is connected correctly to a DIO port, the port will read "high" when the circuit is open, and "low" when the circuit is closed.
26+
The simplest device that can be connected to a DIO port is a switch (such as a :ref:`limit switch <docs/hardware/sensors/proximity-switches:Mechanical proximity switches ("limit switches")>`). When a switch is connected correctly to a DIO port, the port will read "low" when the circuit is open, and "high" when the circuit is closed.
2727

28-
A simple switch does not need to be powered, and thus only has two wires. Switches should be wired between the *signal* and the *ground* pins of the DIO port. When the switch circuit is open, the signal pin will float, and the pull-up resistor will ensure that it reads "high." When the switch circuit is closed, it will connect directly to the ground rail, and thus read "low."
28+
A simple switch does not need to be powered, and thus only has two wires. Switches should be wired between the *signal* and the *power* pins of the DIO port. When the switch circuit is open, the signal pin will float, and the pull-down resistor will ensure that it reads "low." When the switch circuit is closed, it will connect directly to the power rail, and thus read "high".
2929

3030
.. image:: images/digital-inputs-hardware/limit-switch-to-roborio.svg
3131
:alt: Connecting a normally open limit switch to a DIO channel of the roboRIO.
3232

33+
.. todo:: Update above image to use the Systemcore Smart I/O ports and wiring for pull-down resistors.
34+
3335
### Connecting a powered sensor to a DIO port
3436

3537
Many digital sensors (such as most no-contact proximity switches) require power in order to work. A powered sensor will generally have three wires - signal, power, and ground. These should be connected to the corresponding pins of the DIO port.
3638

3739
.. image:: images/digital-inputs-hardware/hall-effect-sensor-to-roborio.svg
3840
:alt: Connecting a Hall Effect sensor to a roboRIO DIO channel.
3941

42+
.. todo:: Update above image to use the Systemcore Smart I/O ports.
43+
44+
.. warning:: The roboRIO provided 5V power to the "power" pin of its DIO ports, whereas the Systemcore provides 3.3V. Sensors designed for the roboRIO's DIO ports may not work correctly when connected to the Systemcore's Smart I/O ports. Please consult with the sensor datasheet to ensure it can run from 3.3V.
45+
4046
### Connecting a sensor that uses multiple DIO ports
4147

4248
Some sensors (such as :doc:`quadrature encoders <encoders-hardware>`) may need to connect to multiple DIO ports in order to function. In general, these sensors will only ever require a single power and a single ground pin - only the signal pin of the additional port(s) will be needed.
4349

4450
.. image:: images/digital-inputs-hardware/e4t-oem-miniature-optical-encoder-to-roborio.svg
4551
:alt: Connecting a E4T Optical Encoder to two different DIO ports of the roboRIO.
4652

47-
.. |ground| unicode:: 0x23DA
53+
.. todo:: Update above image to use the Systemcore Smart I/O ports.
4854

4955
## Footnotes
5056

5157
.. [1] More precisely, the signal reads "high" when it rises above 2.0V, and reads "low" when it falls back below 0.8V - behavior between these two thresholds is not guaranteed to be consistent.
52-
.. [2] The roboRIO also offers 3.3V logic via the "MXP" expansion port; however, the use of this is far less common than the 5V.
53-
.. [3] All power pins are actually connected to a single rail, as are all ground pins - there is no need to use the power/ground pins corresponding to a given signal pin.
58+
.. [2] All power pins are actually connected to a single rail, as are all ground pins - there is no need to use the power/ground pins corresponding to a given signal pin.

source/docs/hardware/sensors/images/roborio/roborio-aio.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/docs/hardware/sensors/images/roborio/roborio-accelerometer.svg renamed to source/docs/hardware/sensors/images/systemcore/roborio-accelerometer.svg

File renamed without changes.

source/docs/hardware/sensors/images/roborio/roborio-can.svg renamed to source/docs/hardware/sensors/images/systemcore/roborio-can.svg

File renamed without changes.

source/docs/hardware/sensors/images/roborio/roborio-dio.svg renamed to source/docs/hardware/sensors/images/systemcore/roborio-dio.svg

File renamed without changes.

source/docs/hardware/sensors/images/roborio/roborio-i2c.svg renamed to source/docs/hardware/sensors/images/systemcore/roborio-i2c.svg

File renamed without changes.

source/docs/hardware/sensors/images/roborio/roborio-mxp.svg renamed to source/docs/hardware/sensors/images/systemcore/roborio-mxp.svg

File renamed without changes.

0 commit comments

Comments
 (0)