#avr | Logs for 2015-12-18

Back
[05:57:59] <Lambda_Aurigae> http://hackaday.com/2015/12/17/attiny-does-170x240-vga-with-8-colors/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hackaday%2FLgoM+%28Hack+a+Day%29
[05:58:02] <Lambda_Aurigae> for Jartza
[06:55:01] <Lambda_Aurigae> Jartza, dude! we need a blog post or something we can hackaday!
[06:55:21] <Jartza> :)
[06:55:41] <Jartza> I've been talking with Brad on that avrfreaks thread :)
[06:55:47] <Lambda_Aurigae> what's your main site? I'm not awake enough to find it yet.
[06:55:59] <Jartza> I know, that's just crazy (though completely different goal than mine)
[06:55:59] <Lambda_Aurigae> gonna throw it up in a comment.
[06:56:17] <Jartza> I don't have personal blog, but I write to http://labs.rakettitiede.com/language/en/
[06:56:27] <Lambda_Aurigae> I meant the site for the octapenta
[06:56:34] <Jartza> ahh, it's in github
[06:56:41] <Jartza> https://github.com/Jartza/octapentaveega
[06:57:00] <Jartza> Lambda_Aurigae: but... I already started making it better :D
[06:57:18] <Jartza> what would you say about 32x16 characters on screen?
[06:57:33] <Lambda_Aurigae> kewl.
[06:57:41] <Lambda_Aurigae> where's the extra ram come from?
[06:58:59] <Lambda_Aurigae> did your audio data transfer ever make it to hackaday?
[07:00:58] <Jartza> yes it did
[07:01:10] <Jartza> http://hackaday.com/2014/11/30/transferring-audio-to-an-avr-at-12kbps/
[07:01:20] <Jartza> what extra ram? 32x16 is 512 bytes :D
[07:01:26] <Jartza> I'm just drawing the pixels "live"
[07:01:31] <Jartza> without predraw-buffers
[07:01:40] <Jartza> and I can Just Barely Make It
[07:01:51] <Jartza> https://i.imgur.com/IUOqcpr.png
[07:02:00] <Lambda_Aurigae> haha.
[07:02:12] <Jartza> gray is hsync, brown is pixels... in that pic I'm drawing 32 characters worth white.
[07:02:20] <Lambda_Aurigae> still going to have all the functionality?
[07:02:24] <Jartza> front porch 0.64us, back porch 1.92us
[07:02:28] <Jartza> yes, same functionality :)
[07:02:33] <Lambda_Aurigae> sweet.
[07:02:50] <Jartza> http://tinyvga.com/vga-timing/640x480@60Hz
[07:03:00] <Jartza> comparing to those... I'm within specs!
[07:03:02] <Lambda_Aurigae> I have some pic32 chips with lots and lots of ram coming..should be here today I hope...
[07:03:27] <Lambda_Aurigae> 2MB flash and 512K sram...and SQI interface with dma..
[07:03:45] <Lambda_Aurigae> running at 200MHz from a 20MHz crystal.
[07:03:56] <Lambda_Aurigae> major vga controller there!
[07:04:08] <Jartza> whoa :)
[07:04:20] <Lambda_Aurigae> tqfp100 chip.
[07:04:22] <Jartza> yea. 1024x768 easy peasy? :)
[07:05:12] <Lambda_Aurigae> I'm thinking 800x600x4bit
[07:05:20] <Lambda_Aurigae> 234K sram for that.
[07:05:56] <Lambda_Aurigae> 384k for 1024*768.
[07:06:01] <Lambda_Aurigae> doable I think.
[07:06:32] <Lambda_Aurigae> pixel clock of 44.9MHz...doable as the sqi can go 50MHz.
[07:08:05] <Lambda_Aurigae> what I really love about these chips is execution from sram....even from SPI sram although that requires connection to the SQI port so can't do that and SQI fed video at the same time.
[07:08:51] <Lambda_Aurigae> ok..time to get ready for worky.
[07:11:42] <Jartza> yeah :)
[07:35:14] <nikomo> RikusW: ah, yeah I'll poke at him when he comes online
[07:35:56] <RikusW> nikomo: you can simply use an older version of avrdude if the new one doesn't work
[07:36:42] <nikomo> RikusW: yeah, I'd rather not downgrade if I don't have to, though
[07:36:48] <nikomo> it's my Arch user blood, you know
[07:36:59] <nikomo> riding the bleeding edge, till you run dry
[07:37:02] <RikusW> use a seperate binary
[07:37:08] <RikusW> heh
[07:37:13] <nikomo> heh
[11:50:58] <Jartza> I accidentally the whole screen
[11:51:00] <Jartza> is this bad?
[11:51:02] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxeFNCeG9nSEpKOUU/view
[11:51:50] <LeoNerd> Mmmm
[11:51:55] <LeoNerd> I'm getting BBC Micro flashbacks
[11:58:27] <Jartza> yeah. that's 32x20 characters :D
[11:58:48] <Jartza> the only problem is, last 4 rows are the first 4 rows repeated, because 32x16 characters is the full memory of attiny85
[12:19:28] <theBear> oooh pretty chunky texts
[12:19:51] <theBear> what ya pluggin into ? comp, vga, err, that kinda what :)
[12:25:30] <cehteh> Jartza: oops :D .. do now just update after the first 4 rows are displayed, but before the last 4 start .. instant win...
[12:25:48] <cehteh> remember sprite programming in the late 80's home computers?
[12:26:35] <theBear> i remebmer that it was a LOT easier to make a little pixelated looking dude move around on in c64 basic than in pc (gw)basic at the time :)
[12:26:44] <theBear> and i remember that the sprite stuff was why :)
[12:26:49] <cehteh> or add 'swapping to eeprom' ..lol
[12:44:31] <Jartza> cehteh: well, update from what? :)
[12:44:46] <Jartza> theBear: well, it's vga. and attiny85
[12:44:57] <Jartza> whole 512 bytes of ram
[12:45:02] <cehteh> serial .. (er at what baud? :D)
[12:45:30] <Jartza> yeah, I have serial @9600
[12:45:36] <cehteh> or compress the memory somewhat, thats becoming tricky :)
[12:45:41] <Jartza> but well, the screen is drawn 60 times a sec
[12:46:05] <Jartza> this chip _barely_ has any time to draw those pixels
[12:46:10] <cehteh> you have one byte per character?
[12:46:33] <Jartza> actually, one more clock cycle and the monitor stops syncing :)
[12:46:38] <cehteh> lol
[12:46:46] <cehteh> optimize moar :D
[12:46:50] <Jartza> inside single horizontal row, that is
[12:46:51] <Jartza> can't
[12:46:58] <Jartza> just not possibru
[12:47:02] <cehteh> .o(wtf .. good that i dont have such crazy ideas)
[12:47:20] <cehteh> :)
[12:47:24] <Jartza> this tiny chip is already pushing 192 pixels within 25.2 us
[12:47:28] <Jartza> :)
[12:48:05] <Jartza> which requires reading the current byte from screen memory, fetching correct font data from flash and pushing the pixels out from pin
[12:48:54] <cehteh> i know i know
[12:50:12] <cehteh> well scale the font up 16x8 ... imo thats somewhat more useful, because one could use the not used memory for some things and this can be used as big data display then
[12:50:58] <cehteh> *but* .. dunno if its really useful and i guess you never ever wanted to make a too useful product from that :D
[12:51:18] <Jartza> I think it's already useful
[12:51:36] <Jartza> there's old vga monitor around everywhere for zero bucks
[12:51:51] <Jartza> and you can push data basically from any mcu to this tiny thing that fits in your vga connector :)
[12:52:22] <Jartza> it also supports ansi codes, so you can make usable UI with it
[12:52:49] <cehteh> well i dont have an idea for what . but mostly because i dont have a spare vga monitor and somehow running a $1 chip on a $$$ monitor which needs $$$ for electricity defeats the purpose of the smalll cheap, low power chip
[12:52:56] <cehteh> but i still like you efforts :)
[12:53:10] <cehteh> kindof cool to make that
[12:54:33] <Jartza> well, I got 4 vga monitors for free just by asking
[12:55:03] <Jartza> 19" LG monitors, working well but "obsolete"
[16:35:27] <theBear> woop got distracted... but if i hadn't i woulda said something like "nice one Jartza ! keep up the good work !"
[16:35:46] <theBear> probly won't make much sense now tho, all hours outta context and with noone around to read it :)
[16:35:53] <Jartza> hehe
[16:36:05] <Jartza> how come outta context
[16:36:21] <Jartza> it's still the last text on screen (I've filtered all the join/part-crap to other window)
[16:36:45] <Jartza> but yeah. this is proving to be challenging, again
[16:36:50] <Jartza> so few clock cycles to spend
[16:47:30] <cehteh> Jartza: now when you have one attiny85 .. make another one a keyboard controller .. and yet another one an IRC client ... all 3 together → instant win
[16:47:55] <cehteh> first i meant the vga stuff
[16:48:13] <Jartza> :)
[16:48:24] <Jartza> well just so you know
[16:48:38] <Jartza> I have plan to some day make a "home computer" out of only attiny85s
[16:48:50] <Jartza> like one main chip, with maybe basic interpreter
[16:48:51] * cehteh wonders if its possible to bitbang 10mbit ethernet :)
[16:48:54] <Jartza> second one as vga chip
[16:49:07] <Jartza> third as audio chip + input (keyboard and joystick)
[16:49:16] <Jartza> etc :D
[16:49:23] <cehteh> you know the guy who ran linux on an atmega?
[16:49:33] <Jartza> I don't know him, but I saw that :)
[16:50:09] <cehteh> but with your native approach you possibly beat that my magnitudes in performance ..
[16:50:25] <cehteh> and you have multicore support :D
[16:51:54] <Jartza> yea :D
[16:59:13] <DKordic> Jartza: Have You programmed xcore in assembly, or only in C?
[17:00:20] <Jartza> xcore?
[17:00:42] <DKordic> You mentioned You have an XMOS devkit.
[17:00:57] <Jartza> ahh
[17:01:03] <Jartza> yeah, I have devkit, haven't even opened it :D
[17:01:16] <Jartza> planning to take a look
[17:44:50] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxRXpCdHNXUVFKQUU/view
[17:52:37] <Lambda_Aurigae> looking good Jartza
[17:52:44] <Lambda_Aurigae> enough text to be useful.
[18:25:24] <Jartza> Lambda_Aurigae: yeah. full 1/2 kilobyte
[18:25:53] <Jartza> planning to enlarge the font to 6x10 pixel so it'll fill the screen :)
[18:26:15] <Lambda_Aurigae> still plenty of room in the flash, eh?
[18:27:52] <Lambda_Aurigae> I really gotta get these tqfp100 pic32 chips on boards...
[18:28:25] <Jartza> yeah, current font is 2kB and firmware+font takes ~3600 bytes
[18:28:27] <Lambda_Aurigae> 2MB of flash, 512K sram, ability to execute from sram AND from external serial sram.
[18:28:29] <Jartza> not even half filled
[18:28:42] <Jartza> I'm just having other challenges :D
[18:28:53] <Lambda_Aurigae> what kinda challenges?
[18:29:01] <Jartza> now that I draw the pixels "live", I'm really really really clock-deprived
[18:29:08] <Jartza> as understandably I can't buffer uart
[18:29:33] <Jartza> so I need to sample uart, parse ansi, do all the scrollings etc. in horizontal "blanking"
[18:29:41] <Jartza> which is... well, 6.3us
[18:29:46] <Lambda_Aurigae> ouch.
[18:29:47] <Jartza> ~127 clock cycles
[18:29:58] <Lambda_Aurigae> that gonna hurt your uart?
[18:30:00] <Jartza> so I need some more optimizations :D
[18:30:06] <Jartza> nah, UART is working
[18:30:14] <Jartza> scrolling... yes, that too, but clearing the last line while scrolling... no
[18:30:17] <Jartza> :D
[18:30:41] <Jartza> but let's see.
[18:31:08] <Jartza> I'm planning something :D
[18:31:15] <Lambda_Aurigae> uhuo.
[18:31:16] <Lambda_Aurigae> hehe
[18:32:38] <Lambda_Aurigae> sounds dangerous.
[18:33:55] <Jartza> yeah
[18:34:00] <Jartza> it might involve a jump-table
[18:34:15] <Lambda_Aurigae> getting desperate AND dangerous then.
[18:34:17] <Jartza> and one register which was freed from my draw-buffer-alternating as "jumpstate" variable
[18:34:24] <Lambda_Aurigae> why not a state machine while you are at it?
[18:34:41] <Jartza> well, it is sorta
[18:34:52] <Jartza> actually it already is sort of state machine
[18:35:12] <Jartza> but instead of checking individual bits in state-register, I make a jump table
[18:35:17] <Lambda_Aurigae> state machines are how I do menus and command parsing.
[18:35:54] <Jartza> I don't sample uart on every horizontal line
[18:36:29] <Lambda_Aurigae> make much larger code size with jump tables for different horizontal lines?
[18:36:47] <Lambda_Aurigae> so you can do different things depending on where you are in the display.
[18:36:58] <Jartza> that was the last plan
[18:37:28] <Jartza> but yeah. would need 1050 bytes for that :)
[18:37:33] <Jartza> not that it's an issue, but anyhow
[18:38:07] <Jartza> the problem being, it still doesn't help in uart sampling
[18:38:15] <Jartza> as the uart is nifty
[18:38:29] <Jartza> vertical refresh is ~31.45kHz
[18:39:02] <Jartza> if I'm not yet receiving, I look for start bit on each hline
[18:39:16] <Jartza> when I get one, I set my nice sequencer
[18:39:36] <Jartza> first bit I sample after 2 hlines, then 3,3,4,3,3,4,3,3....
[18:39:52] <Jartza> as 9600 isn't evenly divisable with 31450
[18:40:09] <Jartza> (~3.28)
[18:44:54] <Jartza> hmm, maybe it was 2,4,3,3,4,3,3,4,3,2
[18:45:03] <Jartza> lemme find my bresenham drawing :)
[18:45:16] <Jartza> https://i.imgur.com/O0GdEMW.png
[18:45:37] <Jartza> Y is 10 pixels, which is 10 bits
[18:45:50] <Jartza> X goes 32 pixels, which is well... 32 hlines for 10 bites :)
[18:46:31] <Jartza> so basically my uart sampling is precalculated bresenham line algorithm
[18:46:58] <Jartza> but when I'm not sampling, I can do other stuff
[18:47:01] <Jartza> like parse ansi
[18:47:03] <Jartza> or scroll
[18:47:09] <Jartza> but only one thing per hline
[18:47:32] <Jartza> the problem being the 127 clocks still, can't do much in that time. now I'm 20 clocks short from scrolling
[18:47:51] <Jartza> with jump table I could get rid of many of the conditionals
[18:52:43] <Jartza> if I just had buffer for UART I could handle most of the stuff in vblank, where I have plenty of clocks
[18:52:54] <Jartza> ;)
[18:53:15] <Jartza> (yeah. I know. I could've made it 28x15 and used 30 bytes for buffers...)
[18:53:31] <Jartza> sorry, 28*16
[18:54:07] <Jartza> oh but 28*16 would've been same amount of characters as the previous
[18:54:10] <Jartza> hmm. 32x15 then
[18:54:29] <Jartza> naah. I don't want the easy way :)
[19:08:20] <Jartza> whoa
[19:17:07] <Jartza> well
[19:17:16] <Jartza> only thing that doesn't work is now horizontal scroll
[19:17:29] <Jartza> :)
[19:17:48] <Jartza> then I need bigger font too, but yeah
[19:25:43] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxQW9RdXRtUW50dGs/view?usp=sharing
[19:43:59] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxUkdHY2lvdkw2RjA/view?usp=sharing
[19:47:40] <Lambda_Aurigae> sweet.
[19:51:45] <Jartza> only horizontal scroll broken anymore :)
[19:51:49] <Jartza> that's another challenge
[19:52:02] <Jartza> now it also draws 6x10 pixel font
[19:52:08] <Jartza> I just need to mod the font to look nice
[19:56:52] <cehteh> hey the second has line number, .. emacs here we go
[19:57:54] <Jartza> :)
[20:01:36] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxSm95LWpKdjhNQk0/view?usp=sharing
[20:01:45] <Jartza> enlarged the numbers so you can see it really draws 6x10 :)
[20:04:16] <cehteh> meanwhile my micro OS needs less ram, and can blink few leds :D
[20:05:22] <cehteh> i wonder if one can define static inline functions with __attribute__((weak)) .... with -flto this should be possible in theory at least
[20:05:41] <cehteh> but if have some doubts that it really works :)
[20:09:45] <Lambda_Aurigae> nice.
[20:15:05] <Jartza> well. I'll make the quick'n'dirty version of the font to see
[20:23:56] <Jartza> well. some fixin' needed
[20:24:44] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxaEVHVXotMDZST1E/view?usp=sharing
[20:27:26] <cehteh> wow looks like comic sans for tiny :D
[20:29:15] <Jartza> yea those small letters :D
[20:30:50] <Jartza> capitals and numbers are now quite nice
[20:32:01] <Jartza> well. that's 192x160 pixels on tiny chip :)
[20:32:10] <tpw_rules> hah, nice
[20:32:19] <tpw_rules> how much cpu time is left
[20:32:48] <Jartza> a lot, in vblank. during screen drawing, I'm still missing few cycles to make the horizontal scroll work
[20:33:08] <tpw_rules> heh yeah
[20:33:10] <Jartza> not that you would do anything with those cycles in vblank as there's no memory left :P
[20:33:20] <Jartza> 32*16 = 512
[20:33:21] <tpw_rules> which controller?
[20:33:24] <Jartza> attiny85
[20:33:34] <tpw_rules> oh
[20:33:39] <cehteh> Jartza: you could use some unused hardware registers as ram
[20:33:39] <tpw_rules> you could use the eeprom :D
[20:33:50] <Jartza> cehteh: I am
[20:33:53] <cehteh> :)
[20:34:02] <Jartza> what do you think I use as variables? registers and gpior :D
[20:34:19] <Jartza> all RAM is in display buffer
[20:34:31] <tpw_rules> why don't you make it widescreen
[20:34:33] <hackvana> display buffer takes all RAM
[20:34:35] <Jartza> eeprom is too slow
[20:34:36] <tpw_rules> ie chop off the top and bottom two rows
[20:34:56] <tpw_rules> use it as space for sexy copper effects
[20:34:57] <Jartza> why?
[20:35:02] <Jartza> nah
[20:35:06] <tpw_rules> so you have ram?
[20:35:07] <tpw_rules> also that
[20:35:10] <Jartza> I leave sexy graphical effects for AtomicZombie :)
[20:35:27] <Jartza> I have UART and ANSI escapes
[20:35:29] <Lambda_Aurigae> and his static graphic?
[20:35:32] <tpw_rules> but yeah having some memory would be the more pressing concern
[20:35:36] <cehteh> biggier font, less characters on the screen .. moar ram
[20:35:50] <Jartza> tpw_rules: why, this is meant to be used via UART
[20:35:54] <tpw_rules> oh
[20:35:56] <tpw_rules> that's boring
[20:36:07] <Lambda_Aurigae> tpw_rules, it was a big thing on hackaday today.
[20:36:12] <tpw_rules> and by boring i mean potentially useful and thus uninteresting to a hacker :P
[20:36:15] <tpw_rules> where?
[20:36:18] <Lambda_Aurigae> generating 4 color graphic on vga screen.
[20:36:30] <Jartza> yeah
[20:36:36] <Jartza> 8 colors actually :)
[20:36:40] <Lambda_Aurigae> oh..yeah.
[20:36:40] <Jartza> and 2 channel audio
[20:36:42] <Lambda_Aurigae> with one attiny
[20:36:52] <Lambda_Aurigae> but he isn't doing anything useful with it..just a demo screen.
[20:36:57] <tpw_rules> link? doesn't appear to be on the fornt page
[20:37:04] <Jartza> OctaPentaVeega is meant for totally different stuff.
[20:37:08] <tpw_rules> have any of you seen lft's things
[20:37:09] <Jartza> different approach
[20:37:17] <Jartza> yes
[20:37:17] <Lambda_Aurigae> http://hackaday.com/2015/12/17/attiny-does-170x240-vga-with-8-colors/
[20:37:39] <Lambda_Aurigae> it was yesterday I suppose.
[20:37:45] <Lambda_Aurigae> I read it this morning.
[20:37:54] <tpw_rules> ah ok
[20:37:56] <Lambda_Aurigae> it's a nifty demo
[20:38:03] <Lambda_Aurigae> but, not useful like Jartza's project.
[20:38:14] <tpw_rules> which makes it better than Jartza's :D
[20:38:29] <Lambda_Aurigae> gonna have to get out the bitch and use it on you tpw_rules !
[20:38:34] <Jartza> I think this is better video
[20:38:35] <Jartza> https://www.youtube.com/watch?v=6Y_5X8HbdK8&feature=youtu.be
[20:38:41] <Jartza> even though without audio
[20:38:44] <tpw_rules> http://www.linusakesson.net/scene/bitbanger/
[20:39:37] <tpw_rules> he has a couple other super cool micro demos
[20:40:03] <Jartza> tpw_rules: yeah. I'm not making a demo :)
[20:40:15] <tpw_rules> is this just supposed to be a portable serial temrinal?
[20:40:53] <Lambda_Aurigae> that's what I use it for.
[20:41:13] <Lambda_Aurigae> serial terminal on an attiny85 that ties to my spare monitor.
[20:41:21] <tpw_rules> ah okay
[20:41:24] <tpw_rules> cool
[20:41:28] <tpw_rules> can i shill for propeller
[20:41:28] <Lambda_Aurigae> works well.
[20:41:40] <Lambda_Aurigae> you can, but it's not an attiny...hehe
[20:41:49] <Lambda_Aurigae> I do it for pic32 all the time.
[20:41:51] <tpw_rules> yeah but i did that at 1280x1024 + keyboard and mouse
[20:42:07] <tpw_rules> i got an fpga board a week or so ago so that's fun
[20:42:08] <Lambda_Aurigae> I'm gonna try to do similar with a pic32.
[20:42:22] <tpw_rules> realtime plasma
[20:42:24] <tpw_rules> ram? what
[20:42:41] <Lambda_Aurigae> huh?
[20:42:55] <tpw_rules> i made an fpga demo which was a realtime plasma effect
[20:43:00] <Lambda_Aurigae> oh.
[20:43:16] <tpw_rules> each pixel is generated through realtime multipliers and such. it uses no RAM
[20:43:23] <tpw_rules> (but it does use lookup tables)
[20:43:43] <Lambda_Aurigae> I had a crazy WTF idea today that I'll never do but would be awesomely awesome...which is a multiprocessor pic32mz system that runs a modded linux.
[20:44:17] <tpw_rules> remember that hackaday where someone soldered a sim to an atmega and ran linux on it
[20:44:20] <tpw_rules> simm
[20:44:25] <Lambda_Aurigae> yup.
[20:44:32] <Lambda_Aurigae> I built it to see if it works.
[20:44:34] <tpw_rules> so like that?
[20:44:43] <Lambda_Aurigae> still have the build under my bench.
[20:44:49] <Lambda_Aurigae> no...he emulated an ARM processor.
[20:44:52] <tpw_rules> but with PICs
[20:44:55] <Lambda_Aurigae> I want to run linux native on pic32.
[20:45:00] <tpw_rules> no it was like a 386 or something
[20:45:03] <Lambda_Aurigae> pic32 is a mips processor with pic peripherals.
[20:45:07] <tpw_rules> oh okay
[20:45:10] <Lambda_Aurigae> no..it was ARM he emulated.
[20:45:11] <tpw_rules> so it has an MMU?
[20:45:18] <Lambda_Aurigae> some of them do.
[20:45:24] <Lambda_Aurigae> with a 4GB address space even.
[20:45:32] <tpw_rules> oh you're right
[20:45:33] <Jartza> I still need to fix the font
[20:45:35] <Jartza> and the scroll
[20:45:45] <Lambda_Aurigae> Jartza, font looks good..I like the larger numbers.
[20:45:49] <Jartza> tpw_rules: this is the previous version :)
[20:45:49] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxai1tc0ZBa0o2TTQ/view
[20:45:59] <Jartza> Lambda_Aurigae: the small font doesn't look that cool :)
[20:46:03] <tpw_rules> it broke
[20:46:07] <Jartza> if you looked at the latest pic
[20:46:13] <tpw_rules> https://i.imgur.com/SURfzF2.png web 2.0
[20:46:18] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxaEVHVXotMDZST1E/view
[20:46:19] <Jartza> this one
[20:46:26] <Jartza> a bit like comic sans :D
[20:46:33] <Jartza> like cehteh said
[20:46:53] <Lambda_Aurigae> tpw_rules, I could just use that atmega/ram arm emulator and port it to pic32....
[20:46:53] <tpw_rules> i guess you're actually outputting 320x240 but with 640x480 timings?
[20:46:58] <Lambda_Aurigae> but would rather run native.
[20:47:06] <tpw_rules> Lambda_Aurigae can't you just build the kernel for mips
[20:47:11] <Lambda_Aurigae> yup.
[20:47:26] <tpw_rules> like i feel while it may be more difficult than that atmega thing it's much more pedestrian
[20:47:29] <Lambda_Aurigae> but I want to do multiple processors kinda thing....run some functions on each processor.
[20:47:51] <tpw_rules> you're scaring me now
[20:48:00] <Lambda_Aurigae> actually, with some external ram I could probably run a full linux microkernel like he did on the arm emulator.
[20:48:20] <Lambda_Aurigae> I'm a very scary person.
[20:48:24] <tpw_rules> imo it's too obvious though
[20:48:42] <tpw_rules> get two 16 bit pics and have them process in parallel as one 32 bit monster
[20:48:44] <tpw_rules> it must be possible
[20:48:44] <Lambda_Aurigae> need another function, add another processor....
[20:49:05] <Lambda_Aurigae> I'm thinking more like,,,,need a web browser, run it on one processor....
[20:49:08] <tpw_rules> what do you mean 'function'
[20:49:08] <tpw_rules> oh
[20:49:09] <Lambda_Aurigae> with another for the kernel.
[20:49:15] <Lambda_Aurigae> and one for the vga display.
[20:49:15] <tpw_rules> so you mean
[20:49:17] <tpw_rules> a process?
[20:49:19] <Lambda_Aurigae> yeah.
[20:49:26] <Lambda_Aurigae> one process per processor.
[20:49:31] <tpw_rules> makes sense, right?
[20:49:38] <Lambda_Aurigae> with an interlink so they can talk to each other
[20:49:43] <tpw_rules> linux kernel protocol over IP
[20:49:51] <Lambda_Aurigae> something like that.
[20:50:01] <tpw_rules> can you just replace the syscall interrupt with something that shoves the arguments over spi
[20:50:04] <tpw_rules> that should work
[20:50:09] <tpw_rules> there's nothing wrong with this plan
[20:50:10] <Lambda_Aurigae> possibly...
[20:50:19] <tpw_rules> i mean they're all in their own memory spaces anyway
[20:50:34] <Lambda_Aurigae> I was imagining a 64 processor system
[20:50:40] <Lambda_Aurigae> a mini-supercomputer.
[20:50:51] <Lambda_Aurigae> it's much how the cray systems worked back in the day actually.
[20:50:55] <tpw_rules> yeah
[20:51:07] <tpw_rules> would they ever be able to double up?
[20:51:12] <tpw_rules> process max of 64 is kinda low
[20:51:12] <Lambda_Aurigae> could build a pic-ro-cray!
[20:51:37] <Lambda_Aurigae> if your process is written correctly it could spread across multiple CPUs
[20:51:39] <tpw_rules> stick em all in a fridge and tout your state of the art cooling
[20:51:42] <Lambda_Aurigae> again, cray did such.
[20:51:50] <tpw_rules> no not like that
[20:51:53] <tpw_rules> two processes on one cpu
[20:51:59] <Lambda_Aurigae> oh.
[20:51:59] <tpw_rules> because my chrome always has more htan 64 tabs open
[20:52:07] <tpw_rules> and in chrome 1 tab == 1 process
[20:52:09] <Lambda_Aurigae> threads within processes.
[20:52:28] <Lambda_Aurigae> in chrome 1 tab = 3 to 10 threads or more on my system.
[20:52:40] <Jartza> well
[20:52:46] <Lambda_Aurigae> and they grow on their own even if I don't do anything with chrome.
[20:52:50] <Jartza> the 6x10 pixel font runs relatively well too
[20:52:52] <Lambda_Aurigae> firefox is worse.
[20:52:56] <Lambda_Aurigae> Jartza, awesome.
[20:53:27] <Lambda_Aurigae> tpw_rules, it was just a wild what the fuck though as I was driving home in the snow tonight really.
[20:53:38] <tpw_rules> that's where the nation's best inventions come from
[20:54:10] <Lambda_Aurigae> this particular pic32 I just got today has both a parallel external memory interface and an SQI external memory interface.
[20:54:19] <Lambda_Aurigae> SQI is like SPI only with 4 i/o lines.
[20:54:34] <Lambda_Aurigae> there are both flash and sram chips available with said interface.
[20:54:34] <tpw_rules> is that the term they use? i've heard of quad spi
[20:54:51] <Lambda_Aurigae> and the pic32 can execute from SQI connected ram or flash.
[20:54:56] <Lambda_Aurigae> Serial Quad Interface.
[20:55:04] <Lambda_Aurigae> I think it's a microchip term.
[20:55:16] <tpw_rules> yeah i wonder if they tried to trademark it
[20:55:21] <tpw_rules> i've used QSPI but never SQI
[20:56:06] <Lambda_Aurigae> I have some 1Mbit ram chips from microchip that have SQI interface..
[20:56:13] <Lambda_Aurigae> you can do 1, 2, or 4 bits at a time.
[20:56:24] <Lambda_Aurigae> I think 2 bit is called SDI
[20:56:32] <Lambda_Aurigae> but not sure off the top of my head.
[20:57:12] <Lambda_Aurigae> yeah...Serial Dual Interface.
[20:57:18] <Lambda_Aurigae> 23A1024
[20:57:46] <ThatDamnRanga> isn't that essentially just truncated parallel
[20:57:59] <Lambda_Aurigae> 23LCV1024 is awesome too...only SPI/SDI interface but has a battery backup mode...
[20:58:04] <Lambda_Aurigae> kindasorta.
[20:58:37] <Lambda_Aurigae> no real address lines...you set your address just like you would with SPI,,,only you can write 1, 2, or 4 bits at a time.
[20:58:59] <Lambda_Aurigae> then you can set the chip to sequential read back and just clock the data out without setting addresses.
[20:59:08] <Lambda_Aurigae> can set it to sequential read and do the same thing.
[20:59:39] <Lambda_Aurigae> set data on pins, toggle clock, set data on pins, toggle clock....wash, rinse, repeat.
[20:59:53] <Lambda_Aurigae> the logic pirate uses them in just those modes too.
[21:00:11] <Jartza> Lambda_Aurigae: https://i.imgur.com/U12WcFz.png
[21:00:32] <Jartza> gray hsync, brown is pixels :)
[21:00:33] <Lambda_Aurigae> set address to 0x0000, set chip to read in data, toggle clock pin at 20 or 40 MHz....read data in till full..
[21:00:41] <Jartza> timing pairs show front and back porch
[21:01:00] <Lambda_Aurigae> to read it back out,,,,set address to 0x0000, set chip to sequential output mode,,,,toggle clock and watch data flow.
[21:01:16] <Lambda_Aurigae> Jartza, nice.
[21:01:25] <Lambda_Aurigae> do you have a real scope to look at the signal?
[21:01:30] <Jartza> http://tinyvga.com/vga-timing/640x480@60Hz
[21:01:32] <Lambda_Aurigae> or just the saleae?
[21:01:36] <Jartza> both
[21:02:11] <Lambda_Aurigae> I have a home made logic pirate clocking data in at 40MHz...should be able to read such signals I suppose.
[21:02:22] <Jartza> yea
[21:02:30] <Jartza> I ran saleae @100MHz
[21:02:35] <Jartza> I have the 16 channel version
[21:02:45] <Lambda_Aurigae> http://dangerousprototypes.com/docs/Logic_Pirate love that thingie.
[21:03:21] <Lambda_Aurigae> gonna build a much higher end logic pirate soon with one of these 100 pin pic32 chips and a bunch of serial sram chips.
[21:03:43] <Lambda_Aurigae> add in a little external glue logic and I should be able to interleave data in at 80MHz.
[21:03:44] <tpw_rules> get an fpga
[21:04:06] <Lambda_Aurigae> tpw_rules, would love to but that means learning something new and my brain hurts as it is...hehe
[21:04:12] <tpw_rules> yeah
[21:04:14] <tpw_rules> hehe
[21:04:44] <Lambda_Aurigae> this one pic32 I just got has 512K of sram and the sqi interface can read data directly into memory at 50MHz...4 bits at a time.
[21:05:46] <Lambda_Aurigae> and I can add 1GB of external ram in theory but I think that's beyond my capabilities at the moment.
[21:06:03] <tpw_rules> i feel like you'd loooooove a saleae
[21:07:02] <Lambda_Aurigae> aawww man....the pic32 limits the mips processor..
[21:07:11] <Lambda_Aurigae> can only add 16MB of sram max.
[21:07:13] <Lambda_Aurigae> but still...
[21:07:16] <Lambda_Aurigae> yeah,,I would.
[21:07:34] <Lambda_Aurigae> I would also love the 8 channel DSO I saw at a client's shop the other day.
[21:07:46] <tpw_rules> yeah but a saleae is much cheaper
[21:08:01] <Lambda_Aurigae> probably more than I can afford at the moment though.
[21:08:04] <tpw_rules> i didn't even know they made ones that were 8 channels
[21:08:42] <Lambda_Aurigae> no clue what the brand was but it was definitely an 8 channel and had both analog and digital display modes.
[21:08:48] <Jartza> https://drive.google.com/file/d/0B2dTzW9TMeBxN1FULVk0OHBKbDA/view
[21:08:49] <Jartza> yea
[21:09:20] <Lambda_Aurigae> Jartza, time to create a lightcycles game!
[21:09:28] <Jartza> :)
[21:09:42] <Jartza> but hey, now it uses all of the 480 pixel area too
[21:09:49] <Lambda_Aurigae> sweet.
[21:10:47] <Lambda_Aurigae> yeah...200 dollars for an 8bit logic analyzer....bit much for me.
[21:11:18] <tpw_rules> the software is super advanced though
[21:11:23] <Lambda_Aurigae> yup.
[21:11:31] <Lambda_Aurigae> ok...must head for bed.
[21:11:33] <tpw_rules> and you do need a decent computer
[21:11:35] <tpw_rules> but night
[21:11:38] <Lambda_Aurigae> wifely person is whining.
[21:11:51] <Lambda_Aurigae> quad core amd with 16GB ram should suffice.
[21:11:57] <tpw_rules> usb3
[21:11:58] <tpw_rules> ?
[21:12:02] <Lambda_Aurigae> yup..on the motherboard.
[21:12:10] <Lambda_Aurigae> along with both serial and parallel ports!
[21:12:15] <tpw_rules> i use a usb3 to thunderbolt converter with mine and it works great
[21:12:18] <Lambda_Aurigae> 4 ram slots.
[21:12:31] <Lambda_Aurigae> up to 32GB but was only able to scrounge 16.
[21:12:53] <Lambda_Aurigae> 4 USB 3.0 ports even.
[21:13:05] <tpw_rules> the more important metric is what's running
[21:13:09] <Lambda_Aurigae> and ye olde Gigabyte dual bios.
[21:13:28] <tpw_rules> i've got an 8 gig dual core macbook and it works great as long as i make sure i don't have 500 tabs open
[21:13:31] <Lambda_Aurigae> right now it's running ubuntu linux 64bit.
[21:13:54] <Lambda_Aurigae> I have 38 tabs open at the moment and cpu usage is under 15% on all cores.
[21:14:11] <tpw_rules> it's not cpu usage though. it's i/o latency and ram
[21:14:26] <Lambda_Aurigae> 6.4GB of ram used and swap is turned off.
[21:14:32] <tpw_rules> using a lot of cpu just means it gets bogged down searching for triggers but that doesn't really matter
[21:15:13] <Jartza> Lambda_Aurigae: https://github.com/Jartza/octapentaveega/tree/no_predraw
[21:15:16] <Lambda_Aurigae> when I run ksp the cpu usage goes haywonky.
[21:15:30] <Lambda_Aurigae> Jartza, thanks...will try to play with it this week.
[21:15:32] <Jartza> still broken, horizontal scroll crashes and burns and not cleaned up, but WIP-branch :)
[21:15:54] <Jartza> master has the very-stable 32x14 version, which I have ran over 3 weeks on one attiny
[21:15:55] <Lambda_Aurigae> have to work tomorrow but have a 4 day weekend coming up next week.
[21:15:59] <Lambda_Aurigae> anyhoo,,,nighters all.
[21:16:02] <Jartza> night
[22:08:24] <Jartza> https://youtu.be/7jxDp4N522w