#milkymist IRC log for Sunday, 2011-05-08

kristianpaulha, i dint knew it this RAMB16BWER.v was there..03:22
kristianpaul error: Syntax error in instance port expression(s).03:51
kristianpaulerror is not there.. lets hunt it somwhere03:52
xiangfulekernel: Hi I have a question about USB.07:39
xiangfuif the usb device have two interfaces, after "PORT_STATE_SET_CONFIGURATION",07:40
xiangfushould I send another SETUP to device?like SET_INTERFACE?07:40
xiangfuhow can I read those two interface in 'poll()' ?07:41
lekernelxiangfu: there's no way to do it from RTEMS, you have to modify the softusb firmware (in milkymist/softusb-input)09:00
xiangfulekernel: yes. I am looking the softusb-input.09:00
xiangfu^ I comment all KEVT. the keyboards still working, don't know why.09:01
lekernelok... so what's your question?09:01
lekernelyou need to update the array with the softusb firmware binary in the RTEMS driver and recompile09:02
lekernelbtw this USB tutorial is good: http://www.beyondlogic.org/usbnutshell/usb1.shtml09:02
lekernelbut unless you're tracking down some USB bug that makes your keyboard not work at all, you do not need to touch softusb-input to implement keymaps09:04
xiangfulekernel: I got one keyboard, http://pastebin.com/CAR7Z9VR09:06
xiangfuit have two interfaces, one for keyboard, one for mouse.09:06
xiangfuwhen I plug this device to m1. the keyboard works fine. but mouse not working.09:06
lekernelphew. messy...09:07
xiangfuso I guess it's easy for make the keyboard and mouse both working in m1.09:07
lekernelno. USB is an horrible time sink. can you get the keymaps to work first? :)09:07
xiangfu:) yes. I will get the French keyboard tomorrow. then I will work on that.09:08
lekernelhave you understood how input.c works?09:09
lekernelbtw, all those two interfaces mean is that you have two endpoints09:10
xiangfuis this "make_usb_token(0x69, 0x081, usb_buffer);" means get data from endpoints "0x81" ?09:12
lekernelso unless there is again some trap in that imbecilic USB standard, all you should need to do is 1) parse all interface descriptors, and recognize those which are keyboard/mouse (there is already code for that) 2) store the (device type,USB port,endpoint) tuples and add them to a poll list09:12
lekernelhm, I don't remember09:13
lekernelbut really you are probably going to spend a lot of time if you dive into that09:13
lekerneljust to get a minority case (keyboard with integrated mouse) to work09:14
juliam_cis this channel only to ask if i adquire your products???09:16
xiangfufor now the software-usb only read '0x81  EP 1 IN", I think I just need add read '0x82  EP 2 IN' to poll(), then the (keyboard with integrated mouse) will working, right?  (just want to understand, if you say it's hard, I think I will just give up :)09:18
xiangfu(http://www.beyondlogic.org/usbnutshell/usb1.shtml) yes. I read that today. much better then usb.org :)09:19
lekernelxiangfu: no, because then you'll have the case where the endpoint numbers for the keyboard and mouse are different from that particular keyboard you have09:19
lekernelso you need to go through the interface parsing09:19
lekerneltold you... USB = mess09:19
lekernelall that just to get a stupid stream of keystrokes and mouse moves09:20
lekerneloverengineering at its best09:20
lekerneljuliam_c: no, but as far as I'm concerned it helps if people are doing an interesting project. porting MM SoC to some third party devel board doesn't really motivates me.09:21
juliam_cok thank you for your answer.09:33
kristianpauljuliam_c: if you have a MM1 yes, you can ask for support, but as topic said, it is also Milkymist SoC development channel :-)12:42
xiangfulestat: hi14:05
kristianpaulhola :)14:23
CIA-48flickernoise: Xiangfu Liu master * r68aea67 / src/performance.c : display patch author and name when Simple Performance - http://bit.ly/jRjKE614:35
lekernelxiangfu: if you really want to implement this, we need to find a way to disable it, and probably disable it by default14:38
xiangfulekernel: oh. yes.14:39
lekernelhonestly, it's just going to be annoying when used live14:39
xiangfuyes. but I even want it display something like 'Milkymist' for people know what they are using. :)14:39
xiangfulekernel: yes. VJs will not like this 'message' for sure.14:40
wolfspraullekernel: in which way would a 'pro user' or VJ typically use the m1?14:40
wolfspraulwill he pick some patches in advance?14:41
wolfspraulhow many?14:41
wolfsprauldoes he want to iterate over them, or stay with one?14:41
lekernelyeah, but we need to get the defaults right14:41
lekernelok, so for this 'patch sampling' application14:41
lekernelwhich displays the patch name14:41
wolfspraulthe default should be for the technically unsuspecting end user, so something works out of the box14:42
wolfspraulbut of course I fully agree that it's annoying for a VJ or any sort of controlled performance14:42
lekernelcan we just add a 3rd button on the control panel, which starts simple mode but with patch titles displayed?14:42
lekerneland have them disabled in all other cases14:42
wolfspraulwait too much and too fast for me. can you tell me how you think a VJ will use m1?14:43
wolfspraul1) pick 1 patch, or multiple?14:43
wolfspraul2) go through the patches in the performance? in which way? random, or planned sequence?14:43
wolfspraulok but he knows in advance which patches he likes14:43
wolfspraulhe writes down the names somewhere?14:43
wolfspraulor he makes one of those group/list files (I remember some feature like that...)14:44
lekernelbut if we want an 'out of the box' experience, we might as well have the name display disabled by default14:44
lekernelxiangfu: performance.c:326:3: warning: implicit declaration of function 'osd_event'14:45
wolfspraulif I pick patches in advance, most likely I will not want to see the name of the patch or author14:45
lekernelwhat I am proposing is:14:45
wolfspraulbut I may just click through patches visually to even decide which ones I like14:45
wolfspraulin which case I will want to see the names, so I can write down which ones I liked14:45
wolfspraulI need to look at some more features we have already, like lists, and also the commands in patches14:46
wolfspraulstill learning...14:46
lekernel1) simple performance mode, i.e. all patches found in online repository and switch with push button, without patch names displayed, which starts out of the box by default14:46
lekernelalso with a button on control panel14:47
lekernel2) simple performance mode with patch names displayed, which can be started with a click in the control panel14:47
lekernel3) normal performance mode with a pre-selection of patches14:47
wolfspraulsounds good14:47
xiangfusounds good14:47
wolfspraulwe will learn more details later and can finetune14:47
lekernelI didn't plan #2 initially, but apparently you and xiangfu want it14:48
lekernel#1 and #3 are working14:48
wolfspraulbut for that I need to understand the real use cases better first... so right now I cannot even seriously propose an improvement over what you suggested.14:48
wolfspraullekernel: no, not really. I really don't want to push you to implement features. I don't have full enough picture of use cases yet (though I'm definitely becoming more and more clear :-))14:49
wolfspraulso keep your great focus, and don't implement #2, and save some time14:49
wolfsprauland xiangfu and I are learning...14:49
lekernelxiangfu: void start_performance(bool simple) -> void start_performance(int mode), with 3 modes: simple, simple with patch names, normal14:49
xiangfulekernel: ok.14:49
xiangfulekernel: will fix the waring. sorry for careless.14:49
wolfspraulxiangfu: if lekernel thinks it's not good, we don't do it14:49
lekernelwell, it still has some use14:50
wolfspraulthere is no reason to rush all sorts of small features into the product now, it's more important to have one strong consistent end user feeling14:50
lekernelif you want to sample patches and note down patch names...14:50
xiangfuand 'screenshot' :)14:50
wolfspraulyes, that's what I had in mind, and hence my questions above14:50
lekernelwolfspraul: you can also use the patch editor to load and run a specific patch14:50
wolfspraulI was wondering how the VJ actually knows which patch is which, even to plan his performance.14:50
wolfspraulyes, but it's tedious14:51
wolfspraulclicking through and writing down what one likes sounds like 5 times easier14:51
lekernelso we can have that 'patch name display' feature, but disable it by default14:51
wolfspraulI even had the problem myself. there are some patches I like, but I can never find them again :-)14:51
lekernelxiangfu: wait14:51
lekernelmaybe we can do in another way14:52
xiangfu(reading the irc ...)14:52
lekernelwhat about displaying the patch name, no matter what, when e.g. F3 is pressed on the keyboard?14:52
lekernelso you can find the name of that patch you like and is currently running, at any time14:53
wolfspraulsounds like a good idea. need to think more but sure - good!14:54
lekernelshould be easy to and doesn't clutter the control panel with even more buttons14:54
wolfspraullekernel: oh, the other thing I had in mind was m1 as a tool to fill the empty space between talks at conferences14:54
lekernelthat was rejon's idea, no?14:54
wolfspraultotally different use-case, I thought about it because of LGM14:54
wolfspraulso in that use case, you actually want to go to the next patch automatically, after let's say 2 minutes or 5 minutes14:55
wolfsprauland then you want to use the chance for some promotion, and display "Milkymist - patch_name by patch_author" for a good 10 seconds or so, after switching to the next one14:55
wolfspraulbut of course that's a different use case14:55
wolfspraulwe need to be careful that the product is not hard/un-intuitive for all use cases in the end14:56
wolfspraulin that case m1 is more running only to provide some background entertainment, and people will look at the display or not14:56
wolfspraulor glance at it briefly, then continue chatting, etc.14:56
wolfspraulso you want to use that chance that they see the name 'Milkymist' :-)14:56
lekernelwolfspraul: use the twitter wall14:56
lekernelnot only they would see it, but also tweet it to get their messages on it :-)14:57
wolfspraulok I need to try this all out in detail14:57
wolfsprauljust thinking about some use cases now14:57
lekernelanyway. for the patch title, display it on F3 (or another key) press.14:58
wolfspraulthere is still the case without Ethernet14:58
wolfspraulyes, good [f3]14:58
lekernelatm one of the features that I think has higher importance than those is localization14:58
lekernelI can't approach a French store with something entirely in English, for example14:58
lekernelmaybe F1..15:00
lekernelthen we can have:15:01
lekernelF1 -> display patch title immediately15:01
lekernelF2 -> enable/disable patch title display at patch switch15:01
lekernelF3 -> enable/disable automatic patch switch after delay15:02
lekernelF2 and F3 only active in simple performance mode, F1 active all the time15:02
lekernelwhat about that?15:02
wolfspraulwow a lot. I can only give feedback after I use this for some time. but sure, sounds good!15:02
lekernelwell you ask for it, now you get it15:02
lekernelit's not that much actually15:03
xiangfuthere is a 'automatic patch switch' ?  how it work?15:04
lekernelno, there isn't15:04
lekernelbut wolfspraul wants one15:05
xiangfuthen understnad.15:05
xiangfuI will finish the 'F1 -> display patch title immediately' first, then create a snapshots images :)15:07
lestati'm a little confused about this http://www.rtems.org/wiki/index.php/Building_the_RTEMS_toolset_on_Ubuntu#Assumptions15:08
lestatis it ok to replace powerpc with i386 or x86_64 ?15:08
lekernellestat: http://www.milkymist.org/wiki/index.php?title=Flickernoise_build_instructions#Automatic_build15:10
xiangfulestat: depends what you want? for milkymist one. it's lm3215:10
lestatah thanks15:12
wpwraklekernel: here's your competition: http://hackaday.com/2011/05/08/synkie-the-modular-synth-for-video/18:40
wpwraklekernel: however marvelous your technology, you can't beat that round oscilloscope ;-)18:41
wpwraklekernel: oh, about displaying stuff. if you run out of buttons, you could also display things only while the button that triggered the switch is being pushed. e.g., on push, switch and show the OSD, on release, clear the OSD.18:43
lekernelah yeah, I've heard of those guys years ago through the /tmp/lab18:48
azonenberglekernel: I won't be om Europe any time soon, sorry21:02
lekernelok. was just in case :)21:03
azonenbergBut i'll be sure to keep you guys updated on my progress21:03
azonenbergI ran a test this weekend of my photoresist (thinned with acetone to make it less viscous) spin-coated on silicon21:03
azonenbergWorked beautifully at 60um feature sizes, the 15um run i thinned it a little too much but most of it still resolved21:04
azonenbergI didnt try the 5um process though21:04
azonenbergi dont have any polished wafers21:04
azonenbergand unpolished lapped finish is so rough that 5um features won't resolve21:04
azonenbergSo the next step is to wait until payday and buy a batch of wafers :)21:05
azonenbergi'm looking at getting two <100> SSP 100mm wafers for surface micromachining work, and ten 1cm x 1cm square <110> dies21:06
azonenbergFor reasons unknown, <110> is quite a bit more expensive21:07
rohazonenberg: what kind of equipment do you have and use?21:28
azonenbergroh: A hack job lol21:29
azonenbergSpin coater is made from an electric drill, sanding wheel, and a 2x421:30
rohazonenberg: so you are basically working on semicond. manuf. equipment, redneck-style, homebrew21:31
lekernelroh: yes ... you should check the irc log from a couple of weeks ago :-)21:32
azonenbergroh: mask aligner is a microscope plus some electrical tape21:32
azonenbergmy exposure lamp is a AA maglite21:32
azonenbergthough i'm getting a UV led next payday21:32
lekernelroh: http://colossus.cs.rpi.edu/~azonenberg/papers/litho1.pdf21:32
azonenbergAnd also, my goal is MEMS right now21:32
azonenbergCMOS comes down the road21:33
wpwrakazonenberg: are you a son of McGuyver ? :)21:33
azonenbergwpwrak: Lol, no21:33
azonenbergNor am i jeri ellsworth's brother21:33
azonenbergJust another random geek21:33
lekernelwell, in some ways your work is better than jeri's. starting with having some documentation and caring about content licenses.21:37
azonenberglekernel: Content licenses?21:38
azonenbergWhen did i ever mention that21:38
azonenbergOr she, for that matter21:38
rohazonenberg: nice21:39
lekerneldidn't you say you wanted your stuff to be under creative commons? or bsd?21:39
azonenberglekernel: Ah, yes i did21:39
rohi wonder what we could do with some used equipment and people like you and jeri21:39
azonenbergProbably CC-BY for the documentation and BSD for code21:39
azonenbergmask art is TBD as i dont know of any existing FOSS licenses for mask work21:40
azonenbergi'd need to think of what will fit best21:40
lekernelJeri never mentioned that - actually, she doesn't care the slightest bit about open source21:40
azonenbergcc, treating it as art? BSD, treating the cad fils as code?21:40
azonenbergroh: I want to build myself a full fab eventually using nice equipment but for now i'm going "redneck style" as you put it21:40
azonenbergi cant afford a SEM or commercial mask aligner etc lol21:40
azonenbergBut i sure can afford a bit of duct tape :P21:41
rohi see. will for sure give interresting results.. was just already thinking a step ahead how to make stuff more repeatable and reliable21:41
rohmaybe some stuff is more simple than it seems and we only need a few precisely manufactured parts.21:41
azonenbergThat's my thought as well21:43
azonenbergCurrent goal is a MEMS comb drive end of the calendar year21:43
rohi got a lasercutter and a cnc mill around. werner has a mill too. and there are lasercutters and simple mills in lots of hackspaces. would be nice to have some way to replicate your results21:43
azonenbergEnd of summer i want bulk micromachining worked out21:43
azonenbergi.e. build the silicon mechanical structure21:43
rohwow. tight plan.21:43
azonenbergthen i'm giving myself till the end of the calendar year to build a DC sputtering system or thermal evaporation rig21:43
azonenbergfor metal deposition21:43
lekernelwhy not RF?21:44
lekernelonce you got that far, building a RF supply doesn't look so hard :-)21:45
lekernelyeah, I've read it makes some aspects of the sputtering easier/better21:46
lekernelthere's some info on http://www.phasis.ch/index.php?option=com_content&view=article&id=57&Itemid=6521:47
lekernel"The use of a radio frequency (RF) generator is essential to maintain the discharge and to avoid charge build-up when sputtering insulating materials such as PZT."21:47
azonenberglekernel: I'm considering RF for hardware rev 221:53
azonenbergrev 1 the goal is "make it work"21:53
azonenbergrev 2 is "make it work well"21:53
lekernelok ... makes sense21:53
wpwraklekernel: so, how much optimizing will MM1 need to fit in a chip made with a 5 um DIY process ? ;-)22:04
azonenbergwpwrak: Lol22:08
azonenbergQuite a bit22:08
azonenbergBigger question, will i be below 5um by then? :P22:08
azonenbergMy roadmap already goes down to 1-2um22:09
azonenbergThe problem is scaling up to bigger die sizes22:09
azonenbergi.e. >100 \lambda across22:09
wpwrakazonenberg: 1-2 um .. so if you keep the pace, it'll be 200 nm by 2012, 40 nm by 2013, and 8 m, by 2014 :)22:11
wpwrakerr, 8 nm22:11
azonenbergwpwrak: Lol22:11
azonenberg500nm is the smallest i expect will be even possible with my current process22:11
azonenbergSince that's the smallest thing i've even been able to *see* with these optics22:11
azonenbergBut realistically, since my current focus is MEMS and not CMOS22:12
azonenbergHow much smaller do you need?22:12
wpwrakthe 386dx was made with a 1 um process. 275 ktransistors.22:12
azonenbergSo for hobbyists, the current scale (or a little further) is probably adequate22:13
azonenbergThe big thing is expanding die sizes22:13
wpwrakdue to lens distortions ?22:14
azonenbergNo, field of view22:14
azonenbergI cannot make the FOV bigger than it is now with the current process, so i'll need to design a scanning system22:14
azonenbergusing two motorized stages (one for mask and one for die)22:14
azonenbergkeeping those in sync +/- 1um for a 2-5um process22:15
azonenbergover what could be a pretty long exposure22:15
azonenbergThe other fab technique i'm considering is more involved but may give better results in the long term22:15
azonenbergLaser direct write onto metalized microscope slides to make metal-on-glass masks22:15
azonenbergThen contact lithography 1:1 using those22:15
wpwrak1 um mechanics is tricky. an easier approach could be to do basically multi-chip on the same substrate. do high-density blocks and connect them with low-density links. that way, you can afford more mechanical tolerance.22:16
azonenbergYes, i considered that too22:16
azonenbergSo step multiple exposures across22:16
azonenbergusing big fat bond pads to connect22:16
wpwrak"laser direct" also sounds interesting :)22:17
azonenbergBlu-ray sled on a perpendicular axis22:18
azonenbergdirect write onto the mask22:18
azonenbergYou can either do 1:122:18
azonenbergOr, say, use the laser to make a 25um scale mask22:18
azonenbergthen shrink 10x using the projection system to get 2.5um22:18
wpwrakwhat's the focus range of such a blue-ray laser ? maybe you could also spin the laser around and do the high-resolution work via time22:19
wpwrake.g., a pendulum. laser could be fixed or the pendulum. then synchronize with the pendulum's movement and modulate the beam accordingly. that might give you pretty good resolution along one axis.22:21
wpwrakmaybe the sled can do the other axis :)22:21
wpwrak(pendulum) or if the chip is the moving part, just spin it. mechanically probably even easier.22:23
azonenbergNope, i dont think so22:28
azonenbergThe sled already has one axis22:28
azonenbergi just need a single-axis linear stage22:28
azonenbergFocus range is pretty short22:28
azonenberggood focus will need very good planarity i think22:29
wpwrakhmm, then spinning may not be so good. what's the track-to-track spacing in BR ?22:31
azonenbergno idea22:31
azonenbergI havent looked into it in much depth yet22:32
azonenbergprojection was the rev1 option because it was so much easier to build22:32
wpwraka BR x/y laser plotter ought to be fun :) well, maybe start with DVD. cheaper failed experiments ;-)22:36
azonenbergWell, here's the issue22:36
azonenbergDVD is infrared22:37
azonenbergbluray is 405nm22:37
azonenbergWhich is right in the peak sensitivity range of most photoresists22:37
azonenbergI'm not patterning by ablation22:37
azonenbergthat needs way too much power22:37
wpwrakah, i see. so it's not only for the finer structures22:37
azonenbergthis is photochemical22:37
azonenbergThe photoresist needs ~200 mJ / cm^222:37
azonenbergSo even a 1 mW laser is plenty22:37
azonenberg200 sec for a cm^2 die22:38
azonenbergin fact, something more powerful like a bluray will probably have to be fired in few-ns pulses to keep it from dumping too much power and causing heat damage to the mask lol22:38
wpwrakmount a big fan on top of it :)22:41
azonenbergStill, localized heating22:43
azonenbergThe concern is thermal gradients22:43
azonenbergUneven expansion22:43
azonenbergand the mask not being the same shape after it cools off22:43
azonenbergi'm not using super-expensive ultra-low-thermal-expansion glass for the mask blanks :P22:43
wpwrakhmm yes. so it's ns pulses then.22:51
kristianpaulazonenberg: you have a blog/wiki/mail-list or something  to follow your work?23:44
kristianpaulwich is great btw :)23:44
--- Mon May 9 201100:00

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