HiPi::RaspberryPi
Provides information about your Raspberry Pi board.
Methods
- new
- dump_board_info
- model_name
- release_date
- manufacturer
- memory
- processor
- hardware
- board_description
- revision
- serial_number
- has_rp1
- gpio_header_type
Create a new instance of HiPi::RaspberryPi
use HiPi::RaspberryPi; my $pi = HiPi::RaspberryPi->new();
Dumps information about your Raspberry Pi board.
print $pi->dump_board_info;
The method produces output similar to the following:
pi@raspberry:~ $ perl -MHiPi::RaspberryPi -e"print HiPi::RaspberryPi->new->dump_board_info;" -------------------------------------------------- Raspberry Pi Board Info -------------------------------------------------- Model Name : Raspberry Pi 3 Model B Rev 1.2 Released : Q1 2016 Manufacturer : Sony Memory : 1024 Processor : BCM2837 Hardware : BCM2835 Description : Type 3 40 pin GPIO header Revision : a02082 Serial Number : 0000000012345678 GPIO Header Type : 3 Device Tree : Yes Is Raspberry : Yes Is Raspberry 2 : No Is Raspberry 3 : Yes Is Raspberry 4 : No
Information for the individual lines is produced using other module methods
use HiPi::RaspberryPi; my $pi = HiPi::RaspberryPi->new(); # Model Name my $modname = $pi->model_name(); # Released my $released = $pi->release_date(); # Manufacturer my $manu = $pi->manufacturer(); # Memory my $mem = $pi->memory(); # Processor my $proc = $pi->processor(); # Hardware my $hware = $pi->hardware(); # Description my $desc = $pi->board_description(); # Revision my $rev = $pi->revision(); # Serial Number my $serial = $pi->serial_number(); # GPIO Header Type my $type = $pi->gpio_header_type(); # Raspberry Types my $israsp = ( $pi->is_raspberry ) ? 'Yes' : 'No'; my $israsp2 = ( $pi->is_raspberry_2 ) ? 'Yes' : 'No'; my $israsp3 = ( $pi->is_raspberry_3 ) ? 'Yes' : 'No'; my $israsp4 = ( $pi->is_raspberry_4 ) ? 'Yes' : 'No'; my $israsp5 = ( $pi->is_raspberry_5 ) ? 'Yes' : 'No';
Returns a descriptive model name for the Raspberry Pi board
my $mname = $pi->model_name();
Returns the release date for the Raspberry Pi board
my $date = $pi->release_date();
Returns the manufacturer name for the Raspberry Pi board
my $manu = $pi->manufacturer();
Returns the amount of memory for the Raspberry Pi board in Mb
e.g. 256, 512, 1024, 2048, 4096 or 8192
my $mem = $pi->memory();
Returns the Processor determined from Revision as displayed by cat /proc/cpuinfo
The Raspberry Pi 5 returns BCM2712. The Raspberry Pi 4 returns BCM2711. The Raspberry Pi 3 and 3+ return BCM2837. The original Raspberry Pi 2 returns BCM2836 while the 1.2 revision returns BCM2837. All other models return BCM2835
my $proc = $pi->processor();
Returns the Hardware as displayed by cat /proc/cpuinfo
All boards return BCM2835 on any recent version of Raspberry Pi OS. Versions of Raspbian several years old used to return BCM2708 or BCM2709 depending on your board model. This isn't a good method to determine the capabilites of your board. Use the other methods for that.
my $hware = $pi->hardware();
Returns a description for the Raspberry Pi board based on the GPIO header type
my $btype = $pi->board_description();
Returns the Revision as displayed by cat /proc/cpuinfo
. This can be used to determine the capabilities of the board
my $rev = $pi->revision();
Returns the unique serial number for your Raspberry Pi.
my $serial = $pi->serial_number();
Returns a boolean indicating if this Pi uses the RP1 (Raspberry Pi 5) for peripherals.
if( $pi->has_rp1() ) { # do Raspberry Pi 5 stuff } else { # do other stuff }
Returns a number representing the type of GPIO header on your board
1 | 26 pin header for the first Model B's with different pin out for the i2c device | |
2 | 26 pin header for the Model B rev 2 and Model A | |
3 | 40 pin header for the Pi 5, Pi 4, Pi 3, Pi 2, B+, A+, Zero, Zero Wire and Zero 2 Wire | |
4 | Compute Module 3 and later |
my $type = $pi->gpio_header_type();