College of Engineering Unit:
The Universal Chip Programmer is a system that is able to read and program the memory of a microcontroller. The purpose of the project is to expose possible security weaknesses so they can be improved on. Based on the Glasgow Explorer hardware platform, an open-source digital interface tool, custom gateware/applet code written in Amaranth HDL is used to configure the system hardware to recreate programming commands for the PIC16 series microcontroller. A Jupyter Notebook GUI is used to execute commands, as well as, save and display any data that is read from the PIC16.
The main challenge for the project was using the Glasgow Explorer due to its limited resources, documentation, and availability. In order to use the system, a training session was required to understand the basics of claiming pins and reading data from the Glasgow. Additionally, having a working Glasgow was difficult due to them being damaged upon delivery.
The future of the project would be to build on the universal aspect by implementing more families of microcontrollers. The ultimate goal is to have the code become an official part of the Glasgow Explorer project.