Posted on Leave a comment

How to view PDF in Raspberry Pi model 3b+

Both Okular and QPDF are great PDF viewers that can be used on a Raspberry Pi Model 3b+. Okular is a graphical application that is easy to use and has a wide range of features, while QPDF is a command-line tool that is lightweight and can be used to quickly view PDF files. Regardless of which tool you choose, both are easy to install and use on your Raspberry Pi Model 3b+.

Okular

Okular is a free and open-source document viewer developed by the KDE community. It is known for its ability to handle a wide range of document formats, including PDF, EPUB, and MOBI. To install Okular on your Raspberry Pi Model 3b+, follow these steps:

  1. Open a terminal window on your Raspberry Pi Model 3b+.
  2. Type the following command to update the package list:
sudo apt-get update
  1. Type the following command to install Okular:
sudo apt-get install okular

Once Okular is installed, you can use it to open PDF files by right-clicking on the file and selecting “Open With” -> “Okular”. Alternatively, you can open Okular from the Applications menu and then select “File” -> “Open” to browse for your PDF file.

QPDF

QPDF is another popular PDF viewer for Raspberry Pi Model 3b+. It is a command-line tool that can be used to manipulate and view PDF files. To install QPDF on your Raspberry Pi Model 3b+, follow these steps:

  1. Open a terminal window on your Raspberry Pi Model 3b+.
  2. Type the following command to update the package list:
sudo apt-get update
  1. Type the following command to install QPDF:
sudo apt-get install qpdf

Once QPDF is installed, you can use it to view PDF files by typing the following command in the terminal: qpdf –qdf <filename>.pdf

Posted on Leave a comment

Board Specification of Raspberry Pi Model 3b+

Overview of the Raspberry Pi 3B+ board

  1. Processor and Memory
    • CPU: Broadcom BCM2837B0, Cortex-A53 (64-bit)
    • Clock speed: 1.4 GHz
    • RAM: 1GB LPDDR2 SDRAM
    • The Raspberry Pi 3B+ is powered by a Broadcom BCM2837B0 chipset, which includes a 1.4 GHz 64-bit quad-core ARM Cortex-A53 CPU.
    • The BCM2837B0 also includes a VideoCore IV GPU, which is capable of hardware-accelerated video decoding and encoding, 3D graphics rendering, and image processing.
    • The Raspberry Pi 3B+ comes with 1 GB of LPDDR2 SDRAM memory, which is shared between the CPU and GPU.
    • The LPDDR2 SDRAM on the Raspberry Pi 3B+ runs at 900 MHz, providing a maximum memory bandwidth of 7.2 GB/s.
    • The Raspberry Pi 3B+ also supports virtual memory, which allows it to use a portion of its SD card storage as swap space to increase the available memory.
    • The BCM2837B0 chipset includes a level 2 (L2) cache of 512 KB, which is shared between all four CPU cores.
    • The L2 cache on the Raspberry Pi 3B+ runs at the same speed as the CPU cores (1.4 GHz), providing fast access to frequently used data and instructions.
    • The BCM2837B0 chipset also includes a hardware random number generator, which can be used for cryptographic applications that require secure and unpredictable random numbers.
  2. Connectivity
    • Ethernet: Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)
    • Wireless: 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN
    • Bluetooth: Bluetooth 4.2, Bluetooth Low Energy (BLE)
  3. Storage
    • microSD card slot for loading operating system and data storage
    • The Raspberry Pi 3B+ has a microSD card slot that supports the use of microSD, microSDHC, and microSDXC cards.
    • The microSD card slot on the Raspberry Pi 3B+ supports UHS-I bus speeds, which can provide faster data transfer rates than standard SD cards.
    • The Raspberry Pi 3B+ also supports booting from USB mass storage devices, such as USB flash drives or external hard drives.
    • The Raspberry Pi 3B+ supports the use of file systems such as ext4, NTFS, and FAT32 on external storage devices.
    • The maximum recommended microSD card size for the Raspberry Pi 3B+ is 32 GB, although larger cards can be used with some limitations.
  4. Multimedia
    • Video: H.264 (up to 1080p60), MPEG-4 (up to 1080p30), H.263 (up to 1080p30)
    • Audio: Stereo audio via 3.5mm jack, or HDMI
  5. GPIO
    • 40-pin GPIO header with support for SPI, I2C, and UART protocols
    • 40 GPIO pins are available in two rows of 20 pins each on the GPIO header.
    • The GPIO pins on the Raspberry Pi 3B+ operate at 3.3V logic levels and are not 5V tolerant. Connecting 5V devices directly to the GPIO pins can damage the Raspberry Pi.
    • The GPIO pins can source or sink up to 16 mA of current.
    • The GPIO pins can be configured as inputs or outputs, and can also be used for hardware PWM (Pulse Width Modulation) and hardware SPI (Serial Peripheral Interface) communication.
    • The GPIO pins are grouped into several GPIO banks, each with its own set of features and capabilities. These banks include the General Purpose Input/Output (GPIO) bank, the Serial Peripheral Interface (SPI) bank, the Inter-Integrated Circuit (I2C) bank, and the Universal Asynchronous Receiver-Transmitter (UART) bank.
    • The GPIO pins on the Raspberry Pi 3B+ can be accessed using a variety of programming languages and libraries, including Python, C, C++, and Node.js. The RPi.GPIO library, which is included with the Raspbian operating system, provides a simple and easy-to-use interface for controlling the GPIO pins using Python. Additionally, it is possible to access the GPIO pins using bare metal programming, which involves programming the Raspberry Pi directly without using an operating system. This method provides more control over the hardware and can be useful in applications where performance and real-time control are critical.
  6. Power
    • 5V DC via micro-USB connector, or GPIO header
  7. Form Factor
    • Dimensions: 88 x 56 x 19.5 mm
    • Weight: 46g
Posted on Leave a comment

Introduction to Bare Metal Programming on Raspberry Pi 3b+

What is Bare Metal Programming?

Bare metal programming is the practice of programming a computer or microcontroller without using an operating system or any other software layer between the hardware and the code. It involves writing code that directly interacts with the hardware, using low-level programming languages such as Assembly or C. This allows for greater control over the hardware, as you have direct access to the processor, memory, and other resources.

In the case of Raspberry Pi, bare metal programming involves writing code directly to the hardware, using low-level programming languages such as Assembly or C.

AdvantagesDisadvantages
Provides direct access to the hardware, enabling greater control over system resourcesRequires advanced knowledge of low-level programming languages such as Assembly or C
Avoids the overhead and complexity of operating systems and middlewareRequires more effort and time to develop and maintain code compared to high-level programming languages or using an operating system
Enables faster and more efficient code executionLack of abstraction and protection from hardware errors can lead to more complex and error-prone code
Ideal for applications with strict timing requirements or low-latency communication with hardware peripheralsDifficult to integrate with higher-level software stacks or libraries

To get started with bare metal programming on Raspberry Pi 3B+, you’ll need the following tools:

  1. Raspberry Pi 3B+: This is the main hardware component you’ll need to get started with bare metal programming on Raspberry Pi.
  2. MicroSD card: You’ll need a MicroSD card to store the operating system and your code. A capacity of 8GB or higher is recommended.
  3. Cross-compiler: This is a toolchain that allows you to compile your code on a different platform (such as a PC) and generate code that can run on the ARM-based Raspberry Pi. You can use the GNU ARM Embedded Toolchain or other cross-compilers.
  4. Text editor: You’ll need a text editor to write and edit your code. Some popular free options include Notepad++, Nano, and Visual Studio Code.
Posted on Leave a comment

How to copy files from raspberry pi to PC using SCP

scp pi@192.168.0.159:

Introduction

Suppose there is a file on your raspberry pi, which you want on your desktop PC or laptop.

You can download the file from your raspberry pi.

To do this you must be connected to the same router.

SCP stands for Secure Copy Protocol

Suppose there is a movie in your download folder named “movie.mkv”

SCP Code

scp pi@192.168.0.159:~/Downloads/movie.mkv movie.mkv

The above code needs to run in your command prompt

It will ask for a password. You type in your raspberry pi password.

NOTE: the typed password will not be displayed.