Hand-bent curved acrylic housing for Sherline

IMG_0216.JPGI was recently working with our Sherline desktop CNC mill and got fed up with the ancient PC Sherline provided with the unit. I decided to upgrade the rig myself and quickly located a usable and fairly modern PC. Using the linuxCNC live image, I was able to get the system up and running fairly quickly, but now needed to deal with how to drive the mill’s stepper motors. Sherline provides a stepper motor driver assembly that is housed within the decaying PC tower I so desperately wanted to upgrade from, so I gutted the tower and excised the driver board with the 24V power supply they were using to power it. The stepper motor driver uses a parallel port and since those can’t be found on a modern PC, I had to locate a PCI card that would work. Luckily, a local vendor had one in stock. I installed that bad boy and it worked like a charm under Linux. A quick test with the powered driver board showed this was going to work, so I turned my attention to housing the driver assembly in a new case.

I’ve been working with our laser cutter for a while now and felt confident I could design and fabricate a chassis that would bolt together using some kind of joinery technique. I sketched a couple designs on paper, but I wasn’t loving the look. Wanting to make it more of a challenge, I wondered if I could make a curved surface design of some sort. I hadn’t worked with shaping acrylic yet, but knew it was a thermoplastic and figured I should give it a try. I grabbed my trusty heat gun, some scrap metal and a vise or two and gave it a go. After a couple test runs, I was confident it could work. The hardest thing about bending acrylic is controlling exactly where the bend occurs and not stretching the material so much as to throw off your dimensions.

The images below show my final attempt. I was able to house the driver assembly inside a curved acrylic chassis. Though the dimensions aren’t perfect and there are some alignment issues, it is a completely usable housing. What I learned after this project is that bending against a form yields far more accurate results than the rig I was using to get these bends. I look forward to trying this again soon.

 

IMG_0217.JPG

 

Pick a Color… Any Color!

Gotta love Arduino!
Made a quick demo to show PWM intensity control of Red, Green, and Blue LEDs in a rotary encoder using the rotary encoder’s push button for channel selection and a 7 segment display to show the channel.

The rotary encoder in the pictures below contains three LEDS (Red, Green, & Blue).  They have a common cathode and so I tied their anodes each through a resistor to a separate PWM output of an Arduino Uno. This allowed me to adjust intensity of each independently with a value from 0-255. I then read the encoder output and push button state of the encoder (did I mention it has a push-button switch in it too? Yuup!) using a few more Arduino inputs. I used the push button to select which RGB channel the user was modifying and the encoder output to adjust the selected value. I then used a very inexpensive 7 segment display from Sparkfun with a built-in controller that accepts serial comms for control.

RGB Rotary encoder displaying full red color.
RGB Rotary encoder displaying full red color.
RGB Rotary encoder displaying full green value.
RGB Rotary encoder displaying full green value.
RGB Rotary encoder displaying full blue value.
RGB Rotary encoder displaying full blue value.

 

Using all built-in or easily available libraries from Arduino, I was able to have this entire demo functional in about an hour. After I had it functional, I easily spent hours just clicking the push button, selecting RGB channels and changing the mixture of Red, Green, & Blue. This was a simple demonstration meant to explore very minimal user interface options for input and control.

Total time spent making = 1 hour.
Total time spent mixing colors after the fact = too many!

RGB Rotary Encoder displaying PWM-mixed color as selected by user.
RGB Rotary Encoder displaying PWM-mixed color as selected by user.