IRC log for #card10badge on 20191019

00:22.20*** join/#card10badge kri404 (~kri404@90.199.234.48)
00:57.43*** join/#card10badge Stormwind_mobile (~Stormwind@dslb-002-206-218-106.002.206.pools.vodafone-ip.de)
01:29.59*** join/#card10badge Benjojo (~sid4563@srv-69.nsa.me.uk)
02:27.42*** join/#card10badge n0p (~n0p@5.1.86.168)
02:39.05*** join/#card10badge user_51_ (~quassel@92.117.245.196)
02:41.13*** join/#card10badge n0p_ (~n0p@5.1.86.168)
02:42.14*** join/#card10badge verin0x9 (~thelounge@x4e37daa5.dyn.telefonica.de)
02:56.16*** join/#card10badge Stormwind_mobile (~Stormwind@dslb-002-206-218-106.002.206.pools.vodafone-ip.de)
03:12.11*** join/#card10badge PyroPeter (~pyropeter@april-fools/2013/tenth/pyropeter)
03:29.15*** join/#card10badge centzilius (~cent@naofumi.centzilius.de)
07:50.50*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
08:38.24Rahixpippin: Looks great, I'm excited!
08:43.12RahixI cannot reproduce the USB storage issue ...
08:43.33RahixTried stressing it in all sorts of ways but it did not give in
09:07.16pippinwhat is the reason for.. lib/gfx/LCD/LCD_Driver.c 's static struct framebuffer frambuffer = ... having orientation = FB_O_180, instead of orientation = FB_O_0 ?
09:08.25RahixI guess because the display is actually upside down?
09:08.48pippinwell
09:08.54pippinthis is where the orientation of the display is configured
09:09.18pippinand because of this, in the gta like game and lots of other code one has to flip the x and y coordinates around in code to get upside up
09:10.22pippinthese displays have 8 software initialization orientations, just like EXIF all the 90 degree turns and their mirrors
09:11.08RahixI think the _hardware_ display is upside down and the gfx lib adds this FB_O_180 to flip it for normal drawing operations.  Your l0dables bypass the gfx lib and write out to the display directly.  Thus you need to flip manually
09:13.14pippinah, yes, this is the gfx lib flipping not the driver flipping
09:14.26pippinthe exif-like orientation is set in LCD_Init(); a little trickier - but then possibly entirely fixable at the expense of making the .elf l0dables pushing pixels directly to display "break"
09:30.04RahixHmm, I see
09:30.19RahixHow expensive would changing that at runtime be?
09:31.25RahixIe, add an API call that says 'I can deal with a properly oriented display' and epicardium will then reinit the display with correct orientation
09:32.30pippinnot very, it should be 2-3 bytes out over SPI
09:33.29pippinsomething similar to https://github.com/Bodmer/TFT_eSPI/blob/master/TFT_Drivers/ST7735_Rotation.h
09:35.32pippinI have a second attempt at glyph caching in my graphic rendering working, but for now I only do caching when the only transformations are translate or scale, not rotate :]
09:36.15*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
09:48.45pippinhm, my card10 ignores the card10.bin i put on the fs now
09:51.46RahixNew firmware release! Download at https://card10.badge.events.ccc.de/en/firmwareupdate/
09:52.17RahixVersion v1.12 "Leek" finally brings you USB Storage mode, no more rebooting to bootloader to access the filesystem
09:52.41RahixFull changelog: https://git.card10.badge.events.ccc.de/card10/firmware/blob/master/CHANGELOG.md#v112-2019-10-19-leek
09:55.45mue_ty
09:57.00pippinRahix: any idea why it might suddenly have stopped picking up the new firmwares put on the FAT?
10:00.18rahix[m]Hm, not sure ... I'd guess some sort of filesystem corruption
10:03.17pippinhm, ok - busy with something else for a bit then I'll try formatting it
10:13.02*** join/#card10badge msvb-mob (~msvb-lab@monero/hardware/michael)
10:20.15RahixTry running fsck first, maybe that can help ...
10:29.10pippinit removed a dirty bit, but no change
10:36.02pippinhm nope, and a new file-system didn't fix it either
10:39.35*** join/#card10badge LostInWeb (~quassel@2a03:4000:15:1f2::9)
10:41.34pippinhm, it was the crc of my new card10.bin that was amiss
10:43.02rahix[m]Huh, how did that happen?
10:44.18pippinand - since I recopied it over from my build dir again, it was not flash corruption
11:04.06pippinhm, trying to pass various other bytes after an LCD_WriteReg(0x36) does not seem to alter how this display renders its internal framebuffer
11:06.13pippinnor after the LCD_WriteReg(0x29); (which is the command to turn the display on)
12:13.11pippinRahix: l0dable with working proof of concept glyph caching https://pippin.gimp.org/tmp/ctx.elf
12:17.56*** part/#card10badge smyds (~smyds@160.ip-51-83-99.eu)
12:30.34rahix[m]I'll try it out once I'm back home!
12:31.04rahix[m]Hmm, so we'd need to reset the display entirely?
12:34.06pippinmy current guess is that the 0x36 command is a no-op on this display
12:38.56*** join/#card10badge fluepke (~computer@voyager.luepke.email)
12:44.09*** join/#card10badge fluepke (~computer@voyager.luepke.email)
12:44.10rahix[m]This is also possible ...
12:45.20*** join/#card10badge fluepke (~computer@voyager.luepke.email)
12:46.35*** join/#card10badge fluepke (~computer@voyager.luepke.email)
12:47.32*** join/#card10badge mmu_man (~revol@vaf26-2-82-244-111-82.fbx.proxad.net)
12:48.08rahix[m]q3k & msgctl, you two had some code for asynchronous display updates with DMA. Is that online somewhere?
12:48.20q3k[m]Uh
12:49.53q3k[m]https://git.card10.badge.events.ccc.de/q3k/firmware/commit/cf5ae77aec342d291f36a34e9b90407bbc8936db
12:52.12pippinone experiment I did, that sometimes is worthwhile and sometimes not - is : https://pastebin.com/WkfUJYd4
12:53.18q3k[m]doesn't that has visibly collide?
12:53.47pippina better hash might be worthwhile - but it does not tend to collide
12:53.55q3k[m]*that hash
12:54.28q3k[m]i would think a better way here would to have a dirty rectangle mechanism
12:54.29pippinit speeds up things with tiny changes | but of course slows down some where everything changes
12:54.34q3k[m]when dealing with immediate mode graphics
12:55.11q3k[m]ie any time a graphical method is called, calculate the affected bounding box in the framebuffer, and either coalesce that into the previous dirty bounding box, or keep multiple if they don't overlap
12:55.13pippinthis is also the solution used to speed up ILI9xxx displays on RPI, where pushing pixels over SPI is much slower than touching the in-ram buffer
12:55.22q3k[m]with a max of like 4 dirty bounding boxes in parallel
12:55.44q3k[m]and then use those bounding boxes at flip time to determine which scanlines need to be sent out
12:55.52q3k[m]heck, even not dirty bounding boxes, just mark scanlines as dirty
12:57.39pippinit is outside the domain of what I'm hacking on though and in most cases it is my drawing code and not the upload which is slow :]
13:00.04pippinq3k[m]: this is for speeding up the case where drawing might have touched many pixels - they've been recomputed, but the hashes keep the same scanlines from being reuploaded
13:20.34pippinnot worth it with this hardware, i suspect asynchronous upload and double buffering is better in almost all scenarios and worth the memory
13:41.30*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
14:02.38*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:06.35*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
14:14.25*** join/#card10badge DocScrutinizer05 (~saturn@openmoko/engineers/joerg)
14:52.25*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:52.36*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
14:53.11*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:53.46*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:54.29*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:56.11*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:57.40*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:58.19*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:59.11*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
14:59.51*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
15:00.42*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
15:15.41*** join/#card10badge erlehmann (~erlehmann@46.114.33.128)
15:25.05*** join/#card10badge count (count@orbit.flatline.de)
15:41.55*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
16:26.25*** join/#card10badge frigginglorious (~Thunderbi@71-95-76-86.dhcp.ftwo.tx.charter.com)
16:30.46*** join/#card10badge Stormwind_mobile (~Stormwind@dslb-002-206-218-106.002.206.pools.vodafone-ip.de)
16:36.10*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
16:40.55*** join/#card10badge kloenk (~quassel@mail.kloenk.de)
16:45.41*** join/#card10badge kloenk (~quassel@mail.kloenk.de)
16:53.26Stormwind_mobileIs there already some kind of GUI framework? To make more complex watchfaces easier to design and use?
16:55.00Stormwind_mobileAlso, I feel like someone should give a talk about the inner workings of card10. Something like the "ultimative ($system name) talk". I remember some about the gameboy, the C64, the Apollo guidance computer,...
16:55.51Stormwind_mobileDigging down deep into the hardware, from historic anecdotes down to chip level bodges, and 200 slides in 50 minutes :-D
17:09.22pippinStormwind_mobile: i'm working on bringing, more-or-less html5 canvas 2d context, to card10 and other microcontrollers - not really a framework; but it is a powerful drawing model
17:15.48Stormwind_mobileWell, I'm thinking of something prettier than plain text, without needing to learn a complete gfx library.
17:17.13Stormwind_mobileSo that one can get a consistent UI for a little bit more complex applet.
17:19.49Stormwind_mobileAfter repeatedly forgetting medication, I'm thinking a functionality that monitors medication intake, and reminds with configurable gentlyness if the wearer forgot.
17:19.49Stormwind_mobileMaybe even logging those times, which in some circumstances come in handy for the next visit at the doctor
17:46.46*** join/#card10badge Stormwind_mobile (~Stormwind@dslb-002-206-218-106.002.206.pools.vodafone-ip.de)
17:47.16*** join/#card10badge Stormwind_mobile (~Stormwind@dslb-002-206-218-106.002.206.pools.vodafone-ip.de)
18:11.38*** join/#card10badge msvb-mob (~msvb-lab@monero/hardware/michael)
18:15.59*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
18:31.48*** join/#card10badge frigginglorious (~Thunderbi@71-95-76-86.dhcp.ftwo.tx.charter.com)
20:09.52*** join/#card10badge theAntimon (~matze@p54B09205.dip0.t-ipconnect.de)
20:39.00*** join/#card10badge fibmod (~fibmod@254.238.207.77.rev.sfr.net)
21:05.19*** join/#card10badge Rev_Illo (~revillo@unaffiliated/rev-illo/x-3122184)
22:03.39*** join/#card10badge Sammy8806 (~sammy@irc.sammy8806.de)
22:09.15*** join/#card10badge erlehmann (~erlehmann@46.114.35.169)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.