Wednesday, November 27, 2013

PCBs arrived!

Today my PCBs from oshpark came in.  Check 'em out!


My Replicator 2 has been really busy running makexyz jobs, and work has been a little crazy, so it haven't been able to tinker much.  I am currently learning more about the TI MSP430, because I think it's the perfect micro to power my laser tag project.  More to come later...

Friday, November 22, 2013

Sidetracked...

makexyz has had me sidetracked a bit.  I recently got a message from someone that wanted 150 pieces made.  It was a pretty cool part and had a letter surrounded by multiple rings.  When removed from the platform, the support material would break free from the axle and the rings would spin independently.  I didn't have the right color and started to look around for local sources of Makerbot PLA.  It turns out that the Microsoft Store sells it online, plus shipping is free!  It's a way better deal than through Makerbot!  While I waited for confirmation from the potential customer, I did some test prints to verify that I could produce these parts in time.  The good news is that the Replicator 2 didn't disappoint, but the bad news was that the customer backed out.

On the bright side of things, this meant that I'd have time to focus on OnSLaughT and other projects.  I made a few tweaks to the magazine and grip assembly, as well as the release mechanism.  It's definitely getting closer to something that I think will work.  I need to change the dimensions a bit so that the spring will fit inside of the release mechanism.

One other project I have left over from the summer is internet-enabling our Honeywell security system.  While looking for DIY projects that accomplished this task, I came across a $119 product called EnvisaLink 3 that does pretty much everything I want!  You hook it into your existing Honeywell Vista security system, connect it to your network, and then it will be capable of sending you emails / SMS whenever a specified event occurs.  For example, I can be notified whenever the alarm is triggered, or I can simply be notified any time a window or door is opened.  So this isn't really a maker project, as I just have to hook up some wires, but that in itself almost turned into yet another project.  Check out this wiring:


What a mess, right?  Just looking at it made me nervous -- one day I might sneeze and some wires would come off, and I'd have no idea how to fix it.  To make matters worse, the EnvisaLink 3 needed to tap into the four most-occupied terminals in the box!  My first thought was to take my newly-acquired Kicad skills and use them to produce a custom PCB that would make it easier to manage the multiple connections.  Certainly this is something that a simple piece of DIN rail and Phoenix Contact terminal blocks could handle, but not as fun.

Well, while reading up on the wiring, I learned that the alarm system has an auxiliary "zone doubling" accessory that allows us to support more than 8 sensors.  It turned out that the 4 terminal positions I had to tap into were also available in the zone-doubling accessory and used a standard 0.1" header!  Today I hit HSC and picked up the parts I needed to complete the wiring.  In case you live in the Bay Area and don't know about HSC, it's electronics surplus heaven there.  They have so much stuff and it's pretty cheap.  Power resistors, DC converters, scopes, connectors, wires, SMT stuff, you name it.  Here are a couple of pics I snapped today:



Anyhow, I got it all wired up and stuck the EnvisaLink 3 into a 3D-printed case I whipped up this evening.  Perfect fit on the first try and gave a satisfying snap as I popped it onto the chamfered pegs!


Now I just have to figure out how to complete the configuration and get my alarm system online!  On the internet, that is.

Tuesday, November 19, 2013

Poorly timed blackout!

Fortunately, I just finished some prints for makexyz customers!  That last print took almost five hours, and I would have been majorly bummed if I had to reprint it from scratch.

I finally got around to revising the laser tag models for the magazine release parts, and as soon as I started to print them, the power went out.  Time to get that UPS for the printer!  Well, maybe tomorrow morning I will be able to try again before I have to go to work.

Here's what the parts look like.


Thursday, November 14, 2013

I never realized that making basic PCBs could be so easy!

I've only made a few PCBs before.  One was a breakout board for the gauge electronics behind the center console in my Evo.  The other was a Pololu-based stepper driver board intended to be a drop-in replacement for the MakerBot Cupcake electronics.  Both were made using the proprietary software from PCBExpress.  I actually really liked that software because it was super intuitive.  I never even had to pick up a user manual to get my boards made.  I just drew the schematic, exported to the PCB editor, then clicked Order and the boards arrived at my doorstep a week later!  My only other experience was making a special EEPROM adapter for NSX ECUs, which was done on Protel DXP.  That particular project required help from our board designers at work, because I had no clue what I was doing!  And it was that PCB that, until today, made me think that real PCB work would always be beyond my abilities.

I can't remember how I found out about Chris Gammell's new Contextual Electronics website, but it was probably from one of the RSS feeds.  In any case, I *really* wanted to take his course, but being able to dedicate 10 weeks is pretty tough with all of the things going on.  Needless to say, I was thrilled when I received one of his emails, announcing the "Getting to Blinky" series on Youtube.  For programmers out there, it's kind of like the EE equivalent of Hello World.  Now, while Hello World on any new programming language doesn't excite me very much, being able to blink an LED via my own PCB is.  So this afternoon I decided to just sit down and work through Chris' 7 videos to learn KiCad, and open source schematic capture and PCB design tool.

The courses are laid out very well, and the breaks between them are logical.  If you weren't able to sit down and power through all of them at once, I think you would have a very easy time picking up wherever you had last left off.  Chris seems like a pretty soft-spoken guy, and I definitely had to crank up the volume on my speakers to be able to hear him clearly.  Other than that, the videos themselves are well-produced.  The screencast is clear, and I especially like how the keystrokes he's using are displayed on-screen.  This is very useful because KiCad is very keystroke-intensive.  I think you are much better off learning the keystrokes than trying to find the various commands in the menus and toolbar icons (most of which don't really make sense to me).

Perhaps the only thing I would have liked in the videos was more cues that he's going to click on an important toolbar icon or introduce a new keystroke.  When working in KiCad on my other monitor, I think the process would have been smoother if I knew when to glance over at what Chris was doing.  I had to frequently rewind the videos to try to catch which button / keys he was pressing.  I guess some people do this naturally to begin with -- i.e. watch a bit, pause, do the steps, unpause.  I happen to like to do things at the same time, and it was a little difficult.  That said, all of the content you could possibly need is there in the videos, and you will learn how to use the fundamental KiCad tools!

KiCad seems like a very powerful tool, and it never ceases to amaze me what these open source software packages can do, at no cost to us users!  It has its quirks -- sometimes keystrokes wouldn't quite work, like V for via was failing during the routing session, and I had the darndest time trying to delete lines from my drawings.  But in the end, everything worked out.  By far the weirdest issue was with the footprint creation.  I couldn't close the editor because I had to save the footprint, but I couldn't save the footprint because it wasn't associated with a library.  This was the weirdest problem I've ever seen, and fortunately Chris ran into the same problem during his video... and that's the best part -- you get to see a real error when it happens, and have someone actually explain to you how to get around it!  Can you imagine other edited tutorials that might have completely glossed over or removed this error from the video, leaving you scratching your head?  I can, and it would really suck.

Anyhow, here's how the course is broken down:
  1. Introduction
  2. Symbol Creation with the Component Library
  3. Schematic Creation with EEschema
  4. Part Association with CvPcb
  5. Creating Footprints with the Module Editor
  6. PCB Layout with PCBnew
  7. Output Files and Making Your Board
And yes, oh yes, by the end of this series of videos, you will have ordered your very first PCB.  I couldn't believe how simple the process was!

I can't thank Chris enough for providing us with some free, extremely useful videos to help get some of us kickstarted with the PCB design process.  I do hope that this gets those whom are on the fence about joining his course to sign up and go for it!

Oh, and check out my version of Getting to Blinky: (note that I didn't care about how bad my battery holder outline looked, nor did I size the pads and spacing exactly right, and I didn't follow the directions and move the component identifiers -- I just wanted to see the board!)



I promise to do better on my new two projects -- a new stepper board based on the ST L6470, and OnSLaughT, which is the new name I have given to my Open Source Laser Tag project.

Wednesday, November 13, 2013

More SmartJars work...

I haven't been putting out new designs for the laser tag project lately, because I've been obsessed with getting the SmartJars insert to be financially feasible.  I finally have a part that I think makes sense, but we'll just have to see if anyone decides to pick up a set.  I went through several iterations of the design to get a part that wastes less material, yet feels sturdy enough to use.

The open source hardware I'm really excited about is my SmartJars carousel, because it's a perfect opportunity to re-acquaint myself with OpenSCAD.  I used to use this amazing software a few years ago to make things parametrically.  This awesome software package allows you to write code that translates into 2D and 3D objects.  I only use it for things that I want to produce on the laser cutter, so this means 2D stuff.

Before OpenSCAD, I would create a 3D model in Alibre Design, and then create a drawing.  Then I would export this drawing to DXF and import it into CorelDraw.  An alternative way to design parts is directly in CorelDraw itself, but this can be painful for all but the simplest projects.  My 56 state quarter frame was done entirely in CorelDraw, but since it was just a bunch of circles, it wasn't a big deal.

The SmartJars carousel is the perfect application for OpenSCAD.  Once complete, you will be able to specify how many SmartJars on a panel (rows and columns), and how many panels in the carousel.  With this information, OpenSCAD will allow you to output DXFs for the panel and top and bottom carouself pieces.  Each SmartJar panel will interlock and screw into the top and bottom panels as well!  Check it out (I know that the holes aren't centered yet...)


Once I get this done and make the carousel, I have a really cool v2 already in mind.  :)

Saturday, November 9, 2013

Worked on my SmartJars accessory design today

There's this awesome little Kickstarter project I backed that just got funded recently.  It's called SmartJars, and I saw them for the first time at MakerFaire this year.  The product is a nifty translucent jar that has a holder that snaps into ordinary pegboard, like this:



As you can see in the photo above, I've used the samples they sent me to start organizing the boys' Legos.  It is pretty awesome for this, and I actually plan to make a spinning SmartJar Tower soon.  This would allow them to have a ton of Legos on their table and hopefully keep them more organized than when we just throw them into large bins (this drives me insane, by the way).  I'll likely make the tower out of hardboard or baltic birch plywood, because ordinary pegboard from Home Depot is just warped pieces of crap.

The one thing I had an issue with was the size -- small Legos aren't worth putting into one SmartJar because they take up so little space.  I could group 1x1 Legos into the same SmartJar, but then I'd have to sift through them, which defeats the point.

I spent a lot of time iterating over my SmartJar accessory, which nicely partitions it into multiple sections.  I have three designs -- 2, 3, and 4 compartment versions.  Here's what the four-compartment model looks like:






It's a very nice looking piece.  I made it on my Replicator 2 out of PLA.  The great thing about using MakerBot's PLA is that it is food-grade, so people could use this for separating things like spices that aren't a powder (like peppercorns).

Anyhow, check out what it looks like in a SmartJar, and separating Legos, which was the original intent of the design:



And no spilling!


I'd like to put these up on etsy, since some SmartJars customers might want a few.  The problem is that they are really expensive to make.  I'm not sure if anyone is willing to fork out $5.00 to get four compartments out of a $2.50 SmartJar.  If they were popular enough, I would start my own Kickstarter project and make my own mold, but I really don't have time for that.

Friday, November 8, 2013

My "live" blog about getting Galago up and running

My goal tonight it to get the Galago up and running with the Logiblock IDE.  I expect it to be a little rough around the edges, as development isn't complete, but there's only one way to find out!  I'm going to approach this post like a "live blog".  Obviously, this isn't a live stream, nor will I timestamp everything... instead I'm just going to enter everything I do, along with any errors or results that I observe.  At the end of the post, hopefully I'll be able to see blinking LEDs!

First, here's a pic of the Galago + ledboard:


  • Went to https://github.com/OutbreakInc/Galago/wiki/Getting-started-guide
  • Downloaded node-webkit for win32
  • Just in case, I right-clicked on the zip -> selected Properies -> clicked Unblock so that the included EXE and DLLs would also be unblocked by Windows.
  • Extracted to d:\galago\node-webkit
  • Downloaded the Logiblock IDE launcher and left in my downloads folder
  • Downloaded node.js and installed it
  • Downloaded the Logiblock platform
  • Extracted the files with 7-zip to d:\galago\logiblock-platform
  • Downloaded the Galago USB drivers
  • Extracted to d:\galago\usbdrivers
  • NOTE: right-clicking Galago.inf and selecting "Install" does not work on Windows 7 x64.  You have to run installer_x64.exe instead (or so I think... haven't tested it yet!)
  • opened command prompt
  • mkdir d:\galago\projects\test
  • cd d:\galago\projects\test
  • node d:\galago\logiblock-platform\bin\sdk.js --init
  • Sure enough, just like in Kuy's video it downloaded a bunch of stuff and I ended up with this screen:


  •   I think it's time to connect the board!  Plugged it in, and... didn't work.

  • So I went to the Windows Device Manager and installed it there -- just right click on Galago, select Update Driver, then point Windows to the folder.  In my case, I just specified d:\galago since it will search subfolders by default.
  • Success!  Now Galago is recognized by my OS.
  • The wiki then says "to build and then download firmware to a connected Galago, pass the --install argument".  I found it strange that it didn't say which project to install, but ok.
  • That didn't work, it said "Could not open module JSON file".  I assume I was supposed to pass the project path?
  • Ah HA!  Ok, yes, the correct command for my project "test" was node ..\logiblock-platform\bin\sdk.js --install test
  • Oh, actually, I just realized that I was supposed to send the command from the project folder itself!  My bad.
  • Ok, so I didn't know what to do next.  I forgot to pass the --debug switch, and ended up with a blank screen.  I typed ctrl-z and enter to try to exit, but it didn't bring me back to the command prompt.  Gonna try again now with a new command prompt... no love, didn't work.  Here's my screen:
  •  For some reason, I'm not getting a (gdb) prompt at all.  I checked the project folder that was generated with the --init switch, and the main.cpp looks legit to me.
Well, that's it for now!  I feel like I'm pretty close to getting this board running, but I'll have to ask for a little help first.