Hello, I am Ian Huff. I'm a third-year Computer Engineering student at Michigan Technological University, looking to graduate in the Fall of 2022. I am currently a member of the Open Source Hardware Enterprise at MTU. I'm interested in working on hardware/software projects, and I enjoy coding and developing software.
Interests[edit | edit source]
|Arduino||Software||Programming||Embedded Systems||3D Printing|
Experience[edit | edit source]
- I've worked on several small, independent programming and electronics projects
- I built a computer that I currently use as a server.
- I took a course and gained a certification in cybersecurity principles
- I've been a member of Michigan Tech's Open Source Hardware Enterprise for two semesters
- I've completed courses in concurrent computing, systems programming, computer organization, and embedded systems programming.
Enterprise[edit | edit source]
Semester 1: Fall 2021[edit | edit source]
BREAD: Servo Controller Board
This semester, I worked on overhauling the code for the BREAD Servo Motor Control Slice. The original code was fairly simple, and only allowed users to input a command that would set the positions of the motors in all 5 channels at once. I developed a new version of the code, which now takes in a number of different commands, allowing a user to individually set each motor into one of 6 different speed modes and additionally control each motor individually. I also wrote documentation for my code, which details the command structure and includes examples for its use.
At the beginning of the semester, I initially set out to work on fixing the Lasersaur laser cutter that currently resides in DOW901. However, the most work that I ended up completing, beyond a bit of reading and research, was 3D printing the part pictured below, which was intended to connect to the debris removal tube. Following this, I pivoted to working on the servo controller slice detailed above.
Semester 2: Spring 2022[edit | edit source]
BREAD: Text-to-Speech Board
This semester, I worked on my own brand-new project: the BREAD Text To Speech Slice. The idea for this project is to create a slice that is capable of taking received text input data and generating audio that can be played back in real time.
After finding that TTS IC chips are relatively inaccessible currently due to the chip shortage, I deciding on using a Raspberry Pi Zero and the open source software eSpeak to implement this functionality. However, again thanks to the chip shortage, procuring a Pi Zero is also difficult, so development is being done on older Pi hardware.
The planned final product will consist of a board that:
- Has a Raspberry Pi Zero mounted on-board, in addition to the standard Arduino Nano
- Receives text data from an external source via I2C on the Nano
- Routs that data from the Nano to the Pi Zero via Serial
- Produces speech audio, to be played on a speaker connected by the Pi's GPIO
As of the end of the semester, the project exists as a fully-functional mockup that simulates the planned functionality of the final board:
- I currently only have one Raspberry Pi to work with, so my Pi is serving as both the "external" data source and a substitute for the final board's Pi Zero
- The audio is currently sent via the Pi's 3.5mm jack, an interface that the final version's Pi Zero will not have.
- The amount of text to be sent in one transmission is currently limited to 32 characters. Further research will be done on the best way to mitigate this limitation.
Semester 3: Spring 2023[edit | edit source]
BREAD: Text To Speech Slice
After taking a semester off for my internship, this semester I'll be taking my prototype and creating a fully working BREAD Slice with it.
Other University Projects[edit | edit source]
Spring 2023: ROS - BREAD Integration[edit | edit source]
This semester, myself and a small team of Computer Engineering students at MTU will be researching and developing a solution that will integrate the Robot Operating System (ROS), an open-source software/firmware platform designed for custom robot hardware, with BREAD, an open-source hardware platform developed by MTU's Open Source Hardware Enterprise.
Personal Projects[edit | edit source]
RGB Crystal Light:
Over the summer of 2020, I built a desk light that illuminates a crystal, pictured below, using an Arduino and some addressable RGB LEDs. The circuitry inside and the interface panel on the outside both utilize blank PCBs that I soldered wires and components to. In addition to having the Arduino's USB port accessible for power and firmware updates, the base is split into two parts that are held together with neodymium magnets, which allows for easy access to the internals for maintenance and modification.
Soda Can Coffee Table
Over the summer of 2021, I built a coffee table, pictured below, which contains a variety of aesthetically-pleasing soda cans. It is made of stained plywood and hardwood, and the top and sides are made of clear polycarbonate.
Paintball Game Management System
In summer 2022, inspired by Houghton's local laser tag establishment, I designed a system that will allow me to implement more complex "game modes" while playing paintball. The system is run by a Raspberry Pi, is powered by a USB battery bank, is housed in an old ammo box, and features a character LCD display, LEDs, speakers, arcade buttons, and a numeric keypad.
Currently available game modes include King of the Hill, point defense, and a Counter-Strike style bomb defusal game, with some variants that involve inputting a code on the system's numeric keypad. The system's lid can even be closed and latched so that it can be carried around my its handle as a part of these games.
My code for the system and some further details can be found here.
Future plans for the system include an external power switch and a cleaner wiring setup inside to make maintenance easier.
This was also my submission for the 2023 Superior Maker Fest!
Despite having some decent specs, my brother's poor old laptop had become nearly unusable due to the state of disrepair of its plastic casing. To remedy this, in the fall of 2022, I stripped away everything but the bare essentials, and built a new desktop-style case out of MDF for the parts that were left over.
The system is intended to take over the home server duties of the system that I originally built for that purpose, as I was looking to upgrade that machine into a new daily-driver desktop system, although it still needs a bit of work before it'll be fully ready to take over.
For now, the case is in an unfinished but functional state. I will be applying veneer to the sides of the case in the future in order to provide a cleaner and more professional appearance.