Hardware*

(1) Embedded Systems (microcontrollers, embedded C, etc.)

1.1) Flight control and HW design of a quadcopter
This is the open source, both as HW and SW, of a quadcopter called MarqDrone v1.0. HW includes flight controller, remote controller, and ESC controller. SW includes Kinetis studio files. It has a web browser GUI based debugging tool. Most of the work was done by Nate Zimmerman as part of his MSc thesis.
-- The entire design (design files, source code, description, etc.) is available here: https://github.com/NateZimmer/MarqDrone
-- A short video showing the MarqDrone in action is available here: https://youtu.be/dU9GXBNJbSU 


1.2) Collection of labs and additional examples from my class on Embedded Systems (COEN-4720)
Each of the labs has at least one complete example built around the LandTiger 2.0 board (NXP's LPC1768 MCU, Cortex M3 based). Examples include:
-- Wii NunChuck, LCD display, Direct memory access (DMA)
-- WiFi, BlueTooth
-- USB, Ethernet, CMOS Camera, Parrot AR.Drone 2.0 control
See the class website for more and for complete source code: http://www.dejazzer.com/coen4720/index.html 

1.3) Vibrating Alert  Bracelet  
Vibration alert bracelet (VAB) with two basic functions: 1) Receive a wireless signal from a main control center and respond with a vibration to alert the person wearing the bracelet about emergencies, and 2) Generate an emergency signal by pressing a button that is sent from the bracelet to the control center.
-- The entire design (design files, source code, description, etc.) is available here: https://github.com/eigenpi/Vibrating-Alert-Bracelet 
-- Final report: E45FinalReport.pdf   
-- Poster presentation: Poster_Team_E45_SDP_2019.pdf  
-- A short video description is available here: https://youtu.be/Zs1TMDEWUGM  


1.4) RGB LED Electronic Display 
This is the design of a 320x256 RGB LED electronic display board created from a 5x4 array of 64x64 pixels RGB off-the-shelf panels. Images can be uploaded to the board system via WiFi from an Android App that was custom developed for this purpose.
-- The entire design (design files, source code, description, etc.) is available here: https://github.com/drewsum/Electronic_Display 
-- Users Guide and Repair Guide
-- Final report: E44FinalReport.pdf
-- Poster presentation: Poster_Team_E44_SDP_2019.pdf  
-- A short video description is available here: https://youtu.be/dfDsyGvSAHQ



1.5) Proximity sensor
A plug-and-play printed circuit board (PCB) proximity sensor design. It detects metal targets approaching perpendicularly as well as their moving direction. It uses an inductance to digital converter circuit.  Machine learning models are used to differentiate between different types of metals (V2). The whole project is open-source, with both HW and SW source files included. HW includes PCB layout files in KiCad and SW includes firmware for the microcontroller (Atmega328p). This project is a collaboration with Jim Richie.
-- Design files, including source codes are available here: https://github.com/eigenpi/Proximity-Sensor 
-- Short video domonstrating the proximity sensor is available here: https://youtu.be/9pmw1QUPN_U
-- Papers:
[1] C. Ababei and J.E. Richie, Sensor design for inductive proximity and moving direction sensing of metal targets, IEEE Int. Conf. on Modern Circuits and Systems Technologies (MOCAST), Thessaloniki, Greece, July 2021.

(2) FPGAs (VHDL, Verilog)


2.1) Network-on-chip (NoC) based H.264 video decoder on FPGA: DE4 and DE1-SoC boards
This is an open source, both as HW and SW, implementation in VHD and Verilog of a NoC based H.264 video decoder. The communication between decoder modules is done through an NoC. The design has been validated on DE4 and DE1-SoC FPGA boards. Most of the work was done by Ian J. Barge as part of his MSc thesis.
-- The entire design (design files, source code, description, etc.) is available here: https://github.com/bargei/NoC264
-- A short video demonstrating the operation is available here: https://youtu.be/IZz36M0nqFw

2.2) Face detection on FPGA: OV7670 CMOS camera + DE2-115 FPGA board
This is a complete implementation in VHDL of the popular Viola Jones face detection algorithm. It was validated on the DE2-115 FPGA board using Altera's Quartus 2 15.1 tools. The entire project was developed by a senior design project team formed by Peter Irgens, Curtis Bader, Theresa Le, and Devansh Saxena. The implementation operates at about 4 fps.
-- The readme file of the project: README.txt
-- Complete design files (archived Quartus 2 project directory) are available here: faceDetectSystem_2p3_320x240.zip
-- Additional documentation: E50FinalReport.pdf
-- A short video demonstration: https://youtu.be/aj4FEovXVXM

2.3) Edge detection in video mode: OV7670 CMOS camera + DE2-115 FPGA board
This is a working edge detection (Sobel operator) design, which was validated on the DE2-115 FPGA board. The projects uses a simple OV7670 CMOS camera and is a modified version of the digital camera project described later on this webpage. Video is displayed on an VGA monitor, 320x240 pixels.
-- Complete design files (archived Quartus 2 project folder) are available here: http://www.dejazzer.com/eigenpi/digital_camera/digital_camera.html
-- A short video demonstration: https://youtu.be/-8Tj1P1tIwY


2.4) Digital camera: OV7670 CMOS camera + DE2-115 FPGA board
This is a simple digital camera system in order to illustrate some of the main concepts related to digital design with VHDL and FPGAs, image and video formats, CMOS cameras, basic image processing algorithms (black and white filters, edge detection, etc.).
-- Detailed description of several versions of this design and complete VHDL source code are available here: http://www.dejazzer.com/eigenpi/digital_camera/digital_camera.html
-- A short video demonstration: https://youtu.be/MLlvebcH-Jw

2.5) Collection of various VHDL projects from my class on VHDL and FPGAs (EECE-4740)
These are complete VHDL descriptions validated on various FPGA boards. Examples include:
-- Mano's single-cycle computer (SCC)
-- Cool digital clock
-- Several HPS+FPGA systems implemented on DE1-SoC board
See the class website for more and for complete VHDL source code: http://www.dejazzer.com/eece4740/index.html


 


2.6) UML Statecharts to VHDL Code
This project presents an approach to translate UML statecharts elements into VHDL constructs. The classic Fly-n-Shoot game is used to showcase the proposed approach.
-- Complete design files are available here:  https://github.com/eigenpi/fly-n-shoot
-- A short video demonstration: https://www.youtube.com/watch?v=EWZZK2uyEOw
-- Papers:
[1] C. Ababei and S.C. Schneider, Hardware description of event-driven systems by translation of UML statecharts to VHDL, IEEE Int. Electro/Information Technology Conference (EIT), Romeoville, IL, May 18-20, 2023.

(3) Arduino

3.1) WiFi Control of 8x8 LED Matrix: (Android App) talks to (Arduino + ESP-01) 
This design uses an ESP8266 WiFi module connected to the Arduino board to control an 8x8 LED matrix. The controlling commands are sent from an Android app running on an Android device.
-- Detailed description and complete source code (both Arduino and Android) are available here: http://www.dejazzer.com/eece4920/index.html 

3.2) BlueTooth Chat System: (Android App) talks to (Arduino + HC-06 + PC)  
This project uses HC-06 Bluetooth module connected to the Arduino board to build a chat system between the laptop also connected to Arduino and an Android app .
-- Detailed description and complete source code (both Arduino and Android) are available here: http://www.dejazzer.com/eece4920/index.html

3.3) Bluetooth data acquisition system using DHT22 temperature and humidity sensor
This is a simple data acquisition system using a DHT22 humidity and temperature sensor and an Arduino Uno board connected to a host PC. It uses the HC-06 bluetooth module. It is one of the main projects done in the Engineering Discovery 1, EECE module.
-- Detailed description and complete Arduino source code are available here: http://dejazzer.com/geen1200/index.html


3.4) YARY: Yet Another Robot for You
This is a self-balancing robot built with an Arduino pro mini. It is an adapted version of the original robot designed by Joop Brokking. The "adaptation" consists of: the replacement of the Wii NunChuck controller with an Android app (implements basically a Bluetooth Joystick), the 3D printed body, and wiring on protoboards to allow easy re-use of most of the components.
-- Design files, including source codes (firmware and Android Studio project) are available here: https://github.com/eigenpi/YARY 
-- Short video is available here: https://youtu.be/pj5hVGT7MBc  


* Copyright and Permission to Use:
Copyright beginning-of-time-to-present by Cristinel Ababei (cristinel.ababei@marquette.edu) and collaborators. This Copyright notice applies to all files, software and hardware, called hereafter "The Design Files". Permission to use, copy, and modify the design files and the documentation is hereby granted only under the following terms and conditions.  Both the above copyright notice and this permission notice must appear in all copies of the design files, derivative works or modified versions, and any portions thereof, and both notices must appear in supporting documentation. Permission is granted only for non-commercial use. For commercial use, please contact the author. These design files may be distributed (but not offered for sale or transferred for compensation) to third parties, provided such third parties agree to abide by the terms and conditions of this notice. The design files are provided "as is", and the authors, their employers, as well as any and all previous authors (of portions or modified portions of the design files) disclaim all warranties with regard to these design files, including all implied warranties of merchantability and fitness. In no event shall the authors or their employers or any and all previous authors be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of these design files.