About Me
Welcome to the personal website of William Cooley.
Currently working as a Systems Engineer and located in Rochester, NY, USA.
Have experience in various System Administration, DevOps and Software development capacities.
Ran a SaaS business for a number of years, worked as a consultant and employee.
I enjoy finding open-source solutions to technology problems.
Some of my experience includes:
- Linux - Ubuntu and CentOS system administration
- Ansible for deploying applications
- Prometheus monitoring software. Hardware, OS, Networking, Databases and Custom application metrics
- Grafana metrics visualization. Creating custom dashboards for Prometheus datasources
- Physical datacenter operations - PXE machine provisioning / IPMI, BMC, iDRAC management / iSCSI storage array implementation and management
- Cloud / Virtual datacenter - AWS, Digital Ocean, Rackspace, Linode / VMware Vsphere
- Firewall / Routing / VLAN switching / VPN tunneling (Layer 2 / 3)
- Scripting applications - Python, PHP, JavaScript (Node.js)
- Mysql databases - administration, backup, migration, tuning and replication
- Basic understanding of electronics and RF systems - Amateur Radio Technician Class license (2004) / example project
Native English and German* speaker and dual citizenship holder.
Raspberry Pi Pico powered LED Lamp
Converting a Dazor P-2134 task lamp to LED
I recently completed a LED conversion on a Dazor P-2134 fluorescent tube task lamp.
Dazor has been making variations of this lamp since 1938.
The newly converted lamp has adjustable brightness and color temperature and uses a 20kHz PWM frequency to avoid any image banding on digital camera image capture.
Home Assistant Dashboard on Polycom VVX
Showing sensor states on a VOIP desk phone idle screen
Building an ESPHome environmental multi-sensor
Envirosense ESP8266 take 2
Raspberry Pi Camera RTSP Streaming with multiple resolution feeds
Using GPU accelerated H.264 encoding
Update July 2023: The setup instructions below work with Raspberry Pi OS (Legacy) based on Debian 10 (buster). For instructions that will work with Raspberry Pi OS based on Debian 11 (bullseye), please have a look at my updated blog post here.
I was looking for a way to stream two H.264 video feeds from an old Raspberry Pi 2 and Raspberry Pi Camera Module with the first feed being the highest resolution that I could achieve from the camera and the second being a lower resolution that would be more suitable for analysis. To monitor the Pi Camera and perform motion and AI object detection with a Frigate NVR system, I wanted the feeds served from an RTSP server.
[Read More]Hoverboard motor hall sensor replacement
I have a couple Hoverboard (self-balancing scooter) motors that I’m intending to use for a project with an oDrive motor controller.
One of the motors was causing an ERROR_ILLEGAL_HALL_STATE
on the oDrive and after swapping the motor channels and some troubleshooting with a multimeter I had determined that 1 of the 3 internal hall-effect sensors was not functioning as expected.
Digi-Key has a nice article on how these hall sensors function in BLDC (Brushless DC) motors.
Envirosense ESP8266 Prometheus Exporter
Exporting ambient motion, temperature, humidity and barometric pressure metrics with a WiFI IoT board
Over the last few years I’ve spent a considerable amount of time working with the Prometheus monitoring system and time series database in combination with the Grafana visualization platform.
I had been wanting to track the temperature and humidity of a few rooms and was looking for an excuse to run a Prometheus server at home.
I thought it would be neat to use a Wi-Fi microcontroller to collect this sensor data and expose it directly in the Prometheus simple text-based exposition format.
WebRTC controlled Telepresence Robot project
This is a short video overview of a WebRTC controlled Telepresence Robot that I built using inexpensive components.