| Error Code | Severity | Description | 
| 0x001 | Error | Attempt to run librpip with an elevated (root) account. librpip will not initialise. | 
| 0x010 | Error | Cannot find /proc/cpuinfo to detect board model/revision. Board must be set manually. | 
| 0x011 | Error | Cannot read /proc/cpuinfo to detect board model/revision. Board must be set manually. | 
| 0x012 | Error | Unknown board revision. (Got a top secret prototype?). Board must be set manually. | 
| 0x100 | Warning | /dev/gpiomem does not exist (kernel module not loaded?) | 
| 0x101 | Error | Unable to open /dev/gpiomem for writing (check user permissions). | 
| 0x102 | Error | Failure mapping gpiomem memory registers with mmap. | 
| 0x103 | Error | Failure mapping available pins on a board. Most likely because the board is unknown. | 
| 0x104 | Warning | Some pins are configured for an unknown alternate function, they will be removed from the valid pin list. You should probably work out what is using the pins. | 
| 0x105 | Info | Skipping GPIO initialisation as instructed. | 
| 0x110 | Warning | Attempt to use a GPIO function when GPIO functions are not available. | 
| 0x111 | Warning | Attempt to use a GPIO function on an invalid pin (> 31). | 
| 0x112 | Warning | Attempt to use a GPIO function on pin that is not available (in use with an alternate function or ignored in librpipInit(). | 
| 0x113 | Warning | Attempt to use an output function on a pin that is not configured for output. | 
| 0x114 | Error | Pin is configured for an unexpected alternate function. This error indicates another process has modified the pins since librpipInit() was run. | 
| 0x120 | Warning | Timeout waiting for an event on a pin with librpipGpioPinEventWait(). | 
| 0x200 | Info | /dev/spidev?.? does not exist (kernel module not loaded?). | 
| 0x201 | Error | Unable to open a /dev/spidev?.? device node for writing (user permissions?) | 
| 0x202 | Error | Attempt to use a SPI function on a non-existant SPI device. | 
| 0x203 | Error | Attempt to use a SPI function on a client device that doesn’t exist. SPI0 has CS0,1, SPI1 has CS0,1,2 | 
| 0x204 | Warning | Attempt to use a SPI function on a SPI device that wasn’t detected & initialised. | 
| 0x205 | Info | Skipping SPI initialisation as instructed. | 
| 0x206 | Warning | 3Wire mode is not supported on this SPI device. | 
| 0x210 | Error | Unable to read SPI Mode (SPI_IOC_RD_MODE) from device. | 
| 0x211 | Error | Unable to read SPI LSB First (SPI_IOC_RD_LSB_FIRST) from device. | 
| 0x212 | Error | Unable to read SPI Bits per Word (SPI_IOC_RD_BITS_PER_WORD) from device. | 
| 0x213 | Error | Unable to read SPI Max Speed (SPI_IOC_RD_MAX_SPEED_HZ) from device. | 
| 0x214 | Error | Unable to read SPI Mode Flags (SPI_IOC_RD_MODE32) from device. | 
| 0x220 | Error | Unable to write SPI Mode (SPI_IOC_RD_MODE) to device. | 
| 0x221 | Error | Unable to write SPI LSB First (SPI_IOC_RD_LSB_FIRST) to device. | 
| 0x222 | Error | Unable to write SPI Bits per Word (SPI_IOC_RD_BITS_PER_WORD) to device. | 
| 0x223 | Error | Unable to write SPI Max Speed (SPI_IOC_RD_MAX_SPEED_HZ) to device. | 
| 0x224 | Error | Unable to write SPI Mode Flags (SPI_IOC_RD_MODE32) to device. | 
| 0x225 | Warning | Some SPI flags submitted are unsupported by the kernel module. Supported flags are: SPI_CS_HIGH, SPI_NO_CS. | 
| 0x227 | Warning | Invalid SPI mode requested. | 
| 0x228 | Warning | Invalid Speed requested. Supported speeds are 8kHz to 125mHz. | 
| 0x230 | Error | Failure transmitting on SPI bus. | 
| 0x300 | Info | I2C device node /dev/i2c-? does not exist (kernel module not loaded?). | 
| 0x301 | Error | Unable to open /dev/i2c-? for writing (user permissions?). | 
| 0x302 | Error | Invalid I2C device number. | 
| 0x303 | Warning | No I2C functions available as this device was not detected or initialised. | 
| 0x304 | Info | Skipping I2C initialisation as instructed. | 
| 0x311 | Error | Device node /dev/i2c-? does not support I2C Functions. | 
| 0x320 | Warning | Some I2C flags submitted are not valid. | 
| 0x321 | Warning | PEC is not supported on this I2C device. | 
| 0x322 | Warning | 10bit client address are not supported on this I2C device. | 
| 0x323 | Warning | Submitted I2C slaveid is not a valid 10bit id. | 
| 0x324 | Warning | Submitted I2C slaveid is not a valid 7bit id. | 
| 0x330 | Error | Unable to read I2C device functionality. | 
| 0x340 | Error | Unable to set I2C slave ID. | 
| 0x341 | Error | Unable to set I2C 10Bit flag. | 
| 0x342 | Error | Unable to set I2C PEC flag. | 
| 0x350 | Error | Unable to send I2C transaction. | 
| 0x400 | Info | /sys/class/pwm/pwmchip0/pwm?/* does not exist (PWM init script not run?) | 
| 0x401 | Error | Unable to open /sys/class/pwm/pwmchip0/pwm?/* for writing. | 
| 0x402 | Error | Invalid PWM device number. Valid numbers are 0 and 1. | 
| 0x403 | Error | Unable to map GPIO pins for board | 
| 0x404 | Warning | Unable to perform pin allocation discovery as no available pins. Consult /boot/config.txt for pin allocation. | 
| 0x405 | Warning | Unable to discover which pin a PWM is active on. Consult /boot/config.txt for pin allocation. | 
| 0x406 | Warning | Attempt to use a PWM function on a PWM that wasn’t detected and initialised | 
| 0x407 | Info | Skipping PWM initialisation as instructed | 
| 0x408 | Info | PWM module not running. | 
| 0x410 | Error | Error opening file /sys/class/pwm/pwmchip0/pwm?/duty_cycle | 
| 0x411 | Error | Error opening file /sys/class/pwm/pwmchip0/pwm?/period | 
| 0x412 | Error | Error opening file /sys/class/pwm/pwmchip0/pwm?/enable | 
| 0x413 | Error | Error opening file /sys/class/pwm/pwmchip0/pwm?/polarity | 
| 0x420 | Warning | The supplied pwm period was not in the expected range of 109ns to 2s. | 
| 0x421 | Warning | The supplied pwm duty cycle was greater than the period. | 
| 0x422 | Warning | The supplied pwm flags contained unknown flags. | 
| 0x423 | Warning | It is not possible to have the pwm polarity normal and inverted at the same time. | 
| 0x424 | Warning | The supplied pwm duty cycle was not a percentage between 0 and 100. | 
| 0x425 | Warning | The supplied servo angle was outside of the configured range. | 
| 0x426 | Warning | The supplied servo range  is outside of the 0° – 720° range. | 
| 0x427 | Warning | The supplied servo min  pulse is outside of the 0-20ms range. | 
| 0x428 | Warning | The supplied servo max pulse is outside of the 0-20ms range. | 
| 0x429 | Warning | The supplied servo min pulse is greater than the max pulse . | 
| 0x430 | Error | Error writing file /sys/class/pwm/pwmchip0/pwm?/duty_cycle | 
| 0x431 | Error | Error writing file /sys/class/pwm/pwmchip0/pwm?/period | 
| 0x432 | Error | Error writing file /sys/class/pwm/pwmchip0/pwm?/enable | 
| 0x433 | Error | Error writing file /sys/class/pwm/pwmchip0/pwm?/polarity | 
| 0x500 | Warning | Invalid transaction mode. | 
| 0x501 | Warning | Invalid bits per word for a transaction. | 
| 0x510 | Warning | Unable to add message segment to transaction. Invalid message direction supplied. | 
| 0x511 | Warning | Unable to add message segment to transaction. Invalid length for message segment buffer. | 
| 0x512 | Warning | Unable to add message segments to a transaction that has already been sent. | 
| 0x513 | Warning | Unable to add message segment to transaction. Combined Send/Receive messages are only valid in SPI mode. | 
| 0x514 | Warning | Unable to add message segment to transaction. Only combined Send/Receive messages are valid in SPI mode. | 
| 0x515 | Warning | Unable to add message segment to transaction. I2C max message length reached. | 
| 0x516 | Warning | Unable to set variable message segment to transaction.  Length of is not valid. | 
| 0x517 | Warning | Unable to add message segment to transaction. Variable name is not valid. | 
| 0x520 | Warning | Unable to transmit a transaction that has no messages. | 
| 0x521 | Warning | Unable to transmit a transaction that has unset variable segments. | 
| 0x530 | Warning | Cannot read from a transaction that has not been initialised. | 
| 0x531 | Warning | Could not find another message segment to read from in the transaction. | 
| 0x532 | Warning | Could not find a message segment to read from in the transaction. | 
| 0x533 | Warning | Cannot read from a transaction that has not been sent. | 
| 0x540 | Warning | Cannot destroy transaction. It has not been initialised. | 
| 0x600 | Info | Device node /dev/ttyAMA0 does not exist (kernel module not loaded?). | 
| 0x601 | Warning | Unable to open /dev/ttyAMA0 for writing (user permissions or in use by console?) | 
| 0x602 | Error | Invalid UART device number. Valid device numbers are 0 & 1. | 
| 0x603 | Info | Skipping UART initialisation as instructed | 
| 0x604 | Info | Neither UART device node exists. | 
| 0x605 | Warning | Attempt to use a UART function on a UART device that wasn’t detected & initialised. | 
| 0x606 | Info | Device node /dev/ttyS0 does not exist (kernel module not loaded?). | 
| 0x607 | Warning | Unable to open /dev/ttyS0 for writing (user permissions or in use by console?) | 
| 0x610 | Error | Unable to read configuration of UART. | 
| 0x611 | Error | Unable to flush UART. | 
| 0x612 | Error | Unable to set configuration of UART. | 
| 0x620 | Warning | The supplied UART baud is not valid. | 
| 0x621 | Warning | The supplied UART mode is not valid. | 
| 0x622 | Warning | The supplied UART character bits size is not valid. | 
| 0x623 | Warning | The supplied UART parity is not valid. | 
| 0x624 | Warning | The supplied UART stopbits is not valid. | 
| 0x630 | Error | Error writing to UART. | 
| 0x631 | Warning | Incomplete transfer on UART. The returned length transmitted is less than the length sent. | 
| 0x632 | Warning | Invalid UART transfer. The length %u is is not valid | 
| 0x640 | Error | Error reading from UART | 
| 0x641 | Warning | Timeout waiting for data from UART |