Category Archives: College

RepRap is Alive!

I’ve been wrenching for a few weeks to machine enough pieces to create a CNC plastic extruder (RepRap / Makerbot). I’ve got the CNC part done, now I have to get the extruder and heated bed up and running so I can start RPing parts.

Sector67 Forum Thread

I’ve gotten a few questions as to what you’re looking at, if you’re completely unfamiliar a visit to Wikipedia should clear things up.

It’s made out of 2″ x 2″ extruded aluminum channel, the railed looking stuff that makes up the top of the arm and the drop for the spindle (dremel) is called 80/20, it’s fairly expensive but is very precise and saves a lot of time for some projects.

The Z axis is the classic over constrained parallel rods, I pulled the rods out of a pair of identical printers and then drilled and reamed to size the end blocks and the slider block, which is just a chunk of delrin plastic. The bad part about using a plastic block for a sliding surface is that you have a drill/ream it over significantly to get it the right size, which in my case just means it’s sloppy and will be replaced by linear bearing when it becomes the weakest link in the machine for precision or stiffness.

The bottom end X-Y axes are THK precision linear bearing. I picked this out of discarded equipment at the university, which I understand it not available to “normal people”. I found out a few years after I picked it up that it’s $0.43/millimeter (yep, that’s a half of a dollar per the thickness of your fingernail, it’s expensive). The bearing carriages are ~$130/each. I was fortunate enough to find a pair of 18″ linear track and a pair of bearings still in their well oiled bags! They do have lash in them and should certainly be run in parallel or with a precision guide track for stiffness/rigidity but for my application (milling light plastics and depositing plastic in an additive process) it’s not a major concern this early in the project.

The other common question is how much does this thing cost. So far I have $199 for the full generation 3 Makerbot electronics (thanks Zach et al., they work great!) and $4.11 for 3 x 1″ long 1/4-20 nuts that are used on each of the axes (True Value). The rest has been collected or given to me by others.

National Instruments DIAdem Text @@ Commands

If you’ve ever used NI’s DIAdem for data analysis you know how useful it is for looking at and analyzing large datasets.  What you may or may not have discovered is the @@——@@ commands that can be used to display channel related texts anywhere in the program.

DIAdem helpfully gives you a list of available commands, but doesn’t tell you what they display or how to use them.
Program Command: @@ChnPropGet(No,Property name)@@
Formatting: @@ChnPropGet(1,”Description”)@@
Output: The 1st channel’s Description, other input could be Name, Unit, etc
Notes: Make sure to use quotes around the Property name and remember that the channels are counted from the very first channel onwards and found as “Number” in the channel information.

Command: @@CD()@@
Formatting: @@CD(1)@@
Output: The 1st channel’s Units

Command: @@ChD(Line,No)@@
Formatting: @@ChD(2,1)@@
Output: The 1st channel’s second data point value

Command: @@CL(No)@@
Formatting: @@CL(1)@@
Output: The 1st channel’s number of points (length)

Command: @@CNoXGet(Channel group number,No)@@
Formatting: @@CNoXGet(2,1)@@
Output: Finds the 2nd group’s first channel and returns it’s channel number (counting from the first channel.
Notes: Could be considered translating from relative position of a channel (in a group) to absolute position in the list of channels.

Couple of general notes, you can’t nest lookups (at least not in the text boxes, so it would be invalid to:


and turn it into a lookup:

Otherwise it’s pretty helpful to use these when labeling graphs/etc so you don’t have to constantly correct things.  DIAdem also builds in lots of string functions like trim/etc, so you can clean things up if necessary!

<Wordpress>  – I had all these formatted nicely in a table but WordPress ate itself trying to render it, hence the oddball list, sorry. </Wordpress>

Argonne National Lab

I took a field trip with work down to Argonne National Lab to see their engine labs. We also stopped by their photon source (used to generate x-rays).

While we were walking through a storage area they pointed out a real version of the Hunt for Red October’s caterpillar drive, in reality called a “Magentohydrodynamic drive” which uses massive magnetic fields to induce flow in water.

Magnetohydrodynamic Drive

Pictures of the advanced beamline that they put materials/experiments in the way of to blast them with x-rays:

Advanced Photon Source

Advanced Photon Source

Advanced Photon Source

Here’s a picture of the accelerator used to get the photons up to warp speed. (99+% c )

Advanced Photon Source Accelerator

And I managed to find evidence of the infamous government’s Sector 7 as noted on this bicycle:

Proof of Sector 7

Finally, for being one of the most advanced research facilities in the world, they sure managed to keep things looking fresh out of WWII on the exterior, here we can see some of the outdoor exposed infrastructure leaking like a sieve, good thing it’s just steam:

Argonne National Lab Aging Infrastructure

HP 3325B Function Generator

I saved a HP3325B from the trash almost 6 months ago which is an awesome score.  When I had first powered it up it threw a FAIL 023 error, I put it under my desk and decided to get it out and patch it up today.

First key bit of information is that HP / Agilent are absolutely spectacular companies for providing service manuals, product manuals, and datasheets well beyond the retail life of their instruments.  You can still pick up documentation directly from Agilent here.

In digging through the datasheet you can see that a FAIL 023 means we’re having a problem with the dc offset, so I printed off the relevant service information (groups K,J) and prepared for the worst.  After powering the machine on at my desk I was again met with the FAIL 023 when requesting a sine wave, and a new error was a FAIL021 when requesting a square wave.  I then out of chance cycled through the other 3 settings (triangle, etc) and returned to the square wave and sine waves to discover that the errors had went away!  It’s likely that I had a stuck/hung up relay and switching away from square and sine waves cycled something into place again.  We’ll see how long it lasts but hopefully I’ve just picked up a nice piece of equipment.

Additionally while I was reassembling the covers, turning the instrument from side to side resulted in a nice pinball sound, I swung it back in forth until I was greeted with 3 washers on my desk, I can’t imagine that these were helping with things but they’re out now.  Looks like they came off the main power transformer which someone had helpfully duct-taped into place at some point.

AVL Smokemeter or Opacimeter Controller Software

If anyone is looking for a free terminal style controller for an AVL 415S Smokemeter or a AVL 439 Opacimeter I’ve posted the ones I use at work here.

You’ll want the very old school Terminal from Microsoft:

Microsoft TERMINAL

And the preset terminal buttons for the AVL 415S Smokemeter:


OR the LabVIEW interface for the AVL 415S Smokemeter:

LV Smokemeter Control
(Taken from this post)

And the preset terminal buttons for the AVL 439 Opacimeter:


OR the LabVIEW interface for the AVL 439 Opacimeter:

(Lightly modified from this one)

RepRap / Makerbot CNC Madison WI?

Anyone else around Madison [UW-Madison would be great 🙂 ] interested in building a RepRap or a CupCake CNC machine? I’ve got a couple stepper motor drivers, several large stepper motors, a shop, and material to build one, but would prefer to order some of the more commercial parts with a few other people to drive the price down with quantity.

Anybody out there? Shoot me an e-mail or comment below.

UPDATE: I’ve built a RepRap and I know someone with a Makerbot!

Pandora 40 Hour Limit Reached!

The world has ended, I’ve hit my 40 hour allotment of Pandora for the month. So what happens when you run out of 40 hours of Pandora. . .

This is where it gets interesting. I was joking about this with my co-workers this afternoon, since generally my Pandora is signed in and playing whenever I’m at work, which means I should hit my 40 hours in just a shade under a week every month. So expectedly I’ve hit the limit, so we figured just sign up for another account and sign in again and run through another 40 hours (which probably violates the TOS, but nevertheless. . .)

Nope, no chance, in fact the whole Pandora site changes over when you hit 40 hours. Gone is the registration link. No matter, I’ll remote desktop to another computer and register a new address and use it here since I can’t register locally. Nope! Logging in with a completely new registered e-mail address still says that I’ve listened to my 40 hours and am entitled to no more.

Alright, last try, let’s clear all of the browser caches/cookies/etc, and try again. Well, given that the site still has no register a new account link means it will make no difference. They’re clearly tracking usage by IP address, perhaps machine reported statistics, and obviously your username plays a role on some level (though obviously not entirely).

I wonder what happens on a shared IP address? Anybody out there know? Anybody else run into the 40 hour limit? I don’t mind paying the cheap cost of good quality music, but I’d like to know how their tracking these things.


After paying $0.99 on about the 20th of the last several months I finally bit the bullet and gave Pandora my hard earned $36 for the year (it’s nice that I don’t have to dig around for the “don’t auto-renew button”, it’s just presented when you pay).  I have to admit that the desktop app alone is worth the money, not having a bogged down browser is immediately apparent on an older computer, even when running with Chrome or with Pandora in a separate browser.

After some “careful” research, I’ve concluded that Pandora is storing player information in both a flash object, and tracking the time played by user account AND IP address, so if you want to continue to get more than 40 hours/month you need to have a separate account, a separate data/internet connection (you don’t have to clear flash cache or anything else) and then wait until you run one account out and switch over to the other for the rest of the month.  I could pay ~$12/year by waiting until I run out each month but again the higher quality, no advertisements, 5 hour timeout and the dedicated player are all well worth it!  YMMV

LabVIEW Shared Variable Engine

I spent more than 20 minutes trying to figure out the LabVIEW shared variable engine so it’s worth writing about.  My objective was to test the shared variable engine across multiple networked computers, if you are just trying to get the shared variable engine running this post applies to you as well, but you should not follow the steps to configure multiple computers.

The first note, is that they have a good page write up regarding shared variables here.  After reading a little bit about shared variables you should open up LabVIEW, go to:

Help – Find Examples. . .  and search for shared.  This will bring up a list of shared variable examples.  Open up the “Shared Variable Client – Server.lvproj”.

Now expand the server.lvlib and run “Variable”.  Once you have this up and running, go back to the project explorer and now expand clients.lvlib and run any of the VI’s from this category – ie: “Data Item Binding”.

Now you should have something that looks like:

Running Server

Client Receiving Data

Client Receiving Data

What’s happening is the LabVIEW project is sharing waveform information from the “server” in the form of TCP (I had UDP here, it’s clearly not as this would not have any confirmation of packet receipt – TCP vs. UDP) information packets and the “client” is listening to the waveform data and initializing communications by sending the server it’s Client Name.

If you want to get this example running across multiple computers you can see some useful information here.  The idea is that you need to now repeat the above steps on another computer, only this time DON’T open and run another server, we’re going to get the Client to read data from the other computer!

First step is to repeat the above and get the example project open on another computer.  Once you have the project opened up, let’s choose to get data from the other computer who is running now as a server.

First double click the “bound waveform” variable so we can choose where to get data from.

Double Click Bound Waveform

Double Click Bound Waveform

Now check the box “Bind to Source”, and click Browse… and find your other computer who is acting as the server.

Bind to Source; Browse. . .

Bind to Source; Browse. . .

Select Remote Server

Select Remote Server

Note Change in Binding

Note Change in Binding

Now go back and run any of the client VI’s and with any luck you should have data running from the server to each of the clients successfully!

Open a CLIENT on Another Machine

Open a CLIENT on Another Machine

If you create your own VI’s it’s very simple to create shared variables, just right click the project, go to new variable and configure it just as you’ve done above and you should be off and rolling in no time!