#avr | Logs for 2015-02-22

Back
[02:47:16] <cart_man> rue_more, Hi there. Do you ever sleep?
[02:47:55] <cart_man> Lambda_Aurigae,Hey... wanted to tell you last night that the Fluery I2C library gets stuck on a while loop and freezes up the IC in the process
[02:48:54] <cart_man> Lambda_Aurigae, Thats why I never used it... I remember now. Basically it was anything with a write( waiting for process to finish ):
[02:49:18] <cart_man> Do you maybe know why I2C Comms will do this ? Maybe hardware?
[05:10:53] <cart_man> MY AVR ISP MKII programmer is a bit confused as to turned around voltage is seems
[05:11:01] <cart_man> I mean..reverse voltage
[05:11:35] <cart_man> it keeps on telling me the voltage on the ISP port is reversed but it does that both ways around.... is it damaged maybe?
[05:17:13] <cart_man> nvm connector did not have ground
[05:46:13] <DKordic`> cart_man: Did You know there is a way to control AVR interactiveely?
[06:17:22] <cart_man> DKordic`,What do you mean?
[06:24:26] <DKordic`> cart_man: Put some Forth interpreter in AVR. Send it commands over UART. Read ior write SFRs. So You can even configure that TWI peripheral. On a better implementation it should be possible to interactively define new procedures.
[06:53:52] <Lambda_Aurigae> DKordic` doesn't have to be forth...I've done it with a C interpreter too and a basic interpreter and a specialized i/o control and comms program.
[06:54:52] <cart_man> Think I dced somewhere in this chat...
[06:54:53] <Lambda_Aurigae> cart_man, fleury's libs just work for me on at least 4 different processors....I always use 4.7K ohm resistors...I think I remember you said something about 10K resistors...not sure if that makes a difference.
[06:55:21] <cart_man> Lambda_Aurigae, Nah I replaced them with 4.7Kohm anyway though
[06:57:45] <cart_man> im going to try another EEPROM IC for the 3rd time
[06:57:57] <Lambda_Aurigae> maybe another brand?
[06:58:12] <cart_man> Lol yea... I see Atmel has EEPROMS as well
[06:58:33] <Lambda_Aurigae> there are at least a dozen different manufacturers of eeproms
[06:58:46] <twnqx> doubt that
[06:58:54] <twnqx> massive consolidation, just like with flash
[06:58:59] <Lambda_Aurigae> well, yeah.
[06:59:09] <Lambda_Aurigae> but different companies distribute them under their own names.
[06:59:22] <Lambda_Aurigae> maybe 2 or 3 actual manufacturers.
[06:59:35] <cart_man> twnqx, Well to be honest I really dont know why people have so much faith in Microchip...ive had tons of problems with their products
[07:00:29] <Lambda_Aurigae> some of their products are awesome...some are crap...many have odd things with their "standard" interfaces.
[07:01:34] <Lambda_Aurigae> I have used microchip eeproms in places of ones from atmel and ST in existing products though.
[07:01:55] <cart_man> Lambda_Aurigae,Well they are easier to get though...especially in South Africa
[07:02:07] <Lambda_Aurigae> copiers use eeproms a lot...sometimes they fail...I usually have a few around from microchip to drop in place when they do.
[07:03:01] <Lambda_Aurigae> go find a copier repair shop with a junk pile...just about every copier will have at least 1 if not 3 or 4(one on every major circuit board) in them.
[07:03:30] <Lambda_Aurigae> in sharps they are atmel usually.
[07:03:42] <Lambda_Aurigae> in xerox I've seen as many as 3 different brands in one copier.
[07:04:19] <cart_man> Lambda_Aurigae, I dont get why Fleurs Lib will make my IC get stuck..that must be a sign of hardware issues right?
[07:04:30] <Lambda_Aurigae> cart_man, seems like it to me.
[07:07:30] <wulax> I am trying to connect an AVR Butterfly board to a PC with an usb->uart cable (chinese copy of Nokia CA-42 I think), but keep getting a lot of errors. The AVR is supposed recieve a byte from PC, then echo it back http://codepad.org/4hoHdAYe. The waveform looks kind of strange however https://i.imgur.com/iChK0jT.png The yellow wave is transmit from PC, blue is sent from AVR. Does anyone know what is going on?
[07:08:08] <Lambda_Aurigae> wulax, your usb-uart cable...what is the voltage level on the uart side?
[07:08:20] <wulax> Hmm, let me check
[07:08:46] <Lambda_Aurigae> hoping it doesn't have a DB9 connector on it, correct?
[07:09:23] <wulax> No, it's just female headers
[07:10:03] <Lambda_Aurigae> good...someone was in here recently with a DB9 type connected directly to his AVR...not a good thing feeding real RS232 voltages straight through.
[07:10:28] <wulax> The cable is 4.95V
[07:10:30] <Lambda_Aurigae> that voltage droop there on the blue scan looks strange.
[07:11:12] <Lambda_Aurigae> both look like 9 bits though.
[07:12:10] <wulax> The AVR supposedly uses 5V so it should be compatible?
[07:12:24] <Lambda_Aurigae> should be.
[07:12:39] <Lambda_Aurigae> I thought the butterfly ran at 3.3V though.
[07:13:22] <wulax> The butterfly uses 4.2V right now
[07:13:41] <Lambda_Aurigae> running from external power?
[07:14:05] <wulax> Yes, from the programmer (avrisp mkII)
[07:14:23] <Lambda_Aurigae> hmmm...that could be an issue.
[07:14:42] <wulax> Why is that?
[07:15:11] <wulax> I'll try with another source then
[07:16:16] <Lambda_Aurigae> page 29 of the users manual.
[07:16:23] <wulax> Thanks
[07:16:24] <Lambda_Aurigae> if using external power, 3.1V to 4.5V
[07:17:10] <DKordic`> Lambda_Aurigae: Interepreter for C?
[07:17:19] <Lambda_Aurigae> picoc
[07:19:09] <Lambda_Aurigae> took me some work to get it to fit on an atmega1284p but I did get it running.
[07:21:00] <cart_man> Lambda_Aurigae,I think im going to mod my own Library so that it doesnt have any WHILE loops to get stuck into ...instead it will have allot of If statements to check TWSR registers and will push it in the right directions depending on what is contained in the register... Then I will make it like 10Hz and make it print the state everytime the functions gets called...that way I can in RealTime see the status register go from one to another
[07:21:18] <cart_man> Pretty extreme but it will be good for debugging
[07:45:48] <wulax> Lambda_Aurigae: I tried powering it from a 3.5 voltage reg. supply. It looks equally as bad now https://i.imgur.com/0g7j6YV.png Should I use a serial cable which also uses 3.5V then?
[07:46:00] <Lambda_Aurigae> probably.
[07:46:18] <Lambda_Aurigae> that looks much better though.
[07:46:40] <cart_man> Sigh getting loadsheded again today soo see you later ..
[07:46:48] <Lambda_Aurigae> on the earlier one your blue trace started at a different voltage potential..it was very odd.
[07:47:00] <Lambda_Aurigae> cart_man, home generator time!
[07:47:03] <Lambda_Aurigae> or big honkin UPS!
[07:47:26] <cart_man> Lambda_Aurigae, Yea I hvae a UPS that will keep my computer on for 4 hours.. its massive and heavy ..
[07:47:30] <wulax> Thanks for your suggestions Lambda_Aurigae
[07:47:35] <Lambda_Aurigae> first thing I bought when I moved out to the middle of nowhere was a generator to run my house.
[07:47:36] <cart_man> But my Router switches offf :(
[07:48:04] <Lambda_Aurigae> with ice and snow storms out here, the power likes to go off quite often.
[07:48:30] <Lambda_Aurigae> wulax, what is the byte you are sending there?
[07:48:56] <wulax> It is supposed to be '1' iirc
[07:49:40] <cart_man> Lambda_Aurigae,Where are you from?
[07:50:33] <wulax> Yeah, it is '1', 0x31
[07:50:41] <Lambda_Aurigae> wulax, that looks right if you reverse it, data goes lsb to msb and add a stop bit.
[07:50:53] <Lambda_Aurigae> cart_man, middle of nowheresville iowa, usa
[07:51:37] <wulax> Lambda_Aurigae: Interesting, I don't think I reverse it in the code. I'll try it out
[07:51:52] <Lambda_Aurigae> look at your spacing of the levels there.
[07:52:41] <Lambda_Aurigae> start from the left on the blue line...some stop bit then a wide 2 width low..then 2 width high..then 3 width low then 1 width high.
[07:52:52] <Lambda_Aurigae> err.
[07:52:55] <Lambda_Aurigae> starting from the right.
[07:52:59] <Lambda_Aurigae> it's too early!
[07:53:25] <Lambda_Aurigae> although, why the yellow runs with a high level and the blue runs with a low level I have no clue...something aint right there.
[07:53:39] <Lambda_Aurigae> and you have a lot of noise on that yellow line.
[07:56:57] <wulax> Lambda_Aurigae: You may be right, I'll play around with it, or otherwise try with another serial cable
[07:57:18] <Lambda_Aurigae> looks like your cheap serial adapter might be your problem.
[07:57:41] <Lambda_Aurigae> get one that runs at 3.3V for starters for use with that device and power it with the battery the way it was built to be powered.
[07:58:11] <wulax> Do you have any suggestions for a good serial adapter?
[07:58:28] <Lambda_Aurigae> one and only suggestion...you get what you pay for.
[07:58:39] <Lambda_Aurigae> I make my own.
[07:58:44] <Lambda_Aurigae> or use a serial port
[07:58:54] <wulax> Ok, good advice
[07:58:59] <Lambda_Aurigae> and, yes, you can get modern computers with serial AND PARALLEL ports.
[07:59:06] <Lambda_Aurigae> this one is a year old and has both.
[07:59:24] <Lambda_Aurigae> I just got a new HP laptop for work that has a nice DB9 serial port on the back.
[07:59:25] <wulax> You use an expansion card?
[07:59:29] <Lambda_Aurigae> nope.
[07:59:31] <wulax> Cool
[07:59:34] <Lambda_Aurigae> built into the motherboard.
[08:00:01] <Lambda_Aurigae> gigabyte motherboard with an amd fx-4150 quad core processor.
[08:00:50] <Lambda_Aurigae> or go get a pci adapter with serial and/or parallel on it.
[08:01:07] <Lambda_Aurigae> I find usb-serial to be barely useful.
[08:01:23] <Lambda_Aurigae> I use serial interface on devices a lot for work.
[08:01:31] <Lambda_Aurigae> some usb-serial adapters work, some don't.
[08:01:40] <wulax> Well, getting a new motherboard is a bit expensive for me when I'm a student :)
[08:01:47] <Lambda_Aurigae> many of the new machines even have 3.3V level serial ports on the back for debugging.
[08:01:53] <Lambda_Aurigae> machines being copiers.
[08:02:14] <Lambda_Aurigae> so get a P-4 computer from someone's junk pile and use it as a programming interface.
[08:02:28] <wulax> That is a good way to do it
[08:02:32] <Lambda_Aurigae> most P-4 machines had serial and parallel ports galore.
[08:02:39] <Lambda_Aurigae> I have half a dozen of those hanging out here.
[08:02:49] <Lambda_Aurigae> used for when kids come over to play with electronics.
[08:03:16] <Lambda_Aurigae> run linux on them and have all the tools they need for writing code, programming chips, and interfacing.
[08:03:34] <Lambda_Aurigae> remember, with standard rs232 serial you will need a level converter like a max232 or max233 chip.
[08:03:55] <Lambda_Aurigae> max232 is cheap, even with adding the multiple capacitors to it.
[08:04:00] <wulax> I would love to have such resources. Guess I better start saving.
[08:04:11] <Lambda_Aurigae> max233 is more expensive but does have the caps built in.
[08:04:13] <Lambda_Aurigae> saving?
[08:04:15] <Lambda_Aurigae> bah.
[08:04:17] <Lambda_Aurigae> I collect.
[08:04:29] <Lambda_Aurigae> I have only bought one computer in the last 3 years..this one..
[08:04:39] <Lambda_Aurigae> the rest I get from junk piles and rebuild.
[08:05:17] <wulax> Then I better start collecting
[08:05:23] <wulax> Hmm, maybe I could try with my Bus Pirate. It has a uart passthrough mode I think.
[08:05:43] <Lambda_Aurigae> that would work too.
[08:05:50] <Lambda_Aurigae> should have a low voltage option too, yes?
[08:06:02] <wulax> It has 3.5 and 5V lines
[08:06:10] <Lambda_Aurigae> for power, yes.
[08:06:19] <Lambda_Aurigae> I thought you could set it to run the i/o at 3.3V
[08:06:54] <wulax> Not sure, I'll have to read up on it a bit
[08:10:22] <Lambda_Aurigae> and I always had the best luck with my butterfly when I ran it from the battery.
[08:10:36] <Lambda_Aurigae> eliminates one possible source of noise too.
[08:11:40] <Lambda_Aurigae> as a student you should be able to get a lot of stuff free as free samples from various manufacturers too.
[08:12:22] <Lambda_Aurigae> they want you to learn with their products...that way you use them when you get out in the real world.
[08:12:40] <wulax> Really? I like stuff.
[08:13:19] <Lambda_Aurigae> I get free samples from maxim, allegro-micro, microchip, atmel, freescale, renesis, ftdi, and others.
[08:13:31] <wulax> I know many companies have student discounts
[08:13:46] <Lambda_Aurigae> most chip manufacturers have some kind of free sample program too.
[08:13:49] <Lambda_Aurigae> oh..TI too..
[08:14:03] <Lambda_Aurigae> TI likes me...they send me stuff without my asking sometimes.
[08:14:05] <wulax> Nice. I will look around
[08:14:23] <Lambda_Aurigae> kits with a specific chip in them in every flippin package the chip comes in....3 of each package.
[08:14:59] <Lambda_Aurigae> I have stuff here I will never be able to use because I can't solder them because I can't flippin see the pins(or pads)!
[08:16:59] <Lambda_Aurigae> freescale sent me a bunch of stuff a while back in BGA package for no reason I can see....other than I've ordered stuff from them before.
[08:18:59] <wulax> Nice, they seem to have a page named Order Samples
[08:19:10] <Lambda_Aurigae> yup.
[08:31:47] <wulax> Well, with the bus pirate it looks much nicer https://i.imgur.com/YWHDY3G.png
[08:32:23] <wulax> Now I just have to figure out the why the blue (transmit from avr) is off
[08:32:33] <wulax> I probably messed up some settings
[09:25:02] <sharpobject> hi, I'm working with some vavrdisasm output to patch some firmware in a very painful way
[09:26:42] <sharpobject> it looks like there is a call instruction with k=0x06f1, but it actually calls the subroutine starting at 0x9ee
[09:26:45] <sharpobject> how does that work
[09:28:44] <Lambda_Aurigae> is it a relative call?
[09:28:51] <sharpobject> it's an absolute call
[09:29:08] <sharpobject> 2b1c: 06 f1 94 0e call 0x06f1
[09:29:09] <sharpobject> ->
[09:29:18] <sharpobject> 9ee: 93 0f push R16
[09:29:52] <Lambda_Aurigae> then, no clue how it goes to 0x922 rather than 0x6f1
[09:39:46] <rue_more> whats not call on an 8 bit avr
[09:39:54] <rue_more> call is 9 not 6
[09:40:41] <rue_more> rcall is D
[09:41:08] <rue_more> rjmp is C
[09:42:20] <rue_more> its not any branch command
[09:42:51] <sharpobject> hm
[09:43:05] <rue_more> its not a return
[09:43:13] <sharpobject> great, any way to tell vavrdisasm that this is an 8-bit avr
[09:43:29] <rue_more> never used it
[09:43:36] <Lambda_Aurigae> never heard of it.
[09:44:23] <sharpobject> it looks like it is read in middle endian? so the actual instruction is 94 0e 06 f1, that seems to be call
[09:44:29] <sharpobject> http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_CALL.html
[09:45:30] <rue_more> how about 94 0e f1 06
[09:46:09] <rue_more> calc "0x2B1C+0xF106 (ResultBase=16)"
[09:46:09] <rue_more> 0x2B1C+0xF106 (ResultBase=16) -->> 0x11C22
[09:46:13] <rue_more> whats the address rollover?
[09:46:30] <sharpobject> good question, idk where to look that up, this is an atmega32u4
[09:46:55] * rue_more points at the 22 on the end of that maths result
[09:47:57] <sharpobject> I don't think the call site address matters here
[09:49:24] <rue_more> I think its doing what its supposed to and your math is out
[09:49:43] <sharpobject> ok, thanks for the help
[09:50:09] <sharpobject> what if there was another occurrence of the same instruction at a different address
[09:50:18] <sharpobject> and what if call was addressed absolutely and not relatively
[09:51:02] <sharpobject> I'm not sure what the 22 is about, the procedure it executes is at xxee
[09:55:54] <sharpobject> so for me to construct a call instruction to an arbitrary address, I would subtract the current address even though the docs say not to, then I would mod by some mystery number and replace all 2s with es in that result
[10:25:10] <sharpobject> I was wrong
[10:25:11] <sharpobject> there's an implied 0 there, so it actually calls 0xde2
[10:25:35] <sharpobject> great
[11:32:06] <vsync> Fuck USPS
[11:33:18] <vsync> My shipment has been received on the 11th, and it's been going back and forth between chicago and NY for almost two weeks now, and umm... here i am, at the old continent waiting for it
[11:42:50] <Lambda_Aurigae> it's on a truck that can't get to its destination.
[14:24:54] <Jartza> hmmh
[14:25:03] <Jartza> maybe I need to bake my own avr fuse calc :)
[14:25:09] <Jartza> too many missing chips from the current ones
[14:27:10] <RikusW> I have one
[14:27:27] <RikusW> https://sites.google.com/site/megau2s/
[14:27:34] <RikusW> support sw -> ravrprog
[14:27:44] <RikusW> needs Qt and Linux
[14:28:00] <RikusW> fuse part is complete and can even program
[14:28:15] <RikusW> flashing is not entirely stable...
[14:32:35] <Jartza> hmmh
[14:33:07] <Lambda_Aurigae> look at the fuses section of ye olde datasheet, add up the ones and zeroes for what you want/need...and, voila, fuse numbers.
[14:33:44] <Jartza> well I know, but calculator is just handier when testing a lot of different new chips
[14:33:53] <Lambda_Aurigae> that's how we did it in the olden days when the atmega32 was the biggest and baddest thing on the market and fuse calculators didn't exist.
[14:34:56] <Jartza> well yes, that's also how I do it for the missing parts
[14:53:36] <sharpobject> where does the stack live
[14:54:04] <sharpobject> I'm curious whether I'll clobber any of this thing's data if I push some stuff D:
[14:55:45] <RikusW> the stack is at the top of ram growing down
[14:56:03] <RikusW> so you can indeed overwrite it
[14:56:15] <RikusW> and get _interesting_ bugs
[14:56:28] <RikusW> (hard to find too)
[14:57:37] <Lambda_Aurigae> fun buggies!
[15:00:18] <Lambda_Aurigae> stack grows from top down...heap grows from bottom up...heap being where variables are stored.
[15:04:20] <tpw_rules> oh yes that does get fun
[15:04:57] <tpw_rules> is reset strictly necessary for serial programming? if you had the brownout bits enabled and could control the voltage could you reprogram the chip or is reset needed to kick in some logic
[15:05:46] <Lambda_Aurigae> reset is required
[15:05:57] <Lambda_Aurigae> must hold the chip in a reset situation for ISP
[15:06:10] <Lambda_Aurigae> you don't need it for a serial bootloader necessarily.
[15:09:45] <RikusW> it is needed for ISP
[15:09:57] <RikusW> and HV programming
[15:10:06] <RikusW> (12V on reset)
[15:49:28] <Flipp__> anyone around that might be able to explain how an AVR traverses from the boot address (e.g. 0x3E00) to the .init0/__init memory address?
[15:51:43] <Lambda_Aurigae> however the bootloader tells it to.
[15:52:09] <Flipp__> err, I guess I didn't explain what I'm lookin' for well :)
[15:52:23] <Lambda_Aurigae> usually the bootloader switches over the interrupt table then jumps to the 0x0000 reset location.
[15:52:39] <Lambda_Aurigae> I'm assuming that 0x3E00 is the start of your bootloader section.
[15:52:45] <Flipp__> I'm looking at the memory map of the output of the linker for a bootloader I just built (stk500boot.map)
[15:52:49] <Lambda_Aurigae> otherwise the avr starts at 0x0000 on powerup.
[15:52:49] <Flipp__> yeah
[15:53:16] <Lambda_Aurigae> in order for the program to run the bootloader must jump to 0x0000.
[15:53:23] <Flipp__> sure, sure
[15:53:30] <Flipp__> I'm looking more at the bootloader itself
[15:53:42] <Flipp__> the bootloader's entry point is 0x3F00
[15:53:45] <Lambda_Aurigae> that's what I mean...the bootloader must have a way to jump to 0x0000
[15:53:49] <Flipp__> then there's the interrupt table
[15:53:56] <Flipp__> at 0x3e00
[15:53:59] <Flipp__> then the progmem section
[15:54:13] <Lambda_Aurigae> have you read the datasheet?
[15:54:16] <Flipp__> at 0x3E0e4
[15:54:17] <Flipp__> yeah
[15:54:21] <Lambda_Aurigae> not browsed...read, cover to cover?
[15:54:32] <Lambda_Aurigae> what chip?
[15:54:41] <Flipp__> 2560
[15:54:46] <Flipp__> what I'm saying is
[15:55:14] <Flipp__> the .init0 section starts at 3e312, a while after the bootloader start at 0x3E000
[15:55:45] <Flipp__> everything between the bootstart and the init0 section just seems to be static
[15:56:31] <Flipp__> does the chip just jump over bytes that aren't opcodes?
[15:57:40] <aandrew> no
[15:57:50] <Flipp__> my .map file is here http://pastebin.com/SqtfYCL8
[15:58:05] <Lambda_Aurigae> umm...0x3f00 for boot start?
[15:58:07] <aandrew> undefined opcodes should trigger an exception/undefined irq. check with your specific device
[15:58:41] <Flipp__> lambda_aurigae: sorry, mistype. 0x3E000
[15:59:24] <Lambda_Aurigae> somehow that just looks wrong.
[15:59:54] <Flipp__> aandrew: yeah, that's what I was guessing. so how does the instruction pointer get from 3E000 to 3E312, which is the start of the .init section O.o
[16:00:06] <Lambda_Aurigae> nevermind..I'm looking at the datasheet which is in words.
[16:02:04] <Flipp__> lambda_aurigae: ya, that caught me too :)
[16:04:10] <Lambda_Aurigae> wait...where's the actual program?
[16:04:14] <Lambda_Aurigae> that's just a map.
[16:04:18] <Flipp__> yeah
[16:04:35] <Lambda_Aurigae> need the listing that shows where the program actually starts.
[16:04:44] <Flipp__> I only copied the map file
[16:04:55] <Lambda_Aurigae> because you don't jump to .progmem.data
[16:05:02] <Flipp__> program actually starts at __jumpMain
[16:05:24] <Flipp__> https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/bootloaders/stk500v2/stk500boot.c
[16:05:27] <Flipp__> that's the program itself
[16:05:37] <Lambda_Aurigae> I meant the assembly listing.
[16:06:10] <Flipp__> ah, ok, lemme see if I can find it
[16:10:33] <Flipp__> lambda_aurigae: nevermind me, I'm an idiot
[16:10:45] <Lambda_Aurigae> find the bootloader reset vector did you?
[16:11:10] <Flipp__> first instruction in the disassembly
[16:11:15] <Lambda_Aurigae> hehe.
[16:11:21] <Lambda_Aurigae> that's what I was trying to get you to find.
[16:11:33] <Flipp__> is 3e000: 0d 94 89 f1 jmp 0x3e312 ; 0x3e312
[16:11:44] <Lambda_Aurigae> it's how I teach my students.
[16:11:58] <Flipp__> so yeah... that's how it gets to 0x3e312
[16:12:02] <Flipp__> >.<
[16:12:03] <Lambda_Aurigae> point them at what they need and let them find what they are looking for.
[16:12:03] <Flipp__> thanks :)
[16:12:06] <Lambda_Aurigae> welcome.
[16:30:17] <hypermagic> hello my friends
[18:15:52] <vsync> http://asf.atmel.com/docs/3.21.0/samd21/html/group__asfdoc__sam0__sercom__spi__group.html#gaff6f75d83ec5251e6d1d42830b8af05f This seems shady
[18:17:00] <vsync> I'm trying to work with it, for no apparent reason... I'm wondering what's the actual state of the CS pin when you run this as select == true
[18:17:28] <vsync> Anyway that really seems overkill for a god damn chip select. Hahah
[21:59:14] <grey> aw, my irssi history hath run out, since someone said my name? :(
[22:05:16] <rue_more> I'm back
[22:06:22] <rue_more> vsync, why is everyone working on i2c latley?
[22:07:21] <rue_more> anyone have a serial transmission bit-bang library for a tiny13?