#milkymist IRC log for Wednesday, 2011-06-08

wolfspraulroh: u there?01:20
wpwrakwolfspraul: will you bundle a remote with M1 ? or just tell people what to get ?06:37
wolfspraulyour humor is the best, by far!06:38
wolfspraulthere is, reportedly, one known working remote control06:38
wolfspraulan unknown Philips model06:38
wolfspraulfrom my investigations so far, I have been unable to find anyone else who was able to find a working one06:39
wolfspraulalthough many have tried06:39
wolfspraulI have 4 right in front of me here06:39
wolfspraulXiangfu has 6 now, quickly growing to 10+06:39
wolfspraulkristianpaul has tried 4 or more06:39
wolfspraulat this point I can neither bundle one, nor tell people 'what to get'06:40
wpwrakthat's even more damning than i imagined ;-)06:40
wolfspraulbut... we're getting there06:40
wolfspraulI'm optimistic as always06:40
wpwrak"just get one that works" ;-)06:40
wolfspraulI make a few assumptions06:40
wolfspraulSebastien's working one is really rc-506:40
wpwrak"take M1 to the remotes shop, then keep on trying" :) that may actually be a strategy for finding one more that works06:41
wolfspraulthe one Adam used, and sent an identical one to Xiangfu, is rc-5 as well06:41
wolfspraulthe reason Adam and Xiangfu cannot get their to work is timing issues in the rc5 core in the SoC06:41
wolfspraulif that's true and can be fixed, perfect. we are back on track.06:41
wolfspraulat least that would explain everything I've seen so far.06:42
wpwrak(timing issue) yeah, i saw the discussion in #qi-hardware06:42
wpwrakthen you'd bundle a known to be good one ?06:42
wolfspraultoo speculative, one by one06:43
wolfspraulyes sure, if I can easily source a nice one that works for 2-3 USD, I'll throw it in06:43
wolfspraulwithout batteries as that would create too many shipping problems (will be standard cr2025 or so though)06:44
wpwrakokay, in this case the rc5-only route would work06:44
wolfspraulI cannot in a controlled way buy even a single working one.06:44
wpwrakyeah. i'd just dismiss rc5 and "learn" what the remote can do06:45
wolfspraulthis IR problem will soon be resolved, I'm optimistic06:46
wpwrakmake the fpga send a sequence of on/off interval values. two parameters: denoise delay and maximum idle time (before you signal the core that a new packet has arrived)06:46
wolfspraulwell I cannot just hack that together06:46
wpwrakLIRC should have solved most of the technical side already06:46
wolfspraulif I'm lucky and I find a control that works well with m1, I'd forego any SoC fix06:46
wpwrakyeah, the nice thing about fpga - you can always fix it later ;-)06:47
wolfspraulbut maybe it's easier to improve the rc5 core and then source a remote06:47
wolfspraulwell, to a degree06:47
wolfspraulit gets dangerous when you start to fool yourself in testing06:47
wolfspraulI don't like that.06:47
wpwrakhehe ;-)06:47
wolfspraulI have a lot of experience in dealing with customer support cases.06:48
wpwrakyeah, if you can't even tell whether the IR receiver is connected or not, then your testing may be in trouble ;)06:48
wolfsprauland the one thing I need is _certainty_ on my side, what was originally tested.06:48
wolfspraulpeople come up with the craziest stories what happened and how something is not working06:48
wolfspraulif I don't have hard data on my side ("we tested this and that, so his problem must be ..."), then I have no chance06:48
wolfspraulfor example Xiangfu and Adam over the last months started to believe that 'different values' are normal in IR remotes06:49
wolfspraulI cannot blame them, it's natural. We learn what is 'normal' from our environment.06:49
wolfspraulyou wouldn't find that too funny on your TV remote though06:50
wolfspraulpress '3', sometimes it goes to channel 5, sometimes 1, sometimes 4, etc.06:50
wolfspraulin the end this leads to cases where tech support tells the customer "it all works" and the customer says "nothing works"06:51
wpwrakwell, you may not even notice the occasional incorrect value all that much06:51
wolfsprauland that's it. return, refund, big loss, frustration. needs to be fixed early.06:51
wpwrakbut of course, here the situation seems to be a lot worse that just one bad code in a hundred06:51
wolfspraulyou bet06:51
wolfspraullong story short - it's not working06:52
wolfspraulbut no drama, we are close now06:52
wolfspraulit was my oversight to not notice this earlier06:52
wolfspraulI always thought "remote will just work" - ha!06:52
wpwrakwhat could possibly go wrong ? ;-)06:52
wolfspraulSebastien cannot see it, because his remote works and all is perfect, and why should he test many different ones...06:52
wolfspraulAdam didn't see anything wrong because it looked like the behavior we got was 'normal'06:53
wolfspraulXiangfu inherited his knowledge from Adam06:53
wolfspraulI became frustrated because I was unable to find any single remote that actually worked, although kristianpaul had been in this situation before but I didn't notice/understand the significance.06:53
wolfspraulThat's how it goes :-)06:53
wpwrakkristianpaul is also a good test buyer because he doesn't live all that close to philips. "just buy a philips" may be rather tricky in some markets06:55
wolfspraulnah it's ok. if sebastien's latest theory is correct, the problem may simply be that the timings are way too specifically tuned/correct for the one remote Sebastien was working with in development.06:56
wolfspraulmaybe even another control of the same model wouldn't work :-) we don't know right now06:56
wpwrakanother benefit of a generic receiver - you see pretty quickly when your values are off :)06:58
wolfspraulmy m1 just froze again in rendering (was testing) - 50 minutes07:24
wolfspraulstarting over...07:24
wolfspraulyesterday I had the impression it got shorter over time, as if temperature or so mattered07:25
xiangfuha. I found kristianpaul secret :D http://kristianpaul.org/~paul/tmp/mm1_html/07:26
lekernelwolfspraul, get a damn stack trace when it freezes. just reporting "it freezes" isn't going to help.08:04
lekernelyeah well... it's a very simple piece of Verilog. no need to write a PhD on that :)08:05
xiangfulekernel: how to get stack trace when it freezes?08:38
xiangfulekernel: (timing rc5 verlog) you can give me a little info. I can test it in my m1 with IR remote controller :)08:39
xiangfuthis is my first patch :D http://dpaste.com/551822/ but fix nothing. still same result as before :(08:40
wolfspraulok the reason hadez is not moving forward is because he is waiting for the jtag-serial board08:44
wolfspraulat least it's an m1 owner who communicates :-)09:00
lekernelxiangfu, generate a .elf with debug information (built by default), load the very same binary into the M1, then use gdb remote09:01
lekernellm32-rtems4.11-gdb flickernoise.elf09:01
lekernelflterm --gdb-passthrough09:01
lekernelin gdb: target remote /dev/pts/xxx09:02
xiangfulekernel: thanks.09:02
wolfspraullekernel: did you see what I wrote about errors when compiling patches?09:03
wolfspraulit looks like a memory corruption09:03
wolfspraulok I had this yesterday: I press "SImple Mode"09:03
wolfspraulit stops at some patch X, saying "error compiling X"09:03
wolfspraulI press "ok", then "Simple Mode" again09:03
wolfspraulthen it stops at another path Y, again "error compiling Y"09:03
wolfspraulcan go in that cycle forever, every time stops at another patch09:04
lekernelgdb is the tool you need to track down such problems09:04
lekernelotherwise it's just wild guesses09:04
lekernelyou can attach gdb at any time, just make sure the debug-enabled .elf and the flashed binary are in sync09:05
lekernelmaybe it'd be a good idea to put the debug elf into the msd archives ...09:11
xiangfusounds good.09:12
lekernelwolfspraul, can you ship me a few remotes you plan including with the M1 package (preferably that one Adam made the scope trace of)? or can someone else fix the design?10:52
kristianpaulwolfspraul: i just tested so far one remote control,  a LG MKJ3398140811:14
kristianpaulwpwrak: i better can easilly buy a universal remote control, informall mercants sell it screaming it on streets all time ;)11:15
CIA-29flickernoise: Sebastien Bourdeauducq master * r88214e6 / (src/guirender.c src/patcheditor.c): Changed F8 'Start rendering' shortcut to F2 - http://bit.ly/j1P0fn12:13
CIA-29flickernoise: Sebastien Bourdeauducq master * ra400522 / src/flash.c : New update dialog box layout - http://bit.ly/iglVUR12:13
CIA-29flickernoise: Sebastien Bourdeauducq master * r820b531 / (6 files): Update: use actual versions - http://bit.ly/mep31s12:25
wpwrakkristianpaul: yeah, here too ;-)12:33
CIA-29flickernoise: Sebastien Bourdeauducq master * r2e18cbb / (src/flash.c src/performance.h): Mention patch pool - http://bit.ly/k2qRR512:43
CIA-29flickernoise: Sebastien Bourdeauducq master * rfcbd4c3 / (src/shortcuts.c src/sysettings.c src/sysettings.h): Update and show system settings dialog box on resolution switch shortcut - http://bit.ly/k4JrDJ12:43
CIA-29flickernoise: Sebastien Bourdeauducq master * r6413391 / src/input.c : Fix pushbutton assignment - http://bit.ly/irBuYS13:09
CIA-29flickernoise: Sebastien Bourdeauducq master * ra431f9d / (7 files): Long press on left pushbutton to trigger automatic web update - http://bit.ly/kwT3v013:09
CIA-29flickernoise: Sebastien Bourdeauducq master * r23a7b43 / src/filedialog.c : File dialog: quick find feature - http://bit.ly/kd2EDw14:14
kristianpaullekernel: what you think in rc5 about making the divisor a register that can be written from csr so the software can fix posible sampling timing issues related to IR?14:41
lekerneland how would it fix it?14:42
kristianpaulwell... finding right offset by trial and error :p14:43
wolfspraulshould I send an rc-5 sample remote from Adam to lekernel? or kristianpaul wants one?14:44
lekernelunfortunately this is perhaps the only way to get rc5 to work in a timely fashion14:45
kristianpaulin dont want rc514:45
wolfspraulfrom the scope pics Adam took (which all read as correct rc-5), I think lekernel's latest theory about timing issues must be the right one14:46
kristianpauli have a remote control it should work some how.. also i will try source philis one today14:46
kristianpaulmay be i woks out of the box :)14:46
wolfspraulkristianpaul: maybe it's the same, it sends proper rc-5 but the SoC cannot decode it14:46
wolfspraulis the feedback from the vendor about timing and tolerances helpful at all?14:47
kristianpaulso lekernel you think a more flexyble counter for the rc5 sampling part will help?14:47
lekernelno, I don't14:47
lekernelbecause there is no sensible way to program it14:47
kristianpaulso? still hardcoding the core to get it work with a single control?14:48
lekernelyes, that's what taking the least time from me14:48
lekernelso unless wpwrak or you want to implement a more elaborate pattern matching system, that's how it's going to be done14:49
kristianpaulokay i tought it was a sampling issue14:51
kristianpaulor port the lirc gpio code and do bitbang from lm32/navre?15:07
wpwraklekernel: sigh, if it was just a question of wanting ...15:23
lekernelwpwrak, so what's the problem?15:32
lekernelit's not harder than e.g. ubb-vga15:32
wpwraklekernel: buying a mm1, finding the time, ...15:33
lekernelwell, if you do it, I can give you one of my rc1's which are collecting dust anyway15:35
wpwrakheh, now that's tempting ;-)15:38
wpwraki have no practical verilog experience, but i guess that wouldn't be an unsurmountable problem. having to install a pile of windows-only junk on my pc would be a bit of an annoyance, but i suppose everything necessary works well under wine ?15:42
kristianpaulxilinx ise run on linux btw15:43
kristianpauland using makefiles :-)15:43
wpwrakkristianpaul: oh, even natively ? wow15:44
larschuge 11GB blob15:44
wpwrakkristianpaul: so the whole m1 fpga development cycle can be done under linux ?15:44
kristianpaulwpwrak: sure15:45
kristianpaulwow, i tought you already knew it15:45
wpwrakhmm, 89 GB free under /15:45
kristianpaulindeed larsc15:45
kristianpaul/dev/sdb6              31G   22G  6,9G  77% /opt15:46
kristianpaulall my xilinx rtems stuff is there^15:46
lekernelyeah you only need windows for the pcb (altium)15:46
kristianpaulyeah :/15:46
lekerneland to get started with verilog, you can use a free simulator like gplcver or icarus verilog15:46
kristianpaulplus gtkwave :-)15:47
wpwraklekernel: now, what exactly would i have to do for it ? :) would be piece of code that has a "learn" (spits out a string of timing data) and a "play" mode (matches timing data with a set of known functions), along with the lower-level bits needed for it be enough ?15:50
lekernelimo the verilog module could write a RLE-compressed list of the received 0 and 1's into a small on-chip memory whenever it gets an IR burst15:52
lekernelthen the CPU can do the rest15:52
wpwraklekernel: that's exactly what i had in mind ;-)15:52
wpwraklekernel: basically needs four parameters: sample rate, buffer depth, minimum pulse length (to de-noise), and maximum idle time (to finish burst and notify the core)15:54
lekernelyou can hardcode the sample rate and buffer depth15:54
wpwrakyup. they're just design parameters.15:55
lekerneland maximum idle time can simply be set to the maximum RLE counter value before it overflows :)15:55
lekernelminimum pulse length, I'm not even sure that would be needed in hardware15:55
lekernelsoftware can probably do it15:55
lekernelor just not do it at all, as it wouldn't match any pattern15:56
wpwrak(max) possible ... hmm, lemme see if i still have my notes from the ir research i did some eons ago ...15:56
wpwrakthe min filter's main purpose would be to avoid filling the buffer with junk. some remotes are VERY chatty, so you want to make good use of the space.15:57
kristianpaulinteresting, sounds like a know issue :-)16:04
wpwrak(from my notes, remotes for tv, roomba, some pinnacle IR, one where i don't remember what it was, and one from an air conditioning) i had short vs. long intervals. duration of short about 0.5-1 ms. long 2-7 ms. burst duration 30-75 ms.16:05
wpwrakthe air conditioning sent about 30 intervals (i.e., 15 pulses) :)16:06
wpwrakalas, i didn't write down the time between bursts16:06
wpwrakback then i used a 100 ms timeout16:07
wpwrak64 us sample period = ~15.6 kHz16:08
kristianpaulah, thats the known functions for16:09
wpwrakall with a meager PIC.16:10
kristianpaul(PIC) i remenber when the only way to get serial port was bitbanging :-)16:25
CIA-29flickernoise: Sebastien Bourdeauducq master * r8ddcd84 / (src/sysconfig.c src/sysconfig.h src/sysettings.c): sysconfig: add simple performance mode parameters - http://bit.ly/koqJds16:43
CIA-29flickernoise: Sebastien Bourdeauducq master * r007009f / src/sysettings.c : sysconfig: better layout - http://bit.ly/lclnPG17:15
CIA-29flickernoise: Sebastien Bourdeauducq master * r5213f6a / (src/cp.c src/performance.c src/performance.h): performance: implement automatic switch and title display - http://bit.ly/ltxwBI17:15
lekernelbtw, apparently libpng (e.g. wallpapers and screenshots) is so slow on milkymist because it uses software floating point emulation19:56
lekerneland... the recently released "libpng 1.5.0 includes a complete fixed point API"20:00
CIA-29flickernoise: Sebastien Bourdeauducq master * rb4b36d0 / (7 files): PNG cleanup + libpng 1.5 compatibility - http://bit.ly/kC1mxQ21:20
CIA-29flickernoise: Sebastien Bourdeauducq master * r970ea12 / (src/cp.c src/performance.c src/performance.h): Display performance window from control panel - http://bit.ly/iEryZ621:20
lekernelmh... isn't any faster in fact21:25
wpwraklekernel: maybe your fpu is too good ;-)22:12
wpwraklekernel: i'll hate myself for letting me get drawn into this now, but ... if your offer is still good, i'd take it :)22:42
--- Thu Jun 9 201100:00

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