For this project, any SBC that's capable of running Linux should work. It also needs to have the following features for a full implementation:
- An internet connection (wireless or wired) to access online content.
- Bluetooth functionality (built-in or as an add-on module) to allow the system to act as a Bluetooth speaker.
- Free GPIO input to allow for buttons to be hooked up.
- A functioning microphone input and audio output for the voice input and audio playback, respectively.
- SATA connectivity or similar for connecting storage devices like hard-drives.
- I2C bus peripheral for an I2C display.
For the example code in this chapter we only require the microphone input and audio output, along with some storage for local media files.
To the GPIO pins, we can connect a number of buttons that can be used to control the infotainment system without having to use the...