tag:blogger.com,1999:blog-10862653484656990982024-02-07T17:40:30.382-08:00martin2250Anonymoushttp://www.blogger.com/profile/10076469622862390262noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-1086265348465699098.post-5449760549743130212015-01-06T02:46:00.000-08:002015-09-19T14:37:38.427-07:00GRBL Height Probing Tutorial<h2>
<span style="color: #38761d;">
[Outdated, new version with arc support available on GitHub: <a href="https://github.com/martin2250/GrblHeightProbe2">https://github.com/martin2250/GrblHeightProbe2</a>,<a href="http://www.youtube.com/watch?v=kzXzvcUAuus">http://www.youtube.com/watch?v=kzXzvcUAuus</a></span><span style="color: #38761d;">]</span></h2>
<br />
Hey makers!<br />
<br />
I finally came around to record the promised tutorial on height mapping and auto-levelling G-Code files with a GRBL 0.9+ controller.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/g7A0pnUetRY?feature=player_embedded' frameborder='0'></iframe></div>
<br />
In this tutorial I show how I go from a design in E.A.G.L.E. to a finished single layer PCB with traces narrower than 0.4mm using my custom toolchain to compensate for substrate unevenness.<br />
<br />
The binaries of the toolchain are available here:<br />
<a href="https://www.dropbox.com/s/tx9eoei24z616lk/PCBAutolevellingV2.zip?dl=0" target="_blank">https://www.dropbox.com/s/tx9eoei24z616lk/PCBAutolevellingV2.zip?dl=0</a><br />
The source is available here:<br />
<a href="https://www.dropbox.com/s/i46by0twp191d9l/AutolevellingSource.zip?dl=0" target="_blank">https://www.dropbox.com/s/i46by0twp191d9l/AutolevellingSource.zip?dl=0</a><br />
<br />
(please note that google drive reported both files as viruses which is why I switched to Dropbox. If you don't trust me, just go through and recompile the source. there is nothing to worry about)<br />
<br />
Be sure to read the readme included in the download, there are some more tips and tricks as well as a few instructions.<br />
<br />
Notes:<br />
<b>The toolchain does not support arcs right now</b>. This means that you have to use programs like GCodeRipper to convert all G2/G3s to smaller G1 moves. Since pcb-gcode does not use arcs this is no issue if you want to make PCBS. May get implemented in a later release.<br />
<br />
To see some more information on how your gcode file was parsed, select the file in the list on the left in HeightToGCode3. you will see some basic info as well as all lines that could not be parsed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXsJU1wUIB1J7MIouY49jARSTZxhdg6NwNLzK7eqpMu6X8PgBCz_QqLaAHxxzIF6jvTDnsc8P0QXGhyphenhyphenzUPSGO_WJQ7FJdeBVOZzdtmi4gEwdSMAnvIQJD4rMHivetQ5DyO9Qx0uNQ_KH0/s1600/20141207_225808s.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXsJU1wUIB1J7MIouY49jARSTZxhdg6NwNLzK7eqpMu6X8PgBCz_QqLaAHxxzIF6jvTDnsc8P0QXGhyphenhyphenzUPSGO_WJQ7FJdeBVOZzdtmi4gEwdSMAnvIQJD4rMHivetQ5DyO9Qx0uNQ_KH0/s1600/20141207_225808s.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/10076469622862390262noreply@blogger.com31tag:blogger.com,1999:blog-1086265348465699098.post-80387615118031555462014-11-29T07:57:00.001-08:002015-06-08T12:36:08.880-07:00AVR Temperature/Humidity Logger[Better documentation and new firmware over at Hackaday.io: https://hackaday.io/project/6177-low-power-environmental-data-logger]<br />
<br />
This is my latest project, a small low-power climate logger. I finally got around to assemble the case & electronics, now I can finally present it to you.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikBAOD_bR2xdHjrY3qTjuxa2lx2EEfM4cBp9ntcjeC84-EFC2g4mIJsVWMN24isBV_pXaMIor98D2Y6ldTK3evsKwqznsp1wXpHr_xB7RIrJ4gUHIeG6dar4tWfmr3U4d97t-rLKJoedQV/s1600/20141129_144036_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikBAOD_bR2xdHjrY3qTjuxa2lx2EEfM4cBp9ntcjeC84-EFC2g4mIJsVWMN24isBV_pXaMIor98D2Y6ldTK3evsKwqznsp1wXpHr_xB7RIrJ4gUHIeG6dar4tWfmr3U4d97t-rLKJoedQV/s1600/20141129_144036_HDR.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
The main electrical components are an AtMega88 in a TQFP package, a HYT939 temperature and humidity sensor ,a 24AA1025 1M I²C EEPROM and a DS1337 RTC.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
The PCB and case were both designed in EAGLE, the files are available in the download below.</div>
<div class="" style="clear: both; text-align: center;">
The Atmega was programmed in C, the code is also available below.</div>
<div class="separator" style="clear: both; text-align: center;">
Here is another video of the final product working:<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/fKatF6HA3TY?feature=player_embedded' frameborder='0'></iframe></div>
<div class="" style="clear: both; text-align: center;">
The data is first saved to a 128byte buffer, then it is saved to a page in the EEPROM. Each page first has 5 bytes containing the time of the first measurement, the rest are 41 readings, each 3-byte reading contains the most significant 12bits of the 14bit raw sensor data for each temperature and humidity.</div>
<div class="" style="clear: both; text-align: center;">
The aquired data can be exported via standart UART/TTL at 9600 baud. I chose a RCA connector because it was the best that I could find. To receive the data, I wrote a small windows application that outputs a .csv file.<br />
<br /></div>
<div style="clear: both; text-align: center;">
<u>Specs:</u></div>
<div class="" style="clear: both; text-align: center;">
Average current when display inactive: ~ 60µA</div>
<div class="" style="clear: both; text-align: center;">
Resolution: 0.04°C / 0.025%rH</div>
<div class="separator" style="clear: both; text-align: center;">
Memory: 292 days woth of data (41984 data points at an interval of 10 minutes)</div>
<div class="" style="clear: both; text-align: center;">
Power source: 4 rechargeable AA batteries (2700mAh)<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<u>Features:</u></div>
<div class="" style="clear: both; text-align: center;">
220'000 µF supercapacitor as backup for the DS1337</div>
<div class="" style="clear: both; text-align: center;">
automatic data saving on power loss (220µF buffer capacitor)</div>
<div class="" style="clear: both; text-align: center;">
Easily expandable menu implementation</div>
<div class="" style="clear: both; text-align: center;">
Super Sexy wooden case with sliding battery door</div>
<div class="" style="clear: both; text-align: center;">
<span style="text-align: start;">The PCB and case were milled on my ShapeOko, here is a timelapse of the R1 board and a second case being made:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/OeY05kQIcjo?feature=player_embedded' frameborder='0'></iframe><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/tlStZuNBMCA?feature=player_embedded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
The design files and software are available here: https://drive.google.com/file/d/0B2OzfW5smQv8eFNkOVo3eThGSzA/view?usp=sharing</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Here are some more pictures of the project:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEH1VmRQfVBhPa-h71zhnmCdHnva5L9gfb1a1tw8xafrqJJaqsCOKI7jlqpN5D71XHYAMuvpVUOsnY7q6t0qBm2bR8OtHMxLIr3rD18cJI-YKty7CLnocIWoEak_nMoHnzBHJAgPqBISw/s1600/20141025_233120_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEH1VmRQfVBhPa-h71zhnmCdHnva5L9gfb1a1tw8xafrqJJaqsCOKI7jlqpN5D71XHYAMuvpVUOsnY7q6t0qBm2bR8OtHMxLIr3rD18cJI-YKty7CLnocIWoEak_nMoHnzBHJAgPqBISw/s1600/20141025_233120_HDR.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZ1Ljo-fMNbveD7pXV9mNGVWvre4z5jbnWziMCdUpwY4HhGnLCOsoLLRAsaZM3W-jhLtHme3YZ49qDE70u8tdq8dHgx-sXB18VwwoPGn0XasuQ5-L3Nv2flz1nFCkAbyqJWGJlF0z-j8/s1600/20141027_204116_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZ1Ljo-fMNbveD7pXV9mNGVWvre4z5jbnWziMCdUpwY4HhGnLCOsoLLRAsaZM3W-jhLtHme3YZ49qDE70u8tdq8dHgx-sXB18VwwoPGn0XasuQ5-L3Nv2flz1nFCkAbyqJWGJlF0z-j8/s1600/20141027_204116_HDR.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUoX2KU57hWTGaGQ-6By1JZou5EnIxNZM6UluuLGysuG8HbIV8kx-OZC_WZpVq9WrlKDqLN96Rkh3QL-tOk85e-xKc-KT49IYtd8OT0j5M17HzERErVjuKeQKxXR_vkxRd04utiO2Bek4/s1600/20141129_130226_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUoX2KU57hWTGaGQ-6By1JZou5EnIxNZM6UluuLGysuG8HbIV8kx-OZC_WZpVq9WrlKDqLN96Rkh3QL-tOk85e-xKc-KT49IYtd8OT0j5M17HzERErVjuKeQKxXR_vkxRd04utiO2Bek4/s1600/20141129_130226_HDR.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
(This ratsnest of wires was acutally enough to hold the PCB in place)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoTlKh77sSJf-_awZa6Zyf8Ax4DFGpefiXOZII1ZWMgSbBQjSeW3CAFnG8EcalH67NbtmwgYdnw5FS02HrV5Fu3unY4QbOhIAeYTr61oI9XXiDc-PKMG6ha8aaLTeOeKhs6ArNuIM6Ksg/s1600/KlimaloggerAVR_R2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoTlKh77sSJf-_awZa6Zyf8Ax4DFGpefiXOZII1ZWMgSbBQjSeW3CAFnG8EcalH67NbtmwgYdnw5FS02HrV5Fu3unY4QbOhIAeYTr61oI9XXiDc-PKMG6ha8aaLTeOeKhs6ArNuIM6Ksg/s1600/KlimaloggerAVR_R2.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr_xqO9IFjwYUr-A1tBkDevr_sJvkXaleqy7HMIrZY0gPBzSbPIJYWh-UGmMtaqViJiL-wbFodt8E1XmsxM1N-4VN46icuQb4OZVuiP_BpBBIohj6CCG78eetQIohufnrFpE6hX5jZd4A/s1600/setup.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr_xqO9IFjwYUr-A1tBkDevr_sJvkXaleqy7HMIrZY0gPBzSbPIJYWh-UGmMtaqViJiL-wbFodt8E1XmsxM1N-4VN46icuQb4OZVuiP_BpBBIohj6CCG78eetQIohufnrFpE6hX5jZd4A/s1600/setup.jpg" width="273" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJbQ1sq-faTxM6dwCPow366EEqZfGfkjUCHVvgica-6cm5j6on0JHqNOwqgXBw5KGgqgxEI-eXWq79CeGFuHAGgsQF1BDoYHZx6SzDrD5SU3sPAS9n6Db91zBfexgKrrYn3u3StP8sVYg/s1600/TOP_ALL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJbQ1sq-faTxM6dwCPow366EEqZfGfkjUCHVvgica-6cm5j6on0JHqNOwqgXBw5KGgqgxEI-eXWq79CeGFuHAGgsQF1BDoYHZx6SzDrD5SU3sPAS9n6Db91zBfexgKrrYn3u3StP8sVYg/s1600/TOP_ALL.png" width="320" /></a></div>
Unknownnoreply@blogger.com6tag:blogger.com,1999:blog-1086265348465699098.post-14575341499028778662014-09-13T11:56:00.004-07:002014-09-20T05:23:37.366-07:00GRBL Height Probing for PCBsHello and Welcome to my first post!<br />
<br />
Not too long ago, I finally got my custom toolchain for creating and using height maps with GRBL to a working state.<br />
<br />
<b>This is the <u>first and only</u> program to use GRBLs new probing feature to level a PCB.</b><br />
<br />
The basic concept is that your cnc machine measures the height differences across the surface, and uses that data to follow the shape of the surface exactly. A consistent depth is essential for milling Printed Circuit Boards.<br />
<br />
Both the probing program and the program that applies that data to G-Code are written by myself are available for download: <a href="https://drive.google.com/file/d/0Bz8PmnjLAzS4QmRRSU9uU1I5bzg/edit?usp=sharing">Google Drive</a>.<br />
<br />
Here you can see the very first attempt at milling a PCB, the CNC machine is a Shapeoko 2 with a Kress 800 Spindle. The bit is a 20° Engraving bit, but the tip already broke off, so it has about a 0.25 mm point.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8RsN3auDntztjNFHqSK1usDLq7fPuVzlZl2QreHjuRVVYUYTiZs2fU4ER8RO6A8Ed8JsbiNO0qB1s0-nBIamNFSPlfhuxyjMURugpAhFxEo3Hr5tedkLfQpFQ2Ph7IdAw3X1tRkruKaXF/s1600/pcb_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8RsN3auDntztjNFHqSK1usDLq7fPuVzlZl2QreHjuRVVYUYTiZs2fU4ER8RO6A8Ed8JsbiNO0qB1s0-nBIamNFSPlfhuxyjMURugpAhFxEo3Hr5tedkLfQpFQ2Ph7IdAw3X1tRkruKaXF/s1600/pcb_raw.jpg" height="69" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibXLWpWSbl88UEUTJuQEIcJ8VBfL05qLXRrE0psBnJuLlwvnnsrI1g3ho5M6tXyzM5Dpfa-w0FJQYYg1IXKR68ef3jOERmlRZfjYr01rafu_5_DiIYUL-vW9p7fixRnPZ2q32rukSfggPE/s1600/pcb_populated.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibXLWpWSbl88UEUTJuQEIcJ8VBfL05qLXRrE0psBnJuLlwvnnsrI1g3ho5M6tXyzM5Dpfa-w0FJQYYg1IXKR68ef3jOERmlRZfjYr01rafu_5_DiIYUL-vW9p7fixRnPZ2q32rukSfggPE/s1600/pcb_populated.jpg" height="114" width="320" /></a></div>
A video of the process is available here (loud!):<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="https://i.ytimg.com/s_vi/3owOQhjctjM/default.jpg?sqp=CNij0qAF&rs=AOn4CLB061WdG5SaKGaXgmoD9-zfzCIYKw" height="266" width="320"><param name="movie" value="https://www.youtube.com/v/3owOQhjctjM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="https://www.youtube.com/v/3owOQhjctjM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
Usage:<br />
<br />
<ul>
<li>Generate your G-Code (eg. with pcb-gcode for CadSoft Eagle)</li>
<li>Drag 'n' Drop G-Code onto HeightToGCode2.exe (zip/HeightToGCode2/bin/Debug)</li>
<li>Note Dimensions, close Program</li>
<li>Set Stepper Timeout to 255 in GRBL</li>
<li>Move Bit to your 0|0 location, z height is irrelevant</li>
<li>Open HeightProbe.exe (zip/HeightProbe/bin/Debug)</li>
<li>enter the Dimensions ( always include a bit of spare space)</li>
<li>enter the other settings (Output file is .csv)</li>
<li>MAKE SURE that you have the Probing feature enabled (GRBL 0.9g or higher) and that the Surface and the bit are connected to the Arduino (A5/SCL and Ground)</li>
<li>Hit Enter 3 times.</li>
<li>Wait for the Program to finish</li>
<li>Open HeightToGcode2 again</li>
<li>Drag 'n' Drop Gcode into window, hit enter</li>
<li>Drag 'n' Drop csv into window, hit enter</li>
<li>decide which other commands to keep</li>
<li>Use the resulting GCode File In Universal GCode Sender, your machine is already homed and the position is (0|0| safetyHeight), give GRBL that position via G92X0Y0Z[safety] before sending the file.</li>
<li>...? Profit.</li>
</ul>
<div>
If I get enough feedback to motivate myself, I will make a video tutorial, which should clear things up.<br />
<br />
The program can also just be used to create height maps, this is a 1 Euro coin, you can just make out spain in the top left hand corner:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvDwNIjeSUo0irzKVITRjapu78M0ea38lKNCaVVNF2YlwPMUaWiT7FBXImr1I4-ZgbqUTrdrzH_cddml6afksyCXqSL-4dPUbV7rLUwIL9upCYJPvZruXONzcKVphkaDLepYTpA-YrRzck/s1600/1eur.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvDwNIjeSUo0irzKVITRjapu78M0ea38lKNCaVVNF2YlwPMUaWiT7FBXImr1I4-ZgbqUTrdrzH_cddml6afksyCXqSL-4dPUbV7rLUwIL9upCYJPvZruXONzcKVphkaDLepYTpA-YrRzck/s1600/1eur.PNG" height="300" width="320" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
Greetings!</div>
Unknownnoreply@blogger.com3