#qi-hardware IRC log for Wednesday, 2012-05-23

wolfspraulwpwrak: did someone else already update the m1 sheet order in schhist?00:40
wolfspraulI'm just going through to update to what you wrote but it seems we have that already :-)00:40
wolfspraulbut strange, in the web view it's different somehow. I will rebuild the history00:42
wpwrakyeah. maybe it just wasn't built with the right order yet.00:42
wolfspraulrebuilding now00:43
wpwrakrunning a local build too, to compare00:55
cladamw(variable's value undefined) wpwrak if shows up a value is undefined when i used variable to set, but i'm very sure those variables defined in other frame, does this mean a variable in current frame must to referred to its parent frame ?01:12
wpwrakcladamw: variables are visible in the frame in which they are defined and in all the child frames. they are not visible in frames that are parents of the frame in which the variables are defined.01:30
cladamwwpwrak, can i imagine as they child (visible) are local variables for child frame, invisible one are global variables to related parents of frames ?01:34
wpwrakwhat i mean is that a variable defined in a frame can be used in that frame and in all child frames. it doesn't exist in frames that are parents of the frame in which it is defined.01:35
wpwrakhowever, those parents may define variables of the same name. but they would be distinct items.01:35
wpwrakyou could call a variable "global" if it is defined in the root frame. however, that's no different from how all other variables work.01:37
wpwrakwolfspraul: 41:20 minutes later ... there's indeed something wrong with the order :-(01:38
wpwrakdigging ....01:38
cladamwwpwrak, interesting ... now i just felt that if a vector C  (in B frame) pointed to A frame, if I defined (X, Y) for C, and there's X includes variables in A, then it's okay. If I let vector pointed to C, then shows up X's value is undefined. btw, I need to practice more. :-) 01:45
wpwrakvectors can't cross frames01:48
rohwpwrak: you are developing your own cad now?01:49
cladamwyeah ... i meant when i set (X, Y) for a vector. :-)01:49
wpwrakroh: just the footprint editor, fped01:49
Action: roh thinks the world needs better foss cam first ;)01:49
rohwpwrak: hrhr.. i see01:49
wpwrakroh: but you can use it as CAD as well. for 2D, it's actually pretty good if you don't need overly fancy things. (not that it would be hard to add more features, but i like to keep it simple)01:50
wpwrakroh: i'm even experimenting with 2.5D, but i'm less pleased with the results there01:51
rohwpwrak: check out 'cambam'01:51
rohthere is a version which runs on linux now too. its in .net, so mono then01:52
cladamwwpwrak, btw, playing your Fped needs strong Mathematics on: geometry, algebra; and hierarchical conceipts.01:53
wpwrakcladamw: see, those long hours at school were good for something ;-)))01:53
wpwrakroh: is it open source ?01:54
rohwpwrak: sadly not.01:54
wpwrakroh: sigh01:54
rohwpwrak: the functions heekscad used via heekscam in libkurve and so on are foss01:55
rohalso stuff like the adaptive roughing algos etc01:55
rohso.. the code is there in principle.. but nobody made a reasonable useable app out of it01:55
wpwrakroh: meanwhile, cameo (that's my CAM data conditioning system) can now do polygons inside polygons correctly. i'm using CGAL for the tricky offsetting operation.01:56
rohi would really like to have somthing which i can use to make gcode from dxf01:56
rohdefining how the different elements should be used01:57
wpwrakcladamw: you should normally not need a log of algebra. but geometry and hierarchy, definitely yes. the main difficulty is in breaking down the reference design in a way that makes sense. the reference drawings have their own logic, but it's never explicitly stated. so you have to first solve that puzzle. after that, making fped produce it is relatively easy.01:58
cladamwwpwrak, the 'Variables' section i think you are too busy to introduce it in details -> http://people.openmoko.org/werner/fped/gui.html01:58
wpwrakroh: that i have is something that takes gerber/gnuplot and produces gnuplot (and i have a gnuplot to rml-1 converter. shouldn't be too hard to write a gnuplot to g-code converter as well)01:59
wpwrakcladamw: yeah, the manual still needs work :) right now, it's more a teaser ...02:00
rohwpwrak: well.. i didnt want to go into that low-level you seem to use that much.02:00
cladamwwpwrak, yeah ... no problems, i like very much on this tool: easy to figure background knowledges from school and how they( math ) applies in this tool. :-)02:00
wpwrakroh: still lacking a nice parametric 3D cad :)02:00
cladamwthe problems for me now is that I need to get used to each icons and relationships in GUI, etc ...02:01
rohi usually design in qcad and then have different steps to test the design (laser in plywood, iterate till fit) and generate gcode from the result of that02:01
rohwpwrak: autocad *veg*02:01
rohpropably also rhino, solidworks and whattheyareallnamed02:01
wpwrakroh: my 2.5D is basically a set of layers with Z information. i hacked fped to allow vectors to cross frame boundaries, so one can set up the basic geometry in the root frame and then build on that. but it's not very pretty.02:02
wpwrakroh: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/bacon/case/case.fpd02:02
rohwpwrak: doesnt help me at all. i need stuff i can work with visually.02:03
wpwrakcladamw: (case.fpd is where fped shows its full power ;-)02:03
wpwrakroh: the 2.5D stuff is semi-visual. the fped gui can visualize it, but you can't edit everything there at the moment (because of the hacked vectors)02:04
rohwpwrak: you know that basically all grown up cad tools do constraint handling as well, right?02:04
rohwhich in the end is nothing but parametric working02:04
wpwrakroh: not more than four or five wars at a time ;-)02:04
rohhehe02:05
rohi still hope somebody will add cam features to librecad at some point (what was qcad once)02:05
cladamwwpwrak, what's bacon ? 02:05
cladamwwpwrak, okay, add its case to my full example. :-)02:06
wpwrakcladamw: (get used to icons, etc.) mastering fped is mainly a questions of developing a workflow. like with most other tools. once you made a few footprints, you'll find it easy to make more.02:06
wpwrak(bacon) a case design for a small battery-powered device02:07
rohWe found it out when an Ukrainian hacker sent a message to our mailing list. His English was very poor and we couldn't figure out what he meant until he replied with a code snippet in C.02:11
rohwonderful snippet02:11
wpwrakcladamw: this is what it looks like (with an unpopulated pcb inside, and the bottom side not yet finished): http://downloads.qi-hardware.com/people/werner/tmp/bacon-top.jpg02:20
wpwrakhttp://downloads.qi-hardware.com/people/werner/tmp/bacon-bot.jpg02:20
wpwrakwolfspraul: seems that the problem is that i forgot to put FPGA_ before each of the BANKn in SCHHIST_ORDER. rerunning ...02:23
cladamwwpwrak, tks. :)02:26
wpwrakroh: the role of my "low-level stuff" varies. i the case of 2D, it's mainly machine setup and toolpath generation. the actual design happens in fped or kicad and is reasonably friendly. e.g., this is an fped-made 2D design: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/m1/case/case.fpd02:28
wpwrakroh: for 2.5D, things turn considerably darker, though. for example, here you can see the whole pipeline for that plastic case: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/bacon/case/Makefile02:30
rohwpwrak: hm. well.. i guess my designs are simply some factors more complex then02:30
wpwrakthe actual toolpath generation and machine setup is pretty straightforward, though: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/bacon/case/cam.sh02:30
rohand my toolpathes have toolchanges in them nowadays.. so i usually have some ops only on parts of the file.02:31
wpwrakyeah, if you have complex curves, then fped and such reach their limits02:31
rohnot even that. but drilling cycles, pockets etc.02:31
rohstuff like 'my millhead looks like that, this is what i want to do, and thats how the object looks like to do it on. ah.. and $foo is your safe-height02:32
wpwraki have toolchanges as well. for pcbs, i generate a drill and a mill path. (could be multiple drills, but i try to avoid that)02:32
wpwrakmy mills are all cylindrical :)02:33
rohheh. well.. i have only used the ballmills once now, but they make nice watelines possible02:33
roheh waterline02:33
wpwrakwhat's a waterline ?02:34
rohthink of you want to mill a riverbed02:35
rohand now push everything down below the waterline and slowly let it come up02:35
wpwraknon-cylindrical mills could be interesting for undercuts (without rotating the workpiece)02:36
wpwrakah, you mean that you get smoother "steps"02:36
rohone can remove material with cylindric ones to save time, but in the end one takes a ball and does zigzag or waterline over the surface to remove material02:36
cladamwwpwrak, http://dpaste.com/751367/  I'll add those texts into http://projects.qi-hardware.com/index.php/p/kicad-libs/source/tree/master/modules/INFO02:51
cladamwwpwrak, is it okay to you ? i see a "F" is to define name for Footprint name. 02:51
wpwraklooks good, yes02:56
wpwrakwe can later add these things to BOOKSHELF as well, and link them with the N: tag02:56
cladamwokay, i see.02:57
qi-bot[commit] Adam Wang: INFO: added tag F: mdip (master) http://qi-hw.com/p/kicad-libs/d18ba2603:00
qi-bot[commit] Werner Almesberger: schhist/schhist2web: correct handling of deferred columns (master) http://qi-hw.com/p/eda-tools/78bcb8d04:53
qi-bot[commit] Adam Wang: mdip.fpd: added. (master) http://qi-hw.com/p/kicad-libs/ba2a95b06:48
cladamwwpwrak, just finished my first module by your Fped. :) Not just copy-and-paste art, from zero text to gradually added instances and objects. So pls kindly help to comment it. Meanwhile still learning your some useful 'table' and other magic math.  06:54
cladamwwpwrak, this one I didn't add any 'measurements' as it's a 'generic' MDIP package for a 'side' = 2 ... 606:57
wpwrak(build from scratch) very good ! let's see how it works ...07:41
wpwrakmeaurements are a bit tricky. you'll notice that fped doesn't always let you pick the things you want. so this takes a bit of experimenting.07:42
wpwraklooks pretty good. it's nicely structured, too07:45
wpwrakwolfspraul: this should do the trick: SCHHIST_ORDER=m1:POWER:FPGA_Dec:FPGA_BANK0:FPGA_BANK1:FPGA_BANK2:FPGA_BANK3:EXPANSION_RESET:DRAM:NOR_FLASH:AUDIO:DVI-I:VIDEO_IN:MISC_CONTROL:ETHERNET:USB_A-B:USB_C-D:USB_E-F:MISC07:46
wpwrakwolfspraul: you'll also want to pull the latest eda-tools. there were a few bugs in an earlier change to populate the table, which messed up the columns. if you rebuild, you can run from the cache.07:47
wpwrakcladamw: one slight improvement would be to assign  pitch*(i-(side-1)/2)  to a variable (e.g., x) in the "pins" frame, and then use x in the vector. instead of doing all the calculation there.07:51
cladamwwpwrak, tks ! which x ? Doesn't I use math expression ? :-)07:54
wpwrakyou could add a variable "x" in frame "pins" and assign the value  pitch*(i-(side-1)/2)  to it07:55
wpwrakthen the vector that's currently  (pitch*(i-(side-1)/2), 0mm)  becomes simply  (x, 0mm)07:56
wpwrakoh, and i would specify the pad sizes in mil, since those components have an imperial heritage07:56
wpwrakwhen you add measurements, you'll see that your land pattern is too narrow07:58
wpwrakyou can change the unit fped uses when displaying dimensions by clicking on the little white box in the lower right corner08:00
wpwrak"mm" and "mil" so what you'd expect. "auto" makes fped look for the simplest value for each dimension, and then pick the corresponding unit08:01
cladamwnice remind, i didn't notice there's option to change unit, good. :)08:02
wpwrake.g., after changing Px and Py to mil, measurements of the pad sizes will yield distances in mil when set to "auto", since, for example, 360 mil is simpler (less non-zero digits) than 9.144 mm08:02
wpwrakhere's a version with a few measurements: http://downloads.qi-hardware.com/people/werner/tmp/mdip-meas.fpd08:04
wpwrakwhen adding measurements, you normally have to specify the offset from the line between the endpoints (or one endpoint some projection of the other, depending on what sort of measurement it is) and the line with arrows on which the value is displayed08:06
wpwrake.g., for the measurement of the distance between the outer pad edges (360 mil), i've set an offset of 5 mm08:08
wpwrakoffsets can also be negative08:08
cladamwnice ! so Fped can accept like 70.07874mil(1.78mm), but you usually let it be 70mil; and 59.84252mil(1.52mm) to be 60mil ?08:15
cladamwyeah ... my land pattern doesn't meet 10.54mm. :(08:16
cladamwokay, so measurements still can be done in one vertical side, but horizontal side can't. 08:18
wpwrak(horizontal) sure it can ;-) you just have to pick the right pair of points08:21
wpwrake.g., upper left corner of pad 1 to lower right corner of pad N/2+108:23
cladamwoah ? i was thought horizontal one can't since 'loop side'. Nice !08:24
wpwrak(70.078774mil) just following the specification in http://www.fairchildsemi.com/ds/6N/6N138.pdf08:25
wpwrakthere, the sizes in mil are nice round numbers08:25
cladamwyeah ... so i meant it's good to use 'round' or exact right 70.07874mil ?08:26
wpwrak(loop side) that's why the measurements have somewhat odd semantics. see http://projects.qi-hardware.com/index.php/p/fped/source/tree/master/README#L57008:27
wpwrakthe "right" value is 70 mil, not 70.07874 mil08:28
wpwrakyou get 70.07874 mil only if you take a design that is based on mil, use the value in mm (which has been translated from mil), and then calculate back to mil08:29
wpwrakif you can't find good points for taking a measurement, you can also add a vector just for that purpose. e.g., for measuring Py, the only points available are the lower right corner of pad 1 and the upper left corner of pad 2. if you don't like that, you can add, say a vector to -Px/2, -Py2 and then measure everything on the left side08:36
wpwrakyou can get even finer control over the measurements by editing the .fpd file: http://projects.qi-hardware.com/index.php/p/fped/source/tree/master/README#L61908:42
cladamwgood. i found my mistakes on calculation, width should be 355mil. :-)08:45
wpwrakand the outline may need a separate width parameter08:46
cladamwokay .... tks for pointing the measurements, need to practice more. :-O08:46
wpwrakyou'll have fun :)08:46
qi-bot[commit] Adam Wang: mdip.fpd: 1) set mil unit 2) added measurements 3) set width = 355 mil (master) http://qi-hw.com/p/kicad-libs/c1811e309:30
cladamwwpwrak, check out for latest. yeah ! lots fun in measurements. :-)09:31
cladamwwpwrak, but i still didn't add width parameter in 'outline' frame. :)  as go for other topic to learn. :-O09:33
cladamwwpwrak, btw, the unit setting is powerful then could quickly confirm dimensions with datasheet. i think this was a motive to develop Fped, bravo !09:38
wpwrakyeah, now it looks quite good09:55
wpwrak(confirm dimensions) thanks ;-) yes, making reviews easy is one of the main design goals.09:56
wpwrakanother one is to take care of repetitive tasks. things like iterating over all the pins or iterating over several package sizes.09:58
qi-bot[commit] Werner Almesberger: b2/subex.c (compose): use stralloc_n instead of open-coding its functionality (master) http://qi-hw.com/p/eda-tools/db279b721:43
qi-bot[commit] Werner Almesberger: b2/boom.c (usage): -Q wasn't mentioned; explain -q and -Q (master) http://qi-hw.com/p/eda-tools/7c8fc3021:43
qi-bot[commit] Werner Almesberger: b2/: add parsing of KiCad eeschema BOMs (option -b) (master) http://qi-hw.com/p/eda-tools/ddd22ba21:43
qi-bot[commit] Werner Almesberger: b2/bom.c (bom_parse_line): check that components reference are unique (master) http://qi-hw.com/p/eda-tools/9445f2c21:43
qi-bot[commit] Werner Almesberger: b2/util.c: new function unique_n for strings limited by length and not NUL (master) http://qi-hw.com/p/eda-tools/b9066c621:43
qi-bot[commit] Werner Almesberger: b2/subst.c (parse_var): use unique_n (master) http://qi-hw.com/p/eda-tools/a537cc521:43
qi-bot[commit] Werner Almesberger: b2/: add parsing of supplemental symbol information (option -X) (master) http://qi-hw.com/p/eda-tools/f22378921:43
qi-bot[commit] Werner Almesberger: b2/bom.h (struct bom): remove unused "next" pointer (master) http://qi-hw.com/p/eda-tools/4fb17f621:43
qi-bot[commit] Werner Almesberger: b2/: run variable substitution on BOM entries (untested) (master) http://qi-hw.com/p/eda-tools/ec0416321:43
qi-bot[commit] Werner Almesberger: b2/: add BOM dumping; dump processed BOM entries (master) http://qi-hw.com/p/eda-tools/66aea0721:43
wolfspraulwpwrak: good morning :-)23:09
wolfspraulschhist reran entirely with latest eda-tools, and I think it looks good now23:10
wolfspraulnice!23:10
wpwrakwhee ! victory ! :)23:31
--- Thu May 24 201200:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!