Projects

AC Control Panel Project via Raspberry Pi

 

After developing a few Raspberry Pi webservers I decided to create one that would allow control of AC outlets in the house via local WiFi.  It runs headless Rasbian with only configuration files and no database requirements.  The build was done using a Raspberry Pi, solid state relays (current limited compared to electromechanical), and an AC Wall Outlet Box with room for outlets and wiring.  I decided to use solid state relays to control the low power devices/lights and if necessary, electromechanical relays would be required to control higher wattage computers or appliances.  In the end I created a few versions of these boxes but stuck to a similar format with the Pi secured to the side and outlets labeled for max wattages.  After deploying three panels, the ability to manage two other control panels from each was added, allowing three panels (10+ outlets) to be controlled from one web interface.

AC Control Panel Active
AC Control Panel Home

 

Python LCD Control Project via Raspberry Pi

 

For this project I created a Raspberry Pi with an LCD hat that has buttons to change video outputs and basic controls.  A Pi 3 was chosen to drive the LCD hat with the screen mirroring video output of the Pi by default and behind the scenes a python script runs the LCD hat controls.  If only utilizing HDMI, the LCD on the hat can be turned off to save power using the built in buttons to switch between display modes with a custom polling script developed for the project.  The case pieces came in a DIY kit although there was plenty of programming required to enable the system to do what I desired.  In the final display version, I chose a mini RetroPie gaming platform and found it to be useful for many other tasks requiring a capable lightweight computer with built-in LCD & USB/Ethernet ports.

Python LCD Control Project
Python LCD Doom

 

AutoHotkey Gamesearch Project

 

A problem arose when a friend was experiencing some difficulties searching for his games and was unable to recognize different copies of the same game title.  I previously had done some basic automation with AutoHotkey that might be applicable for revealing further details to expose needed data related to the files.  After some investigation I developed a full solution with an XML searching program to find and launch the appropriate games.  We further improved the operation by integrating a configuration switcher for changing settings related to 2 or 4 player setups for joysticks and controllers.


Gamesearch Project full features


 

Webserver / PHP Hack Search Assist Tool Project

 

My friend and I were both on a well known shared hosting platform and had our websites defaced through a shared hosting vulnerability which affected multiple sites on the same machine.  During my investigation of the sites, I found the files had similar patterns and could be reliably detected using basic scanning methodologies.  With this in mind, I designed a Bash script which could scan a copy of the web server files and detect patterns and anomalies commonly seen in malicious scripts.  While we were both running PHP on different server machines, the script may be useful in different environments and even non-malicious detections are good reminders of specific code patterns.


WPHSAT Bash code


 

Lua AI LuigI/O Project

 

Coding along with a live project based on MarI/O I became adept at Lua scripting and the basics of AI code regarding evolution, generations, species, genomes, neural networks, and other intricacies.  This allowed me to gain knowledge of AI coding applications and LuigI/O featured a self-learning AI to beat the original Super Mario Bros while tracking progress.  Using LuigI/O, I heavily modified their V2 release adding features specific to my own learning progression.  In their final release (V3), I was impressed to see that they had recognized and revised some of the items I had resolved.


LuigI/O Completing World 1-1 Showing Visual Network


 

Arduino LCD Temperature / Humidity Display Project

 

When 3D printing with my enclosed printer, I found it unusual that the machine didn’t have a temperature or humidity sensor built-in to measure ambient machine temperature.  Establishing and maintaining temperature & humidity allows for finer control of the 3D prints.  Therefore I designed a Temperature / Humidity sensor setup using multiple 3D printed cases, an Arduino UNO, ST7735S 128x160 1.8" TFT LCD, DHT22/AM2302 Digital Temperature Humidity Sensor, and other various minor components.  The sensor is hung on the side of the printer, has a built-in on/off switch, and the display keeps records of the high/low temperature & humidity.  All code was written in Arduino programming language and I coded everything from scratch for my desired functionality beyond including basic libraries.  Beyond its use for 3D printing, the Temperature / Humidity sensor has applications wherever it can be safely routed.

LCD Temperature / Humidity Display Box Completed
LCD Temperature / Humidity Display Box Wiring Diagram

 

Python Tux Droid Project

 

I’ve always admired the old Tux Droid and found one in great shape on eBay.  Initially I wanted to do minor modifications to the code while having it function with mostly original software but found the response servers were shutdown and only limited functionality still worked.  This took me down a Python reverse engineering rabbit hole as documentation was very lean or lacking altogether at the time of research.  I successfully implemented functionality that was broken out of the box and desired to do more, but the platform was limited.

Tux Droid
Tux Droid Controller

 

Watercooled Custom Loop in Danger Den Double Wide

 

During a search of the classifieds I found a rare Danger Den Double Wide case with older components installed.  After purchasing the case and cleaning everything, I rebuilt the setup with new components and a custom loop using green watercooling fluid.  Most of the loop components are EK, the pumps/fans are controlled with an Aquacomputer Aquaero 5 PRO, and a basic fan controller takes care of the rest of the fans.  The GPU was relocated off the motherboard with a custom designed 3D printed bracket and PCI-E extension cable.

Watercooled Custom Loop in Danger Den Double Wide GPU Side
Watercooled Custom Loop in Danger Den Double Wide Installed

 

NAS Server with Hardware RAID Controller

 

This headless Linux server was built using some older PC components and five 4TB hard drives configured with a Hardware RAID Controller.  The setup includes RAID 5 with 16TB of total usable storage, Samba for local network file access, and Seafile for cloud services.


NAS Server with Hardware RAID Controller


 

3D Printed & Painted Items

 

Finished Underwater Diorama

Underwater Diorama Bridge Scene

Shark Diorama

UFO Diorama Light

3D Printed & Painted Treasure Chest with Coins

Treasure Chests

USB 5-12V Converter Box Inside

USB 5-12V Converter Box

3D Printed Pelican Style Storage Boxes Open

USB Device / Jewelry Storage Box

Painted UFOs for Diorama

UFO Diorama Light

Painted Baby Yodas (Grogu)

Baby Yoda (Grogu)


 

Gym Clock

 

The Gym Clock was created in HTML & Javascript to time sets of exercises and the tool evolved to have the ability to record laps, count up/down, show real time, change colors and more!  It can be used to time anything you can think of, or simply as a basic digital clock.

 

Gym Clock


If you prefer to use the clock standalone, please try the online version without the site frames or download the source code here.


 

RPG Game

 

The RPG Game is an action / adventure turn based battle game where the objective is to level up and defeat the final boss.  You have the ability to purchase HP, MP, and levels at the shop and after the game is beat you can customize the settings using the RPG Builder.  Use magic spells to defeat your opponents and submit your high score!

RPG Game
RPG Game Battle Screen

Play through and customize the game with the RPG Builder!

Top