Generated by All in One SEO v4.9.1.1, this is an llms.txt file, used by LLMs to index the site. # Hussam Talks Tech Welcome to my Electronics Blog! ## Sitemaps - [XML Sitemap](https://hussamtalkstech.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [PCB Layout Design with KiCad Part II: Layout Creation](https://hussamtalkstech.com/introkicadp2/) - In this blog entry, the PCB layout for the astable multivibrator circuit schematic design covered in part I, will be created using the Kicad PCB Editor application. Before proceeding however the user must be made aware of the two most common measurement units and how to convert between them. Importance of spatial dimensions and units - [PCB Layout Design with KiCad Part I: Introduction & Schematic Capture](https://hussamtalkstech.com/introkicadp1/) - In this blog entry, I will introduce the printed circuit board (PCB) design flow. I will then proceed to focus on the schematic capture section of the PCB design flow by using the KiCad PCB design tool to create a schematic for a simple LED blinker circuit. The PCB layout section of the design flow - [Bit Manipulation in C Part I - Bit Manipulation Basics](https://hussamtalkstech.com/bitmanipp1/) - The topic of bit manipulation in C doesn't seem to get as much attention in many C programming books and study guides. Perhaps because it's a not used regularly by application developers and system programmers. Knowledge of bit manipulation is however downright critical in the fields of embedded systems, kernel space programming and device drivers - [Bit Manipulation in C Part II - Read Modify Write Operations](https://hussamtalkstech.com/bitmanipp2/) - This article covers Read Modify Write (RMW) operations. These operations allow the programmer to manipulate one or more bits of interest within a variable (or register), without affecting the state of the rest of the bits in that variable (or register). In order to understand RMW operations, the reader must have a solid foundation in - [UDPNode: A C++ class for UDP Communication](https://hussamtalkstech.com/udpnode/) - A couple of months ago, I decided to pursue few IOT project ideas that could benefit from basic UDP (User Datagram Protocol) communication. The MQTT and CoAP protocols are definitely more robust and secure. But there are some situations where the basic UDP protocol is sufficient. The POSIX C socket API built into Linux is - [Introducing PCBBot!](https://hussamtalkstech.com/introducing-pcbbot/) - The PCBBot leverages the PCB itself as the robot chassis. This reduces cost significantly. It also means that the two motors and the caster wheel would have to be mounted on the PCB itself, in addition to the batteries and all the other components. - [IO uHat for the Raspberry Pi Zero 2W](https://hussamtalkstech.com/rpi-io-uhat/) - In this blog entry, I will introduce my IO uHat for the Raspberry Pi Zero 2W. This particular uHat provides: The MCP23017 I2C GPIO expander, providing an additional 16 general-purpose input output pins (GPIOs) The MCP3208 SPI ADC; providing an 8 channel, 12-bit analog-to-digital convertor (ADC) The IO uHat also hosts an I2C EEPROM as - [Interfacing an HD44780 Character LCD to a Raspberry Pi Zero 2W using Linux kernel drivers](https://hussamtalkstech.com/rpi-hd44780/) - This blog entry demonstrates how to interface an HD44780 character LCD to a Raspberry Pi Zero 2W, using Linux kernel drivers. This approach should also work on other Raspberry Pi single-board computers. Configure and load the HD44780 kernel module at boot First, you'll need to load the correct HD44780 Linux kernel module. This will only - [IOTIS Daughterboard: 16 Channel Servo Motor Controller](https://hussamtalkstech.com/iotis-daughterboard-16-channel-servo-motor-controller/) - The 16-channel servo motor controller is yet another IOTIS daughterboard reference design. It is based around the PCA9685 Pulse Width Modulation (PWM) controller integrated circuit (I.C.). The PCA9685 has 12-bit resolution. It can control up to 16 LEDs. Thanks to its ability to output a variable frequency ranging from 1526Hz to 24Hz, it can also - [The IoT Innovation Station](https://hussamtalkstech.com/the-iot-innovation-station/) - The EET Faculty at our college decided to develop a standardized printed circuit board (PCB) platform that students can utilize in their capstone projects. It’s called the IoT Innovation Station (IOTIS), and is sometimes referred to as the 'IoT stack'. In addition to serving as a standardized platform for the program's capstone project, students get - [IOTIS Daughterboard: Dual H-Bridge Motor Controller for Brushed DC Motors](https://hussamtalkstech.com/iotis-daughterboard-dual-h-bridge-motor-controller-for-brushed-dc-motors/) - The objective of the IOTIS ecosystem is to provide a standardized platform for students to develop their capstone projects. The baseboard and the powerboard are typically made available to all students. The students would then have to build their own daughterboard, which is application-specific to their particular capstone project and its requirements. The layout of - [MicroPython Library for the PCA9685](https://hussamtalkstech.com/mpython-pca9685/) - The PCA9685 chip is a 16 channel PWM controller with 12-bits of resolution. It can control via PWM up to 16 LEDs. Thanks to the fact that it can output a variable frequency from 1526Hz down to 24Hz, it can also be used to control up to 16 servos. Servos usually expect a 50Hz signal ## Pages - [About](https://hussamtalkstech.com/about/) - Welcome to my blog! My name is Hussam Al-Hertani. I'm a College Instructor at the Electronics Engineering Technology Department at CEGEP Heritage College in Quebec, Canada. I have many interests, including electronics, physical computing, embedded Linux, IoT, and PCB design. I also enjoy programming in C & Python! I plan to post many tutorials and ## Categories - [Uncategorized](https://hussamtalkstech.com/category/uncategorized/) - [C and C++](https://hussamtalkstech.com/category/c/) - [ESP32](https://hussamtalkstech.com/category/esp32/) - [Python](https://hussamtalkstech.com/category/python/) - [Micropython](https://hussamtalkstech.com/category/micropython/) - [KiCad](https://hussamtalkstech.com/category/kicad/) - [Electronics](https://hussamtalkstech.com/category/electronics/) - [Linux](https://hussamtalkstech.com/category/linux/) - [Raspberry Pi](https://hussamtalkstech.com/category/raspberry-pi/) - [KiCad Tutorial](https://hussamtalkstech.com/category/kicad_tutorial/)