Sending input to PC

I want to send input from switches, rotary encoders or potentiometers to a PC running linux. This will be a music center project. I have not yet chosen the motherboard, it will likely be a fanless mini-itx board.

What Arduino type is more suitable for this and what is the best way to connect?

If you want the Arduino to act as a keyboard so you can send keystrokes, it needs to be able to act as a HID. Leonardo and Micro come to mind, I think that the Zero and Due also can do it.

If the HID functionality is not required (e.g. because you will write your own Linux application that will receive from serial port), any Arduino will do.

Further look at the number of required inputs (digital and analog). It might be easier to have a board with sufficient inputs although one can always add additional components to expand the number of inputs and/or outputs.

Thanks sterretje. I don't need to emulate a keyboard just send some value from buttons like Play, Pause, Forward and so on and values from a rotary encoder to control music.

When you say "receive from serial port" do you mean sending data to the COM port and using USB only to power the Arduino?

Sorry if this a stupid question, I am really clueless!

Of you connect an Arduino to a PC, it presents itself as a serial port (on Linux it will show as e.g. /dev/ttyS0 or something in the line, I have not used Arduino in combination with Linux).

So now you send data from the Arduino to the PC. Your PC has no idea what to do with it; you need an application that handles what the Arduino sends. That can e.g. be minicom (a Linux terminal program) that displays received data on the screen or an application that understands e.g. ‘words’ like ‘next’, ‘pause’ etc. that are received on the serial port by that application and knows what to do with them.

If you use an Arduino that can act as a HID, you can control an application that runs in the foreground (e.g. VLC) by sending keystrokes like O to open a file or other shortcuts to play and pause. Or you can send text to e.g. gedit.

CluelessJoe: I want to send input from switches, rotary encoders or potentiometers to a PC running linux. This will be a music center project. I have not yet chosen the motherboard, it will likely be a fanless mini-itx board.

Would a Raspberry Pi be suitable? If so, you could connect your buttons directly to its GPIO pins. No Arduino needed.

This Python - Arduino demo may be helpful. It was written on Linux.

...R