#avr | Logs for 2015-07-20

Back
[03:15:07] <Haohmaru> does anyone know any tricks to have compile-time constant size buffers but with different sizes?
[03:15:52] <Haohmaru> i mean.. i'd like to make a FIFO-type structure for UART usage, but i would like to use a bunch of such FIFOs with different sizes (known at compile time)
[03:19:06] <Xark> Haohmaru: I am not sure I understand the problem. If you know the sizes at compile, time then you can just use an array (perhaps with #define, or static template)?
[03:20:21] <Xark> Probably C++ template would be cleanest (and no ODR issues). Like UARTFifo<256> myfifo; or similar.
[03:20:43] <Haohmaru> lets say, i want to use a 32-byte FIFO for USART1 and a 128-byte FIFO for USART2's rx, while 64-byte FIFO for its tx
[03:21:07] <Haohmaru> yeah.. C++ template.. but.. will that work with avrgcc?
[03:21:32] <Xark> Haohmaru: It will with avr-g++. :)
[03:21:54] <Xark> Actually, might work with avr-gcc too (with .cpp file).
[03:22:48] <Haohmaru> i saw somewhere in the xmega headers, there was a header for calculating UART bitrates, and there was a trick where you pre-define your desired bitrate, then include the header, it calculates the values, and then you can re-define the bitrate and include the header again..
[03:23:24] <Xark> That could work too. Nothing "magical" about headers, just "as if" the #include is replaced with the file contents.
[03:23:54] <Xark> You would need to make sure the name changes (or else duplicate definition).
[03:24:16] <Haohmaru> in my case.. i tried.. but the compiler sees the FIFO struct being re-defined, which is not good
[03:24:41] <Haohmaru> maybe i need to change the struct name a bit each time the header is included
[03:24:47] <Haohmaru> bleh
[03:25:12] <Xark> Yes, you need to prevent the same name from being used twice.
[03:25:19] <Haohmaru> or just put the size of the buffer in the struct and a pointer to a buffer instead of an actual buffer
[03:25:42] <Xark> E.g., #define UNIQUENAME(x, y) x##y or something
[03:26:25] <Haohmaru> then all functions for manipulating the FIFO would also have to be unique too
[03:26:30] <Haohmaru> is that a bad idea?
[03:26:42] <Xark> Haohmaru: May not be best for flash size...
[03:26:56] <Xark> You could also just pass in a pointer to buffer and size...
[03:26:59] <Haohmaru> i mean.. i suspet it will mean more code space for pretty much the same stuff
[03:27:05] <Haohmaru> * suspect
[03:27:09] <Xark> Yep
[03:27:43] <Haohmaru> then.. struct FIFO { volatile uint8_t* buf; volatile uint8_t size; }; ?
[03:28:07] <Xark> Perhaps...but you need to make FIFO a unique name per fifo...
[03:28:18] <Haohmaru> not in this case
[03:28:21] <Xark> This is just standard C/C++ issues, nothing unique to AVR.
[03:28:43] <Haohmaru> i mean.. the fifo size can be different in each instance of this same struct
[03:29:12] <Haohmaru> it's just not a constant in the struct :/
[03:29:25] <Xark> Yes, the struct name can be the same, but not the use of it e.g. struct FIFO fifo_256{ fifo_256_buff, 256};
[03:29:40] <Haohmaru> oh, no no
[03:29:47] <Haohmaru> i meant to use it like:
[03:30:20] <Haohmaru> FIFO fifo1; FIFO fifo2; fifo1.buf = a_small_buffer; fifo1.size = 8; ...
[03:31:29] <Xark> Same difference, just static initialization vs run-time initialization.
[03:31:41] <Haohmaru> so this is the way to go then
[03:31:48] <Xark> It is one way. :)
[03:32:00] <Haohmaru> this way the struct will be slightly larger
[03:32:16] <Haohmaru> since it will contain the size, and a wrap mask ;P~
[03:32:37] <Xark> Also slightly slower, since size will not be a compile-time constant.
[03:32:45] <Haohmaru> yeah
[03:33:17] <Xark> There is no "best", you just need to balance the tradeoffs for your situation (but the above seems reasonable).
[03:34:21] <Haohmaru> i will potentially use 5 UARTs at once, as well as 2 SPIs, so i will be using FIFOs quite, and i would like to have different sizes cuz some of them won't need to be big
[03:34:44] <Xark> Makes sense.
[03:35:48] <Haohmaru> so if i use the unique-names trick, that would mean i'd have the same functions with different names included at least 5*2 times or 7*2 times x_x
[03:36:27] <Xark> Yeah, so probably using an extra cycle or two for size in a variable is worth it.
[03:36:41] <Haohmaru> functions like get_byte, put_byte, peek, is_empty, initialize..
[03:36:53] <Xark> Presumably you also will need head & tail variables per fifo.
[03:37:01] <Haohmaru> yes, of course
[03:37:23] <Haohmaru> *buf, head, tail, size, wrapmask
[03:38:13] <Xark> Limiting FIFO max size to <= 256 may be desirable (or else you may have atomic access problems with low & high bytes vs interrupts [or need clii/sei around access and cause some extra latency]).
[03:38:51] <Haohmaru> yeah, am not gonna do sizes larger than 256 for now
[03:38:54] <Xark> Not sure you need wrapmask (if you have size...but may be helpful depending on implemtation).
[03:39:10] <Haohmaru> ++head; head &= wrapmask;
[03:39:33] <Xark> or just head++; if (head >= size) head -= size;
[03:39:53] <Haohmaru> isn't that gonna be more instructions?
[03:39:59] <Xark> (then not limited to power of two also)
[03:40:14] <Haohmaru> yes, surely.. but i don't mind to be only power of two
[03:40:22] <Xark> Minor. However, select the tradeoffs you like. :)
[04:36:37] <naquad> is there a BOD interrupt? need to turn off something when going down
[04:43:28] <kline> naquad: theres no BOD interrupt
[04:43:57] <naquad> :( went messing with ADC
[04:44:00] <kline> naquad: i think the reasoning is that by the time we know its a BO, its getting too late to trust the CPU to function safely
[04:44:57] <kline> also, for whoever maintains the avr-libc docs, theres something funny going on with the rendering of the sei/cli defines at the top of this page: http://nongnu.org/avr-libc/user-manual/group__avr__interrupts.html
[05:07:29] <LeoNerd> There isn't a BOD -interrupt-, but on reset, there are bitflags in MCUSR to tell you why the reset happened. One combination tells you it was a BOD
[05:43:18] <naquad> could somebody please point me to a circuit where 74hc595 is somehow connected so it doesn't glitch in the beginning? i'm totally confused and lost already, no explanations. just example.
[05:43:37] <LeoNerd> It quite often does. That's what the RESET line is for
[05:43:46] <naquad> example?
[05:44:08] <LeoNerd> When you power it up initially, the contents of the register are unspecified. it could be anything. That's why it has an async reset pin, which you can use to clear it to all-bits-zero
[05:44:27] <naquad> async reset pin? where is it?
[05:45:03] <LeoNerd> MR#
[05:45:05] <LeoNerd> "master reset"
[05:45:19] <LeoNerd> pin 10 on the DIP pinout
[05:46:03] <LeoNerd> I typically use 595 chains for things like LED output, and just handle that with a simple RC circuit on the reset pin
[05:46:26] <LeoNerd> It'll reset the chip early enough in powerup that you don't see a flash on the LEDs, by which time software control can perform a lamp test or similar.
[05:47:05] <LeoNerd> (I often think a half-second lamptest on startup adds a nice little effect to such projects; can be useful to remind you "yup, this is now powered up")
[05:47:59] <naquad> not my case. trying to control home automation. 16 relays. if at some point it'll blink it'll suck a lot :(
[05:49:04] <LeoNerd> I imagine the sort of speed we're looking at to put an RC filter on the MR# pin, a relay wouldn't activate in
[05:49:11] <LeoNerd> We're talking µs at most here..
[05:49:35] <LeoNerd> It takes tends of ms to energise a relay coil enough to switch it
[05:52:47] <LeoNerd> *tens of
[05:53:47] <naquad> http://i.imgur.com/D7FKj9Y.png - am i doing that right?
[05:55:29] <LeoNerd> Nope
[05:55:46] <naquad> then how should that look like?
[05:56:02] <LeoNerd> I'm sure that's the sort of thing you can easily find by a bit of searching
[05:56:13] <naquad> https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQ7y3yzGhm7Lom-fcmrz7-7NM23P7VkoVN2I3dAvMVU1--kOK94IJHRaSZB
[05:56:17] <naquad> yes, thats what i've found
[05:56:29] <naquad> oh damn, resistor is before capacitor
[05:56:30] <LeoNerd> Yes
[05:56:35] <LeoNerd> Carefull ynote the position of Vin vs. Vout
[05:56:55] <LeoNerd> It's a typical convention on most circuit diagrams that conventional current, or data, usually flows left-to-right
[05:58:33] <naquad> http://i.imgur.com/kxyGF40.png - now resistor put before capacitor. right>
[05:58:34] <naquad> ?
[06:24:34] <vsync_> naquad: i suggest electronics 101
[06:24:49] <vsync_> maybe drop software "engineering" for a while to actually understand something
[06:25:03] <naquad> http://www.electronicstheory.com/html/e101-1.htm that one?
[06:25:56] <vsync_> hahaha
[06:26:14] <vsync_> it sure is one, might not be the most practical approach however
[06:26:32] <naquad> i would appreciate a particular suggestion
[06:26:44] <naquad> googling electronics 101 gives too many results
[06:28:17] <vsync_> yes. googloids.
[06:30:33] <naquad> #electronics says this one is good: http://www.ibiblio.org/kuphaldt/electricCircuits/ - went reading that one
[06:30:45] <vsync_> i hope your insurance covers "diy electrics fires", when this project is for home automation...
[06:30:59] <naquad> relax, i don't have one :D
[06:31:02] <vsync_> when you can't even grasp the idea of an rc-circuit
[06:31:33] <vsync_> anything electronics channel suggests is typically a bad idea
[06:31:58] <naquad> looks like i'll figure out what i did wrong only after reading something. example circuit was: + -> resistor -> parallel capacitor connected to - -> load
[06:58:51] <redspl> hi
[07:07:51] <Lambda_Aurigae> not yet.
[07:07:55] <Lambda_Aurigae> maybe after work.
[07:07:59] <Lambda_Aurigae> oh..hi, not high.
[07:08:03] <Lambda_Aurigae> yeah, hello and all that.
[07:22:40] <naquad> oh hell, the relay is enabled when state is 0...
[07:23:55] <LeoNerd> Ah that's trickier
[07:24:23] <naquad> 2 transistors and i'll turn off the damn thing at all until initialized
[07:24:41] <LeoNerd> Two? Surely one is sufficient to make an inverter here
[07:24:50] <naquad> some very odd device. while it has at least one power source it works
[07:25:03] <naquad> there are 2 different sources: 12V and 5V for logic (on/off)
[07:25:10] <naquad> as long as at least one is connected it is still working
[07:25:47] <naquad> http://www.sainsmart.com/16-channel-12v-relay-module-for-pic-arm-avr-dsp-arduino-msp430-ttl-logic.html
[07:25:50] <naquad> thats the thing
[07:49:45] <day> im currently looking into acquiring an oscilloscope. Im unsure about how high the sample rate needs to be/should be.
[07:50:16] <LeoNerd> Depends on your expected signal frequencies or transition times
[07:51:41] <day> the rigol 2072 look good, but the recently released 1054z isn't too shabby either, esp. the 4Channels. But it only has 100Mhz/500MS/s compared to the 300Mhz/1GS/s
[07:52:02] <specing> look for used?
[07:52:35] <Tom_itx> http://www.saelig.com/product/DS1000Z001.htm?gclid=Cj0KEQjwuLKtBRDPicmJyvu_qZMBEiQAzlGN5tsDg71k6Gq74AfNFh0aw8vXhHFpVr_fPSTeG4n-wjEaAq4h8P8HAQ
[07:52:39] <LeoNerd> I have a rigol 1054Z
[07:52:40] <LeoNerd> It's verynice
[07:53:03] <LeoNerd> The 1054Z is 1Gs/sec overall, but that's divided among the channels
[07:53:22] <LeoNerd> 1ch = 1Gs/sec, 2ch = 500Ms/sec, 3 or 4ch = 250Ms/sec
[07:53:23] <day> LeoNerd: perfect. is there any way to hit its boundaries with standard <20Mhz atmega circuits?
[07:53:34] <LeoNerd> Hellno. I use it all the time on that sort of thing and it works lovely
[07:54:00] <day> LeoNerd: yeah thats why i wrote 100Mhz/500MS/s (on two channels) compared to the 1GS/s/300MHz of the 2072
[07:54:02] <LeoNerd> day: https://twitter.com/cpan_pevans/status/609851279586816000 me debugging the xtal oscilator on an Attiny
[07:54:07] <LeoNerd> Using the 1054Z
[07:54:48] <day> well a 16Mhz sine wave isnt an issue. I was more interested in the GPIO pins switching behavior
[07:54:50] <LeoNerd> If you're only working up to 20MHz on ATtiny/ATmega chips then this scope will be fine... The four channels are far more useful than higher bandwidth, I think
[07:55:18] <Tom_itx> if you need more channels get a saleae LA
[07:55:30] <day> already got one
[07:55:35] <LeoNerd> Yah.. they're good too
[07:55:49] <LeoNerd> I have a cheap clone of a digital-only Logic, pondering getting a real Logic16 sometime :)
[07:55:56] <LeoNerd> 16 mixed D/A channels. Mmmmm
[07:56:22] <day> the saleae has issues though.
[07:56:26] <LeoNerd> My one and only complaint about the Saleae is that they number the channels 0 to 7, and use black on channel 0. This makes me confuse it with a grounding line
[07:56:42] <LeoNerd> I much prefer my modified cable that uses brown to grey, for 1 to 8, and then I change the colours in the software XML file. :)
[07:56:45] <day> you cant natively use it with >5V signals, which is annoying
[09:22:29] <rue_house> Tom_itx, your alive!
[09:28:18] <sabesto> anyone tried implementing the avr109 / butterfly bootloader, or has any knowledge of it? having some problems, seems like avrdude does not even try to write to the bootloader: http://hastebin.com/tocicicobi.coffee
[09:29:39] <sabesto> ive hooked a logic analyzer to the serial lines, the last thing avrdude sends is get dev signature, to which the bootloader responds, after that its silent until it tries to verify the code (which works since ive flashed it with jtag)
[09:33:07] <rue_house> why not use a bootloader that works with avrdude then?
[09:33:22] <LeoNerd> They should be easily available
[09:33:45] <rue_house> the board of the bootloader?
[09:34:28] <rue_house> ...
[09:34:31] <rue_house> the board or the bootloader?
[09:34:46] <LeoNerd> It usually doesn't really depend on the board, just the chip
[09:34:51] <LeoNerd> If it's a USB one anyway
[09:35:42] <rue_house> so you want to use the butterfly bootloader, and you want to use avrdude, but they dont work togethor
[09:35:46] <rue_house> do I understand this right?
[09:38:10] <LeoNerd> I'm not familiar with butterfly
[09:39:14] <rue_house> so, whats the butterfly got over an arduino bootloader?
[09:42:26] <sabesto> rue_house: atxmega32e5
[09:42:55] <sabesto> well, avrdude has an avr109 and butterfly option
[09:43:06] <sabesto> one would assume it was supported
[09:44:00] <LeoNerd> I've used avrdude on avr109, using a 32U4
[09:44:33] <LeoNerd> It works on both a 32U4 Arduino Mini-replacement, and an Adafruit 32U4 breakout board. Though annoyingly, the latter does not respect autoreset, whereas the former does.
[09:45:01] <rue_house> hmm
[09:46:12] <LeoNerd> OFcourse, avrdude *itself* doesn't support autoreset either but that's hackable by a wrapping script ;)
[09:46:39] <sabesto> LeoNerd: did you do this on windows or linux?
[09:46:51] <LeoNerd> Linux
[09:47:09] <LeoNerd> Though I don't believe the PC OS matters for that distincting
[09:47:12] <LeoNerd> *distinction
[09:47:45] <LeoNerd> The problem is that the bootloader in the Adafruit board doesn't recognise the autoreset marker flag when it starts up, so it doesn't enter bootloading mode
[09:48:31] <sabesto> well, it enters the bootloader
[09:48:34] <LeoNerd> You do the 1200baud + DTR over USB-CDC to trigger it, then immediately close. This resets the chip on both boards. The real Arduino board then enters the bootloader where avr109 works, but the Adafruit does not; instead just returns to user code
[09:48:52] <sabesto> avrdude just does not do anything after its requested the device id
[09:48:54] <LeoNerd> I imagine I could just reflash the bootloader on my Adafruit board, I just haven't got around to it yet
[09:49:59] <sabesto> it then spams ***failed; 1000+ lines without even sending anything over serial
[11:02:35] <DarthSector> Has anyone used the ENC28J60 with and ethernet boot loader on the Atmega328?
[11:02:52] <DarthSector> I am trying to push code over ethernet to the chip
[11:03:08] <DarthSector> Every boot loader out there is meant for Atmega32 or beyond
[11:35:18] <Hexum064> I have not. sry Darth
[12:06:00] <LeoNerd> https://www.tindie.com/products/imrehg/pcieduino/ Huh... So I didn't realise this, but mini-PCIe has USB pins.
[12:06:18] <specing> yep
[12:06:30] <specing> it also has pins for SIM cards
[12:06:40] <LeoNerd> I seeee
[12:15:56] <DarthSector> :{
[12:15:58] <DarthSector> sadness
[12:16:51] <specing> ?
[12:21:06] <DarthSector> not related
[12:41:24] <martinus> LeoNerd: Wow, I had no idea either! I guess the only question is if the mini-PCIe slot is free in modern laptops.
[12:41:41] <LeoNerd> I know mine has the wifi card in
[12:41:46] <LeoNerd> Well, one has that, the other has bluetooth
[12:45:23] <martinus> I'm wondering if anyone can make a living from selling stuff on Tindle?
[12:46:10] <martinus> It seems to me to be for the motivated hobbyist but that's just a shallow appraisal.
[12:46:52] <martinus> *Tindie, sorry
[12:46:55] <LeoNerd> It might be possible; if you sell enough volume and markup
[12:47:02] <LeoNerd> Personally I have sold.. er.. two things this year.
[12:47:23] <LeoNerd> I think my profit is about 10 dollars, though that doesn't account for my time making the things :)
[12:49:06] <martinus> Yeah, that was my concern.
[12:49:10] <chickensk> Hi, in Atmel Studio 6, i can not enable sprintf to convert float to char[]. I use these flags: http://bit.ly/1SxzJ4F and this code: http://bit.ly/1I7Cp34 anything I can do with this?
[12:56:34] <chickensk> display shows question mark instead of the number
[12:57:17] <m3chanical> Is it possible this: http://www.avrfreaks.net/forum/floats-and-sprintf has what you need?
[13:00:13] <chickensk> m3chanical, Hi, i already have those flags. am i missing something?
[14:25:51] <martinus> Before I go reinventing the wheel (badly, no doubt) is there a best practice for removing outliers from sampled data in AVR C?
[19:53:07] <Strangework> Quick q. I'm working with external interrupts for the first time. When I set the ISR to trigger on a low value on INT0, it works. When I set it to trigger on a change in logic value, however, the ISR isn't triggered. I am changing the value by adding/removing a wire connecting 3.3v to INT0. Is there an electrical explanation for this, or am I missing a piece uC info?
[19:54:41] <Lambda_Aurigae> try switching between low and high....or GND and VCC...
[19:54:59] <Lambda_Aurigae> just connecting VCC to the pin might not trigger squat.
[19:55:07] <Lambda_Aurigae> logic inputs don't like to float.
[19:55:25] <Lambda_Aurigae> do you have internal pullups turned on?
[19:55:30] <Lambda_Aurigae> if so, then it is already at VCC.
[19:55:42] <Lambda_Aurigae> so connecting VCC (or 3.3V) to it will be useless.
[19:55:54] <Lambda_Aurigae> basic digital logic..
[19:57:13] <Lambda_Aurigae> so if it has the internal pullup turned on, to get it to change logic level you will have to pull it low or connect it to GND.
[19:59:56] <Lambda_Aurigae> http://www.seattlerobotics.org/encoder/mar97/basics.html
[20:00:56] <Strangework> Hmm. Actually, the interrupt seems to trigger constantly so long as the pin is disconnected. Connecting the pin to either gnd or 3.3v causes the interrupts to stop
[20:01:08] <Lambda_Aurigae> floating logic..
[20:01:21] <Lambda_Aurigae> spurious interrupts due to a non-defined state.
[20:01:25] <Lambda_Aurigae> so, no internal pullup.
[20:01:36] <Lambda_Aurigae> never never NEVER leave logic inputs floating.
[20:01:43] <Lambda_Aurigae> basic digital logic
[20:01:50] <Lambda_Aurigae> pre-microcontroller
[20:02:10] <Strangework> Is that because of noisy input such as in this scenario? Or are you implying that there's a danger to it?
[20:02:16] <Lambda_Aurigae> should be the first chapter, within the first 3 paragraphs, of any book of digital logic.
[20:02:36] <Lambda_Aurigae> if it is floating it has a non-defined state...will cause the circuit to behave randomly...
[20:03:00] <Lambda_Aurigae> all digital inputs should be tied to VCC or GND or you can't guarantee the input state.
[20:03:13] <Lambda_Aurigae> which causes them to do stupid things,,,like constantly trigger your interrupt.
[20:03:25] <Lambda_Aurigae> use a pullup or pulldown resistor...10K to VCC or to GND
[20:04:28] <Lambda_Aurigae> https://learn.sparkfun.com/tutorials/logic-levels
[20:05:28] <Lambda_Aurigae> I suggest learning basic digital logic before trying to use microcontrollers.
[20:06:09] <Strangework> I'll certainly read through these resources and anything which will get me there
[20:06:26] <Strangework> Though I wouldn't want to stop toying with microcontrollers
[20:07:25] <Strangework> Thanks for the point in the right direction!
[20:07:28] <Lambda_Aurigae> Getting Started In Electronics by Forrest Mims III is, in my opinion, the best book ever written for beginners in enectronics and gives you a start in digital logic too.
[20:07:48] <Strangework> ^ I got the book!
[20:08:11] <Strangework> I've been reading through it along with my chip's datasheet
[20:08:26] <Lambda_Aurigae> hell, don't just read through it..
[20:08:33] <Lambda_Aurigae> build the stuff, make it work, understand it.
[20:08:46] <Strangework> Can't build anything if I don't read it, can I?... ;)
[20:08:55] <Strangework> Don't worry too much, Lambda!
[20:09:00] <Lambda_Aurigae> I never worry.
[20:09:33] <Lambda_Aurigae> but you will learn by hands on, from making an electromagnet to building logic gates with diodes and transistors.
[20:09:57] <Lambda_Aurigae> learn how the electronics work and you will understand how the rest of it works right down the line.
[20:10:47] <Strangework> It wouldn't make sense to get into the hobby without building anything
[20:11:36] <Strangework> (^ my statement agrees with yours, btw)
[20:11:47] <Lambda_Aurigae> yup.
[20:12:13] <Lambda_Aurigae> learn to crawl before trying to run...something my grandfather beat into me.
[20:12:49] <Lambda_Aurigae> new group of kids I started working with this past weekend are going through that book section by section.
[20:13:11] <Lambda_Aurigae> first day they made it about 1/3 of the way through with lots of batteries, wires, and bits and pieces.
[20:13:28] <Lambda_Aurigae> 4 of them working as a group to figure it out.
[20:33:42] <apo_> Lambda_Aurigae: your grandfather would beat you if you tried running?
[20:33:55] <Lambda_Aurigae> not quite.
[20:34:14] <Lambda_Aurigae> but he would give me hell for trying to outrun myself.
[20:39:04] <apo_> 02:38:44 < Lambda_Aurigae> never never NEVER leave logic inputs floating.
[20:39:15] <apo_> It's a good thing AVRs have internal pullups :3
[20:39:49] <apo_> wait, why do you not like those?
[20:40:13] <Lambda_Aurigae> didn't say I don't like internal pullups.
[20:40:17] <Lambda_Aurigae> they work great.
[20:40:31] <Lambda_Aurigae> but if you don't turn them on then the input floats.
[20:40:34] <Lambda_Aurigae> and that's a bad thing.
[20:40:47] <Lambda_Aurigae> you can set them on or off.
[20:40:58] <apo_> ah, thought you were saying that they're not good enough to prevent floating pins
[20:41:08] <Lambda_Aurigae> nope.
[20:41:25] <Lambda_Aurigae> just that pullups or pulldowns need to be used on inputs that might possibly float.
[20:41:28] <Casper> there has been products in the past where it was not user upgradable that they forgot to enable the pullup...
[20:41:35] <Casper> result: multi-millions recall
[20:41:53] <apo_> =D
[20:42:00] <Lambda_Aurigae> yup.
[20:42:17] <Lambda_Aurigae> I've seen floating inputs used for random number generators too.
[20:42:28] <Lambda_Aurigae> about the only time that is useful.
[20:42:29] <apo_> -.-"
[20:42:56] <apo_> wouldn't that quite often just pick up mains hum and be quite unrandom?
[20:43:15] <Lambda_Aurigae> depends, but, yeah, that's a possibility.
[20:53:16] <apo_> aaaa I want my FPGA D:
[21:13:15] <apo_> https://www.youtube.com/watch?v=UFm5roSPH4g have some porn