3040Z CNC Router

Complete 3040Z CNC System

I’ve been fascinated with machine tools and mechatronics for well over a decade, and have been indulging that fascination with a series of little benchtop CNC machines since about 2008, especially since my collection of related degrees lend legitimacy to my desires. Because of my other lifestyle choices I’m more or less restricted to a machine which is small and well-behaved enough to operate in an apartment, is roughly man-portable, and fits in normal vehicles, at least for the time being. Possibly fortunately, this restricts me from going off the deep end and buying a small VMC, or even building out the heavier classes of benchtop machine.

Last year I started to feel like my old V1 Shapeoko (ca. 2012) was not really usable as a machine tool – it was a good toy, and I learned a ton of cool things from it, but it wasn’t stiff enough, reliable enough, or laid out in a way that made it practical to use for much of anything. After I had my Shapeoko on campus for a demo day, my adviser was inspired to buy himself a complete package Chinese 3040 CNC router, and I got a chance to play with that for a few days. I wasn’t terribly impressed with the electronics on it, but the frame proper impressed me enough that I decided I wanted one as an upgrade.

…So near the end of the spring semester, I ordered myself a bare 3040Z frame and a pile of parts to kit it out. The machine is built almost entirely from inexpensive Chinese components, purchased via a mixture of Aliexpress, eBay, and Amazon sellers (I’ve become fond of uxcell for small parts). I don’t have accurate or current price quotes for the whole thing because I bought as I went, and various parts are reused from previous projects. I suspect the total is in the neighborhood of $1200 – comparable to buying a slightly more powerful finished system without the enclosure or limit switches.

It was my intention to write this up in sections as I built it out, but kept opting to play with work on the machine instead of doing more writing – particularly since such a large part of the things I’m supposed to be doing with my time of late are also writing. I finally got the last of the major parts “done” to my satisfaction a few weeks ago, so it’s time to gather the pictures and notes from what should have been half a dozen topic posts and make a gigantic brain-dump.

Continue reading

Posted in Computers, DIY, Electronics, General, Objects | Tagged | Leave a comment

SC16 Notes

Posting pictures and thoughts from SC16, because someone else might learn from them.

I pushed my crappy cellphone pictures from the show into a google photos album, some of them even have comments about why they’re interesting attached. I’ll probably add a few pictures of the swag haul when I get to sorting through it.

Unlike previous years, we actually coordinated with UK’s Center for Computational Sciences folks, they added some displays and spent some time in our booth, and and are (supposedly) taking the lead on UK’s SC presence next year. They got to show off a poster and demo of their campus DMZ trick to the NSF program director who funded that work, and the new director got the SC experience of people and sights, so I think they’re convinced of the value in doing so.

The valuable things I learned are enumerated below:
1. A few years ago, there were concerns that system power density was becoming a limiting factor; the machines people wanted to build were larger than the allowable cable lengths for the preferred interconnects in order to accommodate the volume of cooling equipment required to make it run. Over the last few years, several players decided they could cheat the problem by switching to water cooling. This year, we’re seeing an awful lot of systems in the 0.25-0.33MW/Rack range, and predictions that the latest 3M phase change secret sauce will get them up to ~0.5MW/Rack once the power density of the parts gets there. The trick on that is fun, Novec 7100, which is apparently methoxy-nonafluorobutane – C4F9OCH3 – boils at about 61°C such that the phase change very quickly pulls heat away from hotspots, and can then be re-condensed in a big fucking water-loop radiator at top of rack. The rest of the scale issue is being handled by obscenely expensive electro-optical cables and such. Less clever, more throwing cash at the problem.

2. For next generation large systems, there are, to borrow a phrase form the person who initially gave me the heads up on this, “two swim-lanes.” Power8+Nvidia, connected inside the nodes with NVLink to get adequate memory bandwidth, and Intel Knights Landing manycore boxes. Either way, almost all the big stuff is wired together with Infiniband.

3. The annual “Hank was right” award (which, following tradition, comes with neither award nor recognition) was issued by Mellanox, who are now into “In-Network Computing” which looks an awful lot like the Aggregate Function Network work from the mid 90s. Basically, they’re doing MPI (&etc.) sync operations in the network adapters and switches to avoid both interrupts and latency.

4. To me, the most fascinating thing on the floor Emu Technology which is essentially the lone radically-different architecture being developed right now. The whole thing is basically a refinement of in-memory computing, built on the premise that it’s usually cheaper to move the thread state to the data being worked on than the data being worked on to the core. It almost looks like a late-career folly by a bunch of badass old architecture folk, but they’re actually getting things done, in no small part because their machine is specifically suited to perform vast numbers of small operations on even vaster bodies of sparse unstructured data, and they are obviously mostly bankrolled by “Our Benefactors” – anonymous well-heeled entities interested in radical ways to do exactly that are easily deduced but better to not name.

I want to be thinking about some of their problems, they have some really interesting toolchain work ahead, especially with regard to visualizing >16K-threads wandering around in memory in human-accessible ways to look for hotspots and other debugging tasks. Closing the memory layout feedback loop on these is the hard mode of a problem that’s hard but interesting on normal systems. This was even better because I later got to talk with Burton Smith for about half an hour about our respective musings on what they’re up to, mostly questions about their memory model, and talking to Burton for half an hour is more intellectually stimulating than about half the college courses I’ve taken.

5. Task-centric, graph-oriented programming models are getting their due. An awful lot of OCCA and Kokkos in the national labs, because they suits both swim-lanes, and, being based on fugly C++ template magic, are relatively vendor-neutral and straightforward for adapting existing codes. Folks are also taking Tensorflow seriously.

6. My expectations for Nvidia’s ARM64 ambitions are now essentially nill. I’m pretty sure I’m not supposed to share how or why I think this, but shit sounds doomed-via-mismanagement on that front.

7. Achronix has their own FPGAs. Part of the gimmick is that they have like 6 hardware DDR and Ethernet controllers wrapped in their fabric, but that’s not all that unusual. The interesting bit is that they might be willing to share/document enough of their cell structure for some of the permanently-back-burner compiling-HLLs-to-hardware tricks could happen.

The usual SC features also apply. An overview of the state of the field. The best serverporn money can buy. Adult trick-or-treating, vis-a-vis the various vendor swag. And we got to see all the regulars; Greg Kurtzer [Warewulf, CentOS, currently on Singularity], Burton Smith [Terra/Cray, MSR, etc. currently fascinated by languages for quantum computing], Don Becker [Beowulf, Ethernet Drivers, Scyld, Nvidia, currently building fun automotive electronics], Doug Eadline [“the media” of the HPC world] former group members like Tim and Randy, etc. Those visits are half the joy of continuing to go to SC.

Posted in Computers, General | Leave a comment

G|Bomb Push|Pump

gbombboardbtm

I finally bought a G|Bomb Push|Pump setup after years of teasing myself about buying a proper hybrid distance deck. I selected it over the only other obvious contender, the Subsonic Century, mostly because as an engineer the G|Bomb design tickles me. Yes, it’s a $300 deck with another ~$100 of parts on it, but based on my first few rides, it’s totally worth it.
Continue reading

Posted in Entertainment, General, Objects | 2 Comments

Install Viavdo 2016.2 on ArchLinux (x86_64)

As of the date of this post, Xilinx Vivado 2016.2 works fine on Arch with minimal coaxing. Said coaxing is documented here in case it will be useful for others.

1. Install ncurses5-compat-libs from AUR, or the installer will hang during a later step. It appears to be required at runtime as well.

2. Mark the installer executable, eg. chmod +x Xilinx_Vivado_SDK_2016.2_0605_1_Lin64.bin, and run it with the confirm flag, ./Xilinx_Vivado_SDK_2016.2_0605_1_Lin64.bin --confirm

3. Hit Y at the “unpack” prompt, then go into the directory it creates at /tmp/selfgz[RANDOMSTRING], and edit xsetup to replace `uname -i` with `uname -m`, which is what they should have used in the first place.

4. Pre-create and permission the install path, a reasonable choice is the default /opt/Xilinx, which needs to be writable by the user doing the install (eg. chgrp users /opt/Xilinx, chmod g+w /opt/Xilinx)

5. Return to the terminal and hit Y to continue until the GUI installer runs.

6. Follow the GUI installer instructions, Feed the prompt your Xilinx credentials, Select Vivado HL WebPACK, etc.

7. The activation prompt at the end of the installation procedure is misleading, in the 2016.x versions if you simply quit without activating, the install automatically goes into WebPACK mode. If you don’t have/need any of the non-WebPACK features, activating the 30-day free trial of the nonfree version is asking for a headache when it expires.

8. It works. (and as a bonus convenience over the old toolchain, at least the Digilent Basys 3 boards use a normal FTDI usb-serial as their onboard programmer, so you don’t have to fight with drivers to program boards, that just works too.)

Posted in Computers, General, School | Tagged , | Leave a comment

Makergear M2 Upgrades

M2UpgradeComplete

The lab Makergear M2’s heated bed power supply died a few weeks ago, so we decided it was time for a serious upgrade, and set out to equip it with basically the best parts currently on the market, as we’re convinced the M2’s mechanical construction is still about as good as it gets.

Our M2 was a very early M2 from early 2013, with a split-voltage 19v/12v power supply setup, was on its second RAMBo after the first one melted around some connectors (high-current 12V is not a good idea), and RAMBo #2 was already abused with an external transistor on a heatsink wired in to the bed heater. It was also on its second hotend after the first one failed catastrophically during a sensor-separation incident some years ago, and was running a mutant Makergear V3b w/ 12V cartridge custom ordered to suit our machine.

So, shopping list:

Plus a whole boatload of connectors. For reasons known only to themselves, Panucatt doesn’t (or at least didn’t at the time) actually document which kind(s) of connectors are on the board, or offer a wiring kit. Some measurement and educated dead-reckoning got us there, so for anyone else looking, it uses Molex KK connectors in 2.54mm with both keys and locking ramp, in 2,3,and 4 positions. Specifically:

  • Motor (4x): 4 position, Molex p/n:0022013047 (Digikey)
  • Endstops/Probes (4x): 3 position, Molex p/n:0022013037 (Digikey)
  • Thermistors (2x): 2 position, Molex p/n:0008500114 (Digikey)
  • Crimp pins for the above (>32x): Molex p/n:0008500114 (Digikey)
  • Fan (2x): Standard 100mil pinheader, 3 positions. We used generic 3pos Dupont connectors from a Chinese kit.

I’d suggest buying at least one extra housing in each size, and a substantial number of extra crimp pins (They’re like a dime each in quantity, we bought 50 and had plenty to spare). I got a bit of a chuckle that they use 2.54mm molex KKs with locks and keys for everything except the fans, while standard PC fans use 3p molex KKs with locks and keys, but we’re running a 24V system so PC fans would be inappropriate anyway. I personally bought myself an Engineer PA-09 crimp tool because this crossed the line on crimp terminal projects where I’m willing to do it by futzing around with pliers.

M2PartsPile

The parts for this little project could have bought us a second low end printer, but that wouldn’t have given us any interesting new capabilities (particularly since we already have a Wanhao i3), and the machine we ended up with is approximately as capable as any FDM printer on the market.

The Makergear specialty parts are lovely, and improved in various ways as compared to even the newer M2 the lab PI owns personally; the power supply is in a ridiculously nice metal case and has ferrule-tipped color coded wires, the new bed heater covers the aluminum spreader more fully, is constructed with a very nicely machined wire and thermistor bracket, and includes a semi-rigid split-loom to keep it clear. I built a couple slightly weird cables and did some aggressive polish and longevity tweaks, including putting ferrules on everything going into a screw terminal (I did it partially because I decided I wanted an excuse to own a ferrule crimper and assortment). Probably the weirdest bit is that all the fans have male 2pos Dupont connectors on them, and the always-on cooling fans around the head are connected via a Y cable that terminates in a 4-position female dupont wired +24,Gnd,+24,Gnd (Picture has the wires routed wrong).
M2FanFork

All the cabling then retreated into the awesome mesh split-loom wire guides Makergear uses, and went on in more or less in the same configuration as the original cabling, including the weird little ball of wire at the back of the frame.

M2InitalElectronics

We also printed a number of parts for the upgrade, including a set of thingiverse user Neo Usagi’s E3D v6 40 mm Fan Duct and Extruder for MakerGear M2, which is an excellent design, though ours came out seriously over-tight and had to do a bit of grinding then perform the install with a vise – the dominant theory is that it was our fault for using 3 walls. Once fitted, it’s proven to be an excellent assembly with very good well-focused airflow and no tendency to bump into parts or the machine. The area around the head in this setup is extremely congested, and you must run the hot-end wires to the X+ side (the same side as the fan shroud mount) or they will hit the frame before the X endstop triggers, but once everything is situated it makes a nice package with no dangly bits. Even though it isn’t showing much noticeable difference in performance relative to late-model Makergear heads, I’m thoroughly impressed with the E3D hotend; the machining, the quality of the accessories in the kit, the efficacy of the heatbreak, the ease of assembly, everything is excellent, and in the mount we used, it only eats about 3mm of Z travel. They richly deserve their reputation.

M2E3DAssembly

As for the X5 Mini, two of the Makergear original mounting holes are close enough (though not perfectly aligned) to mount the board in a reasonable way with a pair of standard brass threaded standoffs, and a pair of those little barbed plastic motherboard standoffs trimmed to size to prevent tilting, all taken from the lab’s vast collection of PC assembly hardware. Leaving it exposed didn’t seem like a good plan, and we were seeing a slightly uncomfortable amount of warming on the motor drivers, so it needed a case and fan shroud. To that end we designed our own cover/enclosure/fan duct/bracket for the X5 Mini V3 and Viki2 (visible in the header picture – it has a 24V 40mm fan facing the Z motor blowing into the case, powered directly from an extra pair of PSU taps), a more detailed post about which will probably appear on profhankd’s thingiverse page shortly. We did all the printed components for the upgrade in our new favorite material, MakerGeeks’ “Raptor” PLA, incidentally in blue.

Software-wise, I’m satisfied but not enthused by Smoothieware. We’re now running this config.txt, which assumes 32x microstepping on all axes and produces very smooth, quiet motion with a minimum of idle heating. The major tuning efforts are just in the heater PIDs and on the Z movement, as the M2 design tends to make terrible noises if the Z movement is outside of a very narrow velocity window.

I wanted to like Smoothieware a lot more, and it is working well enough for the most part, but it is frankly kind of a garbage fire once you start looking at the code. It’s “modular,” but in an entirely ad-hoc way, so the parts don’t interact in entirely reasonable ways (Ex: AFIK it is currently incapable of setting up a “prevent cold extrusion” behavior, and would take pretty substantial changes to make it able to), with random parser fragments spread throughout the code. It also fails silently on unknown configuration keys, so I wasted the better part of a day on the extruder not responding after I wrote extruder.head.module_enable instead of extruder.head.enable because I misunderstood their half-updated documentation from when they hacked it to support multiple extruders. It looks and smells like a Reprappy hacker/hobbyst “move fast and break things” software, which is fine, but is so much so that I really don’t have high hopes for it maturing into something survivable without a complete redesign. This does make me feel better about sticking with LinuxCNC for my latest personal CNC project (Which I will eventually get to writing up and posting…).

Is ridiculously quieter than even the 24V stock M2, prints nicely at 150mm/s in PLA, heats up almost as fast as you can get a file loaded up and sliced, and can do so more or less independent and minimally attended. From a working current-gen 24v M2, none of the changes we made are particularly substantial upgrades, but from it’s state before the improvement is spectacular.

Posted in DIY, Electronics, General, Objects, School | 2 Comments

Macintosh LC Recap

I’ve done some invasive repairs on the Macintosh LC from my small fleet of vintage computers. I figure it’s worth writing up because there is a lack of detailed information about this kind of work on the ‘net.
Continue reading

Posted in Computers, DIY, Electronics, General | 7 Comments

Apparently a WordPress update caused some subtle breakage here a while back. The site has been spewing, among other things, a bunch of “&raquo” escapes in places that end up encoded as XML (thus breaking, among other things, RSS feeds). I’m hoping just swapping in “&#187” in a couple files that I’m not entirely sure if are configs or source because PHP and WP are both terrible will be a fairly permanent fix. It looks like it might be related to the javascript-reliant emoji support that appeared in 4.2?

Also, if you have an RSS thing pointed at a non-https or www-prefix URL here, you’re generating an awful lot of redirects and might want to adjust your subscription.

Every time I look into WordPress’ ugly accreted heart I wish for an alternative that does what I want from a CMS with less awful – if I didn’t want self-hosted comments this whole thing would have been replaced with static HTML years ago. More generally, every time I look at how the web actually works, it makes me consider primitivism as a legitimate and appealing lifestyle choice.

Posted on by pappp | 1 Comment

TP-Link Archer C7 with OpenWRT

I bought myself a TP-Link Archer C7 because the 2.4Ghz congestion in my apartment has become so terrible that my good old TP-Link WR1043ND (no 5Ghz radios) is no longer adequate, and the C7 was very well spoken of among reasonably-priced 802.11ac routers. It also has some nice perks like two on-board USB ports, so I can use it as a print server (with p910nd) and have USB storage for logs (vnstat & co.) and such attached without a separate hub. I wasn’t feeling quite motivated enough to buy and set up one of the NUC-like cheap SFF Intel boxes as a router like Ars Technica and Jeff Atwood have recently noted is an increasingly good plan, based largely on the dearth of ac WiFi cards that work reliably in host mode.

Some notes that may be of use to others, particularly about firmware replacement on recent models and throughput:
Continue reading

Posted in Computers, Electronics, General, Objects | 9 Comments

Breaking In to your Own Devices

I gave an informal talk for the IEEE student branch about breaking in to your own devices this evening. I did the low-postable-content notes with live examples and links thing, but at least one person wanted to watch the video links, so here are the notes. There is something delightful about giving talks that require legal disclaimers. I don’t think there is anything in here that will get me in trouble…

Continue reading

Posted in Computers, DIY, Electronics, Entertainment, General, School | Leave a comment

University Email Simulator

A generic version of the email you will receive on a daily basis from the University of BS (Which is probably the school you deal with), as you will read it after the first few repetitions. Graduates can relive their college experience, or, for current students, simply stop checking your email and skim this page every day.


From: Dean of Posterior Coverage <sanjay@ubs.edu>
To: ALL-STUDENTS@UBS.EDU
Subject: Mandatory CYA Training
Body: All students need to take this course that the university paid a fortune to a third-party ed-tech carpetbagger to license, which provides the absolute minimum coverage of an issue required under a new federal regulation. Everyone must take it, because otherwise we might be liable for your behavior.
This is why tuition is so high.
Continue reading

Posted in Computers, Entertainment, General, School | Tagged , | Leave a comment