Ben Counterweight, Design of a counterweight to keep the Ben from falling over. http://projects.qi-hardware.com/index.php/p/ben-counterweight/
Go to file
Werner Almesberger c853a09d5d Print 16 covers on a page.
- cvr.py (main): moved previous main code to a function
- cvr.py: generate cover repeatedly and distribute it on the page
2010-08-13 22:30:13 -03:00
README Change wood size for 4th mold. Improved documentation. 2010-08-08 21:28:36 -03:00
cvr.py Print 16 covers on a page. 2010-08-13 22:30:13 -03:00
cw.py Move make_base from cw.py to new module shape.py, to allow sharing 2010-08-13 20:10:13 -03:00
doit Change wood size for 4th mold. Improved documentation. 2010-08-08 21:28:36 -03:00
shape.py Move make_base from cw.py to new module shape.py, to allow sharing 2010-08-13 20:10:13 -03:00

README

Counterweight
=============

This project defines a counterweight to prevent the Ben NanoNote from
falling over, and  describes the process of making a wooden mold for
casting the counterweight using a lead alloy commonly used for
soldering.


Problem statement
-----------------

The weight distribution of the Ben NanoNote makes the device unstable
and often fall over when the display is opened. This can be remedied by
adding a counterweight near the front of the bottom shell.

Experiments have shown that a torque of about 2.5 mNm is sufficient to
balance the device with the display fully opened. A feeling of solid
stability is reached around 6.5 mNm.

The counterweight defined in this project is made of plumbing solder, a
Pb67Sn33 alloy with a density of about 10.0 g/ccm. The counterweight
has a nominal mass of 17.9 g and a nominal torque of 7.3 mNm. Due to
mold compression (which one could compensate for) and process
tolerances, the mass achieved in DIY casting ranges from about 14.5 g
to 17 g. This mass is slightly increased by the addition of protective
painting.

In experiments, the torque produced by these counterweights proved to
be sufficient to give the user the feeling that the Ben is solidly
standing on its feet.


Mechanical stacking
-------------------

From the bottom to the top, we have the following elements:

- Ben case, bottom shell
- a few drops of glue or silicone, to hold the counterweight in place
- the counterweight, covered by protective paint
- a few drops of glue or silicone, to keep the cover sheet in place
- a cover sheet of thin hard plastic, e.g., the type of plastic film
  used to make transparencies
- isolating tape, applied to tall components of the Ben's main PCB
- the Ben's main PCB


Dangers and protection
----------------------

The counterweight contains lead, which is toxic and also conducts
electricity. While the health risk caused by handling the counterweight
is very low compared to other lead sources, it's still a good idea to
prevent accidental exposure. While there is normally an air gap between
the PCB and the counterweight, they may touch if the countereight is
improperly installed, if the PCB gets bent, or if the counterweight
comes loose for some reason. Electrical contact can cause the Ben to
malfunction and may even result in permanent damage.

The counterweight is covered by one or more layers of paint, to prevent
direct skin contact with the lead during handling. The paint may also
offer some amount of protection against electrical contact.

A layer of hard plastic is placed on top of the counterweight, to
isolate it from electrical contact. The plastic also resists being
punctured by pointy components or solder joints of the main PCB.

Finally, all elements on the main PCB that are unusually tall are taped
over, to further reduce the risk of them working their way into the
counterweight. Right now, the only component where problems are
considered likely is the buzzer.


Workflow
--------

This is the workflow for generating the CAD model and making a mold for
gravity casting with a Roland Modela MDX-15 CNC mill.

- analyze geometry, e.g., by viewing ben-bottom-inside-500um
- define CAD model in cw.py
- generate in HeeksCAD with "import cw" (requires HeeksCNC and
  HeeksPython)
- define Zig-Zag operation (*)
- generate Python script and run it (takes a while, about 10-20
  minutes for the Python script on my Q6600, plus 20-100 minutes for
  HeeksCAD to read the data back)
- save NC file, using the name specified in "doit" (see below)
- mount piece and determine geometry with millp
  (from http://svn.openmoko.org/developers/werner/cncmap)
- define conversion in "doit" script
- coordinate transform and conversion to Roland's RML-1 (**)
  ./doit >job
- send job with cncmap/spool

(*) In this case, the following parameters were used:

    - 32 mil Carbide End Mill
    - step over 0.2 mm (default)
    - step down 2 mm
    - start depth 0.5 mm
    - final depth 6.5 mm
    - rapid down to height 0.5 mm

    These parameters depend on the mill, the tool, and the material.
    Note that, in my setup, tool speed and the clearance height are
    set by the "doit" script, and HeeksCAD's settings have no effect.

    The CAD model uses only an approximation of machine coordinates.
    The final transformation and alignment is also made by "doit".

    Total machine time is about 7 hours for 2" pine, about 11 hours
    for 3". Zig-Zag is quite inefficient and repeats some paths many
    times. A better tool path could reduce machine time to about a
    third.

(**) HeeksCAD currently doesn't generate RML-1 output. I'm using a set
     of utilities that process toolpaths in the gnuplot format and
     generate RML-1 from that. Hence the detour.


Gravity casting
---------------

Gravity casting is an efficient process for producing small numbers of
counterweights. The mold is milled from a block of pinewood and has a
life expectancy of about 20-40 cycles.