Portrait

Aman Nijjar

University of Victoria's Computer Engineer Graduate

I specialize in embedded systems, not web design

About Me

In 2018, I was accepted into the Computer Engineering program at the University of Victoria. Shortly after, I joined the Autonomous Underwater Vehicles Interdisciplinary Club (AUVIC). This experience was my first introduction to PCB design, firmware development, and programming in C++ and Python. I later achieved a leadership role, leading the club for several months, successfully managing projects such as a ROS control system, the mechanical grabber arm, and computer vision development. Currently, I offer consultation and advice to the club members.


Upon completing my degree, I achieved my goal of deepening my understanding of robotics and embedded systems. I am now actively seeking to apply these skills to a career in the manufacturing or medical sectors, with a particular interest in hardware development. My strong technical skills, coupled with my project management expertise, position me as a valuable asset in any team.


Leading engineering students has highlighted the importance of finding the best solution, rather than striving for perfection. This lesson was learned the hard way during my ECE 200 class when I attempted to overengineer a 3D-printed enclosure. It's a reminder that sometimes, simplicity is the key.

Professional Experience
  1. Component Engineering Technologist (12-Month Coop)

    Delta Controls

    During my tenure as a Component Engineering Technologist, I was responsible for a wide range of tasks that contributed significantly to the success of our projects. My role required a deep understanding of electrical components and their applications, as well as the ability to work collaboratively with various teams to achieve our goals.

    Duties & Accomplishments
    • Queried suppliers and distributors on electrical components to perform black-box testing for the purpose of locating alternatives for the purchasing team, mitigating supply chain disruptions.
    • Reduced component costs by up to 30%, relative to the current sources.
    • Assembled, executed, and passed the radiated emissions lab test at QAI laboratories in under 4 hours.
    • Designed a PCB to measure the tombstone occurance rate of 0201 capacitors for the new pick-and-place machine, reducing future board-spins.
    • HALT tested several header/plug pairs by performing several thousand insertion/removal cycles. Built a wooden test fixture with a PLC.
    • HALT Testing
    • Black-box Testing
    • Python Automation
    • HVAC
    • PLC Programming
    • Altium
    • Soldering & Hand Tools
    • Quality Assurance
    • Electrical Instruments
  2. Embedded Systems Developer (4-Month Coop)

    University of Victoria - AUVIC

    For my role volunteering for the club, I was awarded a co-op opportunity under Dr.Buckham. I was responsible for switching the communication interconnect on the AUV from point-to-point (USB) to a broadcast system (CAN). My role required a deep understanding of the computer's architecture, the operation of real-time operating systems, and strong C++ and Python programming skills.

    Duties & Accomplishments
    • Built Python & C++ Nodes for a ROS control system to communicate between the main computer and custom PCBs.
    • Wrote C code to configure the CAN controller on a ARM Cortex M4 processor for validation testing.
    • Performed integration testing by emulating the hardware response with Python and sending messages through a virtual CAN port with SocketCAN.
    • C++/Python
    • Integration Testing
    • SocketCAN
    • Computer Architecture
    • Linux OS
    • RTOS
    • Hardware Emulation
    • C Programming
Projects
  1. Traffic Light Simulator

    Simulates two-way traffic using a round-robin scheduler on a STM microcontroller

    Version 2: Hardware Design (Altium + LTSpice)
    • Located SMD alternatives to breadboard PDIP components.
    • Simulated digital circuit to calculate max driving current.
    • Captured the schematic and layout on Altium.
    • Validated board dimensions with the datasheet and also a Solidworks model.
    Version 1: Firmware Development (FreeRTOS)
    • Built a flow chart describing logic.
    • Broke down what freeRTOS components will be best (semiphores/Queues/etc).
    • Wrote and tested the C code with CUnit.
    • Troubleshooted by reading register values and displaying output on Shift Registers + LEDs.
    • Altium
    • RTOS
    • C Programming
    • Breadboarding
    • SPICE
    • Network Schedulers
  2. Electronic Speed Controller

    4-layer PCB to drive one quad-copter 3-phase BLDC with Field-Oriented Control

    Field-Oriented Control is used on Variable-Frequency Drives to control 3-phase BLDCs through two orthogonal components - torque and magnetic flux - to minimize torque ripple

    • Queried academic databases on papers experimenting FOC on small BLDCs to increase confidence.
    • Simulated the FOC logic using MATLAB Simulink's toolkit.
    • Designed, selected components, & simulated circuits (3-phase inverter, dynamic brakes, op-amp feedback, etc).
    • Implimented SVPWM to get a 20% increase of max voltage.
    • Control Systems
    • Altium
    • C programming
    • Simulink
  3. Hydrophone Pre-amp

    2-layer RF PCB to sample Teledyne hydrophones

    Reduced inductance & improved signal integrity by reducing board thickness to 0.6mm and using a solid ground plane.

    • Simulated & designed an active 2nd order band-pass filter to pass signals between 20kHz-35Khz
    • Used a common SOP-6 footprint to allow for ad-hoc adjustment of parts, mitigating board-spins.
    • Validated band-pass filter through LTspice and an online calculator.
    • Altium
    • Signal Processing
    • SPICE
  4. Kogge Stone Adder

    Computer Architecture (VHDL + Vivado)

    Up to 30% more efficiency than the Ripple Carry Adder (Due to Lookahead logic)

    • Broke down the components of a Kogge Stone Adder.
    • Analyzed and built the Carry-Lookahead Generator.
    • Built remaining components and connected signals.
    • Black-Box tested using dummy values.
    • Sythensized & Implemented on a Basis 3 board.
    • VHDL
    • Vivado
    • RTL Analysis
    • Synthesis
  5. Job Posting Aggregator

    Web Scrapping (Python + Selenium)

    Personal Tool to save time querying Learning In Motion

    • Quered HTML and parsed elements with BeutifullSoup.
    • Downloaded PDFs and saved to a local folder.
    • Swapped CLI to Tkinter GUI for login credentials.
    • Python
    • Selenium
    • TKinter GUI
    • Automation
  6. 16-bit 5-Stage Pipeline CPU

    Computer Architecture (VHDL + Vivado)

    16-bit CPU following the Thumb ISA

    • Built the register component using structural design paradigm.
    • Described what the 5-stages require (Fetch, Decode, Execute, Memory Access, Writeback).
    • Built the required components using the hybrid design paradigm.
    • Black-Box tested each stage using dummy values.
    • Tested for data, control, and structural hazards (used data-forwarding to prevent data hazards).
    • Validated with the fibbanachi sequence.
    • VHDL
    • Vivado
    • RTL Analysis
    • Synthesis
  7. Gate Detection Algorithm

    Computer Vision (Python)

    Identifies gates underwater using a USB camera at 70% accuracy

    • Improved an AUVs intelligence by feeding video into a Canny-edge detection algorithm.
    • Video was preprocessed in a Python script by converting to greyscale and applying a gaussian blur to remove details.
    • OpenCV
    • Python
    • Algorithms
  8. Baremetal Cortex-M0 Library

    Firmware Development

    C Library written to apply convention over configuration, improving my productivity.

    • OpenOCD and GDB was used to debug.
    • GCC was used to compile the C code.
    • CUnit was used to unit test the dynamic libraries (linked list).
    • Custom Linker scripts were written to decrease stack and increase heap.
    • Unit Testing
    • Dynamic Programming
    • C Programming
  9. Motor Controller

    Mixed-signal, high-current 4-layer PCB to control 8 ESCs using PID

    Decreased fabrication cost by 30% & lowered the resistance of high-current rails by via stitching & removing the solder mask, allowing users to flood solder over the trace, increasing conductance.

    • CAN/I2C/PWM/UART/SPI communication
    • 12V, 16V, 20V hot-swappable regulation
    • Arm Cortex M4 Microcontroller with built-in FPU allowing for floating-point arithmetic, rather than fixed-point
    • Off-the-Shelf current monitor used for feedback
    • MOSFET power switch for each ESC
    • Internal Pressure, Temperature, Humidity, and External Pressure sensor footprints and connectors
    • Altium
    • SPICE
    • Analog/Digital Circuit Design
    • Power Electronics
  10. FoodieFleet - eComm Marketplace

    Ruby on Rails

    TBA

  11. Breadboard PSU

    Power Electronics

    Mounts on breadboard to provide 5V & 3v3 DC from an arduino jack

    • MOSFET toggle switch
    • Hot-swappable voltage switching
    • KiCAD
    • SPICE
  12. Remote Viewing CCTV

    Networking

    Implemented a NGINX reverse-proxy to allow remote connections to a Ubuntu server running a ShinobiCCTV setup

    • Networking
    • NGINX
    • Linux OS
Education & Coursework

TBA