Saturday, June 27, 2015

New printer on its way

I've been keeping an eye on the 3D printers showing up on eBay out of China. The prices have been extremely good, but anyone who has done DIY 3D printers knows that it would be easy to cut corners that would result in a very frustrating printer.

I finally saw one I liked for a ridiculously good price, and I ordered it up this past week.  Should be here next week.

I plan to do a pretty full review, trying to keep in mind how a person with no experience would do with it, which I guess means just following directions and using their software.

I fully plan to almost certainly just toss their software and whatever else, and use my existing toolchain, but for the sake of the review I think I will stick to what's in the box at first.

Then maybe I'll do suggestions.

FWIW this printer seems to be pretty much a clone of the Makerbot Replicator 2. A couple of years ago I'd have been outraged and would never do business with them for having ripped off a good member of the open hardware community, but Makerbot has burned every bridge they had, and I can't be arsed to give a shit who's ripping them off at this point.

Mean time, I've made plans to repurpose my current i3 as an experimental platform, and have sold off all the 3mm filament I have sitting around.

So anyway, watch this space, this will probably be at least 2, maybe more articles.  The first one will be unboxing up through first print. It MIGHT be next weekend, maybe a little later.

Friday, June 5, 2015

Streaming/NAS music solution-Raspberry Pi + RuneAudio

I've been looking for a good way to play music on a stereo system mainly from a network share, but also possibly from streaming audio.

There USED to be solutions you could buy for this, but they seem to have been discontinued except for some high end solutions.

This evening I found Rune Audio which runs on a variety of platforms including the Raspberry Pi.

In general it was easy to install, but getting it to actually output useable audio was a bit of a problem.

First I tried the headphone jack on the Pi. No luck until I went to the config page to select it. Even then, the audio output was phenomenally bad. Very low volume (the software vol control was cranked to 100%) and a ton of noise.

Then I tried HDMI.  No audio. Found some forum posts indicating that I should try some lines in the config.txt. Took another 10 minutes to figure out that config.txt was located in /boot.  Then because apparently this Linux install has some crazy keyboard layout, I had to type every non-alpha character by using alt+ascii value. I got crazy high ascii when I typed : or ! or anything like that.

I never did get HDMI working.  That would have been nice.

I figure that eventually I'll try using my Behringer DAC, it has excellent characteristics, but that's at work right now.

Then I remembered that I have a junky little USB audio device that I think I bought from DealExtreme for about $2. That dumb thing has come in useful more times than I care to think about. I plugged it in, it showed up in the config, I selected it and it's working fine. And it actually doesn't sound bad at all.

It isn't what I really want, which is a device with an integrated display and a remote control, but this can be controlled from a phone, tablet or web browser, and I can set up playlists that will go for days and it has some streaming capabilities so I guess it'll do.

Thursday, June 4, 2015

Arduino blocks: Driving a simple unipolar stepper motor

I picked up a simple stepper motor with a little driver board for about $2.50 on eBay.

Making things actually physically move with your projects is very gratifying and interesting. There are a number of ways to do it. Stepper motors are one of the simpler ways.

This particular motor and driver is a unipolar setup, which is about as simple as it gets for stepper motors. This video will go through it in what I hope is an understandable way.

Link to data sheet

<pre>// Very simple stepper motor driver demo
// John Ridley June 2015
// CC0 public domain dedication

int stepperpins[] = {2,3,4,5};
int stepperCurPos = 0;

void SetupStepper()
  for (int x=0; x<4; x++)
    pinMode(stepperpins[x], OUTPUT);
    digitalWrite(stepperpins[x], 1);

void MoveStepper(int direction)
  digitalWrite(stepperpins[stepperCurPos], 0); // turn off current pin
  stepperCurPos += direction;
  if (stepperCurPos > 3)
    stepperCurPos = 0;
  if (stepperCurPos < 0)
    stepperCurPos = 3;
  digitalWrite(stepperpins[stepperCurPos], 1); // turn on new current pin

void setup() {
  // put your setup code here, to run once:


int msdly = 3;

void loop() {
  for (int x=0; x<200; x++)
  for (int x=0; x<200; x++)