#milkymist IRC log for Monday, 2011-09-05

adamw_roh, i caught one 'M' logo is in wrong direction (upside down) which cant be met. :(02:56
adamw_don't know how many. I'll give an over visual inspection for rest. ;-)02:57
adamw_i meant the top case. ;-)02:58
adamw_correct : the text of "MILKYMIST.ORG' is toward the front case, but wrong one is toward to video-in connector.03:03
wolfsprauladamw_: count how many there are, then we see03:04
wolfspraulno rush on this03:04
wolfspraulbut good catch!03:04
adamw_roh, good. Only that one is wrong, the remaining top cases are correct. ;-)04:11
qi-botThe build was successfull, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-openwrt.minimal-09052011-1241/11:36
scrts2verilog guys alive? :)12:40
larscask your question, maybe somebody will be able to answer it12:41
adamw_roh, hi you there?13:23
adamw_roh, i found the thickness of acrylic case is different also happened in press Btns:13:25
adamw_1) vga acrylic cases: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_vga_sides-1.png13:26
adamw_2) vga acrylic cases examples: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_vga_sides-2.png13:26
adamw_3) press btns: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_press_btn_compare.png13:27
adamw_roh: actually with item 1 and 2, not only vga acrylic sides case also include video-in, front/btn case, dmx connectors cases side, top and bottom sides too.13:29
adamw_results:13:29
adamw_1), now I realized that why your rc2 had have different weight which caused by different thicknesses.13:31
adamw_2) with 'four' combinations from both 'front' case and Btns:13:33
adamw_2-1), thinner front case & thinner BTNs, acceptable that the BTN can release very well.13:34
adamw_2-2), thinner front case & thicker BTNs, unacceptable, since I can feel the BTN cant release back after pressing btn.13:35
wolfsprauladamw_: nice pictures :-)13:35
adamw_2-3), thicker front case & thinner BTNs, unacceptable, same status 2-2)13:35
wolfspraulI think roh had a plan about this, there should be enough matching parts in the shipment, though it may take some time to find the matching ones13:35
wolfsprauland yes, you definitely need to check and only assemble parts/cases that actually work, especially the buttons13:36
adamw_2-4), thicker front case & thicker BTNs, definitely bad.13:36
wolfspraulso hopefully roh can give some feedback/guidance...13:36
adamw_so my plans now:13:36
adamw_1). keep only using thinner front case & BTNs firstly for first 30pcs ready m1 boards13:37
adamw_2). I found that I can accept that VGA & DMX acrylic sides to be thicker, since they are influenced each and impact front/rear sides13:39
adamw_3). firstly accumulate then later I should have more thicker rear/video-in side case, so I can see if use a thinner front side can still work with thinner BTNs. Becuase I already found that if I used a thicker rear sides, the feeling of pressing BTNs is also not good. so I put apart it firstly too.13:42
adamw_since here main rc3 boards are also not accumulate to 70pcs now, so we may see the case status later.13:43
adamw_wolfspraul, how do you think that my plans?13:43
wolfspraulhe13:45
wolfspraulwe need to be careful not to match in such a way that in the end we have a lot of parts that cannot be used for full cases13:45
adamw_btw, some sides case even cant feed into holes of top or bottom sides. I don't think that like let me to sorting those parts firstly. :(13:45
wolfspraulI think roh is fully aware of this, and it should work out to 80 sets in the end13:45
wolfspraulbut...13:46
adamw_yup..i also thinking about this.13:46
wolfspraulhe didn't do the matching13:46
adamw_but no good idea now. :(13:46
wolfspraulat one point he planned to do the matching and send 80 individually packed sets13:46
wolfspraulbut then I guess he didn't do that13:46
wolfspraulso I think don't worry, in the end things will fit13:46
wolfspraulI hope roh can give feedback13:46
adamw_okay13:46
wolfspraulfor now - just watch that any cases we assemble and ship out are good (matching)13:46
adamw_i was lucky that sent out two are all good thinner, thanks to my lucky hands. ;-)13:47
adamw_and I measured/scaled their weight is almost the same. ;-)13:48
adamw_0x35 - 1.926kg, 0x37 - 1.925kg13:49
adamw_with medium Fedex box.13:49
wolfsprauladamw_: btw, really nice pictures :-)13:54
wolfspraulI like them13:54
wolfspraulcan use for the news13:55
wolfspraulyou took with your microscope?13:55
adamw_oah..yes ...from microscope13:57
wolfspraulcool13:58
wolfspraulvery nice and helpful pictures13:58
wolfspraulthey illustrate the tolerance issues roh was working on in July very well13:58
adamw_clear layers on films and acrylic ones.13:59
adamw_mm..okay...hope i can get some methods/hints to 'match' those acrylic sides.14:00
adamw_if i all select thinner cases then i may really have a lot of parts cannot be used in the end. :)14:01
wolfspraulif you have time, you can do a full day of matching :-)14:01
wolfspraulmatch all 80 sets first14:01
wolfspraulbut maybe difficult to store parts14:01
wolfsprauldon't worry too much14:01
wolfspraulroh will reply soon, let's see what he says14:01
adamw_ok14:03
adamw_roh, hi later if you had have measurement in details before, let me know like how to match them by hints or else. thanks a lot. ;-)14:13
rohre14:51
rohhm. can you send pictures?14:51
rohyes. the thickness is different. you need to match them up.14:52
rohnothing i can do about it. its the tolerance of the acryllic (up to 20%14:52
rohbut it should all fit together... make sure you remove the laszt bit of proptective foil everywhere, also on the button inside disk.14:55
lekernelhe already send pictures14:56
lekernel 1) vga acrylic cases: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_vga_sides-1.png14:56
lekernel 2) vga acrylic cases examples: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_vga_sides-2.png14:56
lekernel 3) press btns: http://downloads.qi-hardware.com/people/adam/m1/pic/rc3_case_press_btn_compare.png14:57
rohyes. all within the spec14:57
wolfspraulroh: is there any system or hints adam can use when matching?15:06
wolfspraulhe's a bit worried that he will have some number of parts left at the end that cannot fit into full cases at all15:07
wolfspraulI told him you were fully aware of the tolerances already, and we all believe there will be 80 good sets in the end.15:07
rohwolfspraul: not really. i got the buttons with all the 'crap' (leftovers) in 3 big paper bags15:08
rohand the sheets in boxes. (back from lasering)15:08
rohyes there are some parts left.. but thats because i added a few spares in case something doesnt fit as it should15:09
wolfspraulok so adam's system is just trial and error?15:09
wolfsprauland then hope at the end he's not stuck with parts that cannot fit :-)15:09
rohgood question. i think i asked myself that (how to manage the matching) and then ignored it since i did diameter testing before shipping the glued buttons (nothing should be stuck or so) and was sure i sent all/enough fitting ones15:10
wolfspraulok, fair enough15:12
wolfspraulAdam was just worried, but he's onto the matching task now...15:13
wolfspraulalso he took those nice microscope shots :-)15:13
roh:)15:21
rohi did not yet get whats wrong with one of the top lids15:21
wpwrakhmm, a set of 100 mil header footprints next to the buttons would be so nice :)17:15
lekernelwpwrak, what for?18:03
wpwrakfor remote-controlling the M1 (for testing)18:06
Action: kristianpaul needs a remote milkymist lab18:55
wpwrakhmm, perhaps i could do all this via jtag. wiring up all the buttons would be messy ...18:58
kristianpaulso you plan emulate end-user interaction as well via jtag?19:16
wpwrakwell, i just need to do what's needed for power-cycling19:17
wpwraknot sure yet if jtag is suitable for that19:17
kristianpauldont think so19:17
kristianpauleven there are mechanical contraints i think19:18
wpwrakhuh ? how would mech constraints play into this ?19:19
kristianpauldunno exclty, just thinking in the DC wave form just before you plug the power cord19:20
lekernelyou want to trigger the boot?19:20
lekernelby simulating a press on the middle pushbutton?19:20
wpwrakyup19:21
kristianpaulah19:21
lekerneljtag is definitely suitable for that19:21
kristianpauli was thinking in other boot ;)19:22
wpwrakkristianpaul: controlling power is easy. i can do that now :) just electrically switching the buttons might get messy.19:22
lekernelthere are many solutions:19:22
kristianpaulyes  i understand now19:22
lekernel1) load soc bitstream from jtag (the system boots as soon as this one gets loaded)19:22
lekernel2) send commands to the FPGA to tell it to load the soc bitstream from its flash (you can simply copy the binary sequence of commands that the standby bitstream sends into the ICAP)19:23
lekernel3) add a feature to the standby bitstream to trigger boot with a user-defined JTAG command19:23
lekernel#1 doesn't test load of standby + soc bitstreams from flash19:24
lekernel#2 doesn't test load of standby bitstream from flash19:24
lekernel#3 tests everything19:24
lekernelbut #3 needs flashing a new standby bitstream...19:24
wpwraklekernel: hmm, i was thinking more of the boundary scan. set the button's i/o cell. but maybe one of these more direct methods is better. hmm.19:25
lekernelyeah, bscan should work too19:25
wpwraki don't want to get into customizing own bitstream yet. the prerequisites scare me :)19:25
lekernelbut I'm not sure if you can toggle a single pin using bscan, without interfering with the others19:26
lekernelif you mess up the SDRAM for example, nothing will work19:26
wpwrakyeah, that would be bad :) lemme see i can find documentation on that ...19:27
kristianpaulhum but i tought bscan need to implement xilinx verilof libraries anyway?19:28
kristianpaulor is it alrey included?19:29
kristianpaulalready**19:29
kristianpauloh,i was wrong :)19:32
wpwrakhmm, doesn't seem to be possible to just pick an individual pad19:41
wpwrakat least not with the regular boundary scan19:42
lekernel#2 shouldn't be too hard to implement19:43
lekerneland you can still check that the FPGA configured itself (i.e. most likely the standby bitstream was loaded correctly) by reading the status register19:44
lekernelwpwrak, https://github.com/milkymist/milkymist/blob/master/boards/milkymist-one/standby/standby.v#L20519:45
lekerneljust send ffff aa99 5566 3261 ... into the FPGA configuration input register (exposed though JTAG) and it will load the soc from the flash19:45
wpwrakup to and including ..., IPROG, NOP ?19:48
lekernelyes19:48
lekerneland ofc use only one of 0005 (load rescue bitstream) and 0037 (load regular bitstream)19:49
wpwrakkewl. now, the icap ...19:49
wpwrakah yes, GENERAL_2_C :)19:50
lekernelICAP is only one of the multiple means you can feed configuration opcodes into the FPGA19:50
lekernelthere is a CFG_IN register exposed on JTAG which does the same thing19:50
wpwrakyeah, found it in the manual. instruction 000101 binary19:53
lekernelby the way, similar opcodes also appear in this supposedly super-secret bitstream format. you just have another "load frame data" command that sets site configuration (LUT contents, I/O, ...) and programmable interconnect points.19:57
lekernelthe only thing which is actually secret is the detailed format of the frames, but it doesn't seem so hard to figure out...19:58
wpwraktoo much information :) i'm trying to connect things ... found the IPROG as well ...20:00
wpwrakah yes. there's the sequence "Example Bitstream for IPROG through ICAP"20:00
wpwrakfunny how different things are called "bitstream"20:01
lekernelit's actually the same thing20:01
lekernelonly it doesn't contain load frame data commands20:01
lekernelbut only commands that tell the configuration system to fetch more commands from some address in the flash20:01
wpwrakwhen doing a partial reconfiguration, do you also go through this system ?20:02
lekernelI wrote this small script https://github.com/sbourdeauducq/s6bitstream/blob/master/bitcommands.py to display the commands used in a bitstream20:03
lekernelyou can try it on the bitstreams generated by ISE :-) but most of it is frame data.20:03
lekernelyes, a partial reconfiguration bitstream is merely a bitstream that doesn't load all the frames20:03
lekernela "frame" is the smallest unit you can reconfigure in a xilinx FPGA20:05
wpwrakokay. now ... make room in my office somewhere closer to where i have the usb ports .... hmm, tricky ...20:07
lekernelon spartan6 a typical frame consists of a column of 16 tiles, each tile containing 2 slices. a slice is 4 LUTs, 8 flip-flops and sometimes carry logic, distributed RAM, etc.20:08
wpwrakso that's reasonably fine granularity20:10
lekernelsome tiles also contain only interconnect resources, and you have special tiles for DSP functions, block RAM, I/O, clocking, etc. special and interconnect tiles do not follow the "column of 16" pattern.20:10
lekernelalso, some columns are incomplete, probably when they needed the silicon space for nearby functions. details, details, ... :-)20:11
wpwrakheh :)20:13
wpwrakokay, thanks ! i think i have the general picture. now i need to rearrange my office ...20:14
mwallelekernel: btw would it be (theoretical) possible to strip down the standby bitstream by removing unneded frames?20:37
lekernelit's already stripped of empty frames20:38
mwallemh isnt it just compressed?20:38
lekernel"compression" (for xilinx) = removing empty frames20:39
mwalle500kb for just a few button fsms?20:39
lekernelit's not particularly efficient, especially since the automatic placer spreads the logic all over the chip20:39
mwalle(mh maybe distributed..20:40
mwalleok :)20:40
lekernelconstraining the logic into a small region of the chip would probably reduce the bitstream size a lot20:40
lekernelbut it doesn't really matter :)20:40
mwalleif you could put sth useful into 128kb, including some method to easily program flash, you could get an unbrickable self contained fpga design20:44
Action: wpwrak is slowly becoming religious ... i mean, if there's no god, where else do cable binders come from ?23:05
wpwrakof course, it's only temporary respite in the endless and hopeless struggle against chaos ...23:06
--- Tue Sep 6 201100:00

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