All posts by nouyang

How to design pcbs to fit CAD models (not solved well)

How to fit design pcbs to fit CAD models, specifically how to interchange between eagle and solidworks in 2d (copy pasting from my email b/c I’m too lazy to reformat):

Me: if I want to make a board in eagle which fits inside a shape that I have a solidworks model of (I only care about 2d for now). It’s pretty straightforward, so I can do the oldskool from x1 to x2 thing, but what if it were more complicated? Is the only way to do this export an image in solidworks and make a library part of it, or use some import_bmp script and trace over it in eagle, or something crazy? I guess the opposite is easier, show only the board, export image, import into solidworks, and trace it… What if I cared about 3d? Is eagle just have zero support for this?

Charles Guan:
Also, if you want to make a board of a certain shape in Eagle, it’s a terrible pain. I was in fact just messing with this tool yesterday:
http://www.micromagicsystems.com/#/dxf-converter/4523812840
What I did was make a solid model of the plan of the board (sketch > extrude), then laid it out in a DXF drawing as if I were waterjetting it. If you just export a sketch as a DXF you have to exclude things like dimensions. The tool just imports every DXF entity into the .brd file on the Dimension layer.
Example board outline: http://etotheipiplusone.net/pics/moter/nicesensor3.png

If your board has internal slotting and stuff it will import that too.

John David Cranor:
cross platform one: http://fab.cba.mit.edu/classes/MIT/863.09/people/cranor/How_to_Make_%28Almost%29_Anything/David_Cranor/Entries/2009/11/16_Week_9__Output_Devices_files/DXF2SCR.C

In 3d, I have no idea, but check out this post:
http://sketchupdate.blogspot.com/2011/09/visualizing-circuit-boards-with.html
If only Sketchup were parametric…

You can poke the eagle file on github (https://github.com/nouyang/pov-yoyo > eagle-board > .brd) and see that I simply drew a rectangle starting at the origin and then set the x2 and y2 coordinates according to the 2d solidworks measurements. For my prototype, I didn’t even end up using that board outline — I sheared off the excess copperclad and sanded* the pcb where my shearing was file until the pcb fit inside, and then used rolled up masking tape to keep it in ‘cos I sanding failed past pressfit tolerances.

* I was using FR1, not FR4, so sanding was fine.
FR1 versus FR4 copperclad:
The copper-clad we use in MAS.863 is FR1 Phenolic Paper, instead of the standard FR4 Epoxy Glass which is what you’ll probably find on ebay if you search “pcb copperclad”. Tiny particles of glass in the air make your lungs sad and result in increased cancer risk over time, so if you’re milling boards or sanding them a lot you want to go with FR1. There are disadvantages which make FR4 preferred for Real Boards which are fine for DIY boards — fr4 has less heat tolerance, delaminates easier, and cracks more easily — see http://www.electronicspoint.com/paper-phenolic-pcb-t136758.html).
(For more info, see http://en.wikipedia.org/wiki/Printed_circuit_board;
for our fr4 supplier, see http://academy.cba.mit.edu/classes/electronics_production/index.html)

=====
Yes, I’m splitting my giant!update for today into 3 posts.
=====
(p.s. if you don’t know what eagle is, it’s free pcb layout software,  older version layout tutorial:  http://www.sparkfun.com/tutorials/109
schematic tutorial: http://www.sparkfun.com/tutorials/108
more resources (including eagle libraries) here: http://academy.cba.mit.edu/tutorials/eagle/eagle_resources.html,
and the list of parts for fab.lbr: http://fab.cba.mit.edu/about/fab/inv.html)

Thanks to Bayley Wang for being the first to show me how to use Eagle.

PoV Yoyo, charlieplex+pov (attiny45, 6 LEDs/3 pins) research

[edit, 6 dec 2011, see update for semi-working-ness: http://www.orangenarwhals.com/?p=161]

board layout

mmm, fab’d a terribly board together for persistence of vision yoyo so now I can start on code.

charlieplex and basic hello world rgb led, c, attiny44 and 45 respectively

C cheat sheet

eagle brd and sch on github
charlieplexing with arduino libraries
hello world
olopede code (not charlieplexed)
https://raw.github.com/zbanks/muffinc/master/code/upov/main.c
tom’s nanopov code (charlieplexed, in assembly)
ladyada code
gui gode, attin2313, has gui
assembly: avr instruction sets
led documentation
mmm instructables (attiny85, charlieplexing)
my own notes on make commands
==
real time clocks (for hat alarm clock)

more pov yoyo cost research

scale of 50 yoyos. project will be working on over the next month by dan fourie, laura shumaker, and I as a for-fun project spawned out of an idea my for-grades 2.008 team passed over.

functional parameters:
yoyo with integrated persistence-of-vision display

design parameters:
as of right now, for each side:

  • 5 LED display, similar to (josh gordonson and zach banks, fellow mit students) earlier work: 
http://olopede.com/media/img/micropov-hand.JPG
  • Goals: user-friendly and mod-friendly
  • Two buttons, high enough that can be accessed by pressing down on the clear thermoformed plastic cover over the circuitboard (similar to plastic water bottle in feel)
    • on/off power button(decided against the centrifugal switch designed by paulina mustafa, another classsmate, for their iron man arc reactor yoyo, because gives user option to operate pov-display without spinning the yoyo for a more stable display)
    • “change text displayed” button, and you can change the display by holding it up to your monitor ala http://fab.cba.mit.edu/classes/4.140/people/robert.hemsley/week8.html. This method means the user doesn’t need to have special cables to change the displayed text, and we don’t need a complicated / non-intuitive button interface.
    • http://tomscircuits.blogspot.com/2009/04/micro-pov.html
      http://parts.digikey.com/1/parts/389604-8-pin-test-clip-alloy-soic-15-923650-08.html 8pin: $14, 14pin: $17
      • if we order pcbs, can have holes for people to stick FTDI or ISP headers in, so people don’t need to solder little wires straight to the microcontroller if they want to edit or update the firmware on the ucontroller (or make a clamp breadboard) or buy one of the clamp programmers 
      • can have another mode (hold down button longer?) to change the flicker rate, since we’ll be using internal microcontroller clock which is RC and due to manufacturing variability only accurate to +- 10%
      • discarded option: right-angle button which sticks out side of yoyo. more complicated injection molds and I was worried if it’d be structural enough, since solder joints would be taking the strain. Seemed most likely to fail after repeated use.
  • PCB should snap fit in, so people can mill their own pcb’s and swap out the pcb if wanted
  • Rectangular PCB should fit, so it’s easier to panelize and easier for people to make their own board (can etch and shear off one side instead of having to have a mill and mill a circular board, although circular boards look cool .___.)
  • Ideally PCB is single-sided
  • run off a 3v button cell and contain a spare so people can go longer without ordering their own.
    • pcb serves as cell-holder, batteries should snap fit in to further simplify mechanical design
    • TODO not sure how batteries will be electrically connected to the board
  • for changing the battery / updating the firmware, top half of each side will be removable via a notch on the side
  • assembly: teach a microcontroller series and have people assemble two and keep one?

–maybe have a fourth state changing the flicker rate, in case a specific microcontroller’s clock is off (on/off/text programming/flickr rate programming)

cost estimate: 
$4.30 for two attiny85’s off of digikey, + shipping. || $2.96 for each attiny88 ($6).
cheap power-hungry LED, well.

Circuit: Shane’s interior-routed circuitboard

(http://scolton.blogspot.com/2011/10/strobe-attack.html) cost ~$50 + shipping for 12 of them off of myropcb. Ladyada has a cost calculator for multiple suppliers and comments for each supplier: http://www.ladyada.net/library/pcb/costcalc.html
That’s like $12 for each yoyo.

So uh… Maybe instead I will sink $80 into buying my own 1/64” and 1/32” spindles for the modela (each good for ~50 boards).
$2 per yoyo
ebay: $25 for 3x 9” by 12” FR4 board. Est.: our boards max 2” diam, so 1.5” square is 6×8 = 48 boards. So maybe $50 for 96 boards, or about
$1 copperclad per yoyo

Buttons:
75c ea @ 100 off of digikey. http://search.digikey.com/us/en/products/B3SN-3112P/SW262CT-ND/60835 (need 200). or ebay, 100 for $7 incl shipping. $14 / 50 = 30c per yoyo. but late shipping…! may be too late for the semester
$3 per yoyo.


phototransistor: 28c each @ 100.
$1.20 per yoyo.


10k resistor, 50kohm, 5x zero ohm, 4x 500 ohm, 1uF cap.
14c each @ 100, cap http://search.digikey.com/us/en/products/C3216X7R1H105K/445-1423-1-ND/569089
0.017 @ 100, 10k, 50k http://search.digikey.com/us/en/products/RC1206FR-0710KL/311-10.0KFRCT-ND/731430 http://search.digikey.com/us/en/products/RC1206FR-0749K9L/311-49.9KFRCT-ND/731890
0.01292 @ 250, total 400 needed, 500ohm http://search.digikey.com/us/en/products/RC1206FR-07499RL/311-499FRCT-ND/731891
total 500 needed
0.00676 @ 500, total 500 needed, zero ohm
(this is if pov circuit does NOT need any resistors etc. ala , these are all for voxel light-programming)  http://fab.cba.mit.edu/classes/4.140/people/robert.hemsley/week8.html
total = .14*2 + 0.017*6 + 0.013*4 + 0.007*5 = 0.469
About 50c per yoyo. these are all 1206 packaging!

CR927, 4 batteries each, 200 total: $22 http://www.ebay.com/itm/200-CR927-DL927-LM927-ECR927-KCR927-927-Cell-Battery-E2-/180756330972?pt=US_Batteries&hash=item2a15eab9dc#ht_2063wt_1163, 30 mAh, used in blinkies
44c ea. yoyo
(alternative: rechargeable ones, $1.44 ea 55 mAh TINY 6.8mm diam http://octopart.com/ms621fe-fl11e-seiko-8119587, with solder tabs: $1.29 ea 48mAh 12 mm diam http://octopart.com/br1225-1vc-panasonic-155413, $1.71 550mAh 23 mm diam http://octopart.com/cr-2354%2Fgun-panasonic-13183344
octopart search: http://octopart.com/partsearch/#search/requestData&q=lithium+battery&rangedfilters%5Boutput_voltage%5D%5Bmin%5D=1.5&rangedfilters%5Boutput_voltage%5D%5Bmax%5D=4.9945883802956885&rangedfilters%5Bavg_price%5D%5Bmin%5D=0.24250000000000002&rangedfilters%5Bavg_price%5D%5Bmax%5D=1.8412916540799584&start=10)

accelerometers 0.67 ea @ 100, http://search.digikey.com/us/en/products/MMA7660FCT/MMA7660FCT-ND/2186165, as used by

http://rucalgary.hackhut.com/2011/04/26/upov-with-better-firmware-pics-video-and-source/
Indeed mill-able on the modela — http://www.freescale.com/files/sensors/doc/data_sheet/MMA7660FC.pdf 0.5mm gap, 0.3mm pad — DFN package
25 mil pins (15.6 mil gap and 10 mil pad/trace) — for modella, can achieve. aka 0.398 mm gap / 0.254 mm pad

$1.40 per yoyo

unless I figure out how to make accelerometers — see http://www.dimensionengineering.com/accelerometers.htm, and the borked link is J. Doscher, Innovations in Acceleration Sensing Using Surface Micromachining http://www.analog.com/en/mems-sensors/inertial-sensors/adxl202/products/technical-articles/CU_ta_Innovations_in_Acceleration_Sensing/resources/fca.html
— I’ll just pre-program the flickr rate (and make it adjustable via the light-serial-programming protocol?)

total: $15 per yoyo + some digikey shipping costs, so close to $17 each if we count the aluminum molds and injection molding / thermoforming raw mats as free (due to 2.008). and of course free labor XD

=====
Previous research:
LEDs
If we use those super-efficient LEDs, they are 30c each if we buy 400 (50 yoyos * 8 = 400 LEDs).
(http://www.newark.com/jsp/search/productdetail.jsp?SKU=38K3409&CMP=AFC-OP&CMP=AFC-OP via http://octopart.com/partsearch/#search/requestData&q=Kingbright%20KPTD-3216SURC)
x8 = $3 (if we include shipping)
Total = $118 + $10 shipping (so upward bound of $130)
So, about $2.60 per yoyo

3V Batteries — batteries are somewhere around $15 / 100 on ebay w/ free shipping, so $0.30 per yoyo)
 if we want them (I don’t think we do, we should design this into our mold or PCB) holders would be $1.50 each http://octopart.com/partsearch/#search/requestData&q=cr2032

Microcontroller ~$1.50 each http://octopart.com/partsearch/#search/requestData&q=attiny25, maybe $10 for shipping, aka $1.70 per yoyo

Here is how the “spin-activation” would work:
http://cdn.makezine.com/make/2010/06/WP105LEDYo-Yo.pdf

So, at 50 yoyo’s, we’re looking at $6 each which is over our budget. However, I’m confident if we look a bit harder we can get the prices down to $5 each.

=====

Timeline:

Thursday: [everyone] finish the CAD for the molds
Friday: [nancy] check the dims / tolerances with Pat and Dave
Then CAM over the weekend Saturday, say meet for dinner on putz @ 5pm and then CAM (putzgiving is Sunday). Order electrical parts.
Hopefully mill / turn the molds over Mon – Wed before thanksgiving.
Finish electrical design -> gerber and programming over thanksgiving break and order pcbs if ordering them. by 26th
And injection mold / thermoform the week after (done by Friday December 2nd).
Assembly done by Dec 9th.

=====
PoV no accelerometer notes:
I got nanopov example working this weekend — no accelerometer indeed means there’s an optimum speed the display wants to be waved at. wave it too fast and the image gets stretched out, too slow and the whole image isn’t displayed or it’s super-squished.

Oh, Tom went over this in his blog post:

One downside of this design is that there is no synchronisation between movement of the display and the display output. So if e.g. you wave it left-right-left all output is mirror-inverted half the time. Also, there is no stable, repeating image as you would get from a constantly rotating POV.