Skip to content
View EvanO12's full-sized avatar

Block or report EvanO12

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
EvanO12/README.md

Hello! 👋

My name is Evan Owens, and I am a third year Computer Engineering Student at the University of British Columbia. I am passionate about embedded systems, firmware development, and the semiconductor industry.

I currently work at Intel as a Firmware Engineer Intern, where I have gained experience writing hardware interfacing firmware applications and drivers for microcontroller cores. I also lead the Embedded Systems team at UBC Solar, in writing safety critical embedded software for our Fourth Generation solar car.

Recent Work

I am currently the Embedded Lead of UBC Solar. I lead a team of 5 in writing drive control, and telemetry firmware across four ECUs on a solar car. Recently, I have been focused on transitioning our team's build system and development environment to CMake and VS Code. I have also been updating our team's development flows to better match that of industry, including automated builds, unit testing, standarized debugging via JLink, and enforced code formatting.

Previously, I have worked on telemetry firmware to log and transmit CAN messages OTA, drive control state machines, and common code libraries such as a FreeRTOS based CAN Communication layer and a Debug Print library.

EvanRTOS is a custom Real Time Operating System built for ARM Cortex-M microcontrollers. It features a pre-emptive, Priority-Based Scheduler, Counting Semaphores, and Message Queues. It also supports task timeouts, and FPU context perservation during context switches.

A custom bootloader prototype built on the STM32 F411RE microcontroller. It allows for the external flashing of the Microcontroller with new binaries over UART, from a host application written in Python. This project was designed in order to gain the skills and expertise to integrate a full, proper bootloader at UBC Solar. In the near future, we plan to use this as a basis of a CAN Bus and perhaps even OTA bootloader for all the electronic control units on our car.

Other

I've also built Autonomous Claw Algorithms for an Arduino Powered Robotic Claw, a Turing Complete RISC Machine in SystemVerilog, a Java based Image Processing program, and an System Verilog based IPod device, all in my Computer Engineering course work at UBC.

Contact

If you have any questions, please do not heisitate to contact me. You can email me at evancdowens@gmail.com or connect with me on LinkedIn here

Pinned Loading

  1. EvanRTOS EvanRTOS Public

    Lightweight, custom real time operating system.

    C

  2. Bootloader-Proto Bootloader-Proto Public

    C

  3. UBC-Solar/firmware_v3 UBC-Solar/firmware_v3 Public

    All the firmware for UBC Solar's 3rd generation vehicle

    C 12 4

  4. UBC-Solar/sunlink UBC-Solar/sunlink Public

    UBC Solar's radio and cellular-based telemetry system

    Python 5 1