Commit 48e89f36 authored by Teddy Warner's avatar Teddy Warner
Browse files

machien Updates

parent e89537a6
Pipeline #224342 passed with stage
in 39 seconds
......@@ -52,7 +52,7 @@ The nest system of our CNC we worked on involved the motion of the machine belts
![](../images/week09/BeltTensioner.png)
<figcaption>Pizza Pizza CNC Frame Corner with Belt Tensioner Feature</figcaption>
With the X-axis motion done, I moved on to the axis's one endstop, which will allow our machine to home its X-axis to the switch before usage. The mount for this endstop switch is not overly complicated, attaching a switch holding bracket to the top of the 2020 aluminum extrusion t-slots. The feature uses an M4 bolt and corresponding T-Bolt to attach the bracket to the top of the extrusion through a hole in the bracket. From here the feature stems up to a chance that holds an endstop switch inline with the machine's X-axis carriage. The switch is heald in this slot by its bottom screw hole, using an M2 bolt and nut. I positioned this endstop in the back right of the machine, keeping the endstop away from the cluttered front of the machine, and the switch's cable distanced as close to the control box as possible. The feature can be seen mounted in this position in our final *Pizza Pizza CNC* render shown below.
With the X-axis motion done, Teddy moved on to the axis's one endstop, which will allow our machine to home its X-axis to the switch before usage. The mount for this endstop switch is not overly complicated, attaching a switch holding bracket to the top of the 2020 aluminum extrusion t-slots. The feature uses an M4 bolt and corresponding T-Bolt to attach the bracket to the top of the extrusion through a hole in the bracket. From here the feature stems up to a chance that holds an endstop switch inline with the machine's X-axis carriage. The switch is heald in this slot by its bottom screw hole, using an M2 bolt and nut. Teddy positioned this endstop in the back right of the machine, keeping the endstop away from the cluttered front of the machine, and the switch's cable distanced as close to the control box as possible. The feature can be seen mounted in this position in our final *Pizza Pizza CNC* render shown below.
<iframe src="https://charlottelatin3.autodesk360.com/shares/public/SH56a43QTfd62c1cd968eed7bd9352f896cc?mode=embed" width="900" height="650" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0"></iframe>
......@@ -60,28 +60,28 @@ With the X-axis motion done, I moved on to the axis's one endstop, which will al
## Electronics and Electronics Housing
Along with the prior carriage, belt tensioner, and endstop CAD work, I dealt with the brain and blood of our *Pizza Pizza CNC*, the electronics system. This is the driving system of the machine, allowing us to complete our machine goals through electronic automation. The system is built around a [Mini RAMBo](https://reprap.org/wiki/MiniRambo) controller board. The Mini RAMBo is a smaller version of the RAMBO controller board, a board based on the Arduino MEGA, including four individual stepper motor drivers and MOSFET switched outputs. This board worked great in the case of our machine, as not only is it a powerful, compact, and easily manipulated controller board, we were able to scrap the board from one of our lab's old out of commission Luzbot Mini 3d printers. This Mini RAMBo powers the machine's three-axis through four different stepper motors, one wired to the Z-axis, one to the Y-axis, and one stepper port wired to two different X-axis steppers. These steppers work along with their corresponding endstop switches, also wired to the Mini RAMBo, to home and locate the machine. Of all that, the Mini RAMBo also controlled the machine's two toolend servos and is connected to a full graphic LCD panel to display machine menus and status. Similarly to the salvaging of the Mini RAMBo for this machine, the graphical LCD used in the electronics system is a scrapped Creality Ender 3 LCD panel I had left lover after switching my Ender 3 screen to a colored touchscreen in [week 2](http://fabacademy.org/2021/labs/charlotte/students/theodore-warner/assignments/week02/#moding-the-ender-3). This whole system is powered off of a 12 volt DC power supply, converting 110 volt American AC wall power into the 12 volts needed by the system.
Along with the prior carriage, belt tensioner, and endstop CAD work, Teddy dealt with the brain and blood of our *Pizza Pizza CNC*, the electronics system. This is the driving system of the machine, allowing us to complete our machine goals through electronic automation. The system is built around a [Mini RAMBo](https://reprap.org/wiki/MiniRambo) controller board. The Mini RAMBo is a smaller version of the RAMBO controller board, a board based on the Arduino MEGA, including four individual stepper motor drivers and MOSFET switched outputs. This board worked great in the case of our machine, as not only is it a powerful, compact, and easily manipulated controller board, we were able to scrap the board from one of our lab's old out of commission Luzbot Mini 3d printers. This Mini RAMBo powers the machine's three-axis through four different stepper motors, one wired to the Z-axis, one to the Y-axis, and one stepper port wired to two different X-axis steppers. These steppers work along with their corresponding endstop switches, also wired to the Mini RAMBo, to home and locate the machine. Of all that, the Mini RAMBo also controlled the machine's two toolend servos and is connected to a full graphic LCD panel to display machine menus and status. Similarly to the salvaging of the Mini RAMBo for this machine, the graphical LCD used in the electronics system is a scrapped Creality Ender 3 LCD panel I had left lover after switching my Ender 3 screen to a colored touchscreen in [week 2](http://fabacademy.org/2021/labs/charlotte/students/theodore-warner/assignments/week02/#moding-the-ender-3). This whole system is powered off of a 12 volt DC power supply, converting 110 volt American AC wall power into the 12 volts needed by the system.
![](../images/week09/electronicsSketch.jpg)
<figcaption>Sketch of Electronics System and Electronics Housing Consept</figcaption>
### CAD
As a complement to the importance of the machine electronics system, I began designing and modeling an enclosure for the site that would sit independently to the side of the machine. I started the fusion work for this enclosure with not only the goal of fitting all electronics inside, but also maintaining decent-looking cable management, and proper ventilation. It's worth a second noting that this encloser will not hold the machine's power supply, as it's usually not best practice to put the hot PSU next to the controller, so the electronic closer will be connected to the PSU with some hookup wire. I started by tracing the two main boards of the system, the Mini RAMBo, and Creality Ender 3 LCD, in Fusion 360. I then started work on the body of the encloser itself, designing the base around the traced Mini RAMBo, and extruding up this base to make an encloser. From here I used the trace of the LCD panel to draft a slanted face on the encloser, where the LCD would mount, angle for easy viewing, and minimal screen glare. The final bit allowing these two mainboards to fit in the encloser is space for the Mini RAMBo's USB port to pass through to the back of the encloser. The USB port access allowed me to continue to update the board's firmware while the electronics were in the encloser.
As a complement to the importance of the machine electronics system, Teddy began designing and modeling an enclosure for the site that would sit independently to the side of the machine. Teddy started the fusion work for this enclosure with not only the goal of fitting all electronics inside, but also maintaining decent-looking cable management, and proper ventilation. It's worth a second noting that this encloser will not hold the machine's power supply, as it's usually not best practice to put the hot PSU next to the controller, so the electronic closer will be connected to the PSU with some hookup wire. Teddy started by tracing the two main boards of the system, the Mini RAMBo, and Creality Ender 3 LCD, in Fusion 360. Teddy then started work on the body of the encloser itself, designing the base around the traced Mini RAMBo, and extruding up this base to make an encloser. From here Teddy used the trace of the LCD panel to draft a slanted face on the encloser, where the LCD would mount, angle for easy viewing, and minimal screen glare. The final bit allowing these two mainboards to fit in the encloser is space for the Mini RAMBo's USB port to pass through to the back of the encloser. The USB port access allowed me to continue to update the board's firmware while the electronics were in the encloser.
![](../images/week09/Electronics_Case.png)
<figcaption>Basic Encloser Body with Mini RAMBO and LCD Mounting</figcaption>
Before continuing with the rest of the enclosure, I began the process of splitting up the preexisting body into different components, and also creating new bodies and components for the enclosers lid, wire grommet, and LCD knob. I spit these components up to make the 3D printing process as pain-free as possible, keeping in mind the limits of 3D printing while splitting the body. I ended up with four different components making up the encloser, one main body, the LCD screen mounting plate, the LCD screen knob, and a lid to the top of the encloser.
Before continuing with the rest of the enclosure, Teddy began the process of splitting up the preexisting body into different components, and also creating new bodies and components for the enclosers lid, wire grommet, and LCD knob. Teddy spit these components up to make the 3D printing process as pain-free as possible, keeping in mind the limits of 3D printing while splitting the body. Teddy ended up with four different components making up the encloser, one main body, the LCD screen mounting plate, the LCD screen knob, and a lid to the top of the encloser.
The next goal of the electronics encloser I addressed was my goal for proper ventilation on the case. Luckily enough for me, the Mini RAMBo has two 12 volt fan ports on the board, which can be turned on and off by the firmware. I used one of these ports to connect a small 40x10mm 12 volt fan to the closer, which is turned on by the firmware when the board's stepper motor drivers are activated, the default encloser fan configuration for marlin. This encloser fan pulls air in through a vent on the top left wall of the enclosers base. This intaken air circulates the encloser, where the cool air falls over the Mini RAMBo, positioned at the base of the encloser, before leaving through a side air vent positioned to the left of the Mini RAMBo. As a final touch to the electronics encloser, I added a *Pizza Pizza CNC* logo to the front LCD plate, and some cool pizza icons on the enclosers sides, complementing the slanting nature of the enclosers front.
The next goal of the electronics encloser Teddy addressed was my goal for proper ventilation on the case. Luckily enough for me, the Mini RAMBo has two 12 volt fan ports on the board, which can be turned on and off by the firmware. Teddy used one of these ports to connect a small 40x10mm 12 volt fan to the closer, which is turned on by the firmware when the board's stepper motor drivers are activated, the default encloser fan configuration for marlin. This encloser fan pulls air in through a vent on the top left wall of the enclosers base. This intaken air circulates the encloser, where the cool air falls over the Mini RAMBo, positioned at the base of the encloser, before leaving through a side air vent positioned to the left of the Mini RAMBo. As a final touch to the electronics encloser, Teddy added a *Pizza Pizza CNC* logo to the front LCD plate, and some cool pizza icons on the enclosers sides, complementing the slanting nature of the enclosers front.
![](../images/week09/Electronics_Case2.png)
<iframe src="https://myhub.autodesk360.com/ue2cecd93/shares/public/SH56a43QTfd62c1cd968fbfc31fe976c7de0?mode=embed" width="900" height="650" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0"></iframe>
<figcaption>Final Electronics Encloser Model</figcaption>
Upon the completion of this electronics box, I derived it into out-group *Pizza Pizza CNC* render, just like I did with the machine Z-carriage. After this completion, I spent some more time in the group fusion file, modeling in a nice plywood platform on which the machine and electronic encloser rest on. You can see this updated render below.
Upon the completion of this electronics box, Teddy derived it into out-group *Pizza Pizza CNC* render, just like Teddy did with the machine Z-carriage. After this completion, Teddy spent some more time in the group fusion file, modeling in a nice plywood platform on which the machine and electronic encloser rest on. You can see this updated render below.
![](../images/week09/FullRenderWBase.png)
<figcaption>Pizza Pizza CNC Render with Electronics Box and Base Platform</figcaption>
......@@ -90,7 +90,7 @@ Upon the completion of this electronics box, I derived it into out-group *Pizza
## Configuring Marlin
The electronics system of our machine is no good without firmware, so naturally, after completing the machine's electronics design, I began the firmware compiling process. Our *Pizza Pizza CNC* runs a version of the Marlin 3d printer firmware on the machine's Mini RAMBo. Marlin is an open-source firmware project with a great community of makers behind it, and thus was an easy choice for our machine due to the great documentation. Before this week's assignment, I've compiled custom versions of Marlin for my 3d printers, as well as for my CNC machine. The variations and braches of Marlin can vary greatly, so I've found that when working with the firmware, it's best to start with a base configured for the controller board that you can alter. I began the firmware powering our machine using firmware provided by [MarlinBuilder](https://github.com/jeffeb3/MarlinBuilder) and the [MPCNC](https://docs.v1engineering.com/software/) project as a reference to make alterations to. The compiling of Marlin is a time-consuming process on your first couple of times through although the code is well documented and the line by line comments make it easy to work through, however as you begin to become more finally with the Marlin layout, the code becomes easier to navigate and compile. Below are the *Pizza Pizza CNC* Marlin completion notes, noting major aspects/configurations of the firmware. It's worth noting, however, that the amount of small simple changes made in our instance of the firmware would be too many to cover on this page, despite that, the configured instance can be found under our group sites [downloads](http://fabacademy.org/2021/labs/charlotte/Group%20Assignments/week07%20%28Pizza-Pizza%29/#downloads) folder, and smaller changes than those covered on this page can be found, explain part by part by the codes comments.
The electronics system of our machine is no good without firmware, so naturally, after completing the machine's electronics design, Teddy began the firmware compiling process. Our *Pizza Pizza CNC* runs a version of the Marlin 3d printer firmware on the machine's Mini RAMBo. Marlin is an open-source firmware project with a great community of makers behind it, and thus was an easy choice for our machine due to the great documentation. Before this week's assignment, Teddy had compiled custom versions of Marlin for my 3d printers, as well as for my CNC machine. The variations and braches of Marlin can vary greatly, so Teddys says that he found that when working with the firmware, it's best to start with a base configured for the controller board that you can alter. Teddy began the firmware powering our machine using firmware provided by [MarlinBuilder](https://github.com/jeffeb3/MarlinBuilder) and the [MPCNC](https://docs.v1engineering.com/software/) project as a reference to make alterations to. The compiling of Marlin is a time-consuming process on your first couple of times through although the code is well documented and the line by line comments make it easy to work through, however as you begin to become more finally with the Marlin layout, the code becomes easier to navigate and compile. Below are the *Pizza Pizza CNC* Marlin completion notes, noting major aspects/configurations of the firmware. It's worth noting, however, that the amount of small simple changes made in our instance of the firmware would be too many to cover on this page, despite that, the configured instance can be found under our group sites [downloads](http://fabacademy.org/2021/labs/charlotte/Group%20Assignments/week07%20%28Pizza-Pizza%29/#downloads) folder, and smaller changes than those covered on this page can be found, explain part by part by the codes comments.
This instance of Marlin firmware is an altered version of that
supplied from the [MarlinBuilder](https://github.com/jeffeb3/MarlinBuilder) repo.
......@@ -121,7 +121,7 @@ in Marlin's *Configuration.h* file. These three lines are found towards the very
![](../images/week09/EnablingScreens.png)
With the custom screen options enabled, the next step was to generated and include the image files to be shown on these screens. Starting with the custom boot screen, I created a new file in my Marlin directory, under the *Marlin* folder named *_Bootscreen.h*. This file is recognized by the Marlin instance as a custom boot screen, and thus the firmware will display the contents of the text file on bootup. With this file created, the next step was to generated the content of the file, a process made simple with Marlin's [Bitmap Converter](https://marlinfw.org/tools/u8glib/converter.html). This bitmap converter tool from Marlin's website converts a bitmap image file into text content that can be pasted directly into Marlin's *_Bootscreen.h* file. Here I chose a bitmap logo for our machine, a chef hat icon with *Pizza Pizza* written below it, and imported the bitmap into Marlin's converter. Under the tool, I selected the *Marlin 2.x* check box, so the tool would generate with a format for the updated version of Marlin, along with the *Binary*, *ASCII Art*, and *Boot* checks. The *Binary* check box will output the conversion in a binary format that can be inserted into the *_Bootscreen.h* file, as opposed to the generic *.hex* file. Next, the *ASCII Art* check box, adds a nice preview of the screen to the converted code, making the text a little more readable. And Finally, selecting the tools *Boot* checkbox will format the conversion for the *_Bootscreen.h* file. With all these checks marked, I used the tool to convert the bitmap and then copied the output into my *_Bootscreen.h* file under my Marlin directory.
With the custom screen options enabled, the next step was to generated and include the image files to be shown on these screens. Starting with the custom boot screen, Teddy created a new file in my Marlin directory, under the *Marlin* folder named *_Bootscreen.h*. This file is recognized by the Marlin instance as a custom boot screen, and thus the firmware will display the contents of the text file on bootup. With this file created, the next step was to generated the content of the file, a process made simple with Marlin's [Bitmap Converter](https://marlinfw.org/tools/u8glib/converter.html). This bitmap converter tool from Marlin's website converts a bitmap image file into text content that can be pasted directly into Marlin's *_Bootscreen.h* file. Here Teddy chose a bitmap logo for our machine, a chef hat icon with *Pizza Pizza* written below it, and imported the bitmap into Marlin's converter. Under the tool, Teddy selected the *Marlin 2.x* check box, so the tool would generate with a format for the updated version of Marlin, along with the *Binary*, *ASCII Art*, and *Boot* checks. The *Binary* check box will output the conversion in a binary format that can be inserted into the *_Bootscreen.h* file, as opposed to the generic *.hex* file. Next, the *ASCII Art* check box, adds a nice preview of the screen to the converted code, making the text a little more readable. And Finally, selecting the tools *Boot* checkbox will format the conversion for the *_Bootscreen.h* file. With all these checks marked, I used the tool to convert the bitmap and then copied the output into my *_Bootscreen.h* file under my Marlin directory.
![](../images/week09/Bootscreen.jpg)
<figcaption>Pizza Pizza CNC's Marlin _Bootscreen.h File with Converted Bitmap</figcaption>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment