#qi-hardware IRC log for Thursday, 2010-12-30

qi-bot[commit] Werner Almesberger: atusb/cam2/mkmk: double backslash to put into generated makefile http://qi-hw.com/p/ben-wpan/6f9562900:10
qi-bot[commit] Werner Almesberger: atusb.brd: more layout cleanup to improve solderability http://qi-hw.com/p/ben-wpan/cec090f00:10
qi-bot[commit] Werner Almesberger: atusb.brd: reduced XTAL front ground to shorted "tongue" between pads 24 and 25 http://qi-hw.com/p/ben-wpan/f33b86b00:10
qi-bot[commit] Werner Almesberger: atusb/fw/atusb/Makefile: pass board version to cpp (when determining USB ID) http://qi-hw.com/p/ben-wpan/6a7b2de00:10
qi-bot[commit] Werner Almesberger: atusb.brd: moved via and bumped version number http://qi-hw.com/p/ben-wpan/478bfb500:10
lekernel_27C3wpwrak: what workshop? those suckers at the CCC can't even get the room open before the workshops and have no idea where the key is05:58
lekernel_27C3let alone other problems with the schedule (or lack thereof), no videoprojector, etc.05:59
qwebirc73428Hi! Is the qi-hardware wiki having problems with OpenID logins?06:23
wpwraklekernel_27C3: argh. sounds bad :-( so what did you do ?06:34
lekernel_27C3report that to a less messy event06:54
lekernel_27C3and never submit workshops to CCC again06:54
czrhi all, probably OT, but anyone knows who's the distributor for nanonotes in finland? tried to order via webshop, but no go.07:03
wpwraklekernel_27C3: yeah, more chaotic that one would expect. well, i hope the hallway demos went well. that often catches more people anyway07:09
wpwrakczr: did you try tuxbrain ? they're in spain, but i think they're the main european distributor. i think pulster in germany may also be an option. don't know if there's one much closer than these two.07:12
czrthanks, will check them out07:12
czrI didn't see any list of distributors anywhere, just a referral to contact sharism, which was more than slightly pita.07:12
czrgah. tuxbrain uses some crappy credit card processor that fails the transaction..07:25
Action: czr curses again..07:25
wpwrakczr: hundreds of people have succeeded so far. it can't be all that bad ;-)07:26
czrthat's what I thought, but still :-).07:26
czralso, the shop kind of doesn't handle the transaction failure at all.07:26
czr"Error desconocido (9104) Volver a la tienda".07:27
wpwrakaah, error 9104. but of course ! ;-)07:28
czryes. it's much more complex than a plain 501 :-)07:28
czr"we how what failed, but we won't tell you, hee hee"07:28
czrknow even.07:28
wpwrakwell, it could send a register dump ... :)07:29
czror, to make it more interesting, a partial register dump using randomly selected registers only.07:29
czrwith some inverted just for extra fun07:30
wpwrakyou sound like the kind of guy who would put  #define while if  in the "exported" header files of his libraries :)07:31
czrI've moved beyond that. I just replace `which cpp` with a custom randomizing version.07:31
wpwrakah, aiming for the thompson attack, i see07:33
czroddly enough, most of my code is quite readable infact.07:34
czrI guess it's a case of "once you saw off your leg enough times, you learn to do it elegantly"07:34
wpwrakczr: there's no reason why readable code couldn't be obscure, too. e.g., http://underhanded.xcott.com/07:36
czroh, nice one. thanks :-)07:37
czrwpwrak, tit-for-tat: http://www-graphics.stanford.edu/~seander/bithacks.html07:38
wpwraknice :)07:41
kristianpaulczr: try with hackabledevices08:00
czrkristianpaul, do they add shipping on top of the price?08:01
czrah. not at the moment it seems. cool. thanks08:02
kristianpaulczr: dont know08:02
kristianpaulyeah is cool website it seems :-)08:02
czrah no. shipping comes on top, so it becomes more expensive then.. ugh.08:07
kristianpaulczr: just in case you dint saw this, http://en.qi-hardware.com/wiki/Shipping_Notes08:22
kristianpaulI think openmobile.nl is near to you08:23
czrwell, I already put an order in with HD, although they won't continue shipping until 6th of Jan, so I'll just be waiting until then08:27
czrthanks for the suggestions kristianpaul & wpwrak08:27
wolfspraulczr: try emailing david@tuxbrain.com - for sure there should be a way to get a NanoNote to you...08:38
czrwolfspraul, I already placed an order with HD above, so no worries08:39
czrI'll come back to cry if I won't get it. it's just been years since I had anything MIPS.08:39
wolfspraulhe. yes. come here to cry and we'll find the fix :-)08:40
czrI'm trying to diversify archs of late. not really sure why, but it sounds cool.08:40
czr(plus I just might write something for the nanonano)08:41
wolfspraulif you have a bit of spare money, check out Milkymist One too08:41
wolfspraulat least it's another item in your 'diversify archs' collection :-)08:41
wolfspraulthat's a Mico32 core...08:41
czrooh. looks nice08:42
czrouch, quite expensive too :-)08:42
czris the graphics stuff embedded in the CPU too?08:43
czrmmm. I'll put it on my list of things to do..08:43
czrhmm. it runs nommu linux?08:44
wolfspraulyes. but you can add a mmu :-)08:45
czrno wait, the cpu isn't a cpu, but an fpga?08:45
wolfspraulyes, the whole CPU (Soc) is running in the fpga08:45
wolfspraulmmu is not critical for the first application (vj station), but it's definitely on the todo list08:46
wolfspraulwe are extending the 'free software' concept into the CPU08:46
czrcool. so, being open sores and all, are all the tools that are necessary to synthesize and download the stuff open source too?08:46
wolfspraulnow that we've opened this up of course there are lots of todos...08:46
czrI've been thinking about this for ages really08:46
wolfspraulnot all, but that's the point08:46
czrso, what tools are still closed?08:46
wolfspraulbut the milkymist one itself works, today08:46
czrright. is it available as a non-GUI linux executable then?08:47
wolfspraulalthough Sebastien (the founder of Milkymist) has recently starting there too, see http://www.milkymist.org/llhdl/08:47
Action: czr drools all over the channel08:48
wolfspraulfor the time being you definitely need the closed source (but freely distributed) Xilinx tools, called ISE WebPack08:48
czrhmm. are there any "headers" on the milkyway one available for i/o expansion/bussing?08:48
Action: czr nods08:48
wolfspraulthere are 2 headers, but the headers are not the main point of Milkymist One08:49
wolfspraulbut... for that we have another projet coming up, Xue :-)08:49
wolfspraulthat will be like a mini-milky, plus 50-pin expansion header08:49
czrI've been mostly mucking with altera, didn't get very far though. buttons + and + and blinkenlichts. but that's where I had to start anyway :-)08:49
wolfsprauloh sure08:49
wolfspraulthis is far more advanced08:49
czrI ask because I have some other stuff that I might want to interface08:49
czroh, I know :-)08:49
wolfspraulgive us 6 months and we should have this Xue thing ready08:49
wolfspraulbut today it's all about Milkymist One08:49
Action: czr nods08:50
wolfspraulwe need to polish, make it more useful in the Flickernoise GUI, and most important fix bugs and stability issues all over08:50
czrso, what you're saying is basically that even if I get milkymist one now, the hdl/firmware stuff will still live and be updated in near future?08:50
wolfspraulof course08:51
wolfspraulnot just 'near future', I hope we can support and improve it for many years08:51
wolfspraulthat's one of the big points of free technology, imho08:52
kristianpaulme grins08:52
Action: czr nods08:52
kristianpauloops :-)08:52
czrwolfspraul, thanks for the heads up though. I wish I was a student again.. :-).08:52
wolfspraulwe slow things down, innovate on freedom, innovate on stability, documentation, understanding, so people can drive the technology into new use cases quickly08:52
wolfspraulbe slow so we can be fast08:54
wolfspraulhow about that?08:54
czrI've often said that all hw development should stop for 10 years.08:58
czrto give a breather and time to fix things :-)08:58
czrone thing that really is a problem is that there's only VGA output08:58
czralthough using HDMI/DVI might be slightly problematic because of TMDS licensing.08:59
kristianpaulnommu still interesting, one of the things because i'm following osmocom project (besides i have a motorola C139 ;-)) is to see what Real Time OS will come up (from scratch?) or implemented when some GUI appears08:59
czrkristianpaul, how is osmocom coming along?09:07
kristianpaulczr: dunno, i just started reading/playing it (bb.osmocom.org) more seriouslly since yday09:10
Action: czr nods09:11
kristianpaulfflush is really handy16:56
wpwrakkristianpaul: interesting discovery :)17:08
wpwrakrsharpe: ah, you're here as well :) let me paste the conversation here. others may be interested too17:08
wpwrakthe status of ben-wpan right now is that i'm still wrestling with part of the hardware. the host interfaces look good, but the RF side still needs work17:09
wpwrakif you have any experience with RF design, a review would be very welcome17:09
wpwraki haven't touched the software side yet (besides writing a few small tools for testing the hardware)17:09
wpwrakthe idea is to use the linux-zigbee code. alas, that project seems to be very slow at the moment17:09
wpwrakpeople are also using some SLoWPAN (IPv6) code from the contiki OS, so that connection could use some looking into as well17:09
kristianpaulhehe well for me yes :-) is faster than fwrite in some cases (low data)17:09
wpwrak(the general idea for the stack is IPv6 on SLoWPAN on IEEE 802.15.4)17:10
wpwrakkristianpaul: hmm, "fflush faster than fwrite" sounds like an odd comparison.17:12
wpwrakanyway, gotta do some shopping. back in a bit.17:12
kristianpaulwpwrak: no i mean faster in some debugging tasks, the comparition is not fair i know17:12
Jay7btw, ppl, did you know about CELF funding opensource projects?17:17
wpwrakkristianpaul: i'm still not sure what you're comparing :) you're phrasing it as if fwrite and fflush were alternatives for each other, while they're part of the same process. much like saying that making the dough takes longer than the baking of the bread.17:40
wpwrakanyway, off for more shopping ...17:40
kristianpaulyes you're right17:51
kristianpaulas always :-)17:51
wpwrakhehe :)17:59
wpwrakJay7: hmm. could be interesting for sw infrastructure projects. it sounds as if you'd have to be careful that nobody out-bids you, though.18:19
Jay7wpwrak: I haven't seen out-bids yet :)18:19
wpwrakJay7: so it's basically a double lottery - first you have to "win" the proposal, then the bid.18:19
Jay7kexecboot was funded in 201018:20
Jay7but I'm still on the way..18:20
wpwrakJay7: i haven't found any public information on the bids18:20
wpwrakJay7: and they're still funding you ?18:20
Jay7wpwrak: I'm still doing funded work, but I haven't check-outed yet18:21
Jay7I'll finish biggest part of work in new year holidays then will invoice18:22
wpwrakah, i see18:22
wpwrakso .. it took more than the estimated 65 hours ? :)18:23
Jay7wpwrak: not yet :)18:23
Jay7I've just done almost nothing before this time18:23
Jay7only some parts of UI improvements18:23
Jay7kexecboot development activity looks like wave :)18:24
wpwrak"wavy" projects aren't uncommon ;-)18:26
wpwrakalright. off for some more shopping.18:27
wpwrakah no, better tomorrow18:31
kristianpaulwpwrak: what's the recommended wait of doing timings in C, ie, i want to measure the frequency of a pulse signal i'm injecting to the Xbusrt, but for that i need to have a know sampling time19:30
kristianpauldo you understand me?19:30
kristianpaulhmm i think you mentioned something about benchmakring gpio at mail list.. i'll look19:32
wpwrakso basically you'd poll a GPIO ?19:33
wpwrakwhat frequency are you thinking of ?19:33
kristianpaulless than 8mhz19:33
kristianpaulno wait19:33
wpwrakyes. how much less ? ;-)19:34
kristianpaulMax 4Mhz19:34
wpwrakthat's still very fast19:34
kristianpaulmin 0hz? .. :p19:34
kristianpaulwhat test you did to know the current max IO freq i can poll?19:34
wpwrakperhaps just  for (n = 0; gpio != 1; n++);19:34
wpwrakfor (n = 0; n != A_LOT; n++) read_gpio();19:35
wpwrakthen see how long it took :)19:35
wpwrakyou can get time with nominally us resolution with gettimeofday19:36
kristianpauljust us?..19:36
wpwrakwhether the kernel implements this accuracy depends on whether the cpu hardware supports high resolution timing. x86 does. dunno about xburst. if not, you only get something in the 50-1000 Hz range.19:37
kristianpaulhmm :/19:37
kristianpaulbtw i'm just a polling a single gpio Uin19:38
wpwrakin software, we call anything with us timing a hardware problem ;-)19:38
Jay7or even nanosleep19:38
kristianpaulsleep != loop ..19:38
Jay7ah.. timing as measure..19:38
Jay7I've misundestood19:39
kristianpauldunno Xburst ... argg  lets wait i move to MM :-)19:40
kristianpaulno excuses :-)19:41
kristianpaulmore work19:41
wpwrakyeah, on mm, you'd just synthesize your custom peripheral. with dma and everything ;-)19:41
kristianpaul*more* *work*19:41
wpwrakbetter results :)19:41
wpwrakthe SIE is not the most friendly platform for doing this in a simple way. the best approach would probably to have a large ring buffer19:42
kristianpaulnot friendly, indeed19:43
wpwrak(in the FPGA). then you could read the pointers / size, and do a burst read of as many bytes you have19:43
kristianpaulring buffer remenber me: pfring  and ntop :-)19:45
kristianpaulthe problem is FPGA a *other* device19:45
kristianpaulyou cant19:45
kristianpaulis not just other, is  a _FPGA_19:45
kristianpaulyou need a dedicated bus i think19:45
wpwraknaw, if you can it access like RAM, that ought to be find19:46
kristianpaulwell i can now19:46
kristianpaullike ram19:46
wpwrakimplement the ring buffer inside the FPGA. it has some SRAM blocks, doesn't it ?19:46
kristianpaulsram, 2048bit19:46
wpwrakthat's plenty. can you treat the SRAM as one big memory or is it fragmented ?19:47
kristianpauli have up to 368,64019:48
wpwrakoh, so you have a LOT. the fragments are 2048 bits then ?19:48
kristianpaulin 20 blocks19:48
wpwrak368640/20 = 18432. where do the 2048 come from ?19:49
wpwrakanyway, you have tons of memory. why not use it ? :-)19:49
wpwrakyou have already implemented the bit stream -> byte stream engine19:50
kristianpauli just implemnted 2048bits for now19:50
wpwraknow, implement a byte stream writer. basically *w++ = byte;19:50
wpwrakwhere "w" is the write pointer, wraps around the block end19:50
wpwrakthen implement a read pointer. have a register where the CPU can retrieve the write pointer, one where it can retrieve the read pointer, and one where it can read from the ring buffer.19:51
wpwrake.g, byte = *r++;19:51
wpwrakhave another register that lets you set r = w;19:52
kristianpauldone i fpga19:52
wpwrakfor the luxury edition, check for r == w after writing and if true, set a "buffer overrun" flag19:53
wpwrakyes, in the fpga19:53
kristianpaulwhy cpu need retrive write pointer?19:55
wpwrakto know when it's done19:55
wpwrakyou could also provide r-w or w-r, if that's more convenient19:55
wpwrakalso, if that's easier, you could make the whole SRAM block visible to the CPU and let the CPU worry about the read pointer19:56
wpwrakin this case, the operation is less reliable, but probably still okay19:57
kristianpaulthats how it works now (with the 2048 bits)19:57
wpwrakgee. could it get any easier ? :-)19:57
wpwrakyou can still have it all working this year :)19:58
kristianpauli want :-)19:58
kristianpauli already have implemented  a counter wich address a memory-block-array  (i can make it bigger that 2048), but i was worried about how tell cpu when ram was full20:01
kristianpaulso if follow  you the  better aprouch is a write pointer register?20:01
wpwrakfirst of all, it should never be full20:02
wpwraksecond, you don't even need to tell the cpu when data arrives, because data will be arriving all the time.20:02
wpwrakso the cpu just needs to reset the pointer, wait a bit, find out how much data has arrived, read the data, process it, find out how much new data has arrived, etc.20:03
wpwrakwhat will be useful is an indication when you have a buffer overflow. that's an abnormal condition. you could signal it with an I/O pin or via a register.20:04
wpwrakyour production code would always try to empty the buffer long before it overflows. but for development, you'll need to be able to tell when this happens20:05
wpwrakin case you don't want to implement a proper overflow detection, you can also just make the write pointer larger. e.g., make "w" 16 bits. use only the lower 8 for addressing. the upper 8 are used by the cpu to calculate when you had an overflow20:06
wpwrakyour bit clock is 8 MHz. so your byte clock should be 1 MHz. (where did those 4 MHz come from ?) a 16 bit counter will wrap after 65 ms. this should be plenty. if it's still too short, you can make the pointer even larger.20:08
kristianpaul4Mhz <-- some clock division for testing20:19
wpwrakah, not the real data. okay.20:19
kristianpauli already was working today i some of what you said (i had previous problems defining ram, anyway..) what i missed was :20:23
kristianpaulso the cpu just needs to reset the pointer <<< bingoo20:23
kristianpaulit should never be full <<<< how i can ever think i should be full :/20:23
wpwrakyou may have been thinking of it like the FIFO of a UART or similar20:26
wpwrakthey look similar but are actually very different. let's see how many differences we can find:20:27
wpwrak1) you can afford to lose data at the beginning and the end (in fact, you're guaranteed to)20:27
wpwrak2) the incoming data rate is constan20:28
wpwrak3) in particular, there is little point in "waiting for the first byte" (with an interrupt or such)20:29
kristianpaulhe, i was thinking in 3) before start this chat :-)20:30
kristianpaulyou could make the whole SRAM block visible to the CPU <--- yes is already done20:30
wpwrakgrmbl. even my new and improved boards seem to have that "valley of death" in the middle of the spectrum :-(20:30
wpwrak(at least the first one i'm testing does. let's see about the other one.)20:30
kristianpaulimproved = ?20:31
wpwrakimproved = much better ground design, with about 3 times the number of vias20:32
wpwrakfunny. the more tests i make, the better the results :)20:33
wpwraki kinda wonder if i'm just chasing some creepy artefact of my test setup20:34
kristianpaul"w" is the write pointer, wraps around the block end <<-- you mean all data is introduced from this point and then is filling up the stream21:34
kristianpaulnot to be confused with data is filled from the block end to the block "top", right?21:35
kristianpauljust to be clear (me), if i catch the whole idea21:36
wpwrakthere is no "top" in a ring buffer :-)21:42
wpwrak"w" just circles.21:42
kristianpaulbut then new data will override old one at some point, right?21:45
wpwrakyes, of course. that's when you have an overrun -> an abnormal condition21:47
kristianpaulgot it (finally..)21:48
wpwrakgreat. now you have 24 hours left to implement it this year ;-))21:53
wpwrakgood news: http://downloads.qi-hardware.com/people/werner/wpan/atusb-ng-s6.png21:55
wpwrakthe ugly ones (ng2-*, at the bottom) had a problem with a bypass capacitor21:56
wpwrakthe ugly yellow one that also goes very deep is a mystery. power-cycling made it behave again21:57
wpwrakthe rest looks a lot more reasonable than anything i had so far21:57
kristianpaulwhat about ng3-ref2?21:59
wpwrakthat's the one that i made disappear with power cycling :)22:02
wpwrakall ng3 are the same board. all ng2 are the same board. ng2 and ng2a differ by the bypass cap rework22:03
wpwrakrsharpe: okay to copy wolfgang on our discussion ? (in fact, it's better if we discuss things that aren't state secrets or of a very personal nature on this public channel)22:23
kristianpauladamw_: (P2 2x7pins JTAG header) being placed manually for 100boards (ouch..)22:28
kristianpaulhow bad is that for SMT line?22:30
kristianpaul(talking about timing)22:30
adamw_kristianpaul,  yes22:34
adamw_haha...i standed at there in line with that girl of operator to fine tune and place P2 about 1 hour. :)22:35
adamw_not bad. we were lucky! Two lessons learnt this time.22:36
adamw_one is the location of optical fiducial mark, the other is the P2.22:37
adamw_well..i already imagined P2 before this run.22:37
kristianpaulvery nice report !22:39
kristianpaul(just finished reading it)22:39
adamw_i usually use 8mm with side board for single or panel pcb.22:40
adamw_but this time we changed to a new smt vendor with preasked them what limitation of their width of conveyor of smt machine.22:40
adamw_i got answer with 5mm.22:41
adamw_but I forgot to shift mark nearby toward the single board!!!22:41
SarahShadowwould someone be willing to look over some computer parts to make sure the peices are compatable and ok choices?22:43
adamw_if the pod don't have P1 through holes, their smt machine will runs/works as human soldering. man! I almost got failure there.! hahaha.22:43
wpwrakhehe, antenna detuning made easy: http://downloads.qi-hardware.com/people/werner/wpan/atusb-ng-c2hdr-s6.png22:44
wpwrakthe ng2a series is with the programming connector attached (the 100 mil header at the bottom of the board, see [1])22:45
wpwrak[1] http://downloads.qi-hardware.com/people/werner/tmp/nemesis.jpg22:45
wpwrakng2b is the same board, but with the connector removed22:45
SarahShadowim guessing this isn't the right channel for me lol22:46
wpwrakadamw_: "haha...i standed at there in line with that girl of operator to fine tune and place P2 about 1 hour" admit it - you'd have done it in five minutes if the operator hadn't been a girl ;-)22:51
adamw_wpwrak, ha..I actually shaked my fingers to align P2 stands besides her. :)22:52
kristianpaulwpwrak: add 4 pins = detuning.., you need better conectors ;-)22:52
wpwrakkristianpaul: naw, i need more forgiving physics ;-)22:54
adamw_wpwrak, did you code in python to catch the plot of received signal strength?23:00
adamw_which equipment you measured? would it be captured by auto gpib or rs-232/usb port?23:01
kristianpaul(python) i wonder i wpwrak really code in that kind of languages ;-)23:02
wpwrakadamw_: the code is a mixture of C and shell. i just dump the received signal to a file and then process the file23:03
wpwrakkristianpaul: sometimes i do :) e.g., here: http://svn.openmoko.org/developers/werner/ahrt/host/tmc/23:04
adamw_um...TMC tool!23:04
wpwrakadamw_: the sender is the atusb board, connected to a laptop. the receiver is a USRP2 with more-or-less standard WiFi antenna23:04
wpwrakadamw_: my usrp stuff is here: http://projects.qi-hardware.com/index.php/p/ben-wpan/source/tree/master/usrp/23:05
qi-bot[commit] Andres Calderon: PJ-CUI-TH.mod footprint added http://qi-hw.com/p/xue/238126723:05
adamw_if you can illustrate how you do  the connection and how you dump data..it would be awesome!23:06
wpwrakadamw_: the FFT scaling is probably all wrong. but it should be good enough for comparisons.23:06
adamw_yeah..you may need pay more attention the scaling.. you plotted.23:07
wpwrakadamw_: i plug the atusb into the laptop :) well, via a usb-a-to-usb-a cable23:07
adamw_well...the plot shown has already cleared enough..really nice job!23:08
wpwrakadamw_: the usrp2 just connects to my ethernet. the dumping is done by usrp2_rx_cfile.py23:08
kristianpaulwpwrak: nice project, (tmc) i think i'll mirror your repo :-)23:09
adamw_where's the usrp2_rx_cfile.py? I didn't see it.23:10
wpwrakadamw_: it's from gnuradio23:10
kristianpaul(usrp2_rx_cfile.py) dump the 16 bit I/Q ? isnt23:11
Action: kristianpaul back to the buffer23:11
wpwrakodd. if i add a few more vias between the rf ground planes near the end of the antenna, i get almost the same pattern as when removing the connector. do i trust this result ?23:20
Action: wpwrak distrustfully adds the connector back to check23:24
wpwrakhmm. looks similar to before. not quite identical, though. so it seems that the connector does have that kind of effect.23:29
--- Fri Dec 31 201000:00

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