Othermill CNC
Noisebridge | About | Visit | 272 | Manual | Contact | Guilds | Resources | Events | Projects | WGs | 5MoF | Meetings | Donate | V · T · E |
Guilds (M) | Meta | Code | Electronics | Fabrication | Games | Sewing | Music | AI | Neuro | Philosophy | Funding | Art | Security | Ham | Brew | V · T · E |
Fabrication | Sewing | 3D Printing | Wood Shop | Metal Shop | SparkleForge | Laser Cutter | Vinyl Cutter | V · T · E |
Wood Shop | Table Saw | Miter Saw | Band Saw | Bench grinder | Disk sander | Wen drill press | Lathe | Roland CNC Mill | Shapeoko 4 CNC | Air compressor | Hand tools | Hacksaws | Drill | Heat gun | Laminator | Parts | V · T · E |
The Othermill CNC is a CNC router capable of machining small parts including PCBs.
|
Noisebridge has an Othermill as of December 12, 2016. This page should be helpful in figuring out how to use it!
The Hardware[edit | edit source]
The Othermill is a high performance portable desktop CNC mill with 0.001" precision. The marketing refers to this as "6 mill trace-and-space", meaning you can design SMD circuits with 6 mill resolution of detail for millable features, dependent of course on your milling tool's precision.
This was purchased from Other Machine Company using tdfischer's employee discount on top of it being a scratch-and-ding refurb for $2699 using the Noisebridge Equipment Fund.
The Othermill is powered by a TinyG controller board, which is a 100% Open Source and Open Hardware motion controller for CNC machines. The code is GPL'd and available on github.com/omco/tinyg. The TinyG speaks serial at 115200 baud using a pair of USB serial ports on one device. One port is used for the TinyG JSON api, the other is used for regular GCode. Read up on the TinyG documentation to learn more.
It also has electrical circuit touchoff, meaning you can issue a G28.2 probe movement in a direction and the machine will report (via JSON ;() where it made contact with the spoilboard/t-slot bed. This operates on electrical conductivity with the Y bed, so don't get smart and think you can probe non-conductive materials with it!
The Software[edit | edit source]
OMC makes Otherplan, a combination CAM, CAD, and GCode sender. It only runs on OSX and Windows, though tdfischer might let you play with the Linux version if you ask nice. You don't need Otherplan to use the mill! It speaks plain serial over USB, though Otherplan does include a lot of utility for the mill. The biggest features are parsing PCB design files and SVG files and turning them into GCode movements on the mill (aka CAD+CAM), flashing the firmware, understanding the JSON API, and providing a decent UI for previewing and controlling the mill. Otherplan supports loading plain GCode, eagle .brd files, and gerber files from other PCB CAD tools.
Using The Mill[edit | edit source]
OMC runs a thorough support system for using the mill: https://othermachine.co/support/
A caveat: Do not use lubrication on the mill unless you know why you shouldn't! The linear rails in the mill are held in the HDPE frame with friction and if they slide out, the mill might not work or even worse be irreparably damaged!
The mill has a warranty. To take advantage of it, email support@othermachine.co. They're super helpful and friendly. If that doesn't work bug Victoria.
Hacking[edit | edit source]
can has root?
serial[edit | edit source]
The mill has a USB port, if you plug this in to a linux puter, such as one running Arch you'll get some serial.
[ 686.039970] usb 5-2: new full-speed USB device number 3 using uhci_hcd [ 686.221145] cdc_acm 5-2:1.0: ttyACM0: USB ACM devicetailed TinyG info see: ht[ 686.223369] cdc_acm 5-2:1.2: ttyACM1: USB ACM device
You can then use 'screen' or teh like to connect to it and get a tinyg prompt after hitting 'enter'
tinyg [m] ok>
h (ENTER) results in...
#iG CONFIGURATION Hep ### Thes omands are ctive ocfiguration: $ Sho sm(neral setig 1 Show oor 1 setting (or whatever motor you want 1,2,3,4) $x Sho xs stig or whteverai ou want x,y,z,a,bc m oall motor settns $ S allaxis settig $ oall ffset settns $ how all etings $ hwtihelpsren ach $cmman ove lo displast knorec settng n[ aks estg traten: <k>o aml $yfr to dislay the a edrt o udte setig ner toen equals value: <k>lue> or examl yr80tset he Y max edrt o8 mm/minute orcniuatin details see: htp/hub.com/snhtos/TinywiiGfguration Note iy eetes autoai sau reports by defaultThis cbe disabled by enterg $sv0Se the wiki below for moredtis detailed TinyG n se: https://github.co/synteo/nyG/wki/ t frwe see: https//github.co/snthe/TinyG se log anyisuestt:.synthet.ousHv funtinyg [mm]
...unknown why the wrapping is so funk, however this basically leads to n'yah https://github.com/synthetos/TinyG/wiki
and there is https://github.com/synthetos/TinyG/wiki/TinyG-Command-Line
commands[edit | edit source]
$fv will give you the version number, currently 0.97, which is the latest as of 💡 (talk) 07:19, 27 January 2017 (UTC)
status report {"sr":null}
{"r":{"sr":{"mpox":0.000,"mpoy":0.000,"mpoz":0.000,"ofsx":116.127,"ofsy":15.299,"ofsz":-54.663,"g55x":116.127,"g55y":15.299,"g55z":-54.663,"unit":1,"stat":3,"coor":2,"momo":4,"dist":0,"home":0,"mots":0,"plan":0,"line":0,"path":2,"frmo":1,"prbe":0,"safe":3,"estp":2,"spc":0,"hold":0,"macs":3,"cycs":0,"sps":0}},"f":[1,0,12]} {"sr":{"stat":3,"macs":3}}
{"test":N}
### TinyG SELF TEST Help ### Invoke self test by entering $test=N where N is one of: $test=1 smoke test $test=2 homing test (you must trip homing switches) $test=3 square test (a series of squares) $test=4 arc test (some large circles) test=5 dwell test (moves spaced by 1 second dwells) $test=6 feedhold test (enter ! and ~ to hold and restart, respectively) $test=7 M codes test (M codes intermingled with moves) $test=8 JSON test (motion test run using JSON commands) $test=9 inverse time test $test=10 rotary motion test $test=11 small moves test $test=12 slow moves test $test=13 coordinate system offset test (G92, G54-G59) Tests assume a centered XY origin and at least 80mm clearance in all directions Tests assume Z has at least 40mm posiitive clearance Tests start with a G0 X0 Y0 Z0 move Homing is the exception. No initial position or clearance is assumed For detailed TinyG info see: https://github.com/synthetos/TinyG/wiki/ For the latest firmware see: https://github.com/synthetos/TinyG Please log any issues at http://www.synthetos.com/forums Have fun {"r":{"test":null},"f":[1,0,11]}
DO NOT RUN TEST 1, this should only be used prior to final assembly, with the motors not installed in the machine
...spoiler alert, "Test #N not found"
$
[fb] firmware build 72.73 f] irmware version 0.97 c] niguainversio 6.00 [hp] adware platform 3.0[v hardware version 0.00 ] TinyG ID02130215-d4032595-23038323-43032323 ja] junction acceleration 1000000 mm ct] chordal toleranc 0.0100 mm s] sft limit enable 0 [t motor idle timeout 600e[d] pause dwell tie uSec jebejon mode 0 [0=tx,=JSON] j json verbosiy 4 [0=silent,1=foe,2=messages,3=configs,4=lnnm,=erbose] j] sn sraize style 1 [0=relxd1=strict] [tv] text verbst 1 [0=silent1vrbose] v] queue reportverosity 1 [0=off,1=sinle,2=triple] ] status repot verbosity 1 [0=off,1=fitrd,2=vebose] [si] sttusitrval 250 ms[gp efault code plane 0[0=G17,1=G18,2=G19] u deal code units mode 1 [0=G01=G21] g] default gcode codsstem 2 [1-6 (G54-G59)] []eugde path control 0G61,1=G61.1,2=G64] g default gcode distance mode 0 0=G0,1=G91] nyg [mm] ok>
$ej
[ej] enable json mode 0 [0=text,1=JSON]
$xvm
[xvm] x eocity maximum 600 mm/min
$yvm
[yvm] y velocity maximum 2600 mm/min
$zvm
[zvm] z velocity maximum 2600 mm/min
so how about some gcode...
G0 X0
tinyg [mm] err: Alarmed, command rejected type $clear to clear alarm]: G0