3D Printer accessory parts printed on 3D printer

The rabbit hole goes deep…

I used some 1.75mm Silver ABS from Inventables. I’m using a glass plate (from a picture frame) on top of the stock heated bed, which I have cranked to 90C. Not sure how hot the glass actually gets, though. Extrusion temp @ 220C. Prints pretty nicely using the default slicer settings, which were actually created for PLA, I think. The two mounts took about 2 hours print time in total.

The lights are IKEA Dioder LED bars. You could probably find something cheaper on eBay, but…I was at IKEA at the time and the lights were there and the rest is 3D printed plastic history.

I put up the files on Thingverse here.

3D Printer: First Prints

It’s finished!

sudo apt-get install 3dprinter

I am now the proud owner of a Felix 3.0 3D Printer DIY kit!

Ordered last week from Makershed and it arrived today. It’s the barebones one: no LCD, and just a single extruder. I didn’t want to wait for shipping from Felix directly, so I went with Makershed (and probably paid a little premium because of that).

So far, I’ve got the frame and the Z-axis built, which took about 2-2.5 hours.

So far, I’m pretty impressed with the kit. It’s not an entirely mindless operation, though, but it’s certainly doable with a little patience.

CNC: Debugging Position Sensor

After running a gamut of tests, I’ve concluded the “drifting” of the position count is actually due to the machine *still moving* when the motors are locked. The movement is ever so slight. Thinking about it though, the only time you would have the motors locked like this, would be at the end of a job, and who cares what the position is then. So I think things are OK and I should do a second revision of the board.

CNC: Magnetic Position Sensor MegaUpdate

Over the past month, I’ve been able to make what seems like decent progress on the magnetic position sensor.

I was able to implement a simple firmware that would allow me to do some preliminary testing. The firmware interacts with the magnetic sensor over 2 different interfaces. First, the incremental encoder interface, which gives the position information and second, the serial data interface, which gives more detailed sensor data. The encoder pins from the sensor are connected to the hardware decoder pins on the microcontroller. The hardware interface is nice because you don’t really need to write that much code, just check some flags that the hardware sets. Also, the hardware interface provides the option to use a filter on the inputs, which can be nice for noisy signals in “hostile” environments. The incremental encoder interface gives me a pulse every 1.95µm and generates an “index” pulse at every 2mm.

I configured the LEDs on the top of the board to show the current direction and another LED flips on/off every index pulse:

Continue Reading…

CNC: MagSensor board bring-up

I got the LPC1751 up and running, using the internal 4MHz oscillator, which caused me a little bit of pain but was fairly easy to configure.

I started the migration to the base end of the LPC17xx family with my LPCXpresso 1769 dev board and worked “backwards”. First, I configured a pin to output the CPU clock, so I could use my ‘scope to see what was going on inside the chip. I was seeing a 50MHz waveform and the clock output was being divided by 2, so the CPU clock was 100MHz. Great.

Then, I modified the startup code to disable the “main oscillator” (ie, the external oscillator), enabled the internal oscillator and reconfigured the PLL to run at a slower rate. I used a spreadsheet from NXP that I found somewhere to calculate the correct values for the PLL. I put a copy of it on Google Drive for sharing.

Once I saw the clock output at 25MHz, I knew it should run OK on the 1751, so I went ahead and changed my MCU settings and flashed my board and it worked! Note: There doesn’t seem to be a dedicated clock output pin on the “smaller” 80-pin packages, so I don’t think the 1751 has one! It worked out nicely that I had a higher end model to start from.

Once I had the 1751 chugging along at 50MHz, I was off to the races. I tested out the red/green LED for magnetic field strength and also ran a counting pattern to test the white debug LEDs:

After I had enough of the blinky LEDs, I soldered down the AS5311 magnetic sensor. The chip has two status pins that indicate how “healthy” the magnetic field is around the chip. If the magnetic strip is too far away from the chip, the readings are useless. I wrote some code to read these pins and output the status on the red/green LED, which is working a treat. Next I will interface with the hardware quadrature decoder to take some actual movement measurements.

CNC: Magnetic Sensor Board Update

The boards arrived from OSH Park the other day and look super excellent, as usual. This time around, my order came with a sticker, which I promptly affixed to my oscilloscope.

I’m now waiting for a Digi-key order (and a bunch of other lab equipment, actually) to arrive so I can assemble one.

A mini-review of the boards (pictures taken with a potato an iPhone through a microscope viewfinder):

The soldermask sharpness is excellent, as you can see by the “jagged edge thing” I made. I also “tented” the vias (which just means that soldermask will be applied over the vias). The tenting worked OK, but since the via centers are not plugged, sometimes the soldermask might sluice through the hole. For the most part though, the vias are nicely covered.

The “silkscreen resolution test” I did with the Futurama art is actually pretty good quality. Even though the features are quite small, the text is still fairly legible.

Overall, the silkscreen quality is excellent, with sharp and crisp edges and is comparable to results from more expensive board services.

While waiting for components/tools/chemicals/whatever, I’ve been playing with the LPCXpresso LPC1769 board, so that I can become familiar with the LPC17xx family of microcontrollers. I have some PWM code up and running to drive the red/green LEDs for the magnetic field strength indicator. I was having trouble getting things up and running with the toolchain, until I said “screw this” and stripped out the LPCXpresso board library and the LPCOpen library, and just used the CMSIS library only. Too much high-level abstraction for me – I need to know the details of what registers do what, so I do not mind digging through the datasheet/user manual to learn how the chip actually works.

CNC: Magnetic Sensor Complete

Finished up the MagSensor board the other night and sent it off to OSH Park.


Some design notes of (possible?) interest:

  • 2-layer boards aren’t really the greatest for establishing uniform ground and power planes. I did a ground pour on the top (red) layer to simulate an unbroken ground plane (Maybe I should have just done a star-ground?). I did try to minimize traces crossing breaks in the “plane”, but it’s pretty hard to avoid entirely (Crossing breaks in the plane = longer current return loop = more EMI issues). I didn’t feel the need to do a ground pour on the bottom layer – not sure if I see a point really.


  • The analog section (for the Allegro Hall Effect sensor and Analog-to-Digital converter) has extra filtering on the power rail to keep it clean and an isolated ground pour as well. The “analog” ground can be left unconnected, connected via 0Ω resistor, or connected via ferrite bead to the main “digital” ground. I plan on trying each and seeing what kind of effect it has on A/D readings.


  • I got kinda weird with the copper features for the voltage regulator (U2, near reset switch – jagged soldermask). I wanted to use the copper of the PCB to draw heat away from the regulator, so I used a decent amount of pours around the chip. I didn’t do any calculations on power dissipation and generated heat beforehand though, so this is definitely just experimentation. I don’t think my current demands will be high enough to heat up the regulator anyways.  We shall see.


  • I wanted to see how OSH Park would perform on detailed silkscreen art,  so I added a goofy Futurama image along with the Open Source Hardware icon.



CNC: Magnetic Sensor Update

I have been very slowly plugging away at the magnetic sensor board.

Current BOM:

  • Allegro A1318 sensor to detect “raw” magnetic field levels
  • Analog Devices ADP3335 3.3V regulator ( ±0.9% accuracy @ 25°C – probably overkill but hey, why not?)
  • AMS AS5311 magnetic position sensor
  • NXP LPC1751 μController for all the brains behind this thing (I picked this chip because it has a cool sounding quadrature encoder interface!)
  • 1 red/green LED for indication
  • 4 white LEDs for debug/indication (ooooh, shiney)
  • Pin header for I2C or CAN bus, UART
  • Reset switch
  • SWD/Debug header (I might change this to take up less real estate)
  • Various supporting resistors, capacitors for decoupling, filtering, etc.

userside-12-3 magside-12-3







I should have everything I need in the schematic and layout is mostly finished. I’m not sure what I’m waiting for… (maybe a nifty logo?)

CNC: Dust Collector & Other

Since last update, I’ve added Improbable Construct’s Dust Shoe adapter. On the other end of the dust shoe, I’ve got a Harbor Freight dust collector to suck up the debris.  It’s working well so far – I think I might have to add one of those cyclone collection bins for bigger chips? I’m not sure yet.

Finally figured out which setting in CamBam controls how deep the machine will plunge from “idle” height when going to make a cut. That setting is called “Fast Plunge Height“, for future reference.
While learning, I haven’t really had to mess with setting the machining origin (eg, 0,0) correctly – I’m more concerned about the cut itself and not really *where* the cuts are made at this point. Setting the machining origin and having it relate to a real-world position is next up on my list to figure out.

For the machine itself, the next thing I really need to sort out is a work material clamping system. The temporary clamping system I set up before doesn’t clamp well, gets in the way of the cutter, and is generally not doing me any favors. Priority for sure.

Finally, I am experimenting with adding a magnetic position sensor to my Y-axis. I came across an interesting chip, the Austria Micro AS5311 and I’m currently in the process of creating a breakout/dev board for it.
I’m interested to see how it will perform with my machine.


MagSide UserSide


Page 1 of 3123»