
Remote Operated Gate Control System
/
0 Comments
Introduction
This project began life in 2017 when the author had just begun experimentation with GPIO pins on a Raspberry Pi 3. At that point in time…

Hybrid AI Video Codecs and Modern Streaming Techniques
Introduction
AI and Hybrid Codecs
Modern Video codecs are all based on similar principles. Recently, these have been complemented by AI techniques,…

Sinc Function & Upsampling in Digital Audio Explained
Introduction
This elaborates some of the claims in my insights article on digital audio.
The Sinc Function
Upsampling and Zero Insertion
The first link…

Modern DACs, Dither, DXD & High-Res Audio Explained
Introduction
First, we need some background in Digital Signals. This can be mathematically quite advanced, but since I would like this article to be accessible…

The Poor Man’s Milli-Ohm Meter
Introduction
In a previous article on measuring battery internal resistance, a simple technique for low-resistance measurement was outlined. In this article,…

Why ChatGPT Is Unreliable: Design Limits and Misconceptions
ChatGPT's reliability
I'll start with the simple fact: ChatGPT is not a reliable answerer to questions.
Wolfram's explanation
To try to explain why from…

Program ATmega8A with Arduino: Step-by-Step Guide
Introduction
If you are interested in programming and electronics, you probably do not need an introduction to Arduino. If you want to make your Arduino…

P vs. NP and what is a Turing Machine (TM)?
P or NP
This article deals with the complexity of calculations and in particular the meaning of
##P\stackrel{?}{\neq}NP##
Before we explain what P and…

Parallel Programming on a CPU with AVX-512
This article is the second of a two-part series that presents two distinctly different approaches to parallel programming. In the two articles, I use different…

CUDA Regression Line: GPU Parallel Programming Guide
Overview
This article is the first of a two-part series that presents two distinctly different approaches to parallel programming. In the two articles,…

Raspberry Pi Cluster Guide: Parts, MPI & Slurm Tips
INTRODUCTION
As a long-time computer programmer and almost as long a High-Performance Computer (HPC) user, I didn't know anything about how these machines…

Python’s Sympy Module and the Cayley-Hamilton Theorem
Two of my favorite areas of study are linear algebra and computer programming. In this article I combine these areas by using Python to confirm that a…

LCEVC and EVC: Efficient Video Encoding Guide for 8K
Introduction
Background: H.264 and H.265
First, for background, here is an overview of the most common video compression standard in use today, H264:…

Android Ringtone Picker with RingtoneManager (Java)
Android Ringtone Picker using RingtoneManager
In article, I will show you how to create a ringtone picker using the RingtoneManager class in Android.…

Beginner C++ Tutorial — Compiler, Types & I/O Basics
ContentsGetting a C++ Compiler and Compiling Your First Program
Simple Datatypes and Declarations
Operators and Expressions
Input and Output…

Android Rooting & Magisk Guide: Systemless Root Tips
Android Rooting & Magisk Guide: Systemless Root Tips
Overview
What you can learn from this article:What is meant by rooting an Android phone
…

Debloating Android Phones: Risks, Myths and Safe Tips
What is bloatware?
Stock firmware and preinstalled apps
When you unbox a new phone, it comes with Android pre-installed by the manufacturer. This is…

Recursion in Programming and When to Use or Not to Use It
What is recursion?
Recursion is quite simple. It's a subroutine calling itself. It's surprising but some problems that look quite hard can be trivial using…

Evaluate Camera Lens Performance Using an LCD Display
Introduction
I've done plenty of imaging performance testing on a variety of systems, from millimeter wave to UV. Until very recently, such testing required…

When Renewable Energy Meets Power Grid Operations
Introduction
The electric power industry faces much turmoil in the coming decades. The business model of the electric utility company (public or private)…

AVX-512 Programming: Extracting Column Subtotals from a Table
In this Insights article I'll present an example that shows how Intel® AVX-512 instructions can be used to read a whole row of data in a single operation,…

AVX-512 Assembly Programming: Opmask Registers for Conditional Arithmetic Conclusion
In the first part of this article (AVX-512 Assembly Programing - Opmask Registers for Conditional Arithmetic), we looked at how opmask registers can be…

AVX-512 Assembly Programming: Opmask Registers for Conditional Arithmetic
This is the second installment in a continuing series of articles on Intel AVX-512 assembly programming. The first installment is An Intro to AVX-512 Assembly…

An Intro to AVX-512 Assembly Programming
History
In 1998, the Intel Corporation released processors that supported SIMD (single instruction, multiple data) instructions, enabling processors to…

Intro to Data Structures for Programming
Introduction
In the first part of this series, I talked about some fundamental notions in the world of algorithms. Beyond the definition of an algorithm,…

Simulating Orbital Mechanics in Unity for AR Apps
Orbital mechanics can be simulated in the Unity game engine by replacing its built-in single-planet gravity with a custom force calculation applied to…

Intro to Algorithms for Programming
Many threads here at PF include some questions about how to learn to program. This is asked by Physics students who want to learn programming to help their…

The What and Why of Circuit Analysis Assumptions
Probably everyone reading this article already has education on elementary circuit analysis (CA) and many of us are much more advanced. Typically, the…

The Joy of Processing
In the early days of the personal computer revolution, computers were small, simple, and easy to operate. It was always great fun to write BASIC games…

Machine Code to IDEs: A Guide to Programming Language Types
Computer languages fall into a small number of core types: machine language (raw binary instructions), assembly language (human-readable mnemonics for…

Tripod Guide: Parts, Types, and Uses for Photographers
Click for complete series
Part 1: Introduction
Part 2: Compact Point and Shoot
Part 3: DSLR
Part 4: TripodsWhy use a tripod?
…

Digital Camera Buyer’s Guide: Bridge Cameras
Click for complete seriesPart 1: Introduction
Part 2: Compact Point and Shoot
Part 3: DSLR
Part 4: TripodsWho this guide is for
This…

Ultimate Digital Camera Buyer’s Guide: Compacts, DSLR and Tripods
Introduction
Who this guide is for
First, congratulations! Camera technology has advanced to the point where a complete novice, using an entry-level…

Digital Camera Buyer’s Guide — Choose the Best Camera
Complete seriesIntroduction
Overview
First, congratulations! Camera technology has advanced so much that a complete novice using an entry-level camera…

Hardware, Software, and C Programming Quality Tips
On Hardware Quality
Designing Quality vs Testing
It is impossible to test quality into a product. Quality must be designed into the product.
Production…

Why Your Software is Never Perfect
Introduction
We occasionally have students ask for help on software, "My software is perfect, but it doesn't work!" Your software is never perfect. My…

Intro to AC Power Analysis: Learn System Basics
Instantaneous PowerThe formula for power is: ##P=V\cdot I## , power= voltage*current. We call that, instantaneous power. Even…

How PET Scans Work: Positrons in Medical Imaging Explained
Practical applications of fundamental theoretical physics
Positron Emission Tomography (PET)
Less often, people ask about potential applications of anti-matter.…

TCP/IP Protocols for Plug-and-Play Industrial Automation
Background: Ethernet vs Fieldbus in the 1990s
The 1990s saw the widespread adoption of network technology on two fronts: Office automation and factory…

Network Time Synchronization Guide: NTP vs IEEE 1588
Overview of Synchronization Needs
Now and then you come across measurement problems that are tightly associated with the notion of synchronicity, meaning…

Why Can’t My Computer Do Simple Arithmetic?
The first computer I owned was an Apple IIe computer, with a CPU that ran at slightly over 1 Megahertz (MHz), and with 64 Kilobytes (KB) of RAM, together…

Simple Python Debugging with Pdb: Part 2
This Insight article is the continuation of the first article, Simple Python Debugging with Pdb: Part 1.In this article, let's look at another important…

Learn Simple Python Debugging with Pdb
I'm pretty new to Python, so I was looking around for some debugging tools. At first, I dismissed Pdb (Python debugger) as being too primitive, but after…

Can We See an Atom?
Introduction
In this article I discuss how images of atoms are made, what exactly we are looking at, and what it means to "see" an atom. Over the decades…

Mixing vs Beating: Superheterodyne & Beat Frequency
Mixing vs. Beating: a brief history
A long time ago I read a paper in the IEEE Proceedings recounting the history of the superheterodyne receiver. Overall…

5 Common MATLAB Error Messages and How to Fix Them
MATLAB error messages like "Inner matrix dimensions must agree" or "Index exceeds matrix dimensions" almost always trace back to five common mistakes:…

Digital Modeling Amps Explained: DSP Tone Simulation Guide
Digital modeling gear uses digital signal processing (DSP) to approximate the tone and dynamic response of analog amplifiers and effects. Examples include…
