Ryan Hoffman's HTMAA Site

Ideas

I'm not really sure what exactly I want to do for my final project yet, I do think I want it to be some form of robot or tool that is designed with a specific purpose in mind. I don't want to make something just to make something.

10/15/25

I think I have decided that I want to move forward with the idea of making a modular robotics system as my final project. There would be a few main components that I would need to design including a control hub, a drive component, interchangeable gear boxes, and different linkages. The PCB that I made during EDA Development week will be super useful for prototyping for this final project. I do have to revamp it though as I am not sure that the stepper drivers actually work. I plan on redesigning the PCB based off of the model on the class website.

Week 8

It has been a while since I updated my final project page but I have been thinking about it a lot and am ready to make some more concrete goals and decisions of what to pursue.

I want to start by trying to outline the fundamental goals of my final project so I know just what it is that I am aiming for. Goals:

I want to design a modular robotic system with two different kinds of actuators. One linear and one rotational actuator. For each actuator, I want to be able to measure its absolute position using external sensors improving the overall control system and accuracy of the system as a whole. Additionally, I want each component to be standalone, as in no external wires. I want all of the communication to take place wirlessly and have power transfer through the joints of the system. As for the controls of the system, I want to be able to control the exact location of the actuators and if in a system, know the aboslute position of the system. Through software I want to account for potential errors in displacement using the poisition sensors in the actuators. For example, if a stepper misses a step, I want to be able to detect that and then add an additional step to its rotation to account for that.

Parts of the project

Each of these parts has many sub components that I will need to think about, research, iterate over and document. I'm going to start by trying to outline each component and its subcomponents.
Linear actuator
Rotational Actuator

Ligaments
Wireless control of individual actuators
Wireless control of mulitple actuators
There is clearly a lot to acomplish with not much time. I want to start by getting simple versions of the actuators working, without position detection. I think my focus of output devices week will be developing initial versions of both the linear and rotational actuators. This means that I will need to drive a stepper motor, I could continue pursuing the DRV8428 which I will likely do, however, I will simultaneously work with a broken out stepper driver that I have gotten to work before on a bread board enabling me to move forward with design and testing. This will also require me to develop initial 3D models of both the linear actuator and my cycloidal drive. This week I started work on the design of the drive and have used ChatGPT to write a python script to export a DXF of the unique shapes of a cycloidal drive(ADD PYTHON SCRIPT).

Action Items for Week 8:
Would be nice: Week 8 Review

I would say I was pretty successful this week, I have modeled and tested intial prototypes of both actuators! I have yet to drive a stepper motor with the DRV8428 but I have the completed PCB and it is just waiting to be tested. I want to move forward and improve the designs for both. For the linear actuator, I want to add caps to the plates so that they are sapced a fixed distance apart. I also want to build a housing for the motor so it doesn't extend out the back. For the rotational actuator, I want to try and shrink the size of the cycloidal drive and add bearings so that it is a much smoother motion. I would also like to try and begin experimenting with sensor feedback for each of the actuators

Week 9

This week is about molding and casting. I am planning on going away Saturday through Monday morning, so I will have to prep the design that I want to mold while I'm away so I am able to cast it once I am back. The maker space on campus that I am a mentor in has a whole casting setup so I plan on doing all of the molding and casting there. I'm not quite sure what it is that I want to cast though, perhpas it should be the cycloids for the cycloidal drive as they would likley have better structural/mechanical characteristics then a 3D printed counter part.

Regarding forward progress on the final. I need to get a DRV8428 working this week and driving a stepper motor. I also wnat to get sensor feedback from both the magnetic encoders and LiDAR. I also want to add a limit switch to the linear actuator to serve as a zero point. I can then use the lidar to measure the offset from taht limit switch and then define a modifier and adjust all of the measurements with said modifier.

For the rotational actuator, I want to design a new version of the cycloidal drive that is smaller and uses bearings to reduce the friciton between the printed components.

Action Items for Week 9:

Week 10

Unfortunatley, I hardly got anything done this week because I went away for the weekend and was not as productive as I should have been when I was here. With that being said, that means that a lot of the things that I wanted to do last week carry into this week. I am interested though in exploring what it would take to fully cast all the parts for my cycloidal drive. One I think that would be incredibly satisfying and I also think that it would improve its reliability and resilience long term.

Action Items for Week 10:

Midterm Review

I finished the design and assembly of a refined cycloidal drive. I have yet to power it on, but it seems to run smoothly when I was putting it together and spun the axle myself. I was also surprised that I was able to backdrive it. I don't think I could last time as it was all 3D printed and thus there was a lot of friction between the parts. Now, however, there are steel rollers, and bearings which contact all the 3D printed components instead which I'm sure reduces a ton of the friction.

To Do

Schedule

Week 11 (11/19-11/25): Networking and Communication

I think this would be a perfect opportunity to try and figure out the MQTT communication protocol which I want to use to communicated between the individual actuators. In order to do that, I would like to have functioning, if not finalized actuators to communicate to. The rotational actuator is close, I think I will only need one more rendition of it where I will add the limit switch for homing. For the linear actuator, I think I am slightly farther away, I need to make the design more robust, add homing and poisition detection.

Goals for the week

Week 12 (11/26-12/02): Interface and Application Programming

I think this week can be used to work on a more generalized communication for the actuators and how the user can control multiple simultaneously. Also great to determin what controls the user will have over the system. Part of this, I think will need the actuators to begin being connected. As I'm writing, this, I am remembering that this is the week of Thanksgiving where I am going to be out of town. With that being said, I think it is the perfect opportunity to design the connection system and control interface with the actuators. Also, if the communication wasn't finalized last week, polish that up this week as well.

Goals for the week

Week 13 (12/03-12/9): Wildcard Week

This is wildcard week, I'm not sure I can think of anything in particular that I would need to learn. I think that the control system will likely become the hardest part of the project and so if I need more time for that, I'll have some here. Also this would be a good time to make a few more of the rotational actuators or connection units.

Goals for the week

Week 14 (12/10-12/14): Project Development

I think this can serve as a catch all week for when the project inevitably doesn't go to plan or something takes more time than neccesary. This will also serve as a good time to refine my website and prepare my final presentation. Goals for the week



System Diagram

System Diagram
System Diagram of the project

This only shows one of each kind of actuator, but there may be multiple rotational actuators in one of the actual examples.

Week 11 Progress

There were a bunch of different asspects of the project that I wanted to work on this week. After my conversation with Anthony, I felt comfortable jumping into making the schematic for the PCB

Schematic
I use a ESP32 S3 as the main controller of the board. For the stepper driver, I plan on using the DRV8428. I spent a fair amount of time cross referencing the design that Neil has shared and also from my reading of the data sheet. I then included a 2x JST female connector to allow easy attachment/detachement of the limit switch. I also wanted to supply the 5V logic through the 12V that I will be passing through for the motors so I use a LM2940 linear regulator to drop the 12 volts down to the 5 needed. I read through the data sheet to figure out how to hook it up, it was pretty easy, it just needed some capacitors. I use two 4x JST connectors: one is for the stepper motor itself so I can guarantee a solid connection and then the other is for the sensors that I might add like the VL53L1X or later the AS5600. I include a barrel jack connector on each board but in reality only the first board in the chain will be plugged in. The rest will be powered through the 2x7 IDC connector and ribbon cable. That connector is also how I will transfer the communication between the different boards.

What is nice about this design is that it will work for every actuator in the system, linear or rotational so my plan is to make a prototype and once that is working, send it out to a board house to make higher quality versions. Unfortunatley, I didn't get a chance to mill the PCB before I left and so I am starting to get pretty stressed about whether or not I'll be able to get everything done and working in time but I still have some time.

I finally got the opportunity to test the cycloidal drive that I designed and assembled last week, I don't think I included the documentation for it there so I will include some here. The goal was to make a far more robust drive with less friction by including proper hardware so steel pins or bearings.

To start, I again used the python cycloid generator that chat made to generate a new cycloid DXF to design around. I will include a link so that you can download the generator yourself. Here was the command that I used. INSERT PICTURE OF COMMAND FOR THE CYCLOID INSERT PICTURE OF GENERATOR OUTPUT I then spent sometime on amazon trying to find the different components that I would need for the design and I ended up deciding on these different parts. I then went to find models from McMaster Carr that I could use to design around.
Motor Mount With Holes

I was super excited to see it working, I was a little nervous that it started stalling but I think I just need to play with the current limiting and do some more robust tests to just make sure that it has more than enough torque to do what I want. In theory it has 11 Nm which is plenty but I don't want to just bank on that.

The next part of the project that I wanted to work on was improving the linear actuator model. For this I just hopped in Fusion and based on the dimensions of the last version designed a new one that would be more robust. There was nothing special during the modeling process, I used processes or tools that I've documented before. It is still not the finalized model as I have to finish the PCB so I know the size and constraints so I can design a mounting system but all of the components should be there. I'm again designing around the components that I salvaged from an old 3D printer I had.

INSERT VIDEO OF IT WORKING

Part of the project will be controlling the system so I made my first pass at an IK solver using the FABRIK algorithm. I coded the solver myself but then used Gemini to create the visualizer and answer questions.

Future Ideas

Consulted