Communication with external devices