Category: Making things

  • Clock Part 3

    Clock Part 3

    I finally finished the outer case of my clock. Only 19 layers of 3mm acrylic stacked on top of each other.

    IMG_5445
    Laser cutting the rear panel and finger slot
    red perspex box with clock electronics showing, rear lid off
    Rear panel with finger slot and barrel jack holder
    rear panel of clock with wire going into the finger slot
    Barrel Jack inside the finger slot

    I built a finger slot into the back of the clock so it’s easier to carry, but also to house the barrel jack for mounting the clock flush to the wall, allowong me to hide the power cord in the wall (oneday)

    pile of acrylic sheets neetly lined up
    This is the pile of acrylic I had to cut out of the inside of the clock.

    That pile on the left was cut out to make the cavity in the case.

  • Clock Part 2

    Previously…
    A bit more progress on my clock. I installed the dirty pink gel filter to increase the contrast ratio of the 7 segment displays, and started cutting the final case out of red 101 acrylic. Lots of laminations.

    a digital clock showing the time of 11:22
    Clock

    side of digital clock showing laminations of the case and the inner electronics and wires
    Side of clock

     

  • Backup your Beaglebone Black

    Backup your Beaglebone Black

    Using a method I previously wrote about, it’s quite easy to backup your Beaglebone Black over the network.

    ssh root@bbb 'tar cf - / 2>/dev/null' | pv -cN tar \
       | bzip2 | pv -cN bzip2 > bbb-backup-tar.bz2
    

    It runs the bzip compression locally because presumably it will be faster than on the Beaglebone Black. I didn’t actually test that hypothesis though.
    pv gives nice little indicators:

        bzip2: 1.81MB 0:00:12 [ 995kB/s] [      <=>                               ]
          tar: 36.2MB 0:00:12 [3.84MB/s] [                             <=>        ]
    
  • Progress on my clock

    Progress on my clock

    I finally wired up the big LEDs and made an acrylic mounting board for all the parts. I laser cut holes in the board and tapped them with an M3 tap. That allowed me to mount the circuit boards directly to the mounting board. I used Dupont connectors to wire everything up which gives a very neat finish I think.photo of rear of clock mounting place showing various circuit boards, beaglebone black and wires connecting to the LED pins

  • LED Clock Project

    LED Clock Project

    For a long time I have wanted a bedside clock that would keep accurate time via some external mechanism, and would take care of daylight savings automatically. I eventually decided that the best approach would be to use a wifi enabled device and use the NTP protocol for keeping the time accurate.
    After wasting several months hacking away on an Olimex IMX 233 that never worked reliably, I decided to change platform to the Beaglebone Black (BBB).
    Along the way I realised there were a few other features I needed:

    • LEDs should dim with the ambient light so the clock doesn’t light up the whole bedroom
    • The display needs to be big enough for me to read from across the bedroom without my glasses on.
      To make them dimmable I decided to get a pair of
      I also needed a power supply that could give 12v for the LED drivers but 5v for the BBB. I found a nice little board on ebay for a few bucks that seems to do the trick. Its called the Benq 12v-5v-3.3v
      I hooked that up tonight so now I only need the one power supply to run the LEDs and the BBB.

  • 3D Printed Heated Towelrail Brackets

    3D Printed Heated Towelrail Brackets

    Our heated towel rail’s brackets broke from old ages recently. After investigating getting a new towel rail and finding out they were quite expensive, I decided to try and design and 3D print new brackets for it.
    The first cut of the design turned out to have too little space for the nuts. A second draft with a little more space and it worked perfectly.
    The top left of the above image shows the broken parts and the bottom center shows 2 of the 3d printed replacement parts.
    3D Printed bracket holding the heated towelrail

    Update 2016-03-26

    Someone emailed me mentioning that their “Posh” heated towel rail had the same problem. A bit of googling around revealed a link a Goldair Towel Rail Bracket and Strap kit that looks like it contains the same straps as mine. This might help others find the relevant parts. Goldair have an Australian site too but it makes no mention of the strap kits.

  • FreeCAD

    screenshot of FreeCAD showing a cylinder intersecting a cube and the Boolean operation window visible
    Cylinder intersecting a cube

    Hack A Day has a great article introducing FreeCAD.

    FreeCAD is a parametric 3D modeler. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. FreeCAD is open source (LGPL license) and completely modular, allowing for very advanced extension and customization.

    There are several great things about this.

    1. It’s free as in beer
    2. It’s free as in libre
    3. It’s available for Windows, Linux and Mac OS X
    4. It’s scriptable in python
    5. you can draw things using constructive solid geometry (CSG)
    6. you can create objects by extruding 2D drawings similarly to Solidworks

    If this article is of interest to you, see my other list of OpenSCAD alternatives, and my other posts about free CAD packages.

  • Programmatic CAD, OpenSCAD alternatives

    There are quite a few programatic CAD, OpenSCAD alternatives out there. I am collecting a list of them and providing links to them here. The requirements to be included in this list are:

    • Free and libre.
    • They are a programming language as opposed to a GUI.

    OpenSCAD: The most well known programmatic CAD program. Probably the original open source one that I am aware of.openscad screenshot
    CoffeeSCad: Solid CAD modeling in your browser, with a CoffeeScript based syntax (and lots more!)coffeescad screenshot showing code edit window and a rendered cube
    ImplicitCAD: Powerful, Open-Source, Programmatic CAD. Haskell and extopenscad.edit area and rendered object in ImplicitCad
    RapCAD: Rapid prototyping CAD IDE for RepRap and RepStrap 3D printing machines.code edit window of RapCAD with rendered line next to it
    OpenJSCAD: OpenSCAD + JavaScript = OpenJSCAD, edit locally or remote online, preview in browser direct via WebGL.
    screenshot of OpenJSCAD
    FABFabbers bills itself as “a new site for the 3d printing community”. It provides in browser OpenSCAD compilation and linking to github projects.FABFabbers screenshot
    Update: Atomic let me know about BRL-CAD, the free military-grade antecessor to all of these.
    BRL-CAD mged graphics window
    BRL-CAD mged command window
    Update 2: gzmask pointed out SchemeCad, a programmable 3D CAD tool that supports wireframe models and features animation. Users can program Scheme Cad by writing extensions in Scheme (a dialect of LISP). It’s available for Windows and Linux.
    screenshot of scheme-cad
    Update 3: CScheme is the integration of geometric kernels in a functional language.
    screenshot of cscheme website

    ;export the model
    (define (print-brep shape filename)
      (BRepTools_Write shape filename))
    ;translate an object
    (define (translate obj x y z)
      (let ((vec (make-object gp_Vec% x y z))
            (trsf (make-object gp_Trsf%)))
        (begin
          (send trsf SetTranslation vec)
          (send (make-object BRepBuilderAPI_Transform% obj trsf #t) Shape))))
    ;make a structure from two given object
    (define (structure obj1 obj2)
      (let ((compound (make-object TopoDS_Compound%))
            (builder (make-object BRep_Builder%)))
        (begin
          (send builder MakeCompound compound)
          (send builder Add compound obj1)
          (send builder Add compound obj2)
          compound)))
    ;make a structure from a list of object
    (define (composite lis)
      (if (list? lis)
        (cond
          ((= (length lis) 0) (error "empty list"))
          ((= (length lis) 1) (car lis))
          (else (make-compound (car lis) (composite (cdr lis)))))
        (error "Not a list")))
    ;build a torus
    (define (torus radius circle)
      (make-object BRepPrimApi_MakeTorus% radius circle))
    ;build a sphere
    (define (sphere radius)
        (make-object BRepPrimApi_MakeSphere% radius))
    ;calculate the torus dimension
    (define (radius z)
      (sqrt (- 1 (* z z))))
    ;make all torus objects
    (define (torus-on-sphere the-list)
      (composite
        (map
          (lambda (z) (translate (torus (radius z) 0.05) 0.0 0.0 z))
          the-list)))
    Final export operation
    ;export the model
    (print-brep
      (structure
        (sphere 0.3)
        (torus-on-sphere (list -0.93 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 +0.93)))
      "./torus.brep")

    and PLaSM: a functional language for computing with geometry.

    screenshot of plasm website

    DEF points1 = <<0,0,0>,<0,3,4>,<0,6,3>,<0,10,0>>;
    DEF points2 = <<3,0,2>,<2,2.5,5>,<3,6,5>,<4,8,2>>;
    DEF points3 = <<6,0,2>,<8,3,5>,<7,6,4.5>,<6,10,2.5>>;
    DEF points4 = <<10,0,0>,<11,3,4>,<11,6,3>,<10,9,0>>;
    DEF dom = intervals:1:12;
    MAP:(beziersurface:< points1 , points2 , points3 , points4 >):
    (dom * dom);

    Thanks to Kristoffer Josefsson for those two.
    Update 4: Parametric Parts allows consumers to create and print 3D parts through our web-based platform. Anyone can make an idea come to life, even without technical expertise or prior 3D experience. It apparently uses  CadQuery for its backend.
    CadQuery is an intuitive, easy-to-use python based language for building parametric 3D CAD models. CadQuery is for 3D CAD what jQuery is for javascript. Imagine selecting Faces of a 3d object the same way you select DOM objects with JQuery! Thanks to Monique for pointing them out.
    screenshot of parametricparts website
    Pierre left a comment to let me know about POV-Ray.  The Persistence of Vision Raytracer (POV-Ray) is a high-quality, Free Software tool for creating stunning three-dimensional graphics. The syntax looks very similar to OpenSCAD and C.

    #include "colors.inc"
    camera{
      location <4, 4, -10>
      look_at 0
      angle 36
    }
    light_source{ <500, 500, -1000> White }
    plane{ y, -1.5
      pigment{ checker Green White }
    }
    union{
      box{ -1, 1 }
      sphere{ 0, 1.375 }
      pigment{ Red }
    }

    screenshot of povray of sphere unioned with a cube
    Let me know if I’ve left any off the list?

  • Using magnets to keep dust out of the cupboard

    We recently bought an old kitchen cabinet that has a fly screen on one of the doors. I have found that it lets dust in over time, and when I go to use the glasses, they often have to be cleaned because they are dusty.

    kitchen cabinet with flyscreen in top panel of door
    Kitchen Cabinet with flyscreen in top panel of door

    I decided to make some sort of clear perspex screen to go behind the door. I noticed that iron nails were used to hold the fly screen in place and I had the idea to use magnets to hold it on.
    fly screen mesh with frame holding it into door, nail heads visible
    A bit of measuring, openscad and ebay later, I had everything I needed.
    rectangular perspex sheet with 14 6mm holes around the edge
    OpenSCAD design of the perspex sheet

    I cut the sheet out of perspex at the hacker space in Sydney. Then I glued the magnets in with super glue. That turned out a bit messy but as the magnets are not visible from the outside it doesn’t really matter.
    placing perspex sheet with magnets onto door
    perspex plate on kitchen cabinet door being held in place with magnets
    I am very happy with the result. It is invisible from the outside, and the magnets hold the perspex sheet on firmly enough that it won’t fall with the normal use of the cabinet door.