From 3aa6b77a915349c192570521af974c956f52f4d4 Mon Sep 17 00:00:00 2001 From: Will Langford <langfordw@gmail.com> Date: Thu, 8 Mar 2018 13:54:22 -0500 Subject: [PATCH] update --- index.html | 59 +++++++++++++++++++++++++++++++++++++++++------------- readme.md | 45 ++++++++++++++++++++++++++++++----------- 2 files changed, 78 insertions(+), 26 deletions(-) diff --git a/index.html b/index.html index aa777ac..2077c5f 100644 --- a/index.html +++ b/index.html @@ -2,6 +2,17 @@ <html> <title>MAS.865 2018 How to Make Something that Makes (almost) Anything</title> +<style> +body {background-color: powderblue;} +h1 {color: blue;} +.center { + display: block; + margin-left: auto; + margin-right: auto; +} +img {.center} +</style> + <xmp theme="journal" style="display:none;"> ## Desktop Wire-EDM @@ -10,7 +21,7 @@ Three years ago I built this: -<a href="http://fab.cba.mit.edu/classes/865.15/people/will.langford/11_final/index.html"><img src="images/dwedm2_01.jpg" width="750px"></a> +<a href="http://fab.cba.mit.edu/classes/865.15/people/will.langford/11_final/index.html" target="_blank"><img src="images/dwedm2_01.jpg" width="750px" class="center"></a> It looks nice… all the subsystems are there but it just hasn't been integrated. @@ -20,21 +31,21 @@ The two biggest missing parts are: **the pulse generator**, and **the controls** This is what we're making: -<video controls src="images/edm_startup.mp4" width=480px></video> +<video controls src="images/edm_startup.mp4" width=480px class="center"></video> When I last tried this, I did manage to see some sparking: -<img src="images/sparking.gif" width="350px"><img src="images/sparking_result.jpg" width="350px"> - - +<div align="center"> +<img src="images/sparking.gif" width="311px"> <img src="images/sparking_result.jpg" width="350px"> +</div> My last circuit looked something like this: -<img src="images/spice3.png" width="600px"> +<img src="images/spice3.png" width="600px" class="center"> -Which became a sort-of kludegy board: +Which became a sort-of kludgey board: -<img src="images/dwedm08.jpg" width="500px"> +<img src="images/dwedm08.jpg" width="500px" class="center"> @@ -42,26 +53,46 @@ Since then, I've thought about this every now and then, and think I understand t I've had some email correspondance with Jaako Fagerlund (who is one of the few people who has made his own desktop EDM) and he had a really nice explanation of how the waveform should work: -<img src="images/waveform.jpg"> +<img src="images/waveform.jpg" class="center"> > The waveform is quite simplified in that picture, but it explains the basics very well. Looking at the upper graph you see gap voltage versus time. As the voltage is switched on, the voltage in the gap is the same as the generators output. If the gap is small enough, the dielectric breaks down and a spark is ignited. This plasma channel is of course lower resistance, so now current (lower graph) starts to flow. The gap voltage drops to basically what the plasma channels resistance times current is. In the graph this area is the lower voltage after full (open) voltage. Then after the on time pulse length is achieved, the generator switches of, the current flow stops and the gap voltage is zero until the generator once again applies a new pulse. +Based on this, this is the basic circuit schematic that I'm after: +<img src="images/basic_schematic.jpg" width="600px" class="center"> + +With a few more details filled in: + +<img src="images/annotated_schematic.jpg" width="600px" class="center"> + +My understanding of the waveform: + +<img src="images/waveforms.jpg" width="600px" class="center"> + +##### I'm collecting references: + +- [All the ways to drive high-side switches](http://www.ti.com/lit/ml/slua618/slua618.pdf) + +##### I've started picking out parts: + +- Hearty N-Type MOSFETs: [IRFP460A](https://www.digikey.com/product-detail/en/vishay-siliconix/IRFP460APBF/IRFP460APBF-ND/811589) [FDB20N50F](https://www.digikey.com/product-detail/en/on-semiconductor/FDB20N50F/FDB20N50FCT-ND/4806461) -Based on this, this is the basic circuit schematic that I'm after: -<img src="images/basic_schematic.jpg" width="600px"> +- High-side gate drivers: ... +#### Controls +To control the Wire-EDM, we can't just simply use a standard g-code interpretter and machine controller since the motion of the axes needs to depend on how quickly/slowly the material is being eroded. -<img src="images/annotated_schematic.jpg" width="600px"> +So, I plan to piggy-back off of some of [Jake](https://gitlab.cba.mit.edu/jakeread/mkstepper) and [Sam](https://gitlab.cba.mit.edu/calischs/step)'s recent stepper motor boards to implement the path planning and control. +This will involve things like the [Bresenham line algorithm](https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm) to discretize non-rectilinear motions and map into movements of the individual motors. Fortunatley, I suspect I won't have to worry too much about acceleration/jerk control given that this machining process is relatively slow. +We can tell how much material has eroded and how large the gap between the wire and workpiece is by sampling the voltage across the spark capacitor. In the limit where the gap is large and there's no spark, this voltage will be the same as the voltage determined by the charge control circuitry. At the other limit, where the wire actually touches the workpiece, there is a short circuit and there's no voltage across the capacitor. -<img src="images/waveforms.jpg" width="600px"> +What I'm not sure about is exactly how fast I want to be able to step to react to changing gap voltages. Many circuits I've seen elsewhere use op-amps configured as a window comparator to servo the stepper motors based on the gap voltage. I will probably start by trying to implement this in firmware with something like an NRF52. With this microcontroller, I can use things like the PPI system to have events triggered automatically without bogging down the main-code. </xmp> -<!-- </xmp> <script src="http://cdn.ztx.io/strapdown/strapdown.min.js"></script> --> <script src="strapdown/strapdown.js"></script> <!-- <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> </html> diff --git a/readme.md b/readme.md index 5c483b7..6e04e04 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ Three years ago I built this: -<a href="http://fab.cba.mit.edu/classes/865.15/people/will.langford/11_final/index.html"><img src="images/dwedm2_01.jpg" width="750px"></a> +<a href="http://fab.cba.mit.edu/classes/865.15/people/will.langford/11_final/index.html" target="_blank"><img src="images/dwedm2_01.jpg" width="750px" class="center"></a> It looks nice… all the subsystems are there but it just hasn't been integrated. @@ -14,21 +14,21 @@ The two biggest missing parts are: **the pulse generator**, and **the controls** This is what we're making: -<video controls src="images/edm_startup.mp4" width=640px> +<video controls src="images/edm_startup.mp4" width=480px class="center"></video> When I last tried this, I did manage to see some sparking: -<img src="images/sparking.gif" height="250px"><img src="images/sparking_result.jpg" height="250px"> - - +<div align="center"> +<img src="images/sparking.gif" width="311px"> <img src="images/sparking_result.jpg" width="350px"> +</div> My last circuit looked something like this: -<img src="images/spice3.png" width="600px"> +<img src="images/spice3.png" width="600px" class="center"> Which became a sort-of kludegy board: -<img src="images/dwedm08.jpg" width="500px"> +<img src="images/dwedm08.jpg" width="500px" class="center"> @@ -36,20 +36,41 @@ Since then, I've thought about this every now and then, and think I understand t I've had some email correspondance with Jaako Fagerlund (who is one of the few people who has made his own desktop EDM) and he had a really nice explanation of how the waveform should work: -<img src="images/waveform.jpg"> +<img src="images/waveform.jpg" class="center"> > The waveform is quite simplified in that picture, but it explains the basics very well. Looking at the upper graph you see gap voltage versus time. As the voltage is switched on, the voltage in the gap is the same as the generators output. If the gap is small enough, the dielectric breaks down and a spark is ignited. This plasma channel is of course lower resistance, so now current (lower graph) starts to flow. The gap voltage drops to basically what the plasma channels resistance times current is. In the graph this area is the lower voltage after full (open) voltage. Then after the on time pulse length is achieved, the generator switches of, the current flow stops and the gap voltage is zero until the generator once again applies a new pulse. +Based on this, this is the basic circuit schematic that I'm after: + +<img src="images/basic_schematic.jpg" width="600px" class="center"> +With a few more details filled in: + +<img src="images/annotated_schematic.jpg" width="600px" class="center"> + +My understanding of the waveform: + +<img src="images/waveforms.jpg" width="600px" class="center"> + +##### I'm collecting references: + +- [All the ways to drive high-side switches](http://www.ti.com/lit/ml/slua618/slua618.pdf) + +##### I've started picking out parts: + +- Hearty N-Type MOSFETs: [IRFP460A](https://www.digikey.com/product-detail/en/vishay-siliconix/IRFP460APBF/IRFP460APBF-ND/811589) [FDB20N50F](https://www.digikey.com/product-detail/en/on-semiconductor/FDB20N50F/FDB20N50FCT-ND/4806461) -Based on this, this is the basic circuit schematic that I'm after: -<img src="images/basic_schematic.jpg" width="600px"> +- High-side gate drivers: ... +#### Controls +To control the Wire-EDM, we can't just simply use a standard g-code interpretter and machine controller since the motion of the axes needs to depend on how quickly/slowly the material is being eroded. -<img src="images/annotated_schematic.jpg" width="600px"> +So, I plan to piggy-back off of some of [Jake](https://gitlab.cba.mit.edu/jakeread/mkstepper) and [Sam](https://gitlab.cba.mit.edu/calischs/step)'s recent stepper motor boards to implement the path planning and control. +This will involve things like the [Bresenham line algorithm](https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm) to discretize non-rectilinear motions and map into movements of the individual motors. Fortunatley, I suspect I won't have to worry too much about acceleration/jerk control given that this machining process is relatively slow. +We can tell how much material has eroded and how large the gap between the wire and workpiece is by sampling the voltage across the spark capacitor. In the limit where the gap is large and there's no spark, this voltage will be the same as the voltage determined by the charge control circuitry. At the other limit, where the wire actually touches the workpiece, there is a short circuit and there's no voltage across the capacitor. -<img src="images/waveforms.jpg" width="600px"> \ No newline at end of file +What I'm not sure about is exactly how fast I want to be able to step to react to changing gap voltages. Many circuits I've seen elsewhere use op-amps configured as a window comparator to servo the stepper motors based on the gap voltage. I will probably start by trying to implement this in firmware with something like an NRF52. With this microcontroller, I can use things like the PPI system to have events triggered automatically without bogging down the main-code. \ No newline at end of file -- GitLab