|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{<<<}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TTiddlyWiki uses Wiki style markup, a way of lightly "tagging" plain text so it can be transformed into HTML. Edit this Tiddler to see samples.\n\n! Header Samples\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n\n! Unordered Lists:\n* Lists are where it's at\n* Just use an asterisk and you're set\n** To nest lists just add more asterisks...\n***...like this\n* The circle makes a great bullet because once you've printed a list you can mark off completed items\n* You can also nest mixed list types\n## Like this\n\n! Ordered Lists\n# Ordered lists are pretty neat too\n# If you're handy with HTML and CSS you could customize the [[numbering scheme|http://www.w3schools.com/css/pr_list-style-type.asp]]\n## To nest, just add more octothorpes (pound signs)...\n### Like this\n* You can also\n** Mix list types\n*** like this\n# Pretty neat don't you think?\n\n! Tiddler links\nTo create a Tiddler link, just use mixed-case WikiWord, or use [[brackets]] for NonWikiWordLinks. This is how the GTD style [[@Action]] lists are created. \n\nNote that existing Tiddlers are in bold and empty Tiddlers are in italics. See CreatingTiddlers for details.\n\n! External Links\nYou can link to [[external sites|http://google.com]] with brackets. You can also LinkToFolders on your machine or network shares.\n\n! Images\nEdit this tiddler to see how it's done.\n[img[http://img110.echo.cx/img110/139/gorilla8nw.jpg]]\n\n!Tables\n|!th1111111111|!th2222222222|\n|>| colspan |\n| rowspan |left|\n|~| right|\n|colored| center |\n|caption|c\n\nFor a complex table example, see PeriodicTable.\n\n! Horizontal Rules\nYou can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves.\n\n! Blockquotes\n<<<\nThis is how you do an extended, wrapped blockquote so you don't have to put angle quotes on every line.\n<<<\n>level 1\n>level 1\n>>level 2\n>>level 2\n>>>level 3\n>>>level 3\n>>level 2\n>level 1\n\n! Other Formatting\n''Bold''\n==Strike==\n__Underline__\n//Italic//\nSuperscript: 2^^3^^=8\nSubscript: a~~ij~~ = -a~~ji~~\n@@highlight@@\n@@color(green):green colored@@\n@@bgcolor(#ff0000):color(#ffffff):red colored@@\n
3 D Printing
where my son teaches me how to do three dimensional additive printing
Type the text for 'New Tiddler'
Type the text for 'New Tiddler'
There are two types of 3D printing currently available to humans:\n\n* [[Additive3D]]\n* [[Subtractive3D]] \n\n* [[Software Tools|CADSoftwareWall]]\n\n'' Instruction and Guidance''\n* [[OpenScad Tutorial |https://www.youtube.com/watch?v=ecd_eWPnynk]]\n\n''KJCole Instructional Video''\n* [[OpenSCAD Tutorial: Simple Pallet Bracket|https://youtu.be/r9F_rCRTYnY]]\n* [[OpenSCAD Tutorial: Simple Pallet Bracket (flint edit)|https://youtu.be/cCJT1ipE5KI]]\n* [[OpenSCAD 2D to 3D rotate_extrude() demo|https://youtu.be/lfgnGTwNzfc]]\n\n* [[Instructional Video|kColeShow]]
Type the text for '24 July 2016'\n\n|!Reference HTML|! Description|\n|[[reference|https://www.google.com/search?q=octaprint+pi&ie=UTF-8&sa=Search&channel=fe&client=browser-ubuntu&hl=en&gws_rd=ssl]]||\n|[[reference|http://octoprint.org/download/]]||\n|[[reference|https://www.raspberrypi.org/documentation/installation/installing-images/README.md]]||\n|[[reference|https://www.raspberrypi.org/documentation/installation/installing-images/linux.md]]||\n|[[reference|http://10.0.1.214/]]||\n|[[reference|http://stackoverflow.com/questions/6161823/dd-how-to-calculate-optimal-blocksize]]||\n|[[reference|about:preferences]]||
[[overview]]
Cura Resources\n '25 July 2016'\n\n|!Reference HTML|! Description|\n|[[Uitimaker Site |https://ultimaker.com/en/products/cura-software]]||\n|[[Thingverse |http://www.thingiverse.com/thing:830671/#files]]||\n|[[Local Octoprint |http://10.0.1.214/]]||\n|[[Cura Troubleshoot |https://github.com/Ultimaker/Cura/issues/718]]||\n|[[reference|https://ultimaker.com/en/community/7876-issues-with-bed-size-with-cura]]||\n|[[reference|https://launchpad.net/+help-soyuz/ppa-sources-list.html]]||\n|[[reference|http://keyserver.ubuntu.com:11371/pks/lookup?fingerprint=on&op=index&search=0x2F9BE1560EA69B96C865447AD51DB14E9FFECCF3]]||\n|[[reference|http://keyserver.ubuntu.com:11371/pks/lookup?op=vindex&fingerprint=on&search=0xD51DB14E9FFECCF3]]||\n|[[reference|http://www.thingiverse.com/thing:1688258/#files]]||
\n\n* [[Bad Control Board|HICTECControlBoard]]
Type the text for '28 July 2016'\n\n* [[HICTOP Prusa I3 control Board|http://www.hic3dprinter.com/productshow.asp?ArticleID=0&id=54&cid=002]]\n* [[HICTOP Circuit 3D Printer Control Mother Board MKS Base V1.3 RepRap i3 Arduino|http://www.ebay.com/itm/like/151994775079?lpid=82&chn=ps&ul_noapp=true]]
Type the text for '25 July 2016'\n\n|!Reference HTML|! Description|\n|[[reference|http://docbox.flint.com:8081/3Dprint]]||\n|[[reference|http://10.0.1.214/]]||\n|[[reference|https://www.blender.org/download/]]||\n|[[reference|https://blenderartists.org/forum/showthread.php?336498-BoolTool-0-2/page16&s=a396ffc32334d84f3e8cb226db62124f]]||\n|[[reference|http://blenderartists.org/forum/showthread.php?399653-Bool-Tool-0-3]]||\n|[[reference|https://developer.blender.org/diffusion/BAC/browse/master/object_boolean_tools.py]]||\n|[[reference|https://developer.blender.org/diffusion/BAC/repository/master/]]||\n|[[reference|https://www.google.com/search?client=ubuntu&channel=fs&q=bool+tool&ie=utf-8&oe=utf-8]]||
Type the text for '16 August 2016'\n\n* [[APC MasterSwiotch Manual|http://mccltd.net/blog/wp-content/uploads/2009/11/APC9211.pdf]]\n* [[APC MasterSwiotch User Guide|ftp://ftp.apc.com/apc/public/hardware/mswitch/firmware/ms/v210/usrguide.pdf]]\n* [[APC MasterSwitch Security Hack|http://mccltd.net/blog/?p=36]]\n\n[[APC Masterswitch Control|http://10.0.1.11]]\nUserid = "flint"\nPass = fruit
Type the text for '22 August 2016'\n\nProduct Details\n{{{\nUSCutter 28-inch Vinyl Cutter Plotter with Stand and with Sure Cuts A Lot Pro Design & Cut Software\nby USCutter\n}}}\n$249.99\nMore Buying Choices\n$240.00new(2 offers)\n\nPeter Robinson\n7046\nInside Sales Representative\nRedmond, WA 98052\n\nT: 1-425-481-3555\n1 order \n2 sales\n3 tech \n\nE: probinson@uscutter.com\nW: www.uscutter.com\n\nJesus \n\nJose says it will run under Linux using HPGL.\n\n[[HPGL|https://www.noisebridge.net/wiki/Vinyl_cutter]]\n\n\n\n
Type the text for '24 August 2016'\n\n|!Reference HTML|! Description|\n|[[Sure Cuts A Lot Pro and Linux|https://www.google.com/search?client=ubuntu&channel=fs&q=%22Sure+Cuts+A+Lot+Pro%22++Linux&ie=utf-8&oe=utf-8]]||\n|[[Noisbridge tells the truth. |https://www.noisebridge.net/wiki/Vinyl_cutter]]||\n|[[Sure Cuts A Lot Pro Hack |http://getfullsoftdownloads.blogspot.com/2015/03/craft-edge-sure-cuts-lot-pro-4017-crack.html]]||
Type the text for '27 August 2016'\n\n[[5 Meters GT2 2mm pitch 6mm wide Timing Belt for 3D printer CNC New Control Belt|http://www.hic3dprinter.com/productshow.asp?ArticleID=0&id=51&cid=002]]
30 August 2016\n\n[[Calibration Video |https://www.youtube.com/watch?v=-MwdVabSvrs]]
Type the text for '30 August 2016'\n\n* [[User Manual|ftp://ftp.apc.com/apc/public/hardware/mswitch/firmware/ms/v210/usrguide.pdf]]\n* [[CLI Manual|http://www2.schneider-electric.com/resources/sites/SCHNEIDER_ELECTRIC/content/live/FAQS/156000/FA156163/en_US/PDU%20command%20line%20interface.pdf]]\n\n* [[Upgrade files|ftp://ftp.apc.com/apc/public/hardware/mswitch/firmware/ms/v220/]]\n* [[Upgrade Instructions|http://nam-en.apc.com/app/answers/detail/a_id/768]]broken
hictop prusa i3 3d desktop printer\n'30 August 2016'\n\n[[hictop calibration|http://docbox.flint.com:8081/3Dprint/#HICTOPCalibration%20overview]]\n\n\n\n Prusa i3 X upgrades and mods \n\nhictop prusa i3 3d desktop printer extruder\ntroubleshooting hictop prusa i3 3d desktop printer extruder\n\nPTFE Tube\n\nExtruder Motor Troubleshooting\nhictop prusa i3 3d desktop printer\n\n\n[[Stepper Motor Test|https://www.youtube.com/watch?v=1U9pf7S_ov4]]\n[[Stepper Motor Test|https://www.youtube.com/watch?v=ZEcQW5rCbSQ]]\n
Type the text for '3 October 2016'\n\nI believe that [[Antimony|http://www.mattkeeter.com/projects/antimony/3/]] is the 3D visualization tool I need to learn.\n
Type the text for '16 November 2016'\n\n[[Video Tutorials|http://www.openscad.org/documentation.html?version=2015.03]]\n\n[[Primitive Solids|https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids]]\n
ENKI\n\n\n{{{\nsudo -i\nadd-apt-repository ppa:hlamer/enki\ncd /etc/apt/sources.list.d/\nperl -p -i -e "s|yakkety|raring|g;" hlamer-ubuntu-enki-yakkety.list\nmv hlamer-ubuntu-enki-yakkety.list hlamer-ubuntu-enki-raring.list\napt update\napt install enki\n\n}}}
Type the text for \n'24 April 2017'\n\n[[ImplcitCad|http://implicitcad.org/]] julia's site.\n\nOpensCAD
23 October 2017\n\n* [[Openbuilds Video |https://www.youtube.com/watch?v=HVR8pABCHXI]] mentions SketchUcam v1.4d but that is only for windows. It looks like [[freecad|https://www.freecadweb.org/]] and it is python...\n\n\nType the text for '02 October 2017'\n\n[[Openbuilds forum|http://www.openbuilds.com/forums/]]\n\nType the text for '30 September 2017'\n\nWhat we have is an [[Openbulds-c-beam|http://openbuildspartstore.com/openbuilds-c-beam-machine/]] Openbuilds C-Bream\n\nThe part that appears broken is the [[xPRO V3 Controller Stepper Driver|http://openbuildspartstore.com/cnc-xpro-v3-controller-stepper-driver/]]\n\nType the text for '26 September 2017'\n\n[[openbuild|http://openbuildspartstore.com/contact-us/]]\n\nWe appear to have an [[Openbuilds C-Bream|http://openbuildspartstore.com/openbuilds-c-beam-machine/]]\n\n2017-09-26 09:00:11 \n\nOpenbuilds C-beam\nhttp://openbuildspartstore.com/openbuilds-c-beam-machine/\n\n{{{\n\nGreetings,\n\nMy son and I acquired one of your Openbuilds C-beam router based products over the summer, I am interested in completing this project. The details of the project are as follows:\n\nOrder #49256\n\nOrder Date: May 6th 2017\n\nThis order is marked as Shipped\nYour Order Contains:\n\n 1 x CNC xPRO V3 Controller Stepper Driver\n 1 x C-Beam Machine Mechanical Bundle\n (Option: With (3) Nema 23 Stepper Motors)\n\n\n CNC xPRO V3 Controller Stepper Driver \n\nWhat I am seeking are diagnostics that I can use to test the stepper motors.\n\nCan you make any recommendations?\n\nSincerely,\n\nPaul flint\n}}}\n\nTake your builds to the next level with the all-in-one CNC xPRO V3 Controller Stepper Driver! CNC xPRO V3 further expands the capabilities of the board and simplifies the users experience. Product...\n\n\n[[CNC xPRO V3|http://openbuildspartstore.com/cnc-xpro-v3-controller-stepper-driver/]]\n\nThis thing speaks [[GRBL|https://github.com/grbl/grbl]]\n\n[[!Recommended Reading|https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface]]\n
Type the text for 'New Tiddler'\n\nGRBL accepts [[g-code|https://en.wikipedia.org/wiki/G-code]]\n\n* [[Grbl v1.1 Interface|https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface]]\n\n* [[Homing |https://github.com/grbl/grbl/issues/613]]
Type the text for '29 September 2017'\n\n|!Reference HTML|! Description|\n|[[GRBL Git Hub Configure |https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.8]]||\n|[[GRBL Git Hub GNEA |https://github.com/gnea/grbl/tree/master/doc/script]]||\n|[[GRBL Git Hub GNEA |https://github.com/gnea/grbl/tree/master/doc/script]]||\n|[[GRBL Git Hub GNEA |https://github.com/gnea/grbl/blob/master/doc/script/stream.py]]||\n|[[GRBL Git Hub |https://github.com/grbl/grbl]]||\n|[[GRBL Git Hub |https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface]]||\n|[[GRBL Git Hub |https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface#streaming-a-g-code-program-to-grbl]]||\n\n|!Reference HTML|! Description|\n|[[Open Builds Part Store |https://openbuildspartstore.com/account.php?action=order_status]]||\n|[[Open Builds Part Store |http://openbuildspartstore.com/fairshare-program/]]||\n|[[Open Builds Part Store |http://openbuildspartstore.com/contact-us/]]||\n|[[Open Builds Part Store |https://openbuildspartstore.com/account.php]]||\n|[[Open Builds Part Store |http://openbuildspartstore.com/electronics/]]||\n|[[Open Builds Part Store |http://openbuildspartstore.com/cnc-xpro-v3-controller-stepper-driver/]]||\n
Type the text for '29 September 2017'\n\n{{{\n#!/bin/bash\n# Begun 2017-09-29 07:57:05 pflint\n# allows for diagnostic control of GRBL based equipment\n# https://en.wikipedia.org/wiki/G-code\n# https://www.simplify3d.com/support/articles/3d-printing-gcode-tutorial/\n# \nversion="0.007" # 2017-10-11 12:09:07 working clbrt\n # Working - drives the board all axes...\n # includes register setup function shsup & register display boaib\nmod="0" # for future use\n# License="GPLI"\n#\n#* function help - Help function for template basic help goes here\nfunction help(){\nclear;\necho "This is the \s""$FUNCNAME"\s" functiOliver Wyman Labson in "$0" version "$version; uroot #debug\ncat $0 | grep '^## ' | sed -e 's/##//'\n# echo "This is the help function"\n## *****DOCUMENTATION*****\n#F# You get this when you need help and you put in the wrong number or type of ...\n## arguments. The name of this program is ctob.sh, an it is a video animation.\n## appliance. This is released under GPL I\n## The syntax is:\n## Pre Production - The goal is cnc operational.\n## - ctob.sh sane - Sets check & edit directories, variables\n## help is available in module.\n## - ctob.sh monlnk - Monitor dmesg & see link to cnc.\n## - ctob.sh setlnk - set link to cnc as "/dev/modem".\n## - ctob.sh chklnk - Tests link to cnc.\n## - ctob.sh shsup - Pushes setup registers \n## - ctob.sh spnfd - Feeds setup registers one at a time \n## - ctob.sh boaib - Displays setup registers\n## - ctob.sh movex - Move X plane +or- (overall limit 400)\n## - ctob.sh movey - Move Y plane +or- (overall limit ??)\n## - ctob.sh movez - Move Z plane +or- (overall limit 165)\n## Production - The goal is a working table\n## - ctob.sh clbrt - Runs calibration routine.\n## - ctob.sh origin - Sets X,Y,& Z to origin positions\n## - ctob.sh [absolute relative] - Sets X,Y,& Z to \n## absolute positioning based upon origin or\n## relative position based upon current position\n## - ctob.sh right - move bed X to right\n## - ctob.sh left - move bed X to left\n## - ctob.sh move [X Y Z] NNNN - Moves Axis NNNN units\n## - ctob.sh [X Y Z] [+ -] NNNN - Moves Axis NNNN units\n## Post Production The gioal is video avi files.\n## - ctob.sh backup Backup the current data to a tar file.\n## in all of these, Output is delivered to the GRBL...\n## *** NOTE *** These commands need not be run as root!\n##\n## For structure information type "grep '^\s#\s*' ctob.sh"\n## :^)\n## (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n##\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: ctob.sh\n#\nfunction dummy(){\n#* function dummy - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\n#\nfunction boaib(){\n#* function boaib - Builds aibot.sh and expect script to view cnc registers\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# packs expect into String and makes changes at the end...\n#\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\n#\n# device\nset modem /dev/modem\n#\n# keep it open\nexec sh -c "sleep 3 < $modem" &\n\n# serial port parameters\nexec stty -F $modem 115200 raw -clocal echo -istrip -hup\n#\n# connect\nsend_user "connecting to $modem..."\nspawn -open [open $modem w+] \n#\n# begin the script.\nsend "\s\s$\s\s$\s\sr"\nexpect "ok"\nclose\nexit 0\nEOF\n# echo "this is the string"\necho "$String" > aibot.sh\nchmod +x aibot.sh\n./aibot.sh\n#D rm aibot.sh\n} # Test:\n#\nfunction coaib(){\n#* function boaib - Builds caibot.sh and expect script to view individually load cnc registers\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# packs expect into String and makes changes at the end...\n#\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\nexit 0\nEOF\n# echo "this is the string"\necho "$String" > caibot.sh\nchmod +x caibot.sh\n./caibot.sh\n#D rm aibot.sh\n} # Test:\n#\n#\nfunction spnfd(){\n#* function spnfd - Spoon feeds the registers...\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\nfunction monlnk(){\n#* function monlnk - Allows you to monitor what is up in dmesg\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nunroot\n# x-terminal-emulator --command watch "dmesg | tail -15" &\nx-terminal-emulator --command watch "dmesg | grep FTDI | tail -15" &\n# watch "dmesg |tail -15"\n# uroot\n} # Test:\n#\nfunction setlnk(){\n#* function chklnk - Checks if you are talking to the cnc\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\ncncport="/dev/"$(dmesg | grep FTDI | tail -1 |rev | cut -d " " -f 1 |rev) #D \necho "cnc port is: "$cncport\necho "I would like to try:"\nsudo rm /dev/modem\nsudo chmod 666 $cncport\necho "ln -s $cncport /dev/modem"\n#\nif [ ! -e "/dev/modem" ]; then\n echo "'/dev/modem' does not exist, mapping to it now."\n ln -s $cncport /dev/modem \nelse \n echo "...But the File /dev/modem exists you need to fix this..."\nfi \nls -alt /dev/modem\n# uroot\n} # Test:\n#\nfunction chklnk(){\n#* function chklnk - Checks if you are talking to the cnc\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\necho "about to kill all instances of minicom"\nps aux | grep minicom\nkillall minicom\nspause\necho "We are gonna check this by running minicom..."\necho "When the terminal comes up type '\s$\s$'."\nspause\n# minicom\n# x-terminal-emulator --command minicom &\nx-terminal-emulator --command minicom &\n# uroot\n} # Test:\n#\nfunction clbrt(){\n#* function clbrt - runs calibration routing\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\ndur=1\norigin; sleep $dur\nrelative; sleep $dur\nctob.sh movex 20; sleep $dur\nctob.sh movey 20; sleep $dur\nctob.sh movez 20; sleep $dur\nctob.sh movex -20; sleep $dur\nctob.sh movey -20; sleep $dur\nctob.sh movez -20; sleep $dur\n# uroot\n} # Test:\n#\n#\nfunction origin(){\n#* function origin - send cnc back to origin\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "G28 ; home all axes (X, Y, and Z)"\necho "G28 ; home all axes (X, Y, and Z)" > /dev/modem\n# uroot\n} # Test:\n#\n#\nfunction absolute(){\n#* function dummy - sets cnc to do absolute positioning on X,Y,& Z\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "Send this: G90 ; use absolute positioning for the XYZ axes"\necho "G90 ; use absolute positioning for the XYZ axes" > /dev/modem\n} # Test:\n#\n#\nfunction relative(){\n#* function relative - Use relative positioning\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "G91 ; use relative positioning for the XYZ axes"\necho "G91 ; use relative positioning for the XYZ axes" > /dev/modem\n} # Test:\n#\nfunction movex(){\n#* function dummy - move the x axis (overall limit 400)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X"$var2" F3600 ; move to the X="$var2" position on the bed"\necho "G1 X"$var2" F3600 ; move to the X="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction movey(){\n#* function dummy - move the y axis (overall limit ??)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 Y"$var2" F3600 ; move to the Y="$var2" position on the bed"\necho "G1 Y"$var2" F3600 ; move to the Y="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction movez(){\n#* function dummy - move the z axis (overall limit ??)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 Z"$var2" F3600 ; move to the Z="$var2" position on the bed"\necho "G1 Z"$var2" F3600 ; move to the Z="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction left(){\n#* function left - Move left \necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X-10 F3600 ; move to the X=-10mm position on the bed"\necho "Send this: G1 X-20 F3600 ; move to X=-20mm"\necho "G1 X-10 F3600 ; move to the X=-10mm position on the bed" > /dev/modem\necho "G1 X-20 F3600 ; move to X=-20mm" > /dev/modem\n} # Test:\n#\nfunction right(){\n#* function right - Move right \necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X10 F3600 ; move to the X=10mm position on the bed"\necho "Send this: G1 X20 F3600 ; move to X=20mm"\necho "G1 X10 F3600 ; move to the X=10mm position on the bed" > /dev/modem\necho "G1 X20 F3600 ; move to X=20mm" > /dev/modem\n} # Test:\n#\n#\nfunction shsup(){\n#* function shsup - setup command that is not perfect\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\ndestination="/dev/modem"\n# destination="/dev/stdout"\necho "\s$0=10" > $destination\necho "\s$1=255" >> $destination\necho "\s$2=0" >> $destination\necho "\s$3=6" >> $destination\necho "\s$4=1" >> $destination\necho "\s$5=0" >> $destination\necho "\s$6=0" >> $destination\necho "\s$10=3" >> $destination\necho "\s$11=0.020" >> $destination\necho "\s$12=0.002" >> $destination\necho "\s$13=0" >> $destination\necho "\s$14=1" >> $destination\necho "\s$20=0" >> $destination\necho "\s$21=0" >> $destination\necho "\s$22=0" >> $destination\necho "\s$23=0" >> $destination\necho "\s$24=2000.000" >> $destination\necho "\s$25=1000.000" >> $destination\necho "\s$26=250" >> $destination\necho "\s$27=1.000" >> $destination\necho "\s$100=199.100" >> $destination\necho "\s$101=199.100" >> $destination\necho "\s$102=199.100" >> $destination\necho "\s$110=1000.000" >> $destination\necho "\s$111=1000.000" >> $destination\necho "\s$112=1000.000" >> $destination\necho "\s$120=100.000" >> $destination\necho "\s$121=100.000" >> $destination\necho "\s$122=100.000" >> $destination\necho "\s$130=270.000" >> $destination\necho "\s$131=270.000" >> $destination\necho "\s$132=80.000" >> $destination \n} # Test:\n#\nfunction ffsup(){\n#* function shsup - setup command that is not perfect\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\ndestination="/dev/modem"\n# destination="/dev/stdout"\necho "\s$0=10" >> $destination\necho "\s$1=25" >> $destination\necho "\s$2=0" >> $destination\necho "\s$3=0" >> $destination\necho "\s$4=1" >> $destination\necho "\s$5=0" >> $destination\necho "\s$6=0" >> $destination\necho "\s$10=1" >> $destination\necho "\s$11=0.010" >> $destination\necho "\s$12=0.002" >> $destination\necho "\s$13=0" >> $destination\necho "\s$20=0" >> $destination\necho "\s$21=0" >> $destination\necho "\s$22=0" >> $destination\necho "\s$23=0" >> $destination\necho "\s$24=25.000" >> $destination\necho "\s$25=500.000" >> $destination\necho "\s$26=250" >> $destination\necho "\s$27=1.000" >> $destination\necho "\s$30=1000" >> $destination\necho "\s$31=0" >> $destination\necho "\s$32=0" >> $destination\necho "\s$100=200.000" >> $destination\necho "\s$101=200.000" >> $destination\necho "\s$102=200.000" >> $destination\necho "\s$110=500.000" >> $destination\necho "\s$111=500.000" >> $destination\necho "\s$112=500.000" >> $destination\necho "\s$120=10.000" >> $destination\necho "\s$121=10.000" >> $destination\necho "\s$122=10.000" >> $destination\necho "\s$130=200.000" >> $destination\necho "\s$131=200.000" >> $destination\necho "\s$132=200.000" >> $destination\n} # Test:\n#\n#*###################################STANDARD AND MAYBE USEFUL FUNCTIONS BELOW\n#\nfunction backup(){\n#* function backup - Backup the current data to a tar file\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nsane\ncd $basedir\necho "about to launch this command:"\necho "tar -cvf ../videobu_$(date +%F) ."\nspause\ntar -cvf ../videobu_$(date +%F) .\n# To test viability of tar:\n# tar -tvf videobu_2017-09-17\n# tar -tvf ../videobu_$(date +%F) .\n} # Test:\n#\n#\nfunction potrite(){\n#* function potrite - checks to see if you have what you need to run this program.\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test: ctrantor.sh\n#\nfunction uroot(){\n#* function uroot - Checks to see if you are root\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n # echo "This script does not need to run as root but that's OK as you are not root" 1>&2\n echo "This script needs to be run as root and you are not root" 1>&2\n exit 0\nfi\n} # Test:~flint/bin/mtoc.sh uroot\n#\n#\nfunction unroot(){\n#* function unroot - Checks to see if you are root\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n echo "This script does not need to run as root but that's OK as you are not root" 1>&2\n # echo "This script needs to be run as root and you are not root" 1>&2\nfi\n} # Test:~flint/bin/mtoc.sh uroot\n#\n#* function spause - A simple tarry...\nfunction spause(){\n # -t sets time\n # read -t $pt -p "$*" ans\n read -p "Hit enter to continue..." ans\n echo $ans\n}\n#\nfunction sane(){\n#* function sane - Make the program sane. Sets lists & edit directories, variables\n# echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# this update somehow needs to be documented each run.\n#D echo "This is var2: "\nbasedir="/home/flint/ally/2017/Videos2Chili/"\ndirectory="pf_2017-09-16"\nanispec="anispec"\noutdir="outdir"\naudio="Lets_All_go_to_the_Lobby!_Intermission_Bumper.wav"\nfr=16\n#\nliston="basedir directory anispec outdir audio fr" #list of targets to search for\ncase "$var2" in\n "" ) ;; # got nothing, set variables silently\n\n "show" ) # Show version stuff and exit\n echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n ;;\n"check" ) # clear # describe current variables in play\n echo -e "The base directory is: \st\st"$basedir\n echo -e "The working directory is: \st"$directory\n echo -e "The animation specification is: \st"$anispec\n echo -e "The results are in directory: \st"$outdir\n echo -e "The audio file is: \st"$audio\n echo -e "The frame rate is: \st"$fr\n ;;\n "test" ) # clear # list out current variables in play\n i="1"\n echo "This is sane test"\n for name in $liston\n do\n echo -ne "$((i++)). \st"; grep "^$name=" $0\n done\n ;;\n "edit" ) # clear # Interactively edit list\n i="1"\n echo "This is sane edit"\n for name in $liston\n do\n echo -ne "$((i++)). \st"; grep "^$name=" $0\n done\n read -p "what number would you like to edit? " ans\n # echo $ans\n i="1"\n echo "Do not forget to type quotes in your replacement string"\n for name in $liston\n do\n # echo -ne "$((i++)). \st"; grep "^$name=" $0\n # if [ "$i" == "$ans" ]; then echo -e $i"\st "$name"="; fi\n if [ "$i" == "$ans" ];\n then\n # echo -n " ";grep "^$name=" $0\n #D\n target=$(grep "^$name=" $0)\n echo -n " ";echo $chnglng\n read -p" "$name"=" change;\n chnglng=$name"="$change;\n fi\n # echo $((i++)) > /dev/null\n ((i++))\n done\n #\n # echo "target is: "$target\n # echo "change is: "$chnglng\n # echo "sed -i 's:$target:$chnglng:g' $0"\n rm doit.sh 2>/dev/null; touch doit.sh; chmod +x doit.sh\n rm undo.sh 2>/dev/null; touch undo.sh; chmod +x undo.sh\n echo 'echo "Just changed the file"' >> doit.sh\n echo 'echo "Just changed the file back"' >> undo.sh\n echo "sed -i 's:$target:$chnglng:g' $0" >> doit.sh\n echo "sed -i 's:$chnglng:$target:g' $0" >> undo.sh\n # ./doit.sh\n #D\n ./doit.sh; rm -rf doit.sh\n ;;\n "save" ) # list out current variables in play\n clear\n i="1"\n echo "This is sane save"\n fname=$var3\n if [ -z "$var3" ];then echo "You must supply a name to save file in"; exit; fi\n rm -rf $fname 2>/dev/null; touch $fname\n for name in $liston\n do\n # echo -ne "$((i++)). \st"; grep "^$name=" $0 > test.ini\n outln="$((i++)). "$(grep "^$name=" $0)\n echo $outln >> $fname\n done\n ;;\n "load" ) clear # Saves variables to filename\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n fname=$var3\n if [ -z "$var3" ];then echo "You must supply a file name to load"; exit; fi\n i="1"\n rm doit.sh 2>/dev/null; touch doit.sh; chmod +x doit.sh\n rm undo.sh 2>/dev/null; touch undo.sh; chmod +x undo.sh\n echo 'echo "Just changed the file"' >> doit.sh\n echo 'echo "Just changed the file back"' >> undo.sh\n cat $fname |while read line\n do\n prefix=$(echo $line |cut -d " " -f2 |cut -d "=" -f 1 ) #; echo -n $prefix"="\n change=$(echo $line |rev |cut -d "=" -f 1|rev) #; echo $change\n chnglng=$prefix"="$change #; echo -n $chnglng\n target=$(grep "^$prefix=" $0) #;echo -e "\st "$chnglng\n echo "sed -i 's:$target:$chnglng:g' $0" >> doit.sh\n echo "sed -i 's:$chnglng:$target:g' $0" >> undo.sh\n done\n ./doit.sh; #D rm -rf doit.sh 2>/dev/null\n ;;\n"xload" ) clear # list out current variables in play\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n echo "The idea is to load the changes from an xls file"\n echo "Maybe this will be working in the next version sorry for now..."\n ;;\n"xsave" ) clear # list out current variables in play\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n echo "The idea is to savve the changes to an xls file"\n echo "Maybe this will be working in the next version sorry for now..."\n ;;\n\n"help" ) clear # Display help\n echo "This is the supplemental help for the sane routine"\n echo " (nothing) - Set variables silently"\n echo " show - Show version stuff"\n echo " test - List out current variables in play"\n echo " edit - Interactively edit list"\n echo " check - Check what all is going on"\n echo " load|save <filename>"\n echo " - load or save from supplied filename"\n echo " xload|xsave <filename.xls>"\n echo " - load from supplied spreadsheet"\n echo " help - Display this message"\n # Show the list:\n # cat ../bin/ctob.sh |grep \s"*\s"" "\s)\n ;;\nesac # anibot sane help\n} # Test:\n#\n#*###################################### MAIN ENTRY POINT AND COMPOUND CASE\n#\n# echo "mtoc.sh v"$version" starts"\n#* Evaluator Routine\n# Note the evaluator allows for many cases and error checking...\n#d ARGS=$# # carries the number of args into the functions...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\nif [ "$#" -eq "1" ] && [ "$1" = "monlnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "setlnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "chklnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "origin" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movex" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movey" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movez" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "absolute" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "relative" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "clbrt" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "clbrt" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "backup" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "mstrc" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "plate" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "boaib" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dummy" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "left" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "right" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "ctest" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "shsup" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "ffsup" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "sane" ]; then ARGS="8"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "sane" ]; then ARGS="2"; fi\nif [ "$#" -eq "3" ] && [ "$1" = "sane" ]; then ARGS="3"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "uroot" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "unroot" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "spause" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "help" ]; then ARGS="9"; fi\n# this tests the evaluator...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\n# typical cases, be careful to make your own...\ncase "$ARGS" in\n "0") clear; $1="help"; exit 1;; # got nothing, display help and go\n "1") $1 ;; # run the command\n "2") var2=$2; $1 ;; # run the command with an argument\n "3") var3=$3; var2=$2; $1 ;; # run the command with two arguments\n "4") var4=$4; var3=$3; var2=$2; $1 ;; # run the command with three arguments\n "5") prompt=$2; $1 ;; # run the command with a different argument\n "6") time=$3; prompt=$2; $1 ;; # run the command with two different arguments\n "7") var2="blank"; $1 ;; # run the command and default variables\n "8") var2=""; $1 ;; # run the command and settle variables\n "9") var3=$3; var2=$2; $1 ;; # run the command and settle variables\n *) clear; cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\nesac # End main loop. To TEST:\n#\n# echo " "; echo "On "$(date +%F\s %r) $0" version "$version" stops"\n#debug echo "That's all folks!!"\n#\n#d rm -rf ss # removes super secret data file\n#* restore environment cd "$S"\n}}}
Type the text for 'New Tiddler'\n\n[[minicom source code|https://fossies.org/linux/minicom/src/minicom.c]]
Type the text for '29 September 2017'\n\n!Configuration\n{{{\nGrbl 1.1f ['$' for help]\n$0=10\n$1=25\n$2=0\n$3=0\n$4=0\n$5=0\n$6=0\n$10=1\n$11=0.010\n$12=0.002\n$13=0\n$20=0\n$21=0\n$22=0\n$23=0\n$24=25.000\n$25=500.000\n$26=250\n$27=1.000\n$30=1000\n$31=0\n$32=0\n$100=250.000\n$101=250.000\n$102=250.000\n$110=500.000\n$111=500.000\n$112=500.000\n$120=10.000\n$121=10.000\n$122=10.000\n$130=200.000\n$131=200.000\n$132=0.000\nok\n}}}\n\n!Troubleshooting Generally\n[[Spark-Concepts|https://github.com/Spark-Concepts/xPRO/wiki/5.-Troubleshooting]]\n\n!Youtube on Testing Bi-polar Stepper Motors\n[[Led Test|https://www.youtube.com/watch?v=1U9pf7S_ov4]]\n[[End-to-end Test|https://www.youtube.com/watch?v=ZEcQW5rCbSQ]]\n[[Syncro Testing|https://www.youtube.com/watch?v=VlLOfLwJHew]]
Type the text for '30 September 2017'\n\n{{{\n$0=755.906 (x, step/mm)\n$1=755.906 (y, step/mm)\n$2=755.906 (z, step/mm)\n$3=10 (step pulse, usec)\n$4=500.000 (default feed, mm/min)\n$5=500.000 (default seek, mm/min)\n$6=28 (step port invert mask, int:00011100)\n$7=255 (step idle delay, msec) or $7=25 (step idle delay, msec)*\n$8=10.000 (acceleration, mm/sec^2)\n$9=0.050 (junction deviation, mm)\n$10=0.100 (arc, mm/segment)\n$11=25 (n-arc correction, int)\n$12=3 (n-decimals, int)\n$13=0 (report inches, bool)\n$14=1 (auto start, bool)\n$15=0 (invert step enable, bool)\n$16=0 (hard limits, bool)\n$17=0 (homing cycle, bool)\n$18=0 (homing dir invert mask, int:00000000)\n$19=25.000 (homing feed, mm/min)\n$20=250.000 (homing seek, mm/min)\n$21=100 (homing debounce, msec)\n$22=1.000 (homing pull-off, mm)\n'$x=value' to set parameter or just '$' to dump current settings\n}}}
Type the text for '29 September 2017'\n\nThis code captures the parameters from the OpenBuild controller...\n{{{\n#!/usr/bin/expect -f\n# device\n# set modem /dev/ttyUSB0\nset modem /dev/modem\n\n# keep it open\nexec sh -c "sleep 3 < $modem" &\n\n# serial port parameters\n# exec stty -F $modem 9600 raw -clocal -echo -istrip -hup\n# exec stty -F $modem 115200 raw -clocal -echo -istrip -hup\nexec stty -F $modem 115200 raw -clocal echo -istrip -hup\n#\n# connect\nsend_user "connecting to $modem, exit with ~.\sn"\nspawn -open [open $modem w+]\n#\n# begin the script.\nsend "\s$\s$\sr"#!/bin/bash\n# Begun 2017-09-29 07:57:05 pflint\n# allows for diagnostic control of GRBL based equipment\n# https://en.wikipedia.org/wiki/G-code\n# https://www.simplify3d.com/support/articles/3d-printing-gcode-tutorial/\n# \nversion="0.006" # Working - drives the board all axes...\n # includes register setup function shsup & register display boaib\nmod="0" # for future use\n# License="GPLI"\n#\n#* function help - Help function for template basic help goes here\nfunction help(){\nclear;\necho "This is the \s""$FUNCNAME"\s" functiOliver Wyman Labson in "$0" version "$version; uroot #debug\ncat $0 | grep '^## ' | sed -e 's/##//'\n# echo "This is the help function"\n## *****DOCUMENTATION*****\n## You get this when you need help and you put in the wrong number or type of ...\n## arguments. The name of this program is ctob.sh, an it is a video animation.\n## appliance. This is released under GPL I\n## The syntax is:\n## Pre Production - The goal is calibrated working platform.\n## - ctob.sh sane - Sets check & edit directories, variables\n## help is available in module.\n## - ctob.sh monlnk - Monitor dmesg & see link to cnc.\n## - ctob.sh setlnk - set link to cnc as "/dev/modem".\n## - ctob.sh chklnk - Tests link to cnc.\n## - ctob.sh clbrt - Runs calibration routine.\n## - ctob.sh shsup - Pushes setup registers \n## - ctob.sh boaib - Displays setup registers\n## - ctob.sh movex - Move X plane +or- (overall limit 400)\n## - ctob.sh movey - Move Y plane +or- (overall limit ??)\n## - ctob.sh movez - Move Z plane +or- (overall limit 165)\n## Production - The goal is a working table\n## - ctob.sh origin - Sets X,Y,& Z to origin positions\n## - ctob.sh [absolute relative] - Sets X,Y,& Z to \n## absolute positioning based upon origin or\n## relative position based upon current position\n## - ctob.sh right - move bed X to right\n## - ctob.sh left - move bed X to left\n## - ctob.sh move [X Y Z] NNNN - Moves Axis NNNN units\n## - ctob.sh [X Y Z] [+ -] NNNN - Moves Axis NNNN units\n## Post Production The gioal is video avi files.\n## - ctob.sh backup Backup the current data to a tar file.\n## in all of these, Output is delivered to the GRBL...\n## *** NOTE *** These commands need not be run as root!\n##\n## For structure information type "grep '^\s#\s*' ctob.sh"\n## :^)\n## (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n##\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: ctob.sh\n#\nfunction dummy(){\n#* function dummy - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\n#\nfunction boaib(){\n#* function boaib - Builds aibot.sh and expect script to view cnc registers\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# packs expect into String and makes changes at the end...\n#\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\n#\n# device\nset modem /dev/modem\n#\n# keep it open\nexec sh -c "sleep 3 < $modem" &\n\n# serial port parameters\nexec stty -F $modem 115200 raw -clocal echo -istrip -hup\n#\n# connect\nsend_user "connecting to $modem..."\nspawn -open [open $modem w+] \n#\n# begin the script.\nsend "\s\s$\s\s$\s\sr"\nexpect "ok"\nclose\nexit 0\nEOF\n# echo "this is the string"\necho "$String" > aibot.sh\nchmod +x aibot.sh\n./aibot.sh\n#D rm aibot.sh\n} # Test:\n#\nfunction monlnk(){\n#* function monlnk - Allows you to monitor what is up in dmesg\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nunroot\n# x-terminal-emulator --command watch "dmesg | tail -15" &\nx-terminal-emulator --command watch "dmesg | grep FTDI | tail -15" &\n# watch "dmesg |tail -15"\n# uroot\n} # Test:\n#\nfunction setlnk(){\n#* function chklnk - Checks if you are talking to the cnc\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\ncncport="/dev/"$(dmesg | grep FTDI | tail -1 |rev | cut -d " " -f 1 |rev) #D \necho "cnc port is: "$cncport\necho "I would like to try:"\nrm /dev/modem\nchmod 666 $cncport\necho "ln -s $cncport /dev/modem"\n#\nif [ ! -e "/dev/modem" ]; then\n echo "'/dev/modem' does not exist, mapping to it now."\n ln -s $cncport /dev/modem \nelse \n echo "...But the File /dev/modem exists you need to fix this..."\nfi \n# uroot\n} # Test:\n#\nfunction chklnk(){\n#* function chklnk - Checks if you are talking to the cnc\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\necho "We are gonna check this by running minicom..."\necho "When the terminal comes up type '\s$\s$'."\nspause\n# minicom\n# x-terminal-emulator --command minicom &\nx-terminal-emulator --command minicom &\n# uroot\n} # Test:\n#\nfunction clbrt(){\n#* function clbrt - runs calibration routing\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\n} # Test:\n#\n#\nfunction origin(){\n#* function origin - send cnc back to origin\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "G28 ; home all axes (X, Y, and Z)"\necho "G28 ; home all axes (X, Y, and Z)" > /dev/modem\n# uroot\n} # Test:\n#\n#\nfunction absolute(){\n#* function dummy - sets cnc to do absolute positioning on X,Y,& Z\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "Send this: G90 ; use absolute positioning for the XYZ axes"\necho "G90 ; use absolute positioning for the XYZ axes" > /dev/modem\n} # Test:\n#\n#\nfunction relative(){\n#* function relative - Use relative positioning\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "G91 ; use relative positioning for the XYZ axes"\necho "G91 ; use relative positioning for the XYZ axes" > /dev/modem\n} # Test:\n#\nfunction movex(){\n#* function dummy - move the x axis (overall limit 400)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X"$var2" F3600 ; move to the X="$var2" position on the bed"\necho "G1 X"$var2" F3600 ; move to the X="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction movey(){\n#* function dummy - move the y axis (overall limit ??)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 Y"$var2" F3600 ; move to the Y="$var2" position on the bed"\necho "G1 Y"$var2" F3600 ; move to the Y="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction movez(){\n#* function dummy - move the z axis (overall limit ??)\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 Z"$var2" F3600 ; move to the Z="$var2" position on the bed"\necho "G1 Z"$var2" F3600 ; move to the Z="$var2" position on the bed" > /dev/modem\n} # Test:\n#\n#\nfunction left(){\n#* function left - Move left \necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X-10 F3600 ; move to the X=-10mm position on the bed"\necho "Send this: G1 X-20 F3600 ; move to X=-20mm"\necho "G1 X-10 F3600 ; move to the X=-10mm position on the bed" > /dev/modem\necho "G1 X-20 F3600 ; move to X=-20mm" > /dev/modem\n} # Test:\n#\nfunction right(){\n#* function right - Move right \necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "GSend this: 1 X10 F3600 ; move to the X=10mm position on the bed"\necho "Send this: G1 X20 F3600 ; move to X=20mm"\necho "G1 X10 F3600 ; move to the X=10mm position on the bed" > /dev/modem\necho "G1 X20 F3600 ; move to X=20mm" > /dev/modem\n} # Test:\n#\n#\nfunction shsup(){\n#* function shsup - setup command that is not perfect\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\ndestination="/dev/modem"\n# destination="/dev/stdout"\necho "\s$0=10" > $destination\necho "\s$1=255" >> $destination\necho "\s$2=0" >> $destination\necho "\s$3=6" >> $destination\necho "\s$4=1" >> $destination\necho "\s$5=0" >> $destination\necho "\s$6=0" >> $destination\necho "\s$10=3" >> $destination\necho "\s$11=0.020" >> $destination\necho "\s$12=0.002" >> $destination\necho "\s$13=0" >> $destination\necho "\s$14=1" >> $destination\necho "\s$20=0" >> $destination\necho "\s$21=0" >> $destination\necho "\s$22=0" >> $destination\necho "\s$23=0" >> $destination\necho "\s$24=2000.000" >> $destination\necho "\s$25=1000.000" >> $destination\necho "\s$26=250" >> $destination\necho "\s$27=1.000" >> $destination\necho "\s$100=199.100" >> $destination\necho "\s$101=199.100" >> $destination\necho "\s$102=199.100" >> $destination\necho "\s$110=1000.000" >> $destination\necho "\s$111=1000.000" >> $destination\necho "\s$112=1000.000" >> $destination\necho "\s$120=100.000" >> $destination\necho "\s$121=100.000" >> $destination\necho "\s$122=100.000" >> $destination\necho "\s$130=270.000" >> $destination\necho "\s$131=270.000" >> $destination\necho "\s$132=80.000" >> $destination \n} # Test:\n#*###################################STANDARD AND MAYBE USEFUL FUNCTIONS BELOW\n#\nfunction backup(){\n#* function backup - Backup the current data to a tar file\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nsane\ncd $basedir\necho "about to launch this command:"\necho "tar -cvf ../videobu_$(date +%F) ."\nspause\ntar -cvf ../videobu_$(date +%F) .\n# To test viability of tar:\n# tar -tvf videobu_2017-09-17\n# tar -tvf ../videobu_$(date +%F) .\n} # Test:\n#\n#\nfunction potrite(){\n#* function potrite - checks to see if you have what you need to run this program.\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test: ctrantor.sh\n#\nfunction uroot(){\n#* function uroot - Checks to see if you are root\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n # echo "This script does not need to run as root but that's OK as you are not root" 1>&2\n echo "This script needs to be run as root and you are not root" 1>&2\n exit 0\nfi\n} # Test:~flint/bin/mtoc.sh uroot\n#\n#\nfunction unroot(){\n#* function unroot - Checks to see if you are root\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n echo "This script does not need to run as root but that's OK as you are not root" 1>&2\n # echo "This script needs to be run as root and you are not root" 1>&2\nfi\n} # Test:~flint/bin/mtoc.sh uroot\n#\n#* function spause - A simple tarry...\nfunction spause(){\n # -t sets time\n # read -t $pt -p "$*" ans\n read -p "Hit enter to continue..." ans\n echo $ans\n}\n#\nfunction sane(){\n#* function sane - Make the program sane. Sets lists & edit directories, variables\n# echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# this update somehow needs to be documented each run.\n#D echo "This is var2: "\nbasedir="/home/flint/ally/2017/Videos2Chili/"\ndirectory="pf_2017-09-16"\nanispec="anispec"\noutdir="outdir"\naudio="Lets_All_go_to_the_Lobby!_Intermission_Bumper.wav"\nfr=16\n#\nliston="basedir directory anispec outdir audio fr" #list of targets to search for\ncase "$var2" in\n "" ) ;; # got nothing, set variables silently\n\n "show" ) # Show version stuff and exit\n echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n ;;\n"check" ) # clear # describe current variables in play\n echo -e "The base directory is: \st\st"$basedir\n echo -e "The working directory is: \st"$directory\n echo -e "The animation specification is: \st"$anispec\n echo -e "The results are in directory: \st"$outdir\n echo -e "The audio file is: \st"$audio\n echo -e "The frame rate is: \st"$fr\n ;;\n "test" ) # clear # list out current variables in play\n i="1"\n echo "This is sane test"\n for name in $liston\n do\n echo -ne "$((i++)). \st"; grep "^$name=" $0\n done\n ;;\n "edit" ) # clear # Interactively edit list\n i="1"\n echo "This is sane edit"\n for name in $liston\n do\n echo -ne "$((i++)). \st"; grep "^$name=" $0\n done\n read -p "what number would you like to edit? " ans\n # echo $ans\n i="1"\n echo "Do not forget to type quotes in your replacement string"\n for name in $liston\n do\n # echo -ne "$((i++)). \st"; grep "^$name=" $0\n # if [ "$i" == "$ans" ]; then echo -e $i"\st "$name"="; fi\n if [ "$i" == "$ans" ];\n then\n # echo -n " ";grep "^$name=" $0\n #D\n target=$(grep "^$name=" $0)\n echo -n " ";echo $chnglng\n read -p" "$name"=" change;\n chnglng=$name"="$change;\n fi\n # echo $((i++)) > /dev/null\n ((i++))\n done\n #\n # echo "target is: "$target\n # echo "change is: "$chnglng\n # echo "sed -i 's:$target:$chnglng:g' $0"\n rm doit.sh 2>/dev/null; touch doit.sh; chmod +x doit.sh\n rm undo.sh 2>/dev/null; touch undo.sh; chmod +x undo.sh\n echo 'echo "Just changed the file"' >> doit.sh\n echo 'echo "Just changed the file back"' >> undo.sh\n echo "sed -i 's:$target:$chnglng:g' $0" >> doit.sh\n echo "sed -i 's:$chnglng:$target:g' $0" >> undo.sh\n # ./doit.sh\n #D\n ./doit.sh; rm -rf doit.sh\n ;;\n "save" ) # list out current variables in play\n clear\n i="1"\n echo "This is sane save"\n fname=$var3\n if [ -z "$var3" ];then echo "You must supply a name to save file in"; exit; fi\n rm -rf $fname 2>/dev/null; touch $fname\n for name in $liston\n do\n # echo -ne "$((i++)). \st"; grep "^$name=" $0 > test.ini\n outln="$((i++)). "$(grep "^$name=" $0)\n echo $outln >> $fname\n done\n ;;\n "load" ) clear # Saves variables to filename\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n fname=$var3\n if [ -z "$var3" ];then echo "You must supply a file name to load"; exit; fi\n i="1"\n rm doit.sh 2>/dev/null; touch doit.sh; chmod +x doit.sh\n rm undo.sh 2>/dev/null; touch undo.sh; chmod +x undo.sh\n echo 'echo "Just changed the file"' >> doit.sh\n echo 'echo "Just changed the file back"' >> undo.sh\n cat $fname |while read line\n do\n prefix=$(echo $line |cut -d " " -f2 |cut -d "=" -f 1 ) #; echo -n $prefix"="\n change=$(echo $line |rev |cut -d "=" -f 1|rev) #; echo $change\n chnglng=$prefix"="$change #; echo -n $chnglng\n target=$(grep "^$prefix=" $0) #;echo -e "\st "$chnglng\n echo "sed -i 's:$target:$chnglng:g' $0" >> doit.sh\n echo "sed -i 's:$chnglng:$target:g' $0" >> undo.sh\n done\n ./doit.sh; #D rm -rf doit.sh 2>/dev/null\n ;;\n"xload" ) clear # list out current variables in play\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n echo "The idea is to load the changes from an xls file"\n echo "Maybe this will be working in the next version sorry for now..."\n ;;\n"xsave" ) clear # list out current variables in play\n echo "This is the \s"load\s" case in \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n echo "The idea is to savve the changes to an xls file"\n echo "Maybe this will be working in the next version sorry for now..."\n ;;\n\n"help" ) clear # Display help\n echo "This is the supplemental help for the sane routine"\n echo " (nothing) - Set variables silently"\n echo " show - Show version stuff"\n echo " test - List out current variables in play"\n echo " edit - Interactively edit list"\n echo " check - Check what all is going on"\n echo " load|save <filename>"\n echo " - load or save from supplied filename"\n echo " xload|xsave <filename.xls>"\n echo " - load from supplied spreadsheet"\n echo " help - Display this message"\n # Show the list:\n # cat ../bin/ctob.sh |grep \s"*\s"" "\s)\n ;;\nesac # anibot sane help\n} # Test:\n#\n#*###################################### MAIN ENTRY POINT AND COMPOUND CASE\n#\n# echo "mtoc.sh v"$version" starts"\n#* Evaluator Routine\n# Note the evaluator allows for many cases and error checking...\n#d ARGS=$# # carries the number of args into the functions...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\nif [ "$#" -eq "1" ] && [ "$1" = "monlnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "setlnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "chklnk" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "origin" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movex" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movey" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "movez" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "absolute" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "relative" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "clbrt" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "clbrt" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "backup" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "mstrc" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "plate" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "boaib" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dummy" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "left" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "right" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "ctest" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "shsup" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "sane" ]; then ARGS="8"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "sane" ]; then ARGS="2"; fi\nif [ "$#" -eq "3" ] && [ "$1" = "sane" ]; then ARGS="3"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "uroot" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "unroot" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "spause" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "help" ]; then ARGS="9"; fi\n# this tests the evaluator...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\n# typical cases, be careful to make your own...\ncase "$ARGS" in\n "0") clear; $1="help"; exit 1;; # got nothing, display help and go\n "1") $1 ;; # run the command\n "2") var2=$2; $1 ;; # run the command with an argument\n "3") var3=$3; var2=$2; $1 ;; # run the command with two arguments\n "4") var4=$4; var3=$3; var2=$2; $1 ;; # run the command with three arguments\n "5") prompt=$2; $1 ;; # run the command with a different argument\n "6") time=$3; prompt=$2; $1 ;; # run the command with two different arguments\n "7") var2="blank"; $1 ;; # run the command and default variables\n "8") var2=""; $1 ;; # run the command and settle variables\n "9") var3=$3; var2=$2; $1 ;; # run the command and settle variables\n *) clear; cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\nesac # End main loop. To TEST:\n#\n# echo " "; echo "On "$(date +%F\s %r) $0" version "$version" stops"\n#debug echo "That's all folks!!"\n#\n#d rm -rf ss # removes super secret data file\n#* restore environment cd "$S"\nexpect "ok"\nclose\nexit 0\n}}}\n\nThis is an expect script. For more information see...\n\n|!Reference HTML|! Description|\n|[[Expect spawn and interact |https://www.google.com/search?q=stty+spawn+interact&ie=utf-8&oe=utf-8&client=ubuntu&channel=fs]]||\n|[[Expect spawn and interact stack overflow |https://stackoverflow.com/questions/30113177/tcl-expect-after-interact-expect-user-doesnt-echo]]||\n|[[Expect man page |https://www.tcl.tk/man/expect5.31/expect.1.html]]||\n\n
Type the text for '29 September 2017'
Type the text for '3 October 2017'\n\nhttp://organize.7rnx.net/projects/sad-robot-workspace/wiki/CNC_Machine
\n[[GRBL Configuration |https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration]]\n\nType the text for '11 October 2017'\n\n[[New board|http://www.openbuilds.com/builds/cnc-xpro-driver.643/]] works better...\n\nHook up wood lathe...\n\nType the text for '7 October 2017'\n\nVersion Grbl 1.1f\n\nintermittent 10 minutes after opening...\n\n{{{\nOPTIONS: I18n \nCompiled on Apr 24 2017, 18:31:29.\nPort /dev/modem\n}}}\n[[This is the hookup for the new board|https://photos.google.com/photo/AF1QipOMvXVGADqkUMBuO40B8Fir32jToviPeSaZxyQP]]\n\nWiring Diagram for Motors\n|!Terminal |!Wire to:|\n| 1 |Blank|\n| 2 |Blank|\n| 3 |Red|\n| 4 |Green|\n| 5 |Blue|\n| 6 |Yellow|\n\n\n{{{\nKyo,\n\nThanks I just spent two hours of my rather precious life trying to get UGS running under Mint. The hell of it was that I got the Java Code working but try as I might when the dreaded Java went to open the specified port all I got was from the Java Universal Gcode Sender\n"Error opening connection (gnu.io.NoSuchPortException);null"\nThis I could not beat.\n"Java write once troubleshoot one thousand times"\n\nBTW "ctob.sh" just went to version number 0.007, (http://docbox.flint.com:8081/3Dprint#ctob.sh)\n\nRegards,\n}}}\n\n\n
Type the text for '7 October 2017'\n\n[[opens terminal in specific place and size|https://unix.stackexchange.com/questions/48984/how-can-i-set-the-position-that-terminal-opens-at]]\n\nMost terminals can be launched using the geometry switch allowing you to specify terminal's size and position (COLUMNSxROWS+X+Y) e.g.:\n\n{{{\ngnome-terminal --geometry 73x31+100+300\n}}}\nor\n{{{\nxterm -geometry 93x31+100+350\n}}}
Type the text for '7 October 2017'\n\n[[100 mil 4 pin inline connectors|https://www.amazon.com/dp/B01GZL81NK?psc=1]]\n[[Connector from ebay|http://www.ebay.com/itm/25x-Dupont-Wire-Jumper-Pin-Header-Connector-Housing-1x4-Male-Female-/131221943350]]
Type the text for '7 October 2017'\n\n[[Tutorial|http://www.thegeekstuff.com/2011/01/expect-expressions-loops-conditions]]
Type the text for '11 October 2017'\n\n{{{\nUniversal Gcode Sender\n"Error opening connection (gnu.io.NoSuchPortException);null"\n}}}\n\n* [[Universal Gcode Sender|https://winder.github.io/ugs_website/]]\n* [[UGS Downloads|https://winder.github.io/ugs_website/download/]]\n\n{{{\nflint@R2D2:~/cnc$ java -version\njava version "1.6.0_27"\nOpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-1)\nOpenJDK Client VM (build 20.0-b12, mixed mode, sharing)openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib\n}}}\n\nGet the code:\n\n{{{\nwget http://bit.ly/16q7obd\nmv 16q7obd UniversalGcodeSender-v1.0.6.zip\nunzip ../UniversalGcodeSender-v1.0.6.zip\n}}}\n\nRun the stand-alone distribution from the command line using:\n{{{\n java -jar -Xmx256m UniversalGcodeSender.jar\n}}}\n\nUpgrade Java to 7:\n{{{\napt-get install openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib\n}}}\n\nDowngrade to Java 6:\n{{{\ndpkg -P openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib\n}}}
Type the text for '11 October 2017'\n\nhttp://www.spark-concepts.com/\nhttps://github.com/gnea/grbl\nhttps://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface\nhttp://www.openbuilds.com/builds/cnc-xpro-driver.643/
Type the text for '10 October 2017'\n\n|!Reference HTML|! Description|\n|[[spark-concepts |http://www.spark-concepts.com/]]||\n|[[bCNC |https://github.com/vlachoudis/bCNC]]||\n|[[cnc-xpro-driver.643 |http://www.openbuilds.com/builds/cnc-xpro-driver.643/]]||\n\n* [[Corner Brackets|http://openbuildspartstore.com/cast-corner-bracket/]]\n\n* [[Spindle Software|https://openbuilds.com/threads/using-grbl-0-9-to-switch-spindle-on-off.6445/]]\n\n
Type the text for '23 October 2017'\n\n* Blender\n* [[LinuxCNC|http://linuxcnc.org/docs/html/getting-started/getting-linuxcnc.html]]\n* [[LinuxCNC|http://linuxcnc.org/docs/html/getting-started/getting-linuxcnc.html]]\n\n{{{\n apt-cache search cnc\ngpx - Gcode to x3g conversion post processor\npcb2gcode - command-line tool for engraving PCBs using CNCs\nsfact - toolchain to generate G-Code instructions from 3D models\nvisolate - tool for engraving PCBs using CNCs\n}}}
Type the text for '6 December 2016'\n\n[[Cbot 3D-Prusa i3|https://www.3dprintersonlinestore.com/product/reprap/creatbot-tech-prusa-i3-kit]]
Type the text for '23 October 2017'\n\n* [[Uses MKS controller|https://www.amazon.com/s/ref=nb_sb_ss_i_3_3?url=search-alias%3Daps&field-keywords=mks+gen+1.4&sprefix=mks%2Caps%2C143&crid=1RFW16VFDIBWL]]\n* [[Similar to Tarantula|https://www.amazon.com/Tarantula-Aluminium-Extrusion-Printing-Filament/dp/B0764DC16J/ref=sr_1_fkmr0_2?ie=UTF8&qid=1508764519&sr=8-2-fkmr0&keywords=mks+gen+1.4]]\n* [[Witbot Display similar to what we have |https://www.amazon.com/Witbot-Controller-Control-Display-Monitor-Motherboard/dp/B07219RT7R/ref=sr_1_1?ie=UTF8&qid=1508765074&sr=8-1&keywords=LCD+12864+motherboard+display]]\n* [[12864 LCD Display 3D Printer Kit Smart Parts RAMPS 1.4 Controller Control Panel Monitor Motherboard Blue Screen|]]
Type the text for '23 October 2017'\n\n* [[FreeCAD Website|https://www.freecadweb.org/]]\n* [[FreeCAD Tutorial|https://www.youtube.com/watch?v=QzfT-ZDp0Wo]] Good Stuff...
Type the text for '23 October 2017'\n\n* [[Intro to OpenSCAD |https://www.youtube.com/watch?v=eq5ObNeiAUw]]
Type the text for '23 October 2017'\n\n\n* [[Open Source 3-D Modeling |https://www.quora.com/What-are-the-best-open-source-3D-CAD-programs]]\n* [[OpenSCAD vs FreeCAD|http://cad.softwareinsider.com/compare/17-80/FreeCAD-vs-OpenSCAD]]\n\n\n* [[OpenSCAD]]\n* [[FreeCAD]]\n* [[Openbuilds]]\n* [[Second3DPrinter]]\n* [[First3Dprinter]]\n* [[UsingCNC]]\n\nHome Brew Software\n* [[ctob.sh]]
Type the text for '29 October 2017'\n\nTarget file format is [[G-code|https://en.wikipedia.org/wiki/G-code]]\n\nFile Format is [[STL|https://en.wikipedia.org/wiki/STL_(file_format)]]\n\n\nG-code\n\nhttps://www.youtube.com/watch?v=bbe56S_O-uI\nhttps://www.youtube.com/watch?v=5Amqu1GZKTU\n[[Old Geezer |https://www.youtube.com/watch?v=8kfNAhM_NLg]]\ntalks about "maker cam" then to "mach3" for cutter paths...\n\nThis is good...\n[[using open source|https://www.youtube.com/watch?v=5Amqu1GZKTU]]\nUses Hershey Text extentions > render > herseytext \nsave as svg\nnow go to pycam\ncheck with camotics which should run \n\n\n
Type the text for 'New Tiddler\n\nComputer Aided Fabrication\n\n* [[Star Trec Barn Door.|STBD]]
Dated '1 December 2017'\n\n!Additive 3D is also known as 3D printing.\n\nUnit we have is a [[HIC Technology|http://www.hic3dprinter.com/product.asp?ClassID=001]] \n[[HICTOP Prusa I3 3D Desktop Printer, DIY High Accuracy CNC Self-Assembly Tridimensional|http://www.hic3dprinter.com/productshow.asp?ArticleID=0&id=25&cid=001]]\n\nTools:\n* [[Octaprint 3 D Printer Control|http://10.0.1.214/]]| 10.0.1.214 ''octopi''\n* [[Octoprint Webcam|http://10.0.1.214/webcam/?action=stream]] \n* [[APC Master Switch|http://10.0.1.11]] 10.0.1.11\n* [[Cura|Cura]]\n* [[Octoprint|http://octoprint.org/download/]]\n* [[Slic3r|http://slic3r.org/]]\n* [[Print Troubleshooting|http://reprap.org/wiki/Print_Troubleshooting_Pictorial_Guide]]\n\nAlso check out [[maker tips|http://docbox.flint.com:8081/maker]]\n\n[[3Dprinter Configuration|http://docbox.flint.com:8081/maker/#HicTocConfiguration]]\n\n\n[['10 November 2016' New improved octoprint? |https://printoid.net/]]\n
'1 December 2017'\n\n!Subtractive 3D is also known as 3D CNC.\n\n* [[GeneratingCNC]]\n* [[StuffFromOpenbuilds]]\n* [[SparkConcepts]]\n\n* [[Project:Enhanced Storage Connectors|EnhancedStorageConnectors]]\n* [[]]\n* [[]]\n* [[]]
Type the text for '1 December 2017'\n\nUsing Geanie drives, it would be very easy to build
Type the text for '11 December 2017'\n\n* [[Maslow CNC|http://www.maslowcnc.com/]]
Type the text for '26 December 2017'\n\n* [[Grainger Precision Collet, 1/8 in., ER25|https://www.grainger.com/category/collets/machine-tool-accessories/machining/ecatalog/N-bvwZ1yzp6qkZ1z0eugv?okey=1%2F8%22+router+collett&mkey=Collets+1%2F8%22+Range+0.125%22+Range+&NLSCM=4&EndecaKeyword=Collets&searchBar=true&searchRedirect=1%2F8%22+router+collett&sst=subset]]\n* [[Collet Set,1/8" to 1/4" Size/Range|https://www.grainger.com/product/53DM75?cm_mmc=PPC:+Google+PLA&s_kwcid=AL!2966!3!166587749707!!!g!71846391199!&ef_id=WgTtAwAABCTjP2c7:20171226162643:s&kwid=productads-adid^166587749707-device^c-plaid^71846391199-sku^53DM75-adType^PLA]]\n\n Item # 53DM75 Mfr. Model # CN1 Catalog Page # N/A UNSPSC # 27112808 \n\n
Type the text for '13 January 2018'\n\n* [[Adapter Buy |https://www.amazon.com/gp/product/B001NI6KO8/ref=s9_acsd_top_hd_bw_b2JkU_c_x_4_w?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-3&pf_rd_r=6QYWRJAK9MECVH1252CM&pf_rd_t=101&pf_rd_p=b9f8fcd6-6551-59a8-b09b-8b7d295b0070&pf_rd_i=552574]]\n\n\nThank you, your order has been placed.\n\nOrder Number: 114-0580301-2359435\n\n Amana Tool RB-102 High Precision Steel Router Collet Reducer 1/4 Overall D x 1/8 Inner D x 1 Inch Long will be shipped to Paul Flint by Routerbitworld.\n Estimated delivery: Jan. 18, 2018 - Jan. 22, 2018\n\nReview or edit your order\n
Type the text for '1 February 2018'
Type the text for '27 February 2018'\n\nGcodeTools For Ink scape\n\n[[old guy talks g-code|https://www.youtube.com/watch?v=8kfNAhM_NLg]]\n\nMust run under Python 2.7
Type the text for '2 March 2018'\n\nWhat a hassle...\n[[Wikipedia|https://en.wikipedia.org/wiki/G-code]]\n[[Quick Reference|https://www.cnccookbook.com/g-code-m-code-reference-list-cnc-mills/]]\n[[10 Statement gcode|https://www.cnccookbook.com/g-code-m-code-reference-list-cnc-mills/]]\n[[Omron G-code Manual|https://assets.omron.eu/downloads/manual/en/v7/o031_nj5_ny5_g-code_instructions_reference_manual_en.pdf]]
Type the text for '2 March 2018'\n\nI would like the motor to start when a plot is sent.\n\n[[Sparc Concepts|http://www.spark-concepts.com/forums/]]
Type the text for '6 May 2018'\n\n|[[Spark-Concepts |https://github.com/Spark-Concepts/xPRO/wiki]]||\n|[[Spark-Concepts |https://github.com/Spark-Concepts/xPRO/wiki/1.-What-is-CNC-xPRO]]||\n|[[Spark-Concepts |https://github.com/Spark-Concepts/xPRO/wiki/2.-Connecting-CNC-xPRO]]| Connecting|\n|[[Spark-Concepts |https://github.com/Spark-Concepts/xPRO/wiki/5.-Troubleshooting]]||\n|[[Spark-Concepts |https://raw.githubusercontent.com/Spark-Concepts/xPRO/master/wiki/xProV3.jpg]]||\n|[[Spark-Concepts |http://www.spark-concepts.com/forums/]]||\n
Type the text for '7 May 2018'\n\n|!Reference HTML|! Description|\n|[[github grbl |https://github.com/grbl/grbl]]||\n|[[grbl releases |https://github.com/gnea/grbl/releases]]||\n|[[Stack overflow spindle |https://stackoverflow.com/questions/28733905/grbl-cycle-start-needed-every-spindle-on-off]]||\n|[[grbl issues 611 |https://github.com/grbl/grbl/issues/611]]||\n|[[grbl issues 949 |https://github.com/grbl/grbl/issues/949]]||\n|[[grbl issues 933 |https://github.com/grbl/grbl/issues/933]]||\n|[[grbl command ref.|https://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands]]||\n|[[command for spindle |http://community.carbide3d.com/t/using-m4-or-m3-gcode-commands-to-turn-on-off-the-spindle-motor/2233/5]]||\n|[[spindle control |https://www.shapeoko.com/wiki/index.php/Spindle_Control]]||\n|[[spindle on off openbuilds |https://openbuilds.com/threads/using-grbl-0-9-to-switch-spindle-on-off.6445/]]||
This project implements a 3d-printer firmware. There are two parts to this firmware - code that runs on a micro-controller and code that runs on a host machine. The host software does the work to build a schedule of events, while the micro-controller software does the work to execute the provided schedule at the specified times.\n\nhttps://github.com/KevinOConnor/klipper
Type the text for '11 January 2020'\n\nWhy not print the whole house?\n\n[[WASP|https://www.3dwasp.com/en/3d-printed-house-tecla/]]
Type the text for '6 February 2020'\n\n[[RecyclePLA|https://all3dp.com/4/finally-theres-a-better-way-to-recycle-pla/]]
Type the text for '7 September 2020'\n\nSteps for this process:\n# inistall youtue-dl\n# download video in "[[.mkv|https://en.wikipedia.org/wiki/Matroska#:~:text=Matroska%20is%20similar%20in%20concept,include%20subtitles%20and%20audio)%2C%20.]]" format\n# convert this to "mp4"\n# test mp4 using {{{mpv video.mp4}}}\n# run this line {{{ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -c:v copy output.mp4}}}\n# start chrome\n# got to "https://studio.youtube.com/"\n# click on "create"\n# click on upload video\n# upload output.mp4 \n# add name and meta data.\n\n\n[[OpenSCAD Tutorial: Simple Pallet Bracket|https://youtu.be/r9F_rCRTYnY]]
Type the text for '17 May 2021'\n\nhttps://www.klipper3d.org/Overview.html