For my final milestone, I have increased the accuracy and the complexity of the images that my CNC machine can draw. Instead of uploading four or five lines of Gcode onto the Arduino Microcontroller using the Macros setting of the Universal Gcode Sender, I can now upload large Gcode files with hundreds of lines of code.
I create Gcode files of Geometric shapes and letters using a program called Inkscape, which is an open source vector graphics editor. On its own, Inkscape cannot save an image as a Gcode file. Because of that, I installed an extension called MakerBot Unicorn Gcode Output. With the extension, it saves my scaled down images as Gcode files, however, the files it creates have multiple errors within them.
I resolve all errors in the Gcode files using a program called G-Wizard Editor. What is great about G-Wizard is that it allows you to edit Gcode files line by line and then creates a 3D simulation of how a CNC machine will draw the image. The two main errors that are found within the Gcode files that Inkscape creates are that there are lines of Mcode embedded within the Gcode and that the speed that the Gcode tells my motor to move at is too fast.
Mcode and Gcode and very similar, however, Mcode is mainly used in industrial sized CNC machines to control most of the basic electrical functions such turning the motors on and off, controlling the coolant, tool changes, and safety circuits. The Arduino microcontroller does not understand Mcode so translate actions written in Mcode into Gcode.
M300 S30 (pen down) —-> G1 Z-1 F25M300 S50 (pen up) —-> G1 Z0 F25
M300 S50 (pen up) —-> G1 Z0 F25
When writing Gcode using G1 commands, you write the coordinate that the machine has to move to and then the speed that it has to move at. The line: G1 X1 Y5 F25 tells the machine to move to the position (1,5) at 25 MMPR (millimeters per revolution). 25MMPR is the speed at which my machine draws the smoothest line. Because Inkscape creates G1 commands with a speed of 100MMPR, I have to change the F100 in every line of Gcode to F25.
My starter project is a small, battery-powered USB charger called a MintyBoost that can charge iPhones and other gadgets using two AA batteries. While working on my starter project I learned a lot about the functions of the electrical components that I soldered onto the circuit board of the charger. I also learned how to identify the electrical parts that correspond to symbols on a schematic.
There are five main types of electrical components that I soldered onto the circuit board while building my starter project: boost converters, resistors, capacitors, diodes, and power inductors.
Project overview: https://learn.adafruit.com/minty-boost/overview
Parts list: https://learn.adafruit.com/minty-boost/parts-list