The Portfolio

All of the material enclosed is of my own. Use these bookmarks to get around quickly:

  1. Resume
  2. Hardware
  3. Software
  4. Projects
  5. Documentation
  6. Research
  7. Scripts
  8. Websites

Resume

Direct Link: Derek_Hildreth_Resume.pdf

Computer Engineering

4-Bit_CPU_Fundamental_Digital_Systems_CompE224.zip
8-Bit_CPU_Comp_Architecture_CompE324.pdf
BZFlag_Game_Controller_Computer_IO_CompE360.pdf
Ball_and_Beam_Full_and_Reduced_Order_Estimators_Feedback_Control_CompE470.pdf
FM_Transmitter_Data_Comp_Comm_CompE440.pdf
Inverted_Pendulum_with_Sliding_Mode_Control_Feedback_Control_CompE470.pdf
Microphone_Preamplifier_Electrics_Devices_and_Circuits_CompE350.pdf
Simple_Calculator_Verilog_Digital_Systems_Design_CompE340.pdf
Simple_Logic_Circuit_Fundamental_Digital_Systems_CompE224.bmp
Zener_Diode_Power_Supply_Basics_Electrics_Devices_and_Circtuits_CompE350.pdf

Computer Science

All_Solutions_Discrete_Math_CS236.cpp
Book_Scanner_Object_Oriented_Programming_CS235.cpp
Collatz_Conjecture_Discrete_Math_CS236.zip
Pedigree_Chart_Data_Structures_CS235.zip
RSA_Encryption_Discrete_Math_CS236.zip
Technologic Systems TS-7500 gettemp.c
Technologic Systems TS-7500 ledctl.c
Technologic Systems TS-7500 getdio.c
Technologic Sytems TS-7500 sbus.c (setdiopin, getdiopin, gettemp)
Technologic Systems TS-7350 getbufin.c
Technologic Systems TS-7390 GTK Example

Projects:

Wireless Cell Phone Controller

I was a part of a successful engineering project which controlled a cell phone remotely from a central location. We were able to reach out about 6000 feet over 802.11g from a central location to an embedded system with Bluetooth capability for controlling the cell phone. We used the Hands Free Profile (HFP) of the Bluetooth stack to do so. We were able to make the cell phone call a number, answer an incoming call, hangup a call in progress, and send DTMF tones.

My role in the team was to research, purchase, and prepare the embedded system for controlling the cell phone. We used python on to embedded system (Linux) to establish a connection to the central control and then wait for, accept, and initiate cell phone commands. The central control side (Windows) used a program written in C# to search for cell phones, control them using a custom script, and keeping a log with accurate timing. The control side was also able to play, pause, resume, and fast forward through the custom script.

Personal LAMP Server

I made an individual effort to learn how to setup a Linux server running SSH, FTP, Telnet, RDP, HTTP (Apache), and RealVNC services as well as create clean documentation for the Linux community to follow. I was sucessful in completing the tasks I set out to accomplish and the resulting documentation can be found on my blog here: http://www.thelinuxdaily.com/tutorial-setup-your-own-self-hosted-simple-web-server-for-free/

Linux Virtual Machine Development Environment

While supporting Technologic Systems' single board computer (SBC) product users, I noticed many customers had an incomplete developement environment. Mostly it was incomplete because in order to develop on a Linux based SBC, a Linux development PC is recommended. Some customers Lacked the resources and time to go out and purchase a separate PC to Dedicate as a Linux PC, so I created a completely free and easy to use Linux development environment in a virtual machine (VirtualBox) that we Called the ts-virtual-dev. It emulates the development environment used By Technologic System employees and makes it incredibly easy to start Developing programs, custom kernels, busybox builds, and much More. You can read more about it here: ftp://ftp.embeddedarm.com/misc/virtualbox/ts-virtual-dev/
Screenshot 1 2 3 4

Linux Kernel Compile Instructions

Like in my experience in the item above this one (Technologic Systems Linux virtual development environment), I noticed a lot of questions Coming in from customers about compiling additional kernel modules for the Technologic Systems single board computers (SBC). Technically, this level Of support is not something we've been allowed to support in the past, but I was able to create a few guides which walked users step by step on how To create a custom kernel that suited their needs. These guides can be Found in the section Documentation below.

LaTeX Technical Documentation

Recently I've been practicing the art of technical documentation. I taught myself LaTeX and then provided templates for the community And colleagues. These can be seen in my portfolio here, but for more Information, visit my blog: LaTeX Laboratory Template and LaTeX Resume Template and Examples

Fedora Linux on MacBook 5,1 Aluminum

I have written tutorials for installing every version of Fedora Linux on a MacBook Aluminum (5,1) since Fedora 10 was Released. These tutorials can be found on my Linux Blog at http://thelinuxdaily.com. For example: Fedora 13 Goddard on MacBook Aluminum 5,1 [Guide]

Virtualbox Guides

I have written tutorials for installing (and using) several different Versions of VirtualBox for several different versions of Fedora. Take a look: http://www.thelinuxdaily.com/?s=VirtualBox

Photo Gallery Sync Script

Another personal project that I took on was developing a script, called picup, that would automatically Scan my images searching for keywords within the EXIF data and then both Sync and create a gallery based on the keywords. This script powers my gallery. I have created A blog post with instructions and examples on how to use it here: Picup: A Keyword Scanning Script to Synchronize or Upload Photos to an Online Gallery

360 Webcam and Temperature Dashboard

I developed an online dashboard to control and monitor a 360 degree network webcam and temperature guage (RS-232) which are mounted on a remote building. I used a combination of Python, Shell Script, PHP, MySQL, Google Charts API, and a pinch of Perl and Regex. I have my server setup to take five pictures around the building every half hour and also record the temperatures of four zones to the database every hour. Google Chart API is used to wrap up the data into several nice, easy to read charts. The images are compiled into a GIF image for a timelapse view. Also, user visits are recorded to the database and displayed on the dashboard. I created my own API in Python to control the 360 degree Canon network camera programically. You can find the source code here: https://bitbucket.org/dhildreth/canon_webview

Documentation

Lab_Binder_Documentation_BYUI_Work.pdf
Lab_Write_Up_Template.zip
INL TS-7350 SBC Remote Cell Control Setup Manual.pdf
INL TS-7350 SBC Remote Cell Control Setup Manual.tex
Technologic Systems TS-7350/70 Manual
Technologic Systems TS-7500 Getting Started Guide
Technologic Systems WIFI-G-USB-2 Manual
Technologic Systems TS75XX/TS4500 Manual
Technologic Systems TS-4200 Manual
Technologic Systems TS-SOCKET Manual
Technologic Systems VirtualBox Guide
Technologic Systems Guide on Manually Expanding/Growing SD Card
Technologic Systems TS-73XX Read-Only Debian Guide
Technologic Systems TS-73XX Kernel (2.6) Compile Guide
Technologic Systems TS-7800 Kernel (2.6) Compile Guide
Technologic Systems TS-7260 Kernel (2.4) Compile Guide
Technologic Systems TS-72XX Kernel (2.4) Compile Guide

Research

Computer_Development_in_Park.pdf
Computer_Development_in_Park_Presentation_Advanced_Writing_ENG316.pdf
Education_in_a_High-Tech_Classroom.pdf
Peripheral_Devices_Report_CompE324.pdf
Product_Development_Chapter_3_Product_Planning_Senior_Project_CompE499.zip
Product_Development_Chapter_7_Concept_Selection_Senior_Project_CompE499.zip
State_Reduction_and_State_Assignment_Techniques_Digital_Systems_Design_CompE340.pdf
Teaching_State_Reduction_Digital_Systems_Design_CompE340.pdf
Web_2.0_and_Beyond_Presentation.odp
Web_2.0_and_Beyond_Presentation.pdf
Web_2.0_and_Beyond_Report.odt
Web_2.0_and_Beyond_Report.pdf
Web_2.0_and_Beyond_Report_Column_Format.odt
Web_2.0_and_Beyond_Report_Column_Format.pdf

Scripting

Firefox_Custom_Installer_For_BYUIdaho_Labs.zip
Remote Photo Backup and Gallery Creation via Keyword Script
Script to Auto Expanding/Growing SD Card
Auto Detect, Download, and Install Proper Wireless Card Driver (README)
Technologic Systems TS-7500 Read-Only Debian linuxrc

Websites

S&S Machine
Jares Fencing
Lisa Hildreth Realty
Mirror Image Environmental Services
Iron Bull Supply (Development stalled)
Derek Hildreth Homepage
Cody Hildreth Homepage