#avr Logs

May 08 2018

#avr Calendar

04:11 AM MrFahrenheit: Ameisen, what's more legible on a 3d print, raised or indented lettering?
04:23 AM Emil: https://emil.fi/d/historylog.txt
04:33 AM polprog: dear god why that awk
04:33 AM polprog: should go back to awk bokk
04:33 AM polprog: book*
08:50 AM Emil: hmm
08:50 AM Emil: Anyone done interrupt driven eeprom?
08:56 AM Haohmaru: internal, external?
08:56 AM Haohmaru: (no / no, but i want to)
08:57 AM Emil: internal
08:58 AM Haohmaru: hm, that only makes sense for writing, right?
08:59 AM Haohmaru: since reading from it is kinda like reading from some slower RAM
08:59 AM Emil: hmm
08:59 AM Emil: apparently it's 4 cycles per byte written
08:59 AM Emil: and 2 bytes per byte read
08:59 AM Emil: no
08:59 AM Emil: the other way around
08:59 AM Emil: yeah, 4 cycles for read and write two cycles
09:00 AM Emil: but hmm
09:00 AM Emil: what's the purpose of waiting for completion
09:00 AM polprog: huh. why is it longer to read
09:00 AM polprog: and if its 4 cycles
09:01 AM polprog: doesnt the interrupt take most of the time?
09:01 AM Emil: yeah
09:01 AM Emil: exactly what I'm wondering
09:01 AM Emil: but still there's interrupt ready signal
09:04 AM Emil: waitwaitwait
09:04 AM Emil: it's much longer
09:04 AM Emil: 1.8ms or 3.5ms if atomic
09:04 AM Emil: 3.4ms*
09:05 AM Emil: holyshitthat'sslow
09:05 AM twnqx: if you write the interrupt handler in asm, and make the compiler set aside registers strictly or irq handler use, it can be faster
09:05 AM twnqx: but yeah, normally not
09:05 AM twnqx: and i think waiting for completion will be needed if you want to write multiple values
09:06 AM Emil: hmm
09:06 AM Emil: I wonder how the avr/eeprom.h functions are implemented
09:07 AM Emil: like if the block write can still be interrupted
09:07 AM Emil: abcminiuser please come back
09:07 AM polprog: if only there was a bloody DMA dafsfsfaffafaf
09:07 AM Emil: ikr
09:13 AM Haohmaru: DMA? -> xmega
09:15 AM polprog: hmmmm
09:16 AM polprog: maybe i should get a 68k
09:30 AM Haohmaru: i got my fancy function for finding the optimal uart bitrate settings working
09:30 AM Haohmaru: now it compiles down into constants, c++ ftw
10:21 AM Haohmaru: http://paste.debian.net/hidden/34c76709/ <-
10:24 AM Haohmaru: the cherry on the top will be adding another compile-time check if the "Optimal" rate is within a few percent of the desired
10:36 AM polprog: voodoo
11:26 AM Ameisen: well. That was an interesting GCC error
11:26 AM Ameisen: incompatible compression versions or such
11:27 AM Ameisen: my guess is that GCC was using the headers from the system/build zlib (which is zlib-ng), and was using the sources from its local zlib
11:27 AM Ameisen: so the versions and structures mismatched
11:29 AM Ameisen: I am wondering if it woudl be beneficial to have gcc/binutils use xz or another compression algo instead of zlib. Better compression ratio.
11:29 AM Ameisen: though none of the compressed data would ever be on an MCU
11:46 AM antto: polprog if the arguments are all known at compile time - the naaaasty functions dissapear, and the usart structure is populated with constants
11:46 AM polprog: i know
11:46 AM polprog: still
11:46 AM polprog: voodoo
11:46 AM antto: well ain't that great!
11:47 AM polprog: i started to look at some cpp tutorials
11:47 AM Ameisen: antto - what I really want - constexpr modifiers on function arguments
11:47 AM antto: thing is, you read the datasheet once, figure out all the nasty formulas, then you write this nasty algorithm and then you can forget about it
11:47 AM Ameisen: that also function as being overloadable
11:48 AM Ameisen: so you could have int foo (int a); and int foo (constexpr int a)
11:48 AM Ameisen: the latter would be called when a was contant
11:48 AM Ameisen: constant
11:48 AM antto: Ameisen i didn't understand why static_assert() can't be used on the constexpr function's arguments
11:48 AM Ameisen: also, I think I will add a flag to embedded gcc for AVR to change the zero register and stack register to r2/r3
11:48 AM Ameisen: instead of r0/r1
11:48 AM Ameisen: because function arguments aren't constexpr
11:49 AM Ameisen: it's a limitation of constexpr - constexpr functions can execute at runtime
11:49 AM Ameisen: and arguments are never constexpr from a language point of view
11:49 AM Ameisen: it's annoying, I agree
11:49 AM Ameisen: also the lack of static_warning
11:49 AM Ameisen: well, static_warn
11:50 AM antto: hm, so the idea is.. you kinda always write constexpr functions, and then those can turn either into "normal" (runtime) functions <or> if you're lucky and all arguments are known - into nothing (optimized out at compile time) ?
11:51 AM Ameisen: if you make the argument template arguments, it will work
11:51 AM Ameisen: but correct
11:51 AM Ameisen: that is what constexpr does
11:52 AM Ameisen: it is also why I want constexpr _arguments_
11:52 AM Ameisen: then you can overload them based upon constexpr
11:52 AM Ameisen: in gcc, you can do some hackery with __builtin_constant_p to determine if you are processing a constexpr or runtime instantiation of it
11:52 AM Ameisen: doesn't work in Clang due to limitations in clang
11:52 AM Ameisen: Clang isn't good at determining if function arguments came from a constant sourc
11:53 AM Ameisen: I do that in my printer firmware for flash stuff
11:53 AM antto: * parse error on your first sentence
11:53 AM Ameisen: https://github.com/ameisen/Tuna-i3-Plus/blob/master/Tuna/tunalib/flash.hpp#L229-L240
11:55 AM antto: two-space tabs x_x
11:55 AM antto: muh eyez
11:57 AM Ameisen: :|
11:57 AM Ameisen: either way, I needed a way to access values in program memory both as constexpr, but also at runtime
11:57 AM Ameisen: which is tricky
11:57 AM antto: hm
11:59 AM thardin: zero-space tabs are where it's at
11:59 AM Ameisen: -1 space tabs
12:00 PM thardin: woah
12:01 PM antto: negative tabs, they break the edge of yer monitor and then yer pixels start spilling everywhere
12:01 PM Ameisen: it converts your text to zalgo
12:02 PM Ameisen: c̵̶̗͇̙͓̺̟̝̟̖̣̳̳͆̓̑̾ͪ̊͐ͦͬ̽̇̉̇ͧ͆̂̏̐͠o̶̷̶̯̜̬̮̫̲͕̤̞͉͔͎͇̫̝̓ͩ̓ͬͨ͗ͩ̚ͅͅņ̭̫̹̲͈̯͎̜̘̳̋̋͛̚͟s̷̛͔͙͔̖͎̖̭͍̦̞͖̜̠̱̠̞͚͋ͥ͆̒͛̈́ͥͨ̆ͪ͛͑ţ̵̨̪̣̺͓͙̭̰̺͔͈̬̗̤̙͈̠͚̠̂ͫͭ͛̈͗̊̿̾̈͜͞ͅȇ̡̢͇͎̻̜̞͉͈̀̔̌̋̅ͫ̊̇̉́̀̚̚͢x̢̤͖͈̱͉̗̯̤͈͎̰̒̐ͮ̒͐͋̅̂̉ͭ͗ͭ̂ͭͬ̅͝p̄̂́̌
12:02 PM Ameisen: ̡̮͕̤̬͉͎͖̺̯̜̦͓̫̬̤͔̫͑͢ͅŗ̷͉̗̹͕̘̮͙̠̙̇ͩ͛̍ͯ̂̈͒ͫ̈́̎̃ͥ̔͋͗̀ͣͅͅ ̸̵̭͉̹̖̄̾̉ͯ͆ͤͥ̅ͭ̓̚ͅ_̶͉̹͕̖̖̳̜̯͈͒͆̍͂̍͘͘͢͝ͅ_̤̥͍͑̊̒͑̓ͪͭͧ́̕͘͜͝f̷̜̣̮̘͚̝͎̥̳̫̩̻͙͇͓̹̎̓ͦ̀̿̏͐̃̔͘͠o̵̸̵̡͚̭̞̭̳͉̖̣̘̹̖̥̲̫̙͇͕͆ͧ̑͊ͧͩ́r̵̨̧̮͓̠͍͇̣͉̭̭͓ͩͫ̄̆̊͆̍͐ͣͨ͊͆ͧ͛ͨ̕͞cͨ͗̑̉̌ͣ͆̊͆̾
12:02 PM Ameisen: ̢̪̰͔͎̗͕͎͉͈̙̮̮͕̠̫̺͒̀́ę̮͚̪͇̦͎̘̠̣̝͙̹̦͍̱̲̠͉̂ͧ̅̈́̔̃̀̚͞͠i̴̙̹̯̙̤͖͍̖̖͇̥̐ͯͣͦ͢͞ͅņ̶̝̜̱̯̇ͩ͂̕͠l̛̪͎̹̼̼̞̘̃̾ͩ̿̐̚ͅi̫̗̺͍ͫ͑̉̈́ͨ́̀͢n̔ͦͨͫͪ̉̒͋҉̰̳̤̙̻̤͓͜ê̵̛̫̖̹̯̦̘̘̜̺͋̐̎̒́͘ ̴̸̨͖̙̯̥͙̤̒̿̾̉ͣ̂ͩͤ̒͊̇ͨ͂͒̃̀ͅ_̢̧̛͈̟̗̭͙͔̈́̀̍͂ͧ̊̈́ͭͣ͑ͥ͆ͨͩ͋̈̕͝_̾͌́̆ͬ
12:02 PM Ameisen: ͖̭̮̞͔̞̦̣̫͙͍̭̜͖̱͑̿͐̑̓̍̏ͮ́͝͡͝ͅf̷̡̹͓͖̝̯͎̥̝̹̬͚̭̺̟̗̘̆ͣ̽̎ͫ͊̏̃̚͠l̨͙̠̖̰̥͕̗̺̥̜̲̉ͤ̽͌̑ͭ͐̑̊̄́̚͠a̸̡̩̱̪̟͍ͧͪ̋̌͐̅͑ͨ̎͗̓͂̑̇̉͛̒̔́̚͜ͅt̏̀̈́ͦͭ̓̾ͦ͗͗͆̓̆͛̊ͫ͐̒̇̕҉̴̡̪̱̗͕̳̠͔̪̹̱͈͍̞̞̝̙̘́t̷͙̩̤̻͓͈̙̱͍̙͇̤̖̃̀̇ͮ̑ͮͫ̈͡͞͠e̅͂̑͒̂̂ͩͬ̀͐̂ͥ̉̓̈͋͋̊̚͡
12:02 PM Ameisen: ̳͓̯̦͍͙̗͖̹͔͝n̼͖͖̻͙͚̞͍̯̎ͨ̑͆ͩ̅̎͑͋͂̊͗̋ͦ͋͊̎̊̕͟ ̵̡̱͇͈̺͉̞̱̗̳͌ͪ͗ͦ̑͑̓̍͟U̪̻̗̤̤̫̯̖̇̏̆͆͂̓̏ͤ̎ͧ̈́͐̂ͨ̂͂͝ ̦̖̩̣̫̳̙̙̲̟̓̎̇͋͂̉ͯ̈͌ͩ͛ͮ̊ͮ̒ͨ͐͂͢͢͡g̸̝̖̯̠͈͖͂ͫͪ̊ͪͦͪ̒͂̑ͪ̂ͪ́̚è̏ͪ̒ͨ̓̈̔̅̐̓̚͏̴̶̩͙̗̥͈̳́͟ͅţ̨̮̤͕̹ͬ̍̓ͩ͒ͮͬ̃̓ͫͫͥ̋̿͑ͯͨͫ́̚͡(ͨ̅͂̇͑̐ͨ̈ͧ̆ͪ̽͊ͪ̆ͬ̌
12:02 PM Ameisen: ̶͐͟҉̦̼̼̳̩̖)̩̬͈͕͍̦̗̫̟̖̳̝͈̻̼̪͕͍͊̉ͬ̽͊͊̎ͪͨ͛͂ͣͧ͗́̕ ̐̑̇ͫ̈́͊̿̔̊̚̕͏͔̝͓̪̬̳̯̟̙̯̠̫̱͖̳ĉ̜͕̻͚̈́̌̈̀̈̌̅ͩ́͘ȯ̷̶͇̼̞̰͖̣̠̮̜͖̺ͦ͋̋͑̔̏̍ͮ͐̂̔̒̉̾́͢ͅn̶̵͇̣̼͇͓̰͋͂͒̒ͣ̽̇́s̶̑̇͂͋ͣ̉̅̓̓̓̉̆̾͐ͩͪ̚͟͏͓̜̠̟̩͔̕t̬͖̟̙̺͎̰̗̠͇͓͚̠̥̳̝̯̉͒̇̌ͥ͌͒ͤ͢ ̈́̍̌̌͐͏̥̮̠̟̝̟̬́͘͡ͅ
12:02 PM Ameisen: ͕̰̭̩̞̖̺̞͚̞_̝͇͓̬̝̲̥́̓̿̃ͣ̌͑ͤ̇͛͢_̸̱͙̦̘̩̼͒̃́͌͐ͧͥͩ͛̔̓͟͡ͅr̡̢̲̜̰̪͍̦̥ͮ̓̈́̔͌̿͒̓͒e̷̸̶̲̩̱̹͓̪̼͖͔̳̾͋͑̒ͦ̈̓͑͑͛ͅs̸̜͇͉̲̭̦̘̙̩͖͔̮̞̐́̈́̑͆ͭ̿ͪ̀̈͂̈̏̐̔ͩ̒͢t̷̟̰͔̪͕̹͖̳͙̗͎̜ͥͩͦͦͯ̄̇̀ͭ͋͛̄͑ͫ͡r̵̡̮͙͍͕͔̰͔̘̄͊ͥͣ͊͡͠͝i̶͈̱͔͕̳͑̿̑̎̃͆͂̆ͯͯ͌͛̌̇ͩ̍̔͒̑̀͟
12:02 PM Ameisen: ͓̦͓͓͚̹̯̞c̶͒̽̎ͫ͂ͥ͠҉̦͈̩͉͎̱̠̥̺͍̦̳̙͕͝ͅţ̡̤͍̠̖̟͙̭̼̜̫̞̜̙̞̪̬̱̓ͧ̏̌ͦͩ̐ͦ̉͛ͪͭ͑̄ͦͬͅ
12:02 PM Ameisen: :D
12:02 PM antto: wut
12:02 PM Ameisen: Interestingly, VC++ as an editor renders zalgo fine
12:02 PM Ameisen: which is very weird looking
12:02 PM antto: dafuq was all that?
12:03 PM Ameisen: zalgo
12:03 PM Ameisen: he comes
12:03 PM antto: r u trying to crash someone's iphone with that? ;P~
12:03 PM Ameisen: some IRC clients render it wrong
12:03 PM Ameisen: some render it fine
12:04 PM thardin: works fine on irssi 👍
12:05 PM antto: so i'm more and more interested in ways to write better versions of some old code, to take more advantage of compile-time execution and optimizations
12:05 PM thardin: hmm emojos are broken tho for some reason. might need to re-login for fft-ancient-fonts to take
12:06 PM antto: but templates and constexpr still give me much confooz
12:08 PM Ameisen: antto - that is what I've been doing with my 3d printer stuff
12:08 PM Ameisen: also why I'm working on my embedded gcc fork
12:08 PM antto: no, i don't want to modify the compiler for that, pls x_x
12:09 PM Ameisen: I'm modifying the compiler to fix a few bugs for AVR and ARM, and also to add new features
12:09 PM Ameisen: which wouldn't be accepted into mainline as they're too embedded-specific
12:09 PM Ameisen: past that, it's going to all be put onto github anyways
12:09 PM antto: what bugs specifically affect avr?
12:09 PM Ameisen: for C++, two that I know of
12:09 PM Ameisen: both performance related
12:10 PM Ameisen: the C++ frontend screws up uint8_t shifts
12:10 PM Ameisen: it keeps the shift as 'int' instead of reducing it back to uint8_t
12:10 PM Ameisen: and thus generates very poor code
12:10 PM antto: oh i read that somewhere
12:10 PM Ameisen: yeah, probably my bug report.
12:10 PM Ameisen: the other performance bug: you get better code accessing static member variables of a class than accessing member variables of a static instance of a class.
12:10 PM Ameisen: You should get the _exact same code_
12:10 PM Ameisen: accessing members of a static instance instead generates relative access code
12:11 PM Ameisen: even though the compiler knows all the addresses
12:11 PM Ameisen: both of these are likely reducing errors
12:11 PM Ameisen: they won't get fixed because they are performance regressions
12:11 PM Ameisen: and AVR has like... 1/2 of a developer on GCC
12:11 PM Ameisen: most of the developers moved to LLVM
12:11 PM Ameisen: or abandoned avr
12:12 PM antto: hmz
12:13 PM Ameisen: hrmm
12:13 PM antto: i personally am not happy that i couldn't take a reference of say USARTF0 to use it as a template argument
12:13 PM Ameisen: first test of avr-gcc 8.1 is less than stellar
12:13 PM Ameisen: there appears to be a size regression
12:13 PM Ameisen: will have to investigate it
12:13 PM antto: but afaiu, that's avrlibc code
12:26 PM Ameisen: not sure yet what is causing the regression. Will need to investigate flags.
12:27 PM Ameisen: it's an uphill battle with gcc though
12:27 PM nuxil: 4.9.2 ftw :D
12:28 PM nuxil: regress back down here :)
12:28 PM antto: that doesn't have C++17
12:28 PM nuxil: who needs that on avr :p
12:28 PM antto: me
12:28 PM Ameisen: nuxil - you can get _better_ than the GCC4 with newer GCCs with the right flags
12:28 PM Ameisen: just have to figure out which are the right flags.
12:28 PM Ameisen: :D
12:28 PM nuxil: no you dont :) you just more comfy with it :p
12:28 PM Ameisen: the flags control the optimization passes
12:29 PM Ameisen: so you can disable/alter the ones causing regressions
12:31 PM Ameisen: so far though, if I build libgcc with -flto... ld crashes
12:31 PM Ameisen: so... no doing that
12:32 PM antto: o_O
12:32 PM nuxil: do a -mint8 :p
12:32 PM antto: does libgcc contain nasty black magic?
12:33 PM Ameisen: yes
12:33 PM nuxil: yes. stay away from the 666.h files :p
12:33 PM Ameisen: it contains prototypes for compiler builtins
12:33 PM Ameisen: which is likely why LTO crashes
12:34 PM Ameisen: it probably looks weird as hell to the linker
12:34 PM Ameisen: I have to alter mint8 in GCC first
12:34 PM antto: oh, stuff like the __built_in_delay_cycles() ?
12:34 PM Ameisen: mint8 makes uint64_t impossible.
12:34 PM nuxil: using -Wstrict-prototypes ?
12:34 PM Ameisen: antto - memcpy, memset, etc
12:34 PM Ameisen: anything that the compiler is allowed to inline replace with its own versions
12:34 PM Ameisen: they are technically defined in libgcc
12:35 PM Ameisen: but aren't "really" there
12:35 PM Ameisen: so the linker is seeing some bogus LTO code for them that makes no sense
12:35 PM nuxil: antto, the delay stuff is avrlibc irrc. delay.h
12:35 PM antto: uhm, i don't think so nuxil
12:35 PM antto: those had _delay_ms() and stuff
12:35 PM Ameisen: __builtins are part of the compiler
12:36 PM antto: which requires F_CPU
12:36 PM nuxil: sorry. yea i misunderstood.
12:36 PM Ameisen: but yeah
12:36 PM Ameisen: libgcc being LTOd can cause a lot of issues
12:36 PM Ameisen: some parts can be LTOd
12:36 PM Ameisen: but not all of it
12:36 PM Ameisen: I need to figure out which
12:36 PM antto: __built_in_delay_cycles(N) (however it was spelled) is like exactly N bunch of NOPs
12:36 PM Ameisen: yup
12:37 PM Ameisen: I actually want to alter __builtin_nop in GCC to do that
12:37 PM Ameisen: take N
12:37 PM Ameisen: and it will selectively emit either N nops, or a loop
12:37 PM Ameisen: something the compiler is really good at determining
12:37 PM antto: doesn't it do that right now?!
12:37 PM Ameisen: no
12:37 PM antto: i thought it did exactly that
12:37 PM antto: eek
12:37 PM antto: well, i use it only for small Ns
12:37 PM nuxil: i saw a video on the delay routine on arduino. man its shit and.. and really unpresice.
12:38 PM Ameisen: __builtin_avr_nop doesn't take any parameters
12:38 PM nuxil: code ontop of code ontop of code. :p
12:38 PM Ameisen: __builtin_avr_nop() 10 times in a row will just emit 10 nops
12:38 PM Ameisen: if you could do __builtin_avr_nop(10), the compiler could instead generate a smaller loop
12:38 PM Ameisen: teeeechnically you could also alter the compiler itself to detect 10 nops in a row and determine if a loop woudl be more appropriate
12:39 PM Ameisen: __builtin_avr_delay_cycles takes ticks
12:39 PM Ameisen: but it's not quite the same as nop
12:39 PM nuxil: well a nop on a avr takes 1 tick
12:39 PM Ameisen: yuppers
12:39 PM Ameisen: but I'm unsure what algorithm they use
12:39 PM Ameisen: also it doesn't take into account ISRs
12:40 PM Ameisen: it's a semantic difference
12:40 PM Ameisen: when you say __builtin_nop, you ar esaying 'I want a nop'
12:40 PM Ameisen: when you say delay cycles, you are saying you want it to wait N cycles
12:40 PM Ameisen: 10 nops and 10 cycles might be the same thing in one context, but one implies instructions, the other time
12:40 PM Ameisen: if an ISR hits, your 10 cycles might end up being 50
12:41 PM Ameisen: whereas 10 nops is still semantically fine
12:41 PM Ameisen: the code should reflect intent
12:41 PM Ameisen: hmm
12:41 PM Ameisen: there is actually __builtin_avr_nops
12:41 PM Ameisen: that wasn't in the docs last I checked
12:41 PM Ameisen: I will check how it determines what to generate
12:41 PM Ameisen: the docs says it just inserts N nops
12:42 PM Ameisen: I'd rather it emit a loop where appropriate
12:43 PM Ameisen: either way
12:43 PM Ameisen: I have a list of TODOs for embedded gcc
12:43 PM Ameisen: but the top priorities are fixing the performance bugs I've already reported
12:57 PM antto: Ameisen, the delay function seems to be not stupid, as far as i can tell: http://paste.debian.net/hidden/44fe5a0e/
12:57 PM polprog: im thinking about quickly jumping to the shop and grabbing an SSD for my hacktop
12:57 PM polprog: i could quickly slap, dunno, slackware or netbsd on it
12:58 PM polprog: simple xorg setup would be neat
12:58 PM polprog: even better if i could make it automatically hook up over network as a xinerama'd monitor
01:01 PM antto: Ameisen ^ that was with teh avrgcc 7.3.0
01:04 PM Ameisen: huh
01:04 PM Ameisen: i was mistaken
01:04 PM Ameisen: it's avr-libc that crashes ld if LTOd
01:05 PM antto: i had problems with some stuff vanishing when i used -flto
01:05 PM antto: like the stack_paint function
01:07 PM Ameisen: weird that avr-libc would fail though
01:07 PM Ameisen: I will need to investigate that
01:07 PM Ameisen: 99% chance it's a configuration issue in avr-libc
01:08 PM Ameisen: avr-libc should certainly be LTOd
01:58 PM nn7: I've programmed AVRs for years with an avrisp but this is my first time trying JTAG... and I'm not having any luck.
01:59 PM nn7: I hooked up the avrisp to make sure the jtagen fuse is set properly
01:59 PM nn7: Atmel Studio just tells me "No JTAG devices detected"
02:04 PM nn7: GAH! Atmel put the connector on BACKWARDS
02:04 PM polprog: lol
02:04 PM nn7: you bastards
02:35 PM nuxil: no.
02:36 PM Emil: wot
02:36 PM Emil: ah I was up
02:36 PM Emil: also fuck that unicode above
02:36 PM Emil: it fucks with irssi
02:36 PM Emil: rendering takes like a whole second
02:36 PM nuxil: this c̵̶̗͇̙͓̺̟̝̟̖̣̳̳͆̓̑̾ͪ̊͐ͦͬ̽̇̉̇ͧ͆̂̏̐͠o̶̷̶̯̜̬̮̫̲͕̤̞͉͔͎͇̫̝̓ͩ̓ͬͨ͗ͩ̚ͅͅņ̭̫̹̲͈̯͎̜̘̳̋̋͛̚͟s̷̛͔͙͔̖͎̖̭͍̦̞͖̜̠̱̠̞͚͋ͥ͆̒͛̈́ͥͨ̆ͪ͛͑ţ̵̨̪̣̺͓͙̭̰̺͔͈̬̗̤̙͈̠͚̠̂ͫͭ͛̈͗̊̿̾̈͜͞ͅȇ̡̢͇͎̻̜̞͉͈̀̔̌̋̅ͫ̊̇̉́̀̚̚͢x̢̤͖͈̱͉̗̯̤͈͎̰̒̐ͮ̒͐͋̅̂̉ͭ͗ͭ̂ͭͬ̅͝p̄̂́̌ stuff like that ?
02:36 PM Emil: thardin: it's not irssi
02:36 PM nuxil: :p
02:37 PM Emil: it's your terminal that renders it
02:37 PM Emil: in my case it's Putty
02:37 PM Emil: nuxil: yeah
02:37 PM Emil: lemme demonstrate
02:38 PM Emil: god damn it
02:38 PM Emil: I might need to shut chrome down to demonstrate :D
02:38 PM nuxil: lol
02:38 PM Emil: alrighty, new attempt
02:38 PM nuxil: nn7, http://qfps-llc.com/index.php/2016/07/07/atmel-jtag-connector-backwards/ :D
02:39 PM nn7: nuxil, ah ha, so I'm not the only one who noticed.
02:40 PM nuxil: apparently not :)
02:42 PM Emil: didn't work
02:42 PM Emil: my computer is apparently under too heavy of a burden
02:43 PM nuxil: why?
02:44 PM Emil: dunno
02:45 PM nuxil: you must know. you monitor everything else.. run a term with top :p
02:45 PM Emil: am on winshit :D
02:45 PM Emil: My _servers_ are lenux all the fucking way
02:45 PM nuxil: ahh. lol.
02:45 PM Emil: but my main and only computer (raspi doesn't count) is a surface pro 3
02:45 PM Emil: if it was some normal laptop yeah I would have already put lenux on here
02:48 PM nuxil: resmon.exe ?
02:49 PM nuxil: its way better than the normal taskmanager
02:50 PM nuxil: resmon is actually kind of good imo.
02:53 PM nuxil: lol. lenux, that sounds freensh, le'nux
02:54 PM Emil: freensh?
02:54 PM PsySc0rpi0n is now known as HelloShitty
02:54 PM nuxil: *french
02:54 PM Emil: heh
03:04 PM polprog: 671 pacman packages updating
03:05 PM polprog: so i know that the software im looking for is called xdmx
03:05 PM polprog: single X desktop over multiple physical computers
03:05 PM nuxil: meh
03:05 PM nuxil: go lsb and build your own distro from scratch :p
03:05 PM * polprog definitely wont get 16 projectors to create a huge display on the neighboring building
03:06 PM polprog: nor 9 monitors to create a video wall
03:06 PM polprog: so i can run emacs fullscreen and forget about the 80 column marin
03:06 PM polprog: margin*
03:06 PM Emil: Holy shit my god complex is real
03:07 PM nuxil: with distcc with for avr lol :P
03:07 PM nuxil: not that there would be any point in it
03:07 PM nuxil: *work
03:08 PM polprog: lol whats distcc
03:08 PM nuxil: *arg. would distcc
03:08 PM nuxil: you dont know ?
03:08 PM polprog: i dont
03:08 PM nuxil: allows you to to compile source files over network with multiple machines
03:09 PM polprog: wow
03:09 PM nuxil: https://wiki.archlinux.org/index.php/Distcc
03:09 PM polprog: at this point i have 5 computers in this room
03:09 PM polprog: im not sure if the electrical installation of a typical flat supports running all them at once
03:10 PM MrFahrenheit: btw, nuxil, hairspray on glass works wonderfully for me, great adhesion and it releases itself when the bed cools down
03:10 PM MrFahrenheit: plus, smells nice
03:10 PM nuxil: i dont need any adhesion :) not sure why you do. maybe the quality of the filament or temp ?
03:11 PM MrFahrenheit: got two rolls of filament today, from filament-pm
03:11 PM MrFahrenheit: one is the wrong colour, but oh well
03:12 PM nuxil: but its important that i clean the glass well. i had times i forgot to clean it and i had been with my greesy fingers on the plate.. and after i started the next print it came loose after a while.
03:13 PM MrFahrenheit: yeah, I saw a guy on youtube say I should just clean it and not touch it, and I'll try that when I get a mirror to replace this glass sheet
03:13 PM nuxil: define wrong color ?
03:14 PM nuxil: polprog, anywho. distcc and be a bit fun with you got many machines and do alot of compiling.
03:14 PM MrFahrenheit: expectation https://www.filament-pm.com/data/temp/product-images/228-pla-yellowgreen8-product-detail-main.jpg
03:14 PM MrFahrenheit: reality https://www.filament-pm.com/data/temp/product-images/219-pla-fluogreen1-product-detail-main.jpg
03:14 PM nuxil: *if
03:15 PM nuxil: radioactive green :p
03:15 PM nuxil: well. you will see your prints from miles away :p
03:16 PM MrFahrenheit: I also got flourescent orange
03:16 PM MrFahrenheit: high vis baby1
03:18 PM MrFahrenheit: I printed a benchy with the orange one and it came out nice, except there's some roughness in the overhangs on the front which wasn't there with the old pla - not sure if it's due to the temperature settings, or if maybe the fan duct "improvement" I printed is anything but an improvement
03:18 PM nuxil: are thouse 300m rolls or 60m rolls
03:18 PM MrFahrenheit: 330m
03:19 PM nuxil: nice.
03:19 PM MrFahrenheit: 60 euro for the two, with shipping
03:19 PM Ameisen: trying to figure out why avr-libc being LTOd causes ld to fail
03:19 PM Ameisen: more tests
03:19 PM nuxil: how did the overhang come out on the roof
03:20 PM MrFahrenheit: nice, only the doors have some blobs on the top, but that was there with the stock pla too
03:20 PM thardin: Emil: I know
03:20 PM MrFahrenheit: gonna print a fang when I get some radial fans I ordered
03:21 PM thardin: it used to work before I reinstalled debian
03:23 PM nuxil: MrFahrenheit, what software do you use to make models ?
03:23 PM nohitzzzz: 3d paint
03:23 PM nuxil: :D
03:23 PM MrFahrenheit: onshape
03:24 PM MrFahrenheit: it's like solidworks, but free
03:24 PM MrFahrenheit: and I loooove solidworks
03:25 PM nohitzzzz: print one of your space ships nuxil
03:26 PM MrFahrenheit: I named my printer "axlotl tank"
03:26 PM nuxil: nohitzzzz, idk.. i think i'll need a 0.2 nozzle first
03:29 PM Ameisen: I just use my 0.4mm
03:29 PM Ameisen: 0.2mm is too slow
03:29 PM Ameisen: also they clog more
04:13 PM polprog: I DID IT!!!
04:13 PM polprog: Xmdx ftw
04:14 PM polprog: it was slow as hell because i used default cipher with ssh x forwarding
04:14 PM polprog: i need to try another thing
04:14 PM Ameisen: I'm still working on my LTO issue
04:14 PM Ameisen: :|
04:14 PM polprog: make xorg on each slave listen on port 6000, restrict access to it via iptables
04:14 PM Ameisen: checking if the compile flags have to be pretty much the same
04:14 PM polprog: then forward localhost:600n from control PC to localhost:6000 on each slave
04:15 PM polprog: then tell Xdmx to use displays :2, :3, etc and make it connect to X servers on localhost:6002, 6003 that will lead it to port 6000 on each slave
04:15 PM polprog: i think this could work
04:23 PM polprog: if only it will take that port forwarding hack
04:23 PM polprog: if that works, im spinning up all laptops with linux i have here
04:24 PM polprog: and i will put them all next to each other and make one long screen
04:25 PM Casper: so, 8 tach input + 8 PWM output, 20kHz 0-100%, 2x ADC channels + LCD + serial.... think it start to stretch the capability of a atmega?
04:25 PM Ameisen: need atultra
04:32 PM antto: maybe EKS MEGA
04:32 PM antto: EKSsssssssssss
04:33 PM antto: the next step: atgiga128a1u
04:33 PM antto: 128GB flash, 8GB RAM, 100 pins
04:33 PM Ameisen: 16MHz
04:34 PM antto: no god damn it
04:34 PM Ameisen: ok, 8
04:34 PM antto: 1.28GHz at 3.3V
04:48 PM Emil: interesting
04:48 PM Emil: there's actually a volume limiting feature in Android
04:48 PM Emil: if you play shit too loud it will reduce the volume :D
04:48 PM antto: it's called AGR/AGC
04:49 PM Emil: that's not what I'm saying
04:50 PM Emil: I'm saying that if you play audio normally, you can actually briefly play at a higher volume than normal
04:50 PM Emil: but if you continue the volume will be reduced
04:50 PM Emil: not AGC or AGR
04:50 PM Emil: and the implementation is actually buggy
04:50 PM Emil: it can oscillate
04:50 PM nohitzzzz: shitty feature. ipod touch is the only device that can give loud enoguh output for me
04:51 PM antto: why do you think that what you described isn't AGC/AGR?
04:51 PM nohitzzzz: i cant hear a thing with normal cell phone output
04:52 PM antto: i can hear other people's earbuds in the f*cking bus
04:52 PM Emil: antto: what do you mean with AGR?
04:52 PM antto: usually teens
04:52 PM antto: Emil auto-gain-reduction / auto-gain-control
04:53 PM antto: dynamics conTROLL, ehm unintentional capslock
04:53 PM antto: call it whatever ya want, it's a kind of compressor
04:53 PM Emil: antto: because it's not the same thing
04:53 PM antto: rrrright
04:55 PM antto: i think i adapted the voodoo function to the atmega uart
04:56 PM antto: not as elegant due to the much poorer contents of the atmega avr/io.h
04:57 PM antto: if atmegas could have io headers as decent as xmegas..
04:57 PM antto: i blame Emil
04:57 PM antto: and microchip
04:57 PM Emil: hey now
04:58 PM Emil: how are the xmega headers better?
04:58 PM Emil: do share
04:58 PM antto: USART_t
04:58 PM antto: for example
04:58 PM antto: enum definitions for almost every possible thing
05:00 PM antto: USART_CLK2X_bm - that's the bitmask of usart clk2x (double speed) bit, say, something like 0x04 or so
05:00 PM antto: USART_CLK2X_bp - that's the bit position (in case ya want to bit shift stuff)
05:01 PM antto: USART_CMODE_gm - clock mode - group mask
05:02 PM antto: SPI_t - same sh*t
05:02 PM antto: the header is big
05:03 PM antto: atmega2561 io header - wtf?! tiny, only #defines
05:06 PM antto: also, it's clear that this sh*t i wrote for some xmega "A" is gonna work certainly for any xmega from the A family
05:07 PM antto: not so clear whether the crap i wrote for atmega2561 uart is gonna work on say, some atmega128 for example
05:09 PM nohitzzzz: are they like this ? https://pastebin.com/CxhMDc3G
05:10 PM antto: just open avr/iox128a3u.h for example
05:12 PM polprog: damn, X server is such a genius piece of software
05:12 PM polprog: just ran two Xephyrs (X in a window) with xinerama with Xdmc
05:12 PM polprog: this way i can simulate two networked X servers on my laptop
05:12 PM polprog: it works
05:12 PM polprog: now i justneed to get the hacktop running
05:12 PM antto: CLK_RTCSRC_RCOSC32_gc = (0x06<<1), /* 32.768 kHz from internal 32.768 kHz RC oscillator */
05:13 PM antto: there's even f*cking helpful comments there!
05:16 PM antto: enums for the fuses even
05:17 PM antto: i talk like a pic12f victim
05:17 PM antto: teh scars are for life :~(
05:17 PM antto: xmega is teh cure
05:36 PM nuxil: lol
06:57 PM Ameisen: so, so far I think that one of the modules that avr-libc is building just isn't friendly with LTO.
06:57 PM Ameisen: Not sure which, yet. Will need to do a binary search on it.
06:57 PM Ameisen: also need to make my build turnarounds faster.
07:11 PM rue_shop4: me too
07:46 PM Emil: antto: lulz
07:46 PM Emil: I much prefer atmega to what you describe
07:46 PM Emil: antto: the bits are defined just ifne
07:47 PM Emil: antto: UCSR0A=(1<<U2X0); //Double speed uart
07:47 PM Emil: I don't see the issue with this
07:47 PM Emil: polprog: https://emil.fi/p/piipperi
07:47 PM Emil: behold
07:58 PM nuxil: beep beep
08:05 PM nuxil: why did you make that ?
08:05 PM nuxil: you got to much time to spare :p
08:05 PM Emil: nuxil: for shooting practice
08:06 PM Emil: 7 seconds to prepare, 3 seconds to shoot two shots, repeat 10 times
08:06 PM Emil: do a mag change at some point
08:07 PM Emil: No repeat 5 times
08:07 PM Emil: and then repeat that thing twice
08:07 PM nuxil: guns'n avr :D
08:07 PM Emil: https://emil.fi/m/2018-05-09_04-05-52_Ao5PW8wN.png
08:07 PM Emil: nuxil: :D
08:09 PM Emil: https://drive.google.com/file/d/1p5jcDLlnUevfOLfjLYSwGc0wqo3BYAhg/view?usp=sharing
08:10 PM Emil: now
08:10 PM Emil: good night
08:35 PM LoRez: is there a PDI board pinout?
08:36 PM LoRez: great. There is, and it doesn't match this board at all. arseholes.
08:50 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/boards/USBTiny_Mkii/6pin_PDI.jpg
09:38 PM krkini is now known as kini
10:58 PM antto: Emil >:(
10:58 PM antto: how about synchronous usart?
10:58 PM antto: how about usart2
10:58 PM antto: meeeh
11:22 PM day__ is now known as day
11:37 PM polprog: Emil: whats that?
11:37 PM polprog: onice
11:37 PM polprog: i see, shooting range timer