I wrote drivers for the MPU6050 and the ADXL345 ICs. I used FreeRTOS to schedule tasks like sensor data computation, UART interface (for debugging), and sensor data retrieval.
I wrote drivers for the 25AA040A EEPROM IC and the ADXL345 triple axis accelerometer.
More information about this project can be found here.
More information about this project can be found here.
This is the hardware implementation of the fast inverse square root algorithm. Inverse square root operations are heavily used for 3D graphics rendering. They are particularly important for operations such as normalizing vectors, which is a common task in graphics processing for lighting and shading calculations. Note that the result is an approximation of the inverse square root.
More information about this project can be found here.
In this project, I made a VGA controller in Verilog using the VGA controller references by Altium. Since I did not have the ressources to test this on an FPGA, I used the $fwrite() command in Verilog to produce basic images in PPM format. A Python scrypt was made to then open the PPM file as a PNG.
The first step of this project was to create the schematic including the circuit protection, voltage regulation, and the LED matrix. Next, custom footprints had to be designed in Fusion360 for the LMS78 and the barrel jack connector. KiCad's PCB editor was used to design the PCB.
The first step of this project was to create the schematic including the circuit protection, voltage regulation, and the LED matrix. Next, custom footprints had to be designed in Fusion360 for the LMS78 and the barrel jack connector. KiCad's PCB editor was used to design the PCB.