
Mastering the Raspberry Pi
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
You probably already know that the Raspberry Pi is an excellent teaching tool. If you want to teach Linux basics or Python programming or basic electronics, it's a great place to start. But what if you are an electronics engineer or a Linux systems administrator or a very experienced maker? You want to know all of the details and inner working of the Raspberry Pi -- how to (figuratively or maybe even literally) make it get up and dance without wading through basics and introductory material.
If you want to get right into the pro-level guts of the Raspberry Pi, complete with schematics, detailed hardware explanations, messing around with runlevels, reporting voltages and temperatures, and recompiling the kernel, then Mastering the Raspberry Pi is just the book you need. Along with all of the thorough explanations of hardware and operating system, you'll also get a variety of project examples and explanations that you can tune for your own project ideas.
You'll find yourself turning to Mastering the Raspberry Pi over and over again for both inspiration and reference. Whether you're an electronics professional, an entrepreneurial maker, or just looking for more detailed information on the Raspberry Pi, this is exactly the book for you.
More details
Other editions
Additional editions

Person
Content
- Intro
- Contents at a Glance
- Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Chapter 1: Why This Book?
- Who Needs This Book ?
- This Book Is Primarily About
- Learning Approach
- Organization of This Book
- Software in This Book
- Final Words
- Chapter 2: The Raspberry Pi
- Models
- Hardware in Common
- Which Model?
- Chapter 3: Preparation
- Static IP Address
- Using SSH
- VNC
- Display Number
- Geometry
- Depth
- Pixel Format
- Password Setup
- Server Startup
- VNC Viewers
- Stopping VNC Server
- Prototype Station
- Adafruit Pi Cobbler
- Gertboard
- Bare Metal
- Chapter 4: Power
- Calculating Power
- Current Requirement
- Peripheral Power
- Model B Input Power
- Model A Input Power
- 3.3 Volt Power
- Powered USB Hubs
- Power Adapters
- An Unsuitable Supply
- E-book Adapters
- Best Power Source
- Voltage Test
- Battery Power
- Requirements
- Headroom
- LM7805 Regulation
- DC-DC Buck Converter
- Signs of Insufficien t Power
- No Power
- Chapter 5: Header Strips, LEDs, and Reset
- Status LEDs
- OK or ACT LED
- PWR LED
- FDX LED
- LNK LED
- 10M or 10/100 LED
- Header P1
- Safe Mode
- Logic Levels
- GPIO Configuration at Reset
- 1-Wire Driver
- Header P5
- Reset
- Chapter 6: SDRAM
- /proc/meminfo
- MemTotal
- MemFree
- Buffers
- Cached
- SwapCached
- Active
- Inactive
- Active(anon)
- Inactive(anon)
- Active(file)
- Inactive(file)
- Unevictable
- Mlocked
- SwapTotal
- SwapFree
- Dirty
- Writeback
- AnonPages
- Mapped
- Shmem
- Slab
- SReclaimable
- SUnreclaim
- KernelStack
- PageTables
- NFS_Unstable
- Bounce
- WritebackTmp
- CommitLimit
- Committed_AS
- VmallocTotal
- VmallocUsed
- VmallocChunk
- Physical Memory
- Memory Mapping
- Address
- Length
- Protection
- Flags
- File Descriptor
- Offset
- Return Value
- Volatile
- Virtual Memory
- Final Thoughts on SDRAM
- Chapter 7: CPU
- Identification
- Overclocking
- Execution
- Threads
- pthread Headers
- pthread Error Handling
- pthread_create(3)
- pthread_attr_t
- pthread_join(3)
- pthread_detach(3)
- pthread_self(3)
- pthread_kill(3)
- Mutexes
- pthread_mutex_create(3)
- pthread_mutex_destroy(3)
- pthread_mutex_lock(3)
- pthread_mutex_unlock(3)
- Condition Variables
- pthread_cond_init(3)
- pthread_cond_destroy(3)
- pthread_cond_wait(3)
- pthread_cond_signal(3)
- pthread_cond_broadcast(3)
- Chapter 8: USB
- Power
- Powered Hubs
- USB API Support
- libusb
- Include Files
- Chapter 9: Ethernet
- Wired Ethernet
- /etc/network/interfaces
- Changing to Static IP
- Test Static IP Address
- USB Adapters
- /etc/hosts File
- Wireless Ethernet
- Configuration
- Chapter 10: SD Card Storage
- SD Card Media
- SD Card Interface
- SD Card Basics
- Raspbian Block Size
- Disk Cache
- Capacities and Performance
- Transfer Modes
- SPI Bus Mode
- 1-bit SD Mode
- 4-bit SD Mode
- Wear Leveling
- Chapter 11: UART
- RS-232 Converter
- DTE or DCE
- RS-232
- Start Bit
- Data Bits
- Parity Bit
- Stop Bit(s)
- Baud Rate
- Break
- Flow Control
- Hardware Flow Control
- Software Flow Control
- Raspberry Pi UARTs
- ARM PL011 UART
- RTS/CTS Access
- PL011 UART Features
- Exclusive Serial L ine Use
- Procedure
- Verification
- Serial API
- Header Files
- open(2)
- struct termios
- tcgetattr(3)
- tcsetattr(3)
- tcsendbreak(3)
- tcdrain(3)
- tcflush(3)
- tcflow(3)
- cfmakeraw(3)
- cfgetispeed(3)
- cfgetospeed(3)
- cfsetispeed(3)
- cfsetospeed(3)
- cfsetspeed(3)
- read(2)
- write(2)
- readv(2) and writev(2)
- Error EINTR
- Chapter 12: GPIO
- Pins and Designations
- Configuration After Reset
- Pull-up Resistors
- Configuring Pull-up Resistors
- Testing Pull-up State
- Logic Levels
- Drive Strength
- Input Pins
- Output Pins
- Driving LEDs
- Driving Logic Interfaces
- Driving Bi-color LEDs
- Testing Drive Strength
- GPIO Current Budget
- Configuration
- Alternate Function Select
- Output Pins
- Input Pins
- Alternate Function
- Sysfs GPIO Access
- export
- unexport
- gpioX
- Active Low
- Chip Level
- GPIO Tester
- GPIO Input Test
- Floating Potentials
- Reading Events
- Test Run
- Direct Register Access
- gpio_init()
- gpio_config()
- gpio_write()
- gpio_read()
- gpio_io.c
- GPIO Transistor Driver
- Driver Design
- Substitution
- Inductive Loads
- Driver Summary
- Utility gpio
- Displaying GPIO Settings
- Reading GPIO
- Writing GPIO
- Modify Drive Levels
- Chapter 13: 1-Wire Driver
- 1-Wire Line and Power
- Line Driving
- Master and Slave
- Protocol
- Reset
- Data I/O
- Slave Support
- Reading Temperature
- Bus Master
- Slave Devices
- Reading the Temperature
- 1-Wire GPIO Pin
- Chapter 14: I2C Bus
- I2C Overview
- SDA and SCL
- Multimaster and Arbitration
- Bus Signaling
- Data Bits
- Message Formats
- Which I2C Bus?
- I2C Bus Speed
- Tools
- I2C API
- Kernel Module Support
- Header Files
- open(2)
- ioctl(2,I2C_FUNC)
- ioctl(2,I2C_RDWR)
- Chapter 15: SPI Bus
- SPI Basics
- SPI Mode
- Signaling
- Slave Selection
- Driver Support
- SPI API
- Header Files
- Open Device
- SPI Mode Macros
- Bits per Word
- Clock Rate
- Data I/O
- Close
- Write
- Read
- SPI Testing
- Chapter 16: Boot
- Booting ARM Linux
- Boot Sequence
- Boot Files
- config.txt
- Composite Video Settings
- Standard Definition Video
- Composite Aspect Ratio
- Color Burst
- High-Definition Video
- HDMI Safe Mode
- HDMI Force Hot-Plug
- HDMI Ignore Hot-Plug
- HDMI Drive
- HDMI Ignore EDID
- HDMI EDID File
- HDMI Force EDID Audio
- Avoid EDID Fuzzy Match
- HDMI Group
- HDMI Mode
- HDMI Boost
- HDMI Ignore CEC Init
- HDMI Ignore CEC
- Overscan Video
- Disable Overscan
- Overscan Left, Right, Top, and Bottom
- Frame Buffer Settings
- Frame Buffer Width
- Frame Buffer Height
- Frame Buffer Depth
- Frame Buffer Ignore Alpha
- General Video Options
- Licensed Codecs
- Testing
- Memory
- Disable GPU L2 Cache
- GPU Memory (All)
- GPU Memory (256)
- GPU Memory (512)
- Boot Options
- Disable Command-Line Tags
- Command Line
- Kernel
- Kernel Address
- RAM File System File
- RAM File System Address
- Init RAM File System
- Device Tree Address
- Init UART Baud
- Init UART Clock
- Init EMMC Clock
- Boot Delay
- Avoid Safe Mode
- Overclocking
- Warranty and Overclocking
- Force Turbo Mode
- Initial Turbo
- Temperature Limit
- ARM CPU Frequency
- Minimum ARM CPU Frequency
- GPU Frequency
- Core Frequency
- Minimum Core Frequency
- H.264 Frequency
- ISP Frequency
- V3D Frequency
- SDRAM Frequency
- Minimum SDRAM Frequency
- Avoid PWM PLL
- Voltage Settings
- Current Limit Override
- Over Voltage
- Over Voltage Minimum
- Over Voltage SDRAM
- SDRAM Controller Voltage
- SDRAM I/O Voltage
- SDRAM Physical Voltage
- cmdline.txt
- Serial console =
- Virtual console =
- kgdboc=
- root=
- rootfstype=
- elevator=
- rootwait=
- nfsroot=
- ip=
- Emergency Kernel
- Chapter 17: Initialization
- Run Levels
- /etc/inittab
- inittab Action initdefault
- General Startup Sequence
- Step 4: sysinit
- Step 5: boot/bootwait
- Step 6: runlevel
- inittab Action wait
- inittab Action once
- inittab Action respawn
- Changing Run Levels
- telinit
- Change of Run Level
- Single-User Mode
- Halt and Reboot
- Creating a New Service
- Chapter 18: vcgencmd
- vcgencmd Commands
- Option measure_clock
- Option measure_volts
- Option measure_temp
- Option codec_enabled
- Option version
- Option get_lcd_info
- Option get_config
- Chapter 19: Linux Console
- Available Consoles
- Serial Console
- Chapter 20: Cross-Compiling
- Terminology
- Operating System
- Host, Guest, Build, and Target
- Using VirtualBox (Ubuntu/Linux)
- Planning Your Cross-Development Environment
- Building the Cross-Compiler
- Download crosstool-NG
- Staging Directory
- Unpack the Tarball
- Create /opt/x-tools
- Install Package Dependencies
- Configure crosstools-NG
- make crosstool-ng
- make install
- PATH
- Cross-Compiler Configuration
- Paths and Misc Options
- Target Options
- Operating System
- Binary Utilities
- C Compiler
- Save Configuration
- Build Cross-Compiler
- Troubleshooting
- Chapter 21: Cross-Compiling the Kernel
- Image Tools
- Download Kernel
- Edit Makefile
- make mrproper
- Kernel Config
- make menuconfi g
- make
- Prepare Kernel Image
- Install Kernel Image
- Boot Failure
- Modules
- Firmware
- VirtualBox Mount of SD Card
- Chapter 22: DHT11 Sensor
- Characteristics
- Circuit
- Protocol
- Overall Protocol
- Data Bits
- Data Format
- Software
- Chosen Approach
- Example Run
- Source Code
- Chapter 23: MCP23017 GPIO Extender
- DC Characteristics
- GPIO Output Current
- GPIO Inputs
- Standby Current
- Input Logic Levels
- Output Logic Levels
- Reset Timing
- Circuit
- I2C Bus
- Wiring and Testing
- Software Configuration
- General Configuration
- IOCON Register
- OLATx Register
- GPPUx Register
- DEFVALx Register
- INTCONx Register
- IPOLx Register
- IODIRx Register
- GPINTENx Register
- INTFx Register
- INTCAPx Register
- GPIOx Register
- Main Program
- Module i2c_funcs.c
- Module sysgpio.c
- Example Run
- Response Times
- Chapter 24: Nunchuk-Mouse
- Project Overview
- Nunchuk Features
- Connector Pinout
- Testing the Connection
- Nunchuk I2C Protocol
- Encryption
- Read Sensor Data
- Linux uinput Interface
- Working with Header Files
- Opening the Device Node
- Configuring Events
- Configure EV_KEY
- Mouse Buttons
- Configure EV_REL
- Configure EV_ABS
- Creating the Node
- Posting EV_KEY Events
- Posting EV_REL Events
- Posting EV_SYN Events
- Closing uinput
- X-Window
- Input Utilities
- Testing the Nunchuk
- Testing ./nunchuk
- Utility lsinputs
- Utility input-events
- The Program
- Chapter 25: Real-Time Clock
- DS1307 Overview
- Pins X1 and X2
- Pin SQW/OUT
- Power
- 3-Volt Compatibility
- Logic Levels
- Tiny RTC Modifications
- Checking for Pull-up Resistors
- Performing a DMM Resistance Check
- Performing a Voltage Reading
- Performing a Tiny RTC Modification
- Working with Other PCB Products
- Locating the Pull-up Resistors
- DS1307 Bus Speed
- RTC and RAM Address Map
- Reading Date and Time
- I2C Communication
- Wiring
- Running the Examples
- The Ultimate Test
- The Startup Script
- Chapter 26: VS1838B IR Receiver
- Operating Parameters
- Pinout
- VS1838B Circuit
- The IR Receiver
- Software
- Signal Components
- Code Organization
- Command-Line Options
- Dump Mode
- Gnuplot Mode
- Chapter 27: Stepper Motor
- Floppy-Disk Stepper Motor
- Your Junk-Box Motor?
- Driver Circuit
- Darlington Pair
- Driving the Driver
- Input Levels
- Power-on Reset/Boot
- Modes of Operation
- Wave Drive (Mode 0)
- Full-Step Drive (Mode 1)
- Half-Step Drive (Mode 2)
- Software
- Testing
- Chapter 28: The H-Bridge Driver
- The L298 Driver
- Sensing Resistor
- Enable A and B
- Inputs In1 and In2
- Protection Diodes
- L298 PCB
- Driving from GPIO
- The DMM Check
- Bipolar Stepper Modes
- One-Phase-On Mode
- Two-Phase-On Mode
- Half-Step Mode
- Choosing Driving GPIOs
- Project Schematic
- Junk-Box Motors
- Program Operation
- Program Internals
- Chapter 29: Remote-Control Panel
- Switched Inputs
- The CD4013
- Testing the Flip-Flop
- The LED
- ØMQ
- Performing Installation
- Compiling and Linking
- Sensing Station Design
- Sensing Station Program
- Console Program
- Console Commands
- Sensor Source Code
- Console Source Code
- Chapter 30: Pulse-Width Modulation
- Introduction to PWM
- PWM Parameters
- PWM Hardware Peripheral
- PWM Software
- Meter Circuit
- pwm Program
- Hardware PWM Set Command
- Hardware Based CPU Percent-Busy Display
- Software PWM Program
- How Many PWMs?
- Running the Software PWM Command
- Software Based CPU Percent-Busy Display
- Chapter 31: Glossary
- Chapter 32: Power Standards
- Chapter 33: Electronics Reference
- Ohm's Law
- Power
- Units
- Chapter 34: Raspbian apt Commands
- List Available Packages
- List Installed Packages
- List Files for Package
- Perform Package Search
- Install a Package
- Remove a Package
- Install Updates
- Upgrade
- Obtain Kernel Sources
- Chapter 35: ARM Compile Options
- Chapter 36: Mac OS X Tips
- Bibliography: Bibliography
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.