#avr | Logs for 2015-06-07

Back
[01:16:51] <inflex> Time to make myself a 1-plane "loudest object" tracking system.
[01:51:16] <hypermagic> sebus, coolrunner 2 is the thing now
[10:22:26] <Lambda_Aurigae> survey question: For a microcontroller vga interface, what would a useful minimum resolution be for you? 320x200, 400x300, 640x480, 800x600, 1024x768
[10:22:34] <Lambda_Aurigae> survey question: For a microcontroller vga interface, what would a useful minimum color spread be for you? Monochrome, 8 colors, 64 colors, 4096 colors, 16million colors
[10:35:18] <LeoNerd> Depends on the micro I'm sure... what sort of things...
[10:35:30] <LeoNerd> For me I'd much more appreciate text and font offloading
[10:37:39] <LeoNerd> An *ability* to draw graphics could be good, but I wouldn't want my main CPU to have to worry itself with text generation
[10:37:47] <Lambda_Aurigae> text and font control is being put on the video controller...with possibility of custom bitmapped fonts.
[10:37:57] <Lambda_Aurigae> graphics is a must and will be in.
[10:38:30] <Lambda_Aurigae> line, circle, box, dot, and maybe arc.
[10:39:28] <LeoNerd> blit/scroll operations can be nice too
[10:40:50] <Lambda_Aurigae> possibility on lower resolution/lower color setup.
[10:40:53] <LeoNerd> I guess it really depends what level you're aiming at. E.g. for me, I'd be quite happy with maybe 16 to 64 colour palette, with maybe some RGB6 or RGB8 ability on the palette.
[10:41:17] <LeoNerd> I can't imagine what sort of small microcontroller project would need more colours than that; at that point just do it on a real PC
[10:41:30] <Lambda_Aurigae> monochrome up to 800x600 I think I can do at a cost of 15 dollars for parts and board.
[10:41:33] <LeoNerd> Similar for resolution... if it won't fit in 640x480 then use a real PC.
[10:41:54] <Lambda_Aurigae> double buffered kicks it up to about 20 dollars.
[10:41:58] <LeoNerd> Hrm.. I'd want more than mono though... even a few colours really helps to be able to draw attention to things, indicate status, etc..
[10:42:35] <LeoNerd> Though maybe something that could do 4-bit greyscale, say, at 800x600 for that cost, might interest me
[10:42:54] <Lambda_Aurigae> 800x600 64 colors is 3 ram chips...or 9 for double buffering...so 20 or so for no buffer,,,35ish for double buffered.
[10:43:05] <LeoNerd> It would have to have a lot by way of GPU-style offloading operation to make up for the lack of colour though
[10:44:07] <LeoNerd> I don't imagine double-buffering would be *that* important from my perspective. As long as it had sufficiently powerful "fast" commands for things like rectangle copy/clear, scroll, etc... and some kind of vsync interrupt ability, that should manage most things smoothly without doublebuffer
[10:44:14] <Lambda_Aurigae> basically it will be i2c, spi, or usart interfaced(not sure which yet and possibility of all 3) and be a full display controller.
[10:44:37] <Lambda_Aurigae> yeah..without buffering it does all its drawing in the vertical blanking period.
[10:44:38] <LeoNerd> Personally speaking: I woudln't want to touch an 800x600 display controller over I2C or UART.
[10:44:59] <LeoNerd> "Give me SPI or give me death" to paraphrase ;)
[10:45:03] <Lambda_Aurigae> hehe.
[10:45:20] <Lambda_Aurigae> the sram chips I'm using are microchip serial srams..
[10:45:48] <Lambda_Aurigae> I can output 1, 2, or 4 bits at a time up to 20MHz by spec and I've clocked them at 40MHz and been stable.
[10:46:03] <LeoNerd> That screen is half a million pixels. 400kHz I2C is .. what.. over a second to push that
[10:46:03] <Lambda_Aurigae> have done 4bit color...RGBI basically.
[10:46:13] <LeoNerd> 10MHz SPI would do that in 1/20th a second
[10:46:26] <Lambda_Aurigae> you wouldn't be updating the whole screen from your micro.
[10:46:30] <LeoNerd> True
[10:46:41] <Lambda_Aurigae> just send changes....erase block, draw circle, draw line, etc.
[10:46:49] <Lambda_Aurigae> or draw text at x,y
[10:47:16] <LeoNerd> It just still feels like I2C is good for doing little buses of ADCs, DACs, GPIO extenders for buttons, LEDs, that kind of thing. Those I'd be happy with.
[10:47:28] <LeoNerd> The sorts of devices that are dozens of bytes at most. Not half a million
[10:47:59] <Lambda_Aurigae> again, you wouldn't be sending half a million bytes unless you were actually uploading a bitmap or something.
[10:48:08] <LeoNerd> WEllsure.. but what if I was? :)
[10:48:14] <Lambda_Aurigae> then it would take a while..hehe
[10:48:16] <LeoNerd> "bootscreen" splash images, for example
[10:48:26] <LeoNerd> Oh.. one important ability would be a fullscreen colour override
[10:48:33] <Lambda_Aurigae> meaning?
[10:48:34] <LeoNerd> A command to say "ignore DRAM, output this flat colour"
[10:48:41] <Lambda_Aurigae> hmmm.
[10:48:47] <Lambda_Aurigae> that requires a hardware change.
[10:48:49] <LeoNerd> So I can load the bitmap while that is happening, then atomically switch that off and the image flashes up instantly
[10:48:59] <LeoNerd> That way you don't see it loading slowly
[10:49:03] <Lambda_Aurigae> because the outputs of the srams directly drive the dac inputs.
[10:49:19] <LeoNerd> Mm.. maybe then just a blackout override?
[10:49:24] <Lambda_Aurigae> that's where the double buffering comes in handy.
[10:49:41] <Lambda_Aurigae> you have it displaying one buffer while you are drawing to the other.
[10:49:51] <Lambda_Aurigae> well, I have 2 different buffer setups I've played with.
[10:49:52] <LeoNerd> Well, doublebuffering is good for switching between *two* images.. Again at this kind of size/scale/cost/etc.. I'd be happy with a snap-to-black
[10:50:01] <Lambda_Aurigae> one that has 2 buffers and one that has 3.
[10:50:23] <Lambda_Aurigae> with the 2 buffers you have to draw everything twice if it is the same between buffers.
[10:50:23] <LeoNerd> But then I do a lot of amateur theatre, and that's effectively what we do :)
[10:50:37] <Lambda_Aurigae> with 3 buffers, you have a draw buffer and 2 display buffers.
[10:50:40] <LeoNerd> Since we don't have two stages we can't double-buffer, so we change in black :)
[10:51:02] <Lambda_Aurigae> the video controller only draws into the draw buffer...then it does a copy from the display to the non-active display buffer and flips.
[10:51:26] <Lambda_Aurigae> yeah..I used to play stage hand in theater myself.
[10:51:36] <Lambda_Aurigae> chinese fire drill behind curtains.
[10:51:44] <LeoNerd> I dunno. I still say ignore doublebuffer
[10:51:54] <LeoNerd> If someone *really* wants to doublebuffer could they buy two of your chips and sync them somehow?
[10:52:28] <LeoNerd> Allow the module to take sync signals from another one to genlock them, and some sort of output switch
[10:52:36] <Lambda_Aurigae> hmm.
[10:52:39] <Lambda_Aurigae> something to think about.
[10:52:45] <LeoNerd> Then people who do want doublebuffer can pay twice for it :)
[10:54:32] <Lambda_Aurigae> it actually changes the hardware and software dramatically to do the buffering.
[10:54:43] <Lambda_Aurigae> but can still be done by one microcontroller.
[10:54:49] <Lambda_Aurigae> at least, the one I'm using for it.
[10:55:09] <LeoNerd> Mmm
[10:55:12] <Lambda_Aurigae> tried it with an AVR and couldn't get the speed I needed.
[10:55:13] <LeoNerd> Well,.. I'm just thinking out loud :)
[10:55:25] <LeoNerd> I'm basically listing features I'd look for that would make me more tempted to buy it ignoring the price ;)
[10:55:26] <Lambda_Aurigae> so went with a pic32mx270f256b
[10:55:31] <Lambda_Aurigae> yeah.
[10:55:35] <LeoNerd> Yeah I really don't think an AVR could output VGA
[10:55:46] <Lambda_Aurigae> oh, it can.
[10:55:48] <LeoNerd> I have seen people do interesting things though involving SPI memory
[10:55:51] <Lambda_Aurigae> just not in useful resolutions.
[10:56:02] <Lambda_Aurigae> at least, to me.
[10:56:09] <LeoNerd> You buffer up a scanline of output, then read the memory over SPI with the MISO line attached directly to the video output lines
[10:56:14] <LeoNerd> The SPI clock becomes the dotclock
[10:56:29] <Lambda_Aurigae> and I did get 800x600 4bit color with an avr but I used some external hardware like serial srams and an externa clock source and glue logic.
[10:56:41] <LeoNerd> It relies on a small enough scanline that you can buffer up the next line in the HBLANK time though
[10:56:46] <Lambda_Aurigae> yup.
[10:56:58] <Lambda_Aurigae> that is what gave me the idea actually.
[10:57:08] <Lambda_Aurigae> I'm doing basically the same thing with SPI interfaced SRAMs
[10:57:20] <LeoNerd> Have you seen the Propeller?
[10:57:24] <Lambda_Aurigae> only, I don't have to buffer,,I just set them to read out memory sequentially on pulse by pulse.
[10:57:28] <LeoNerd> I've seen people do crazy VGA things with those
[10:57:33] <Lambda_Aurigae> seen them, find them weird.
[10:57:58] <LeoNerd> http://www.hobbytronics.co.uk/lcd/displays-other/serial-vga
[10:58:07] <LeoNerd> Your project reminds me a lot of this thing
[10:58:41] <LeoNerd> Basically: If I would buy yours, it has to be more compelling than theabove. Some things I dislike about theabove: Pure text and no graphics; only one fg/bg colour pair per screen line
[10:58:59] <Lambda_Aurigae> yeah...mine would be a lot more functional.
[10:59:04] <LeoNerd> If you could improve on either of those then I'd definitely consider it :)
[10:59:05] <Lambda_Aurigae> full graphics..
[10:59:25] <Lambda_Aurigae> it's being designed so it could be done on a solderless breadboard..
[10:59:34] <Lambda_Aurigae> in fact, it's being designed ON a solderless breadboard.
[10:59:36] <LeoNerd> Mmm..
[11:00:00] <LeoNerd> Yeah; I tend to buy two sets of things these days. Modules in 0.1" pitch for developing, then I get a PCB made and solder SOICs down to make the real thing
[11:01:18] <Lambda_Aurigae> it's part of a project I want to work on with some of my more advanced students this summer.
[11:01:31] <Lambda_Aurigae> advanced being, they have come to play at least one summer before.
[11:05:04] <Lambda_Aurigae> ok...time to go do real work rather than funzies stuff.
[11:09:09] <LeoNerd> :)
[12:10:13] <Lambda_Aurigae> kinda back for a bit.
[12:10:20] <Lambda_Aurigae> hot and icky humid outside today.
[14:24:51] <fiodor> hello, please know that leaves disabled avr-gcc in eclipse? Thank you.
[14:25:55] <Lambda_Aurigae> huh?
[14:26:05] <Lambda_Aurigae> somehow that makes no sense in english.
[14:26:45] <Lambda_Aurigae> avr-gcc isn't in eclipse. eclipse can be used to execute avr-gcc, however.
[14:26:52] <Lambda_Aurigae> and what leaves have to do with it I have no clue.
[14:29:37] <fiodor> file:///home/fiodor/Im%C3%A1genes/2015-06-07-083847_1440x900_scrot.png
[14:29:46] <specing> lol
[14:29:52] <fiodor> ups
[14:29:58] <fiodor> im sorry
[14:30:22] <specing> fiodor: go /home, you are drunk :)
[14:33:06] <fiodor> jajaja
[14:33:49] <fiodor> I can not upload image to chat
[14:33:53] <fiodor> im sorry
[14:35:26] <specing> you had no problems using scrot but you have problems uploading its output?!
[17:13:23] <LeoNerd> How annoying. I seem to have lost the voltage select jumper for my AVR programmer
[17:13:40] <LeoNerd> So I can't power the target board any more
[17:30:06] <aandrew> bend the tips together and tack-solder them. :-)
[17:30:42] <aandrew> or do what I usually do and steal a jumper from something else, only to wonder a few months down the road where the hell the jumper for that went, and stealing it back from the AVR programmer since I dont' need it right then. :-)
[17:35:20] <LeoNerd> Huh.. ohyeah I've almost certainly got some old dead hard disks I can steal jumpers from
[17:52:23] <LeoNerd> I wonder if I could replace the jumper with a nice switchj
[17:52:35] <LeoNerd> Need to find an on/off/on switch in TTH 0.1" pitch though
[17:53:32] <aandrew> a nice rocker dip switch perhaps
[17:53:47] <aandrew> something that's not super easy to turn on or off but is easy to toggle intentionally
[17:54:29] <LeoNerd> Oohyes maybe
[18:09:07] <LeoNerd> Anyone much experience with capacitive touch sensors? I think I have the basics in my head, but I now find myself wondering on things like: can you do a matrix scanner of them?
[18:09:38] <LeoNerd> Also: Any way to make a linear ribbon sensor out of something like two triangle-shaped ones, and compare the two channels?
[18:18:58] <Casper> LeoNerd: it is possible
[18:19:07] <Casper> I don't know the math however
[18:19:25] <Casper> LeoNerd: look up capacitive slider
[18:29:43] <LeoNerd> Hmmmmmyes; seems simple enough I think
[19:29:20] <kdehl> Hm. So a newbie question again about AVR. I set the low fuse of a 1284P to 0xE2, where the lower bits are according to page 28 in the datasheet "Calibrated Internal RC Oscillator". But when I disconnect the external clock, the chip stops answering my calls. Is that really right?
[19:30:50] <Tom_itx> you must have it set for external clock
[19:31:49] <Tom_itx> http://www.engbedded.com/fusecalc/
[19:32:21] <kdehl> Yeah, I'm using that site already. :)
[19:32:23] <kdehl> sudo avrdude -P /dev/spidev0.0 -c linuxspi -p ATMEGA1284P -U lfuse:r:lfuse.txt:b
[19:32:32] <kdehl> cat [madman@rasp d]$ cat lfuse.txt
[19:32:32] <kdehl> 0b11100010
[19:35:13] <kdehl> That site says this means I am using the internal clock.
[19:41:17] <kdehl> Hm. Now it works.
[19:41:42] <kdehl> Do you have to cut the power before it changes clock source after you've programmed the fuses?
[19:41:49] <Xark> kdehl: Hmm, if it is set to external, you need external to switch it to internal.
[19:42:18] <Xark> (i.e., if it is set to external and you have no xtal, it can't switch it to internal fuse)
[19:43:08] <kdehl> It was set to external, since I was using an external clock. I reprogrammed the fuses for it to use the internal clock and just removed the clock input pin without cutting power. It made it stop responding.
[19:43:14] <kdehl> Not too strange, I suppose.
[19:43:48] <Tom_itx> maybe the fuse setttings weren't programmed
[19:43:49] * Xark notes AVRs suffer from several "catch-22" issues with fuse programming order (which can make the chip unresponsive trying "fix" the issue). Had fun enabling SWD the other day...
[19:46:15] <kdehl> I wonder whether avrdude works in *BSD on a Raspberry Pi...
[19:46:37] <kdehl> I think that will be tomorrow's experiment.
[19:53:32] <Lambda_Aurigae> sometimes, when changing fuses, you do have to do a power cycle or reset.
[19:53:54] <kdehl> Right.
[19:53:57] <kdehl> So it makes sense.
[21:15:24] <hypermagic> hi
[21:16:34] <Lambda_Aurigae> iH
[21:16:40] <Lambda_Aurigae> and off to bed for me..latersl.
[21:17:04] <hypermagic> LeoNerd, lol, grab an old hdd dvd or other stuff that has a jumper ?
[21:18:34] <hypermagic> LeoNerd, well i would not put jumper on any programmer, i'd just soft menu it i think, ofc it is also possible to hardware jumper on the target board
[21:19:53] <hypermagic> <LeoNerd> Anyone much experience with capacitive touch sensors? I think I have the basics in my head, but I now find myself wondering on things like: can you do a matrix scanner of them? - yea, mde one about 8 years ago
[21:22:08] <hypermagic> the idea is to measure the capacitance of a pad releative o gnd plane, or relative to another pad
[21:22:35] <hypermagic> even 1cmx1cm would work
[23:37:47] <hackvana> Tom_itx: ping