mirror of
git://projects.qi-hardware.com/ben-counterweight.git
synced 2024-12-26 18:57:43 +02:00
Ben Counterweight, Design of a counterweight to keep the Ben from falling over.
http://projects.qi-hardware.com/index.php/p/ben-counterweight/
c853a09d5d
- cvr.py (main): moved previous main code to a function - cvr.py: generate cover repeatedly and distribute it on the page |
||
---|---|---|
cvr.py | ||
cw.py | ||
doit | ||
README | ||
shape.py |
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.