#avr | Logs for 2013-02-16

Back
[00:01:03] <Xark> I don't find that all too surprising.
[00:03:19] <Casper> yeah but you still are surprised to see the difference
[00:03:52] <Casper> it'S like...
[00:05:41] <Casper> firefighter: "Attention attention, for the unit 443, 2543, 643 and 244, rendez-vous at 1234 some street for an alarm" "443, we're on our way!"
[00:07:50] <Casper> same call for the police: "hmm vehicle 29 heee can you go to 1234 some street? heee the alarm compagny called for a smoke alarm and eeeeeee... hmmm... well, the firefighters are on their way" "hmmm... well, ok... what's the address again?" "mmm 1234 some street.... .... ...." "hmmm ok... we'll go..."
[00:15:11] <Casper> it's funny how store owners are impossible to track down
[02:57:33] <krphop> gah
[02:57:51] <krphop> i can't seem to get my uart to work properly reading data
[02:58:08] <krphop> i can send data fine
[02:58:27] <krphop> but when i send data, then immediately try to read a response, my message is all garbled
[02:58:55] <krphop> not sure if its due to a timing issue, or due to the fact that the input buffer is so small i cant read it fast enough
[03:04:04] <OndraSter_> huh
[03:04:07] <OndraSter_> read right after you send?
[03:04:13] <OndraSter_> UART is asynchronous
[03:04:16] <OndraSter_> the data can come any time
[03:04:19] <OndraSter_> not right when you send them
[03:04:21] <OndraSter_> that is SPI :)
[03:04:30] <krphop> well, i have a wifi module on the other end of hte uart
[03:04:43] <krphop> so i'm sending the wifi module a command, and expecting data back
[03:04:46] <OndraSter_> you want to be reading data when receive flag is set
[03:05:01] <OndraSter_> aka either polling it in a loop or interrupt
[03:05:08] <krphop> polling in a loop
[03:06:05] <krphop> here's the poller - http://pastebin.ca/2314367
[03:06:51] <OndraSter_> what ?
[03:07:09] <OndraSter_> what does uart_readchar look like?
[03:07:44] <krphop> http://pastebin.ca/2314368
[03:08:11] <OndraSter_> ok
[03:08:22] <krphop> actually, that would return the whole line, not just a char on the buffer, not?
[03:08:42] <OndraSter_> uart readchar returns single byte
[03:11:03] <krphop> ok
[03:15:23] <krphop> so i'm guessing this is not the proper way to read lines from uart
[03:17:09] <Grievre> krphop: The UART only stores 1-2 bytes for you at a time, you want to pull them out as fast as possible
[03:17:25] <Grievre> krphop: the UART gives you error bits, check them.
[03:18:06] <krphop> is there a faster way to just dump data from uart to a array or string?
[03:55:08] <RikusW> http://img51.imageshack.us/img51/8894/m32u2jig.jpg
[04:01:14] * RikusW just discovered a nice ping test do -> /msg yournick :-D
[04:56:29] <Malinuss> I could use a clever mind to help me code this in a better fashion: Right now if I send a logic 1 I send high for x usec and low for xusec, while a logic 0 would be high for y usec and low for usec... Now what I do on the receiver, is to have a flag that changes as an interrupt, whenever the pin changes.. the flag change is read in the main loop, and triggers a function that check whatever that pin is high or low, if it's high, it checks how man
[04:56:29] <Malinuss> y timer overflows there has been, if it fits either value (the x usec or y usec) if it does, well we got either a logic 1 or 0, then it resets the overflow counter.
[04:58:30] <drobban> to much text for me to read, what is it you want to do?
[05:00:41] <Malinuss> drobban, haha sorry it became longer then I wanted it to... I wan't to measure time between two external interrupt changes, down to at least 10usec.
[05:01:43] <Malinuss> drobban, right now I just change a flag on the interrupt, and that makes the overflow counter reset, and on the next change, I see how many overflow there is
[05:03:31] <Grievre> Malinuss: sorry, what does your input signal look like again?
[05:04:11] <Malinuss> Grievre, high for 375usec and low for 375usec = logic 1.. high for 500usec and low for 500usec = logic 0
[05:04:37] <Grievre> Malinuss: interesting
[05:04:52] <Grievre> Malinuss: what is this signal coming from?
[05:04:53] <Malinuss> Grievre, fast enough for what I want with it (I'm using the cheap 315mhz RF modules)
[05:05:53] <OndraSter_> Malinuss, no Manchester? :(
[05:05:57] <Malinuss> Grievre, with this method, I can send at about 20bytes/sec, even trough 3 walls and 20m, I only have like 1-2% packet loss... Pretty good for a 1.2$ module
[05:06:27] <OndraSter_> the NRF24L01... probably a bit lower range, but 2Mbit and $2.5 :)
[05:06:33] <OndraSter_> and does all the encoding for you
[05:06:34] <Malinuss> OndraSter_, the module is pretty picky about the "DC balance" apparently... That's why I choose this method..
[05:06:47] <OndraSter_> Malinuss, manchester has got perfect DC balance
[05:06:56] <Malinuss> OndraSter_, but doing your own encoding/packet system is the only fun thing about this ;D
[05:07:08] <Grievre> Malinuss: so wait, those logic 1s and 0s are modulating a carrier?
[05:07:08] <OndraSter_> :F
[05:07:12] <Grievre> or that's the raw signal?
[05:07:19] <Malinuss> Grievre, raw signal
[05:07:45] <OndraSter_> OT: http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/13012_493393497387383_1019727444_n.jpg
[05:08:24] <Malinuss> OndraSter_, also I'm pretty happy with 20bytes/sec, using "malinus encoding" ;D
[05:08:32] <Grievre> Malinuss: why not modulate a carrier? o.o
[05:08:50] <Malinuss> Grievre, that module can't do that, that's why
[05:09:01] <Grievre> uh
[05:09:16] * Grievre is confused
[05:09:43] <Malinuss> Grievre, the module works like this: you give it high - it sends, you give it low - it doesn't send...
[05:10:05] <Grievre> Malinuss: oh so you ARE modulating a carrier...
[05:10:17] <Grievre> Malinuss: can you give me the part number of this thing?
[05:10:46] <Malinuss> Grievre, no, but you can get this :) http://www.ebay.com/itm/200895306223?_trksid=p5197.c0.m619
[05:11:10] <Malinuss> you can try and google "FS1000A" but you won't get much more info
[05:11:16] <Malinuss> there are no real datasheets for those things
[05:11:42] <Malinuss> fun fact: they spelled data backwards on all the transmitters
[05:14:19] <Grievre> Malinuss: okay why don't you connect your logic signal to the input capture pin, and set a pin change interrupt on it
[05:14:38] <Grievre> set the input capture to capture rising edges, and the pin change interrupt checks to see if it's a falling edge, and if so measure the time from the previous rising edge
[05:14:52] <Grievre> or you can set it to capture both edges and store the old capture value to compare
[05:14:57] <Malinuss> Grievre, that is what I'm doing now :)
[05:23:50] <Malinuss> OndraSter_, I don't really understand the advantage of using the manchester encoding, mind enlightening me?
[05:27:19] <OndraSter_> Malinuss, perfect DC balance
[05:27:37] <OndraSter_> and does not care about voltage levels - but about rising/falling edges :)
[05:27:51] <OndraSter_> thus it is much less prone to errors I'd guess
[05:27:55] <drobban> Malinuss: OSK.
[05:28:13] <Malinuss> drobban, OSK?
[05:28:13] <drobban> On/Off shift keying signal
[05:28:47] <drobban> sounds like your transmitter uses OSK/ASK.
[05:29:37] <Malinuss> drobban, oh I see, thanks
[06:26:30] <megal0maniac> Hi all. Quick question for those in the know...
[06:27:17] <Steffanx> Yes, no
[06:28:55] <megal0maniac> I have a laptop with a dead backlight. All the connections are good, and it actually worked once since I brought it home, but not again. The inverter board is driven by a MP1010B. Open Lamp detect (fault detect) is high, which is good, but chip enable is at 1v75, which means it's shut down. Does anyone know how these things typically work?
[06:29:03] <creep> h
[06:29:17] <megal0maniac> I'm tempted to just connect CE to Vin and see what happens - it runs at 5V
[06:29:36] <creep> it works when you push the power button
[06:29:44] <megal0maniac> No it doesn't
[06:29:46] <creep> the backlight turns on
[06:29:47] <megal0maniac> :)
[06:30:27] <creep> if not, then they change the backlight
[06:31:22] <megal0maniac> But the backlight works. I'm trying to find why the inverter driver is shut down
[06:31:46] <megal0maniac> OndraSter_: You should know this
[06:32:17] <creep> oh, when the reeed senses display open it goes to standby
[06:35:45] <megal0maniac> Good idea, but no cigar :( Toggling the switch lights up the display (sort of) for like 50ms
[06:37:57] <creep> short circuit
[06:38:15] <creep> ccfl works with 1500-3000V
[06:41:49] <megal0maniac> Shorting CE to Vin creates a high pitched noise. Inductance noise. But no backlight :/
[06:42:08] <Steffanx> :)
[06:42:45] <OndraSter_> CCFL works on 600 - 800V*
[06:42:49] <OndraSter_> the ones in screens
[06:43:23] <OndraSter_> megal0maniac, I always use some resistor to try pulling the pin up
[06:43:25] <OndraSter_> rather tying it to something
[06:44:43] <megal0maniac> OndraSter_: Good point. It's weird that it's sitting at 1.75V
[06:44:54] <creep> well they need 1.5-3kV for cold start i remember
[06:44:56] <megal0maniac> But tying it to Vin doesn't work
[06:45:18] <OndraSter_> creep, start up maybe
[06:45:20] <creep> so that can easily short to soemthing
[06:45:25] <OndraSter_> I don't have HV scope :)
[06:45:41] <creep> well, 30kV = 10mm
[06:45:49] <creep> approx
[06:47:43] <creep> in non humid air of course
[06:47:53] <megal0maniac> creep: Nothing on the inverter board looks like it's had a few kV through it :)
[06:48:16] <megal0maniac> There was a suggestion to connect it to one of those little CFL inverters you get with gaming PC lights
[06:48:37] <creep> it is only 4W so it will only do little damage and throw little lightning bolts to some gnd
[06:49:19] <creep> this problem can be fixed with an insulating tape
[06:54:03] <megal0maniac> Really?
[06:56:16] <megal0maniac> Just found the tiny blue inverter. Is it safe?
[06:56:26] <creep> it is much safer than you are
[06:56:30] <creep> ^^
[06:57:02] <creep> haha 4W... hmm let's see, it will burn tiny holes in your skin
[06:57:30] <megal0maniac> But can I kill the tube?
[06:57:42] <creep> yes it is fragile
[07:03:26] <megal0maniac> http://reviews.ebay.com/Diagnosing-laptop-backlight-problems?ugid=10000000005308726
[07:04:25] <megal0maniac> I've made the connector fit...
[07:04:56] <megal0maniac> "I use an aftermarket dual CCFL product that gamers buy to light up the insides of their computer cases. This is a perfect source of two, known-good, test CCFLs and a known-good test inverter with dual outputs."
[07:06:08] <creep> leds are better, though they seem to only be good upto 24 bit color, ccfl can do 30 bit ;<
[07:07:57] <megal0maniac> It's hooked up... Should I do it?
[07:10:54] <megal0maniac> Oh, one last thing before I blow something up. Do CCFL tubes care about polarity?
[07:12:40] <megal0maniac> http://i.imgur.com/l4tajrCl.jpg
[07:13:49] <megal0maniac> Anyone?..
[07:14:47] <megal0maniac> IT WORKS
[07:25:10] <theBear> holy crap ! what is that thing ? hehe, and generally they shouldn't care about polarity, conceptually, tho often in lappies it's good to follow 'cos of hv/lv suitable wiring/connectors, and dc, there's a few arguments eitherway, but this isn't dc
[07:30:32] <megal0maniac> theBear: Well it works. It's dim, but it works. Still don't know whether the inverter or the backlight is the problem though XD
[07:32:58] <megal0maniac> The picture is significantly darker on the left side of the screen though
[07:36:31] <theBear> 4wires/2connectors for 2 seperate tubes ? you can swap them to confirm dead tube or dead inverter... and either way don't test too long, things like arcing could be actively damaging stuff you can't see or the struggling inverter
[07:36:59] <theBear> if it's 4 wires in 1 connector you can juggle wires with a tiny 'prick' and some mad skills..
[07:38:23] <theBear> also you can test 'both' sides of a dual inverter by switching around one tube with nothing connected to the 2nd output, tho be aware you have to 'see' if it works before the inverter shuts down from notube/overvoltage protection
[07:39:00] <theBear> and it's generally best to not change any of this stuff while powered, all that hi freq stuff causes all kinds of ugly arcing and minor burns
[07:48:12] <megal0maniac> It's only a single tube & single inverter. The dual one is what I used for testing, it's for a case fan :P
[07:48:42] <megal0maniac> I'm referring the client to a company who deals with this stuff, and stocks all the parts. I can't really test much...
[08:12:11] <theBear> but err, a single tube screen can't make half the screen dim without physical/non-tube/lcd problems
[08:12:30] <theBear> sure it's not two tubes with one connector ?
[08:16:05] <theBear> hmm.... this week the water smells like chlorine... which means in answer to a question several weeks ago, yes i am sure i can smell the fluoride from across the room now and again when they top it up :)
[08:16:44] <theBear> i mean, surely my skin doesn't smell like chlorine, at least not before i had a shower
[08:16:55] <theBear> never smelled it like this before tho.. hmm....
[08:17:42] <theBear> oops, wrong channel, i think
[08:17:54] <theBear> hehe, not you rikus :) welcome
[08:18:05] <RikusW> hi theBear
[08:18:27] * RikusW found out handcrafting Gerber isn't that hard :)
[08:18:42] <theBear> like, with a chisel ? <grin>
[08:18:52] <RikusW> notpad :-P
[08:18:52] <Steffanx> Sounds useless RikusW
[08:18:57] <theBear> oh silly me, a handdrill, of course
[08:19:10] <theBear> Steffanx, often handy for a tiny modification
[08:19:12] <RikusW> Steffanx: I had to do a little edit on the GM1 layer
[08:19:21] <theBear> it's not exactly rocket-language-science :)
[08:19:51] <RikusW> ended up rewriting it and halving the amount of lines :)
[08:19:51] <Steffanx> aka useless :P
[08:20:11] <RikusW> tell me that when I've made a pcb editor ;)
[08:20:18] <theBear> ok
[08:20:25] <theBear> but only for the literalicy of it all
[08:21:01] <RikusW> DXP still use deprecated painting...
[08:21:17] <RikusW> instead of G36 G37
[08:24:17] <RikusW> Steffanx: so go ask your %MOMM how much %FSTAX you pay to the %FSLAX gvt :-D
[08:24:31] <RikusW> or go read the gerber spec ;)
[08:24:41] <Steffanx> I've better things to do
[08:25:00] <RikusW> its simpler than an AVR ds
[08:58:18] <creep> yea
[08:58:18] <creep> http://revoemagblog.wordpress.com/2012/07/25/how-to-spot-a-real-gamer-girl/
[09:00:04] <OndraSter> that is a useful link
[09:00:19] <OndraSter> lol
[09:33:07] <Malinuss> would there be a smarter way to implement manchester encoding, then simply having a timer overflow interrupt at 2x the speed I want to send bits with, and them simply, at each interrupt, figure if I should change the logic level or not (depending on current position, and the next bit to send)?
[09:33:53] <Malinuss> current position = whatever the next change will send a bit, or change it to the right level, so the next change will send the right bit
[09:48:05] <OndraSter> Malinuss, basically: set up two interrupts: OC and OVF
[09:48:12] <OndraSter> OCR will be at half (128)
[09:48:22] <OndraSter> and it will toggle the bit
[09:48:29] <OndraSter> and on ovf you will load new bit :P
[09:48:39] <OndraSter> why are you switching to manchester?
[09:48:43] <OndraSter> Malinuss-encoding does not work easily? :D
[09:48:53] <creep> http://thebrowntweedsociety.com/2012/02/12/tbts-meme-o-the-week-3/
[09:49:00] <creep> usb2scsi ?
[09:49:29] <r00t^home> creep: didn't you read the post by somebody who connected a SANDISK cf-card to an actual SAN?
[09:50:03] <r00t^home> creep: also, that is a printer port, and none of the adapter actually work
[09:50:07] <Malinuss> OndraSter, malinuss-encoding works just fine, I just do it because for the sake of learning.... I'm not sure I'm following you - so I will toggle the bit on each compare? Pleas explain :)
[09:50:17] <OndraSter> well
[09:50:30] <OndraSter> OC will happen (almost) exactly in the middle
[09:50:38] <OndraSter> and no matter what the status is, you want to *toggle* the bit
[09:50:46] <OndraSter> and on ovf you want to load the new bit
[09:51:03] <OndraSter> and on OC it will toggle again
[09:52:14] <Malinuss> OndraSter, yep that sounds about right, think I'm following you know.. I don't agree that I should toggle each time in the mid though - only if I want to send the same bit, I just send
[09:53:59] <OndraSter> huh?
[09:53:59] <OndraSter> if it is logic one, in the middle of the bit it will go 1->0
[09:53:59] <OndraSter> if it is logic zero, it goes 0->1
[09:53:59] <OndraSter> so it toggles in the middle
[09:53:59] <OndraSter> ALWAYS
[09:59:18] <Horologium> creep, that is usb2parallel, however...
[09:59:27] <creep> :)
[10:00:12] <Malinuss> OndraSter, looking at this : http://en.wikipedia.org/wiki/File:Manchester_encoding_both_conventions.svg I would say, if you want to send 0->1 or 1->0 then you shouldn't toggle in mid?
[10:02:15] <Malinuss> OndraSter, or is there something I don't understand?
[10:08:38] <OndraSter> Malinuss, eh?
[10:08:38] <OndraSter> every overflow = send a bit
[10:49:12] <Malinuss> OndraSter, yeah, but I shouldn't toggle each "clock click" (half overflow), only if I want to send the same bit (0, 0 or 1,1) in a row.. right?
[11:04:52] <OndraSter> Malinuss, eh?
[11:04:52] <OndraSter> if you want to send 110010 you still do
[11:04:52] <OndraSter> -_-__-_--__-
[11:35:06] <Malinuss> OndraSter, yeah so if I want so send __ I shouldn't toggle in between the changes, because then I would have the oposite and would just end up sending -_
[11:45:12] <OndraSter> if you want to send 00 you send _-_-
[14:18:39] <creep> usa: please give back our spy plane http://www.youtube.com/watch?v=N78IlNW7pNk
[14:30:43] <r00t^home> creep: didn't you read the post by somebody who connected a SANDISK cf-card to an actual SAN?
[14:31:00] <creep> no
[14:31:41] <r00t^home> i tried googling it up but didn't manage to find it
[14:32:03] <r00t^home> required a lot of adapters to get from cf to scsi, and performance was... you guess... ;)
[14:32:59] <creep> i assume you can do it with a hdd connector, and maybe zener diode
[14:33:11] <r00t^home> cf to scsi? :D
[14:33:21] <creep> no, to ide
[14:33:35] <r00t^home> cf to ide requires no glue logic at all
[14:33:50] <r00t^home> adapters are $2 on ebay
[14:34:11] <r00t^home> s/logic//
[14:34:37] <creep> not good enough?
[14:39:15] <Malinuss> why is atmel down :(
[14:39:27] <creep> aliens :(
[14:39:30] <Malinuss> oh it's up again!
[14:40:25] <Casper> CF -> ide (pin changer, no electronics involved so no degraded performances) -> scsi
[14:40:35] <Casper> so little lost in performance
[14:45:00] <Xark> I converted my old iPod mini (which had a 4GB HDD) to use a 16GB CF. Works great. :)
[14:52:59] <creep> mmm nice http://www.microsatacables.com/sd-sdhc-mmc-to-2-5-44-pin-ide-male-adapter-converter/#.UR_uHXQo6Hs
[14:54:00] <turutk> hi i am a newbie at avr coding and have this question. how can i prevent interrupts while running an interrupt routine
[14:54:13] <Amadiro> turutk, you set the global interrupt disable flag.
[14:55:04] <turutk> Amadiro: then enable it at the end of the routine?
[14:55:04] <Amadiro> usually people use cli() from avr/interrupts.h
[14:55:10] <Amadiro> yes.
[14:55:20] <Amadiro> sei() enables them again
[14:55:30] <jacekowski> you don't need that
[14:55:42] <jacekowski> interrupts are disabled by default in standard AVRGCC interrupt handler
[14:56:00] <Amadiro> cool, I didn't know that.
[14:56:10] <turutk> i tried that but it did not solve my problem
[14:56:27] <turutk> i guess i have an another problem which i cannot identify
[14:56:29] <jacekowski> unless you set it as ISR_NOBLOCK
[14:56:31] <jacekowski> http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html#ga44569cb914d2aaf8fbb436f8f7c4ca68
[15:00:25] <turutk> i am having trouble driving this led matrix
[15:14:38] <turutk> i have my interrupt working. i can set a led to blink 5 times a second. when i add my other code to interrupt, the led does not blink and my code does not run properly
[15:20:28] <Casper> stack overflow?
[15:21:28] <turutk> too noob to know what that is
[15:21:57] <Casper> basically
[15:22:36] <Casper> each time you enter a function, it eat about 6 bytes of ram
[15:22:49] <Casper> that goes to the stack
[15:23:01] <Casper> the stack is part of the ram
[15:23:45] <Casper> at the begening of the ram, you have your global variables, but all those that get created later on goes to the stack
[15:24:13] <Casper> so the global fill from the bottom up, and the stack fill from the top to bottom
[15:24:21] <Casper> can you guess what happend when you ain'T carefull? :D
[15:24:54] <Casper> the stack overwrite the global variables, which also include the program counter (where is the next instruction to execute)
[15:26:17] <Casper> so
[15:26:18] <turutk> stack overflow sound very logical
[15:26:33] <Casper> if you have lots of functions calling other functions.... it does adds up
[15:26:33] <specing> probably forgot to live a while(true) loop in main
[15:26:44] <Casper> that can also be an issue
[15:26:47] <turutk> i don't know how i managed to do that
[15:27:05] <turutk> i have one empty while loop
[15:27:11] <turutk> while(1){}
[15:27:54] <specing> post the code
[15:28:01] <specing> not on pastebin though
[15:28:47] <Casper> why not?
[15:28:50] <turutk> each time interrupt occurs my global variable should increase one. some times it does increase once or twice (up to 5 or 6) but usually it resets to 0
[15:29:02] <turutk> specing: where else can i post?
[15:29:12] <Casper> turutk: are you sure you actually defined it correctly?
[15:29:23] <turutk> volatile unsigned char
[15:29:31] <specing> we dislike pastebin
[15:29:48] <specing> possible choices are: pastebin.ca, sprunge.us, pastie.org, ...
[15:30:05] <Casper> volatile... isn't it static unsigned char? I forgot... been a long time since I actually coded
[15:30:23] <specing> doesen't need volatile if it isn't shared
[15:30:55] <turutk> specing: doesn't work with or without volatile so i just left it be
[15:31:29] <Casper> or...
[15:31:43] <Casper> be sure that your interrupt isn't taking too long
[15:31:51] <Casper> else you might miss some interrupts
[15:31:57] <yunta> are you sure you'r uc is not resetting for some reason ?
[15:33:49] <turutk> http://pastie.org/6198285
[15:34:12] <turutk> Casper: i don't think it takes long
[15:34:37] <turutk> Casper: i slowed down the interrupts to 60 per second to 5 per second in case
[15:35:13] <Casper> shouln't be long
[15:35:23] <Casper> and shouln't cause a stack overflow
[15:35:33] <Casper> I'm just unsure if you need static or volatile
[15:36:20] <turutk> i am suspecting stack overflow
[15:36:55] <specing> COLUMN |= (1 << asd); //Turn on the necessary column
[15:37:05] <specing> you are turning on all the columns
[15:37:13] <Casper> you don't have enought variables or function depth
[15:37:17] <Casper> it ain't the stack
[15:37:32] <specing> oh wait, no
[15:40:50] <turutk> i don't know how i managed to do but now the first column blinks most of the time.
[15:41:20] <turutk> then it scans other column as it is supposed to
[15:41:32] <turutk> then everything breaks. all leds turn off
[15:42:56] <turutk> so most of the time asd stays 0. occasionally it decides to increment
[15:44:39] <Casper> turutk: you are aware that the bit order is the most significant bit first right?
[15:44:57] <Casper> ROW = 0b01010101; //Add row data (should fill 2nd 4th 6th and 8th row completely when multiplexed)
[15:45:10] <Casper> 76543210 ← bits
[15:45:32] <Casper> you seems to have inversed the bits there, but that ain't related to your issue
[15:45:36] <Casper> also
[15:45:43] <turutk> Casper: i know that
[15:45:50] <Casper> be sure that you actually have a decoupling capacitor near your power pin
[15:46:17] <turutk> Casper: i wired in a way that leftmost bit controls the leftmost led
[15:46:44] <turutk> i am powering from usbtiny. do i still need to do that?
[15:46:44] <Casper> ok
[15:47:01] <Casper> just wanted to be sure...
[15:47:16] <Casper> the decoupling cap is almost mandatory for each IC on your board
[15:47:35] <Casper> ceramic cap of 0.01µF to 0.1µF
[15:47:40] <Casper> electrolytic don'T work
[15:47:55] <Casper> may not be that, but keep that in mind
[15:48:35] <turutk> so i need to connect a 0.1 uF between vcc and gnd?
[15:50:22] <Casper> ideally
[15:50:30] <Casper> it prevent spontanious reset and crash
[15:50:40] <turutk> well
[15:50:44] <turutk> hours wasted
[15:51:10] <turutk> i put in a capacitor and it works
[15:51:46] <turutk> this was not fun
[15:51:53] <turutk> thank you very much
[15:51:54] <Casper> see, the avr is based on mosfet... mosfet, unlike standard transistor, are voltage controlled... the gate (the equivalent of the base) act like a capacitor. When you apply the charge to it, it will pull an huge amount of current, but only until the "capacitor" is charged, then it stop taking current
[15:52:44] <Casper> that make the chip consume lots of pulse of high current, but very short
[15:52:54] <Casper> the trace of the circuit have inductance and resistance
[15:53:12] <Casper> that both react negativelly to the high current... causing the voltage to drop
[15:53:24] <Casper> when the voltage is too low... things crash
[15:53:41] <Casper> the tiny capacitor have enought capacity to provide that current
[15:53:58] <Casper> and low enought resistance/inductance that it do not drop too much in voltage
[15:54:17] <Casper> ceramic have a very low ESR (equivalent series resistance), well suited for this
[15:54:47] <Casper> small electrolytic have high ESR, can reach easilly 1 ohms for the small values...
[15:55:02] <Casper> but time to go fetch food. bbl
[15:56:29] <turutk> this is a lesson learned the hard way
[20:36:39] <inflex> hrmm...must find chips to practice reballing on
[20:37:59] <Casper> get some laptop... those hp series DV :D
[20:38:14] <inflex> that's a little crazy
[20:38:25] <inflex> I'm talking more like 16~64 ball
[20:38:36] <inflex> but yeah, i've got a few DV's here on my stack of laptops
[20:38:56] <inflex> EVen have a whopper of a 23" all-in-one HP Core2Duo that needs a rework
[20:41:05] <inflex> It's not a bad gaming machine actually - but something in it is very touch sensitive
[20:41:20] <inflex> given its age now, I'm not quite tempted as much to fix it
[20:43:32] <inflex> ( about $150 to get a replacement main board... and there's still a chance it's actually the GFX card )