Documentation and tutorials

Peripherals documentation

Select from the document map below the article you need to:

  • Design the PCB section for each specific peripheral
  • Know where are the signals of each peripherals
  • Include the right Linux kernel modules in your defconfig
  • Configure the right Device Tree Binding for each driver
  • Learn how to use the peripherals from user space
Peripheral PCB design Pinout Linux driver Device tree User space
Ethernet Eth PCB Eth pinout Eth kernel Eth device tree Eth user space
Display Display PCB Display pinout Display kernel Display device tree Display user space
Touch screen Touch pinout Display kernel Display device tree Display user space
USB Host USB Host PCB USB Host pinout USB Host kernel USB Host device tree USB Host user space
Micro SD µSD PCB µSD pinout µSD kernel µSD device tree µSD user space
PWM PWM PCB PWM pinout PWM kernel PWM device tree PWM user space
ADC ADC PCB ADC pinout ADC kernel ADC device tree ADC user space
Serial Serial PCB Serial pinout Serial kernel Serial device tree Serial user space
I2C N.A. I2C pinout I2C kernel I2C device tree I2C user space
GPIO GPIO PCB GPIO pinout GPIO kernel GPIO device tree GPIO user space
SPI N.A. SPI pinout SPI kernel SPI device tree SPI user space
Watchdog N.A. N.A. Watchdog kernel Watchdog device tree Watchdog user space
1-wire N.A. 1-wire pinout 1-wire kernel 1-wire device tree 1-wire user space

Other design guides


Linux system how-tos

Useful commands

  • Check the incoming interrups: watch -n 1 -d cat /proc/interrupts
  • Get the Kernel version: uname -r
  • Get the Debian version: cat /etc/debian_version
  • Get the Kernel command line: cat /proc/cmdline
  • List the driver built in the Kernel image: cat /lib/modules/$(uname -r)/modules.builtin
  • Set the hostname: echo "myboardname" > /etc/hostname

Linux applications

Hello world examples

Python articles

C articles


Third party