Hardware/Software Development - Site2020

2021 - Dartmouth, NS

Skills Showcased 

3D modeling using Fusion 360, 3D printing, CNC, thermoforming, soldering using traditional methods as well as solder paste, mechanical design, electronics design, software development, prototyping, troubleshooting, testing, project management, cost estimates, procurement, generation of BoMs, documentation, code maintenance, self directed working

Asset Tracker

Description

This was a tracking device that records live position as well as orientation of an asset (ex. traffic sign). Assets could communicate through a bluetooth mesh network. Assets would transmit position, orientation, ID, and other information through the mesh network to a modem. The modem (Pinephone smartphone or Android tablet) would post the data to our web server. This information would be collected to record locations of signs on a job site and notify site supervisors if a sign fell over or started to move unexpectedly (stolen).

My Involvement/Technical Details

My role in this project was to develop the modem to collect the BLE packets and upload them to our server. I created 2 different modems: One was a Linux based smartphone, called the Pinephone, as it combined BLE functionality, cell modem, and a screen for debugging in the field, for a decent price. Software was written in python and implemented some BASH shell scripts and cron jobs to function. The second was using an Android Tablet. This was written in Java using Android Studio. I attempted a Kotlin version but the rest of the team was not familiar with that language so it was disbanded in favor of Java.  


I also helped with the design of the asset tracker case and electronics assembly. I used Fusion 360 for 3D modeling. Some cases were 3D printed using a Creality 3D printer and coated in epoxy as a form of weather resistance. I also created a thermoforming jig using a desktop CNC mill and MDF. I used a toaster oven to heat ⅛” ABS, then placed it in the 2-part mold from the CNC. This allowed me to make incredibly durable cases in a short amount of time.


Code Sample 

Sensor Extensor

Description

This was my most extensive project at Site 2020. I was tasked with confirming an overheating issue with some of our equipment that would operate in an enclosed space, in a truck, in the Arizona summer. There were some other issues, such as suspected humidity damage. We also wanted to test using CANbus for communication. 


First I had to determine how to cool the device. This was done by running a stress test on the device in various configurations, lid open/closed and addition of a fan with lid open/closed. Once shown that the fan was successful at cooling the device, I was tasked with designing the electronics to detect the temperature increase and control the fan. I also implemented a humidity sensor to detect and log moisture readings.


I designed the PCB for the Sensor Extensor, produced price estimates for the boards, components, and production. I then ordered parts for prototypes as well as 50 production units. I assembled 3 units by hand to test the code that I wrote.

Technical Details

I used Jira for project planning. We followed a sprint structure with daily scrums. Bitbucket was used for source code management. I created a stress test for the Pi, tracked CPU temps as well as internal temp of the equipment enclosure, using Python. Google Docs and Sheets were used for documentation and creation of the BoM. 


The circuit design was done using Eagle PCB. SMT components were selected where possible to reduce manufacturing costs. I created a 3D prototype using Fusion 360 and our 3D printer to check tolerances in the equipment. I used an ATmega32U4 microcontroller for ease of development in using Arduino libraries, its USB, I2C, and CANbus communications protocols, and number of I/O. Code was written using Atmel Studios. Temperature and Humidity sensors communicated to the MC using I2C. There was one on-board temp and humidity sensor and 7 expansion ports for extra thermistors. I also implemented a battery monitor using a voltage divider to report more accurate battery statistics as this was a needed feature for users.


Code Samples

Protector Smart Cone 

Description

The Protector Smart Cone is a device that would be placed approximately 150m in front of a jobsite before it is set up. During site setup operators will typically have their backs to the road while they are setting up pylons and other safety equipment. The device used an optical sensor to detect incoming cars and alerted workers that a vehicle would soon be entering the site by communicating to a beeper like device worn by the operator.

My Involvement/Technical Details

I designed and 3D printed the V1 prototype housing and assembled the components.