.. _hardware_docs:

Communicating with external hardware using PsychoPy
=========================================================================

PsychoPy is able to communicate with a range of external hardware, like EEG recording devices and eye trackers. 

This page provides step-by-step instructions on how to communicate with some of the more commonly used hardware. The page is being updated regularly so if you don't see your device listed here please do post in the forum as we keep an eye on commonly-faced issues (and solutions!) there.


Communicating with EEG
-----------------------------
Before getting started with an EEG study in PsychoPy, we **highly** recommend reading relevant information on how to measure and understand :ref:`timing`. Although these guides will talk you through how to communicate with EEG hardware, they can really be used to communicate with any device that is connected via the same method:

- :ref:`parallel`
- :ref:`serial`
- :ref:`egi`
-  `Communicating with Emotiv <https://www.psychopy.org/builder/components/emotiv_record.html>`_ please also see `this video tutorial <https://www.youtube.com/watch?v=rRoqGa4PoN8>`_.

.. note::
    If you'd like to use a `Parallel Port` to **record** responses (for example from a button box) please read `this excellent thread <https://discourse.psychopy.org/t/issue-reading-parallel-port-pin-for-button-box/9759>`_ from our Discourse Forum user `jtseng <https://discourse.psychopy.org/u/jtseng>`_.

Communicating with an eye-tracker
------------------------------------------

- :ref:`eyetracking`


Communicating with other devices
------------------------------------------

- :ref:`fmri`
- :ref:`arduino`
- To communicate with fNIRS, please watch `this super-clear video tutorial <https://www.youtube.com/watch?v=o-WzXhwESa8>`_ from NIRx.

