<azonenberg> I can poke the debug registers over APB fine
<azonenberg> tl;dr most arm socs have two debug Mem-AP's
<azonenberg> there's one for an APB bus that goes to all the coresight IP
fouric has joined ##openfpga
<azonenberg> and one for an AHB bus that bridges to ram
<azonenberg> no matter what i send to that AHB bus i get back an error
<awygle> the downside of all this refactoring is... i haven't fixed the bug i was assigned.
<azonenberg> Lol
<rqou> huh there's still something funny going on with the power right now
<openfpga-github> [Glasgow] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow/commit/d0a693f360e6d77467f3a775f8c4349a6689307f
<openfpga-github> Glasgow/master d0a693f whitequark: Make all FIFO strobes active-high for simplicity.
<whitequark> hm ok this FIFO shit doesn't seem half bad
<whitequark> mostly a question of actually deciding on which endpoints i want
<rqou> herp derp i am real electrical engineer: https://photos.app.goo.gl/7NpkgMWXRWRRnF4r1
<rqou> (this is for the "ok, don't freak out" use case)
<Bike> REAL electrical engineers don't let arbitrary standards prevent them from receiving aid from such exotic technologies as writing
<awygle> bluh, this is why i'm such a slow SWE. i'm paralyzed by trying to find the "right" solution instead of just doing the thing.
<rqou> Bike: hmm yeah i never really considered how "real EEs (or other specialty) should know this shit" is really gatekeep-y
<Bike> there's some actual value in knowing things faster, like how it's nice to be able to add two digit numbers without using a calculator, but i find that i only rarely have to remember what a weber is within five seconds
<Bike> (my intro electronics prof bragged about his short tests forcing us to increase how fast we punched calculators. why)
<cyrozap> azonenberg: What SoC are you targeting? Zynq? And what error are you getting?
<cyrozap> To read/write memory, you may have to halt the CPUs/disable the MMU.
<balrog> Bike: at the school I work we have a mathematics department with a reputation for forcing memorization and banning all use of calculators. Of course students have a really hard time, but some believe they do that on purpose.
<cyrozap> azonenberg: At least, OpenOCD requires the CPU(s) to be halted before it can perform any memory I/O.
<Bike> well, college math classes don't usually require calculators so much... it just seems so obviously pointless to test that stuff, though
<balrog> rqou: if something can easily be looked up memorizing it is kinda pointless imo. More useful to have an idea of what one needs to research / look up to work towards the solution
<rqou> yeah i agree
<rqou> i put basics on my cheat sheet as a "don't panic" precaution
<balrog> Bike: modern calculators and computers can be used as a useful teaching tool
<balrog> For instance things I don’t recall that well include the quadratic formula and the chain rule
<rqou> lolol
<Bike> "god, i hate doing homework. maybe something in the manual of this eighty dollar thing can help me out oh it has a 'programming' thingie"
<rqou> me too
<rqou> i suck at basic calculus
<rqou> "wtf is an integration by parts? how do i do that again? meh, just ask wolframalpha"
<Bike> i don't think i ever learned integration by parts properly
<awygle> i _love_ basic calculus
<balrog> I know it but it’s so tedious......
<awygle> it makes me feel like a badass
<awygle> too many bad movies with integrals written on chalkboards
<balrog> It makes me feel like I’m wasting my time when I’m doing it on paper
<awygle> when it's done automatically i am always very distrustful of it lol
<Bike> it was kind of intereseting learning about the risch algorithm and that symbolic integration is, in fact, hard in a somewhat meaningful sense
<awygle> the main thing i use wolfram alpha for is solving systems of equations
<Bike> and then taking electronics and learning that integration is piss easy. goooood times
<awygle> ain't nobody got time for that
<Bike> did yall see http://www.wolframalpha.com/input/?i=(3%2F2(3%2F2%2B1)+-+(1%2F2)(1%2F2%2B1))%2F(1%C3%97(3%2F2)%C3%972)
<Bike> actually i think i just got distracted learning analog computers and finding out that a car transmission is an integrator
<balrog> Referring to a torque converter?
<rqou> welcome to dynamical systems
<cyrozap> Bike: "Exact result: 1" "Alternate form: 3/4" uhh...
<rqou> everything is an integrator
<Bike> yeah baby
<Bike> balrog: probably. i don't actually know cars very well.
<awygle> that's because masses are integrations are inductors
<Bike> i learned how a differential worked and it was like wow, what is this space wizardry
<awygle> and springs are capacitors. or something.
<sorear> integration by parts is just the product rule explained badly
<awygle> integration by parts reminds me of refactoring code
<rqou> yeah well i can barely do the product rule correctly either :P
<awygle> you pull out the common factor and suddenly it's much clearer
noobineer has joined ##openfpga
<balrog> The torque converter is a type of fluid coupling that allows the transmission input to run at a different speed as the engine but still receive nearly all the power that it needs from the engine
<Bike> oh, well, yeah.
<balrog> It’s pretty integral to the operation of a modern automatic transmission
<Bike> it's a continuously variable transmission that's pretty literally an integrator, iirc
<Bike> "integral"! ha ha
<balrog> Lolol
<Bike> cyrozap: someone dug up the step-by-step for me and the problem is that it concludes 1/2 * 3/2 = 6/4 at one point
<Bike> which is a very elementary human kind of mistake, so that's interesting
<Bike> mechanics don't seem super concerned with using engines as computers, so it's a little difficult to find the information
<Bike> i was watching a bunch of 1940s videos for seamen
<Bike> sorear: lmao.
<sorear> if it was the 1940s, analog computers were still a thing, some of which were hydraulic
<Bike> yeah
<Bike> mostly targeting computers, hence seamen
<sorear> Bike: only place I've seen the Kurzweil-Henstock integral in the wild
<Bike> i also found a book on using them for aeronautic simulations. i think it had a comparison with early electronic computers
<Bike> my favorite part was servomultipliers
<Bike> i think i'm going to have to read the integration part more closely, that's new to me
<kc8apf> 2BSD readline alternative:
<rqou> not abi-compatible
<rqou> not source-compatible either
<rqou> unclear unicode status
<balrog> Heh, MAME uses that (and vendors it in)
<Bike> as far as gnu readline, https://github.com/JoshCheek/clisp/blob/master/doc/Why-CLISP-is-under-GPL is the one i know, and looking at it again rms is nearly arguing the API is copyrightable
<rqou> well, shit
<rqou> because APIs are copyrightable in the USA
<rqou> thanks to oratroll
<Bike> yes. this is from 1993 though.
<Bike> "ahead of the curve"
<balrog> I think it’s worthwhile to link http://www.gutenberg.org/ebooks/33283 (regarding calculus)
<balrog> yeah y’all heard that the CAFC decided that the fair use finding of the jury was wrong!?
<Bike> yeah, that was weird.
<kc8apf> being incompatible with readline is a plus in my book
<rqou> so why no linenoise-rs?
noobineer has quit [Ping timeout: 276 seconds]
<rqou> wtf all my pens are missing
<rqou> i'm sure they'll all reappear after i graduate and no longer need them :P
<balrog> hahahahahaha
<balrog> when do you graduate again?
<rqou> hopefully soon(tm)
<rqou> final exam in 30 min, brb
<kc8apf> I wish it used termion but it relies on ncurses
<balrog> good luck!!
<rqou> kc8apf: so not pure-rust
<rqou> also not no-std
<rqou> ok, brb for real
<cyrozap> This is interesting: "Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology" https://ieeexplore.ieee.org/document/7086413/#full-text-section
<balrog> it's interesting talking to people who have mostly software dev background who are surprised/shocked by how closed FPGA tools are :p
<Bike> i remember asking my prof how PAR worked and he gave me a brief summary and linked me some old papers but also told me everything public was years out of date, and it took me a few minutes to understand what he meant
* cr1901_modern rummages thru greenpak apnotes to find a throwaway application to do
<qu1j0t3> ha!
<qu1j0t3> cr1901_modern: let me know what you find!
* qu1j0t3 has a GP4 kit here
<cr1901_modern> qu1j0t3: Class D amplifier (though it's 8-bit output sadly)
<azonenberg> I now have 7 FPGA boards plugged in on my desk and hooked up
<azonenberg> Just like old times, lol
<azonenberg> A spartan6, four artix7, a zynq7, and a vu+
<azonenberg> And thats only the ones i'm actually using
<reportingsjr> awygle: whitequark: I was just reading way back in the backlog. Flux for steel doesn't kill soldering iron tips any faster than normal flux. I have to solder to stainless steel every once in a while at work and I use a zinc chloride flux.
<reportingsjr> Kinda nasty stuff, but it gets the job done.
<balrog> reportingsjr: probably not as nasty as HCl
<reportingsjr> No idea, probably wouldn't use HCl :)
mumptai_ has joined ##openfpga
<cr1901_modern> qu1j0t3: List of all openfpga-relevant apnotes
<cr1901_modern> Line 58 and above is for SLG4662x, 59 and below is for SLG46140
<cr1901_modern> lovingly extracted using wget, pandoc, grep, and sec <3
<cr1901_modern> sed*
mumptai has quit [Ping timeout: 256 seconds]
<balrog> cr1901_modern: that list has been fed to archivebot
<cr1901_modern> That's great! ... what is archivebot
<balrog> https://twitter.com/archivebot -- an archiveteam thing that automatically downloads stuff and pushes it to the wayback machine
<awygle> "gandalf's staff with greenpak"
rohitksingh has joined ##openfpga
<cr1901_modern> oh God it's a match ._.
rohitksingh has quit [Client Quit]
<cr1901_modern> This was very much not worth the time I spent writing that script to automate getting the contents
<cr1901_modern> good to know pandoc is smart enough to convert html tables to markdown tables
<awygle> is there a PDF OCR thing that you can give, like, hints to?
<awygle> "you're looking for a table, the first column will be these letters in order, the next three columns will be numbers"
<cr1901_modern> No need: Just look for td/tr/etc
<awygle> yeah but pdf's aren't always html are they?
<awygle> i feel like many/most are just bigass images
<awygle> ... i know very little about pdfs
<cr1901_modern> I didn't need to grep a pdf to find all the apnotes specifically for slg46140
<cr1901_modern> etc
<awygle> i'm specifically picturing extracting those JEDEC dimensional tables from component footprints
<awygle> err, component datasheets, to _make_ footprints
<awygle> oh huh, the ice40up has dedicated I3C pins?
<awygle> i thought the fpga was older than that standard
digshadow has quit [Ping timeout: 276 seconds]
rohitksingh_work has joined ##openfpga
<cr1901_modern> qu1j0t3: I can't do a project like this right now, but AN-1213 (Smart Pillow) is very relevant to my interests
Bike has quit [Quit: Lost terminal]
digshadow has joined ##openfpga
<awygle> daveshah: i updated the pr. i'll probably amend that last commit once i've got the icebox stuff completed and not in this weird in-between state.
<rqou> ugh that was hard AF
<awygle> but now it's over!
<rqou> time to pray to the god of curving
<openfpga-bot> [jtaghal] azonenberg pushed 1 new commit to master: https://git.io/vpK7s
<openfpga-bot> jtaghal/master 031216b Andrew D. Zonenberg: Lots of debugging and bringup on ARM memory debug. Still working on figuring things out.
<rqou> btw if anybody wants to feel inadequate like me: https://photos.app.goo.gl/PAJEQ1reWVDQiv6y5
<rqou> the goal is to find v_c, i_1, i_2
mumptai_ has quit [Remote host closed the connection]
<awygle> this sort of looks like that weird ti buck converter architecture
<daveshah> awygle: Thanks for updating the PR. I'll check through it so far today.
bitd has joined ##openfpga
<awygle> oh yeah you're in Europe somewhere right?
<awygle> Timezones....
<daveshah> Yeah, Vienna
<daveshah> awygle: left a few comments on the PR for the thing you weren't sure about
<daveshah> All is going very well so far - and much faster than any previous attempts to add new devices
<azonenberg> welp THIS is interesting
<azonenberg> i apparently have a bug in jtagd that causes the kernel to warn that my jtagd didn't claim an interface before using it
<azonenberg> several times per second
<rqou> lol
<rqou> call the claim interface function? :P
<azonenberg> i just ran out of disk space on / because kern.log, messages, and syslog
<azonenberg> were each 16 GB
<rqou> lolol
<azonenberg> sooo yeah now i get to figure out what is doing it
<rqou> azonenberg: have you tried, you know, calling libusb_claim_interface? :P
<azonenberg> The issue is that i don't use libusb
<azonenberg> i use the ftdi blob and the digilent API
<azonenberg> one of which presumably has a bug
<azonenberg> It seems to be related to using a digilent dongle using the ftdi blob api
<azonenberg> If i use the digilent API instead it appears to work fine
<azonenberg> So that's my temporary workaround
<rqou> why are you using their craptastic code?
<azonenberg> Because the open source libftdi was completely nonfunctional when i last used it in 2012, and i didnt have time to debug
<azonenberg> And some of the digilent devkits use non-ftdi programmers
<azonenberg> e.g. a pic24
<azonenberg> So i have to use the blob or RE their protocol
genii has quit [Remote host closed the connection]
<awygle> daveshah: you're right that lattice claims no warmboot, but also, there's a warmboot tile in the bottom right of the floor planner. So... *shrug?*
<rqou> awygle which part is this?
<azonenberg> awygle: broken? :p
<daveshah> awygle: great, definitely worth a hardware test
<daveshah> I think it could be a mistake in the docs - it's fairly certain there's no NVCM in the LM, but maybe WARMBOOT is actually there and working
<daveshah> Could be they were going to remove it, but didn't...
<daveshah> Have you tried a design with a SB_WARMBOOT in icecube?
<awygle> LM
<awygle> @ rqou
<awygle> daveshah: nope
<rqou> oh the weird one
<daveshah> awygle: would be good to check at some point, then you can check the routing too
<awygle> bummer about that nvcm, would have been useful for one of my proposed applications
<daveshah> Well, maybe again it does have NVCM at that document was out of date
<awygle> daveshah: actually I did synth one, because I ran some test script
<awygle> but I didn't poke at it too much
<daveshah> OK, that's good
<awygle> Per your comment about the speed, it's 100% due to all the work you and Clifford and tannewt did ahead of me. I just copy stuff and change 5k to lm4k lol
<daveshah> awygle: random thought about the 2 PLLs in the lm4k. It could be different PLLs are bonded out in different package variants?
<awygle> hm could be
<awygle> I didn't check but it's easy enough to do
<awygle> BTW I currently think all the LM parts are the same die
<awygle> 2k and 4k definitely are
<daveshah> They are definitely
<daveshah> The 1k cannot physically be a real part
<daveshah> It claims to have 1100 LUTs, but 1100 is not divisible by 8 :/
<daveshah> Need to try harder, Lattice
<awygle> Lol
<daveshah> There is, to my knowledge, only one die each for LM, Ultra, UltraLite and UltraPlus
<daveshah> In all cases icecube just implements a resource limit, not locking out parts of a chip
<daveshah> So you can be sure the whole die is functional
<awygle> What jerks
<awygle> Saves me money though I guess
<rqou> does icestorm support any of these at this point?
<daveshah> Yeah, and fuzzing time
<daveshah> rqou: only the ultraplus
<daveshah> It was a nice bonus to have fuzzed the 5k and find I got 3k support for free
<awygle> rqou: after graduation you could add ultra in a weekend or two
<daveshah> yeah, that would be awesome
<awygle> To first order
<awygle> Dev board is only 50$
<awygle> Okay everyone, goodnight
rohitksingh_work has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
<egg|zzz|egg> hmm, did somebody talk about eggs
<egg|zzz|egg> oh, about integrators!
<azonenberg> As soon as somebody has an fpga with working serdes supported by open tools, i'm very interested :)
<azonenberg> even if its "only" 1.25 Gbps i can still do ethernet with it
<rqou> ugh, prjtrellis is C++ _and_ boost
<azonenberg> Soo i'm gonna be submitting a talk to the PNW FPGA meetup some time in the next month or so
<azonenberg> Possible topics include:
<azonenberg> * coolrunner bitstream RE, culminating in frying a 2c32a live on stage
<azonenberg> * antikernel
<rqou> yawn, old news
<azonenberg> * tragiclaser
<azonenberg> * other ideas?
<azonenberg> maybe greenpak stuff? or the higher level netlist re stuff?
<rqou> idk, what have you been working on other than the house?
<azonenberg> $dayjob, $sidegig, and tooling to support those
<azonenberg> :p
<rqou> wtf
<azonenberg> a little bit of dev for the starshipraider hyperram controller
<rqou> can you please finish the friggin house?
<azonenberg> A bunch of board design for the switch
<azonenberg> rqou: lol, over the weekend i got almost the whole second floor wired
<rqou> is demo done?
<azonenberg> Upstairs, pretty much
<azonenberg> I may still pull out the stone facing by the fireplace
<azonenberg> but i wanted to get a chimney guy's opinion on whether it was salvageable first
<azonenberg> He's coming next week
<rqou> wait why?
<azonenberg> There's a few tidbits of insulation in corners i have to vacuum out but nothign substantial
<azonenberg> Among other things, the old fireplace is in bad shape and had an insert put in
<azonenberg> The insert is too tiny to be useful and wasnt in good shape either
<rqou> my parents kept our chimney even though the fireplace is no longer functional
<azonenberg> I'm removing the insert
<azonenberg> Depending on condition of the fireplace itself, i may repair it or rebuild it
<rqou> apparently because putting it back would be a huge pain
<azonenberg> If i have to fully replace the fireplace, then the stone facing in front needs to go
<azonenberg> the hearth is definitely too small ,its like 6" in front of the fireplace
<azonenberg> code requires 12 or 18
<rqou> oh you're just removing the stone facing?
<azonenberg> so that has to be expanded
<azonenberg> Well, if the fireplace itself gets replaced then the stone would have to in order to get it out
<azonenberg> We will have a fireplace when all is said and done
<azonenberg> The only question is how much of the old stuff has to come out
<azonenberg> and how much can be saved
<rqou> yeah my parents removed most of the facing and just boarded it up
<azonenberg> Ideally i want heat exchanger fins in the chimney
<azonenberg> and a blower motor to circulate air through it
<rqou> since we've never used the fireplace
<azonenberg> So i can actually extract useful heat from it
<azonenberg> I want the ability to heat the house when grid power is down, i cant run a giant heat pump on my generator
<azonenberg> But i can burn wood and run a small fan off the generator
<azonenberg> Neighbors tell me the power is more reliable in this neighborhood than where i live now, but we've seen the microwave and stove clock reset several times during the construction
<azonenberg> I dont know how long those outages were
<rqou> have you considered an oil burner instead?
<rqou> they're supposedly much more efficient and clean
<azonenberg> Permits for that are nontrivial, and i like having a fireplace for atmosphere anyway
<azonenberg> i'd never use it as the primary means of heating the house
<azonenberg> But it's a useful backup when grid power is unavailable
<azonenberg> And fun to roast marshmallows on otherwise :p
<rqou> wtf this needs a permit?
<azonenberg> Putting in an oil tank? yes
wpwrak has quit [Read error: Connection reset by peer]
<azonenberg> among other things probably needs a seismic evaluation
<azonenberg> To make sure it wont rip off the house and leak all over the place into the bay if we get a small quake
wpwrak has joined ##openfpga
<azonenberg> also a heat pump furnace is AC almost for free
<azonenberg> Which is nice
<azonenberg> The existing furnace is like 10-12 years old so not new, but has been regularly serviced and shows no signs of impending doom at the moment
<azonenberg> I want to redo it at some point, but its not a critical priority
<rqou> wait if you have a furnace why the heck do you need a fireplace?
<azonenberg> a) for fun, nice to curl up in front of on a cold winter night
<azonenberg> b) to heat the house if grid power is down
<rqou> fireplaces are annoying, polluting, and don't even produce much heat
<azonenberg> You clearly are not used to living in a place with unreliable power
<azonenberg> When you've gone a full night in a house without working heat because there's no electricity, you'll understand why i want one :p
<rqou> I'd probably use an oil burner
<azonenberg> again, that would involve replacing the existing furnace and is actually MORE polluting in the long run
<egg|zzz|egg> rqou: also in the direction of (a), the cat likes to be on seats heated by the fire
<rqou> lol
<azonenberg> Fireplaces burn renewable resources and are only used occasionally
<egg|zzz|egg> rqou: you wouldn't want to displease the cat would you
<azonenberg> Electric heat pumps can be run on renewable power, a lot of hydro and solar and wind out here
<rqou> can't you keep the furnace and get a small oil stove?
<azonenberg> We have a furnace and a fireplace now
<azonenberg> I just want to fix the fireplace
<azonenberg> You cant roast marshmallows over an oil stove
<rqou> lol fine
<azonenberg> And by putting a heat exchanger in the chimeny you can massively *increase* the efficiency of it for heating
<egg|zzz|egg> or andouillettes
<rqou> azonenberg: it's always a bit weird to me how much you actually do strive for "classic Americana"
<rqou> as oppised to just being "a millennial"
<rqou> *opposed
<azonenberg> rqou: lol
<rqou> azonenberg: I'm going to keep mocking you and asking when you'll have a doggo and 1.84 kids :P
<azonenberg> I thought i'm a tad too old to be a proper millennial?
<azonenberg> i forget when the cutoff is
<azonenberg> and $wife is probably going to make a trip to the animal shelter as soon as we have safe, sharp-object-free floor installed on most of the house
<azonenberg> To pick up (if we're lucky) only one pupper :p
<rqou> pew research says millennials are 1981-1996
<rqou> so including me and you and just barely not including clifford
<azonenberg> they wont fit any normal clothing
<azonenberg> or a normal baby chair
<daveshah> too young to be a millennial lol
<daveshah> 97
<azonenberg> they probably have trouble walking
<azonenberg> So, not my thing
<azonenberg> That was 0.58 kids if i recall correctly?
<azonenberg> been a logn time since i read the book
<azonenberg> rqou: but yes i have no intention of being average
<azonenberg> and i probably do act older than i am, i've always done that
<rqou> azonenberg: get with the program and get several cats, no kids, a huge pile of dakis, and a fursuit :P :P :P
<azonenberg> a) cats stink and $wife is allergic
<azonenberg> b) lab assistants are nice
<azonenberg> c) i've been joking that she should make one of me to snuggle with when i'm away on business trips, but she's never taken me up on the offer :P
<azonenberg> d) i actually DO want to contact a fursuiter at some point, but not for a fursuit
<azonenberg> i just think they have the right skills for the project
<rqou> O_o what
<azonenberg> see, we want to make one of the bedrooms themed "Kanto hunting lodge"
<azonenberg> with a "gun rack" on the wall full of poke balls
<azonenberg> a Stantler head on a plaque on the wall
<azonenberg> an Arcanine-skin rug on the floor
<azonenberg> etc
<rqou> wtf
<azonenberg> maybe a can of slowpoke tails somewhere?
<rqou> are you/$WIFE furries? :P
<azonenberg> More like weebs
<rqou> didn't you know that one single slowpoke tail is supposed to cost you 1 million yen? :P :P :P
<rqou> also, i think any cosplayer/prop-maker can probably build this
<rqou> you don't strictly need a fursuiter
<azonenberg> probably, we just figured for a full-on plush head of a pokemon a fursuiter would likely have the right skills
<azonenberg> Even if its not meant to be / capable of being worn
<azonenberg> But i imagine it wont be cheap so it wont happen any time soon
rohitksingh has quit [Quit: Leaving.]
<rqou> i was about to say "see, this is where all your money went" :P
<azonenberg> lol
<azonenberg> no my money is all going to building materials and paying contractors
<azonenberg> And probably that thermal monocular soon, there's a 6-8 week lead time and i wanted it in time for a training exercise in july if possible
Panasonic has quit [Read error: Connection reset by peer]
<azonenberg> That's our only overnight training before the fall training season starts and i wanted to do a realistic test to get more familiar with it before using it on an actual mission
<azonenberg> When minutes count and lives are on the line, it's not a good time to be learning your way around new gear
rohitksingh has joined ##openfpga
rohitksingh has quit [Quit: Leaving.]
rohitksingh1 has joined ##openfpga
rohitksingh1 has quit [Quit: Leaving.]
indy has quit [Read error: Connection reset by peer]
indy has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
<pie_> are usb drives that get hot when plugged in badly designed?
<awygle> Damn, daveshah making me feel ancient and slow :-P (I'm 91)
<daveshah> awygle: lol
<daveshah> It's nice to be young and not worring about azonenberg stuff :P
<awygle> I mean I'm renting, unmarried, and not planning to have kids :-P it can be done regardless of age
<daveshah> well I've only barely moved out from my parents (and will be back there in 5 months)
<gruetzkopf> '95 here, you're all old :P
<qu1j0t3> 1895 here
<awygle> Ugh so early to be awake... Stupid sun.
Bike has joined ##openfpga
genii has joined ##openfpga
rohitksingh has quit [Ping timeout: 248 seconds]
soylentyellow_ has quit [Remote host closed the connection]
soylentyellow has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: No route to host]
rohitksingh1 has joined ##openfpga
rohitksingh1 has quit [Read error: Connection reset by peer]
rohitksingh has joined ##openfpga
azonenberg_work has quit [Ping timeout: 240 seconds]
<whitequark> awygle: whoa
<pie_> hm sel4 on riscv, nice.
<pie_> at first i couldnt figure out why you were linking that, took me a bit to figure out this is a group of articles :P
<daveshah> lol at that article I'm afraid
<daveshah> "resistor-transistor logic (RTL) interface, written in Verilog"
<daveshah> For the hyperram interface
<awygle> Yeah I reported that lol
<daveshah> Thanks
<awygle> Clearly gave the newsletter to an intern
<awygle> (not that there's anything wrong with interns)
<daveshah> Authors bio is "Freelance journo. News editor, bit-tech.net. Author, Raspberry Pi & BBC Micro:bit User Guides. Custom PC columnist. Bylines in PC Pro, The MagPi, HackSpace etc."
* whitequark reads backlog
<whitequark> fursuits, fursuits, cats, fursuits
<whitequark> what do you do with your cats so they stink
<whitequark> also (though not saying it's an option for you) my roommate used to have a cat allergy but then we trained her immune system and now she doesn't
<whitequark> turns out if it isn't very severe but more like just strongly annoying, you can do desensitization yourself
rohitksingh has quit [Remote host closed the connection]
<awygle> My cats don't stink but the fact that they're indoor cats and my apartment is not large means there's an occasional litter box smell component
<awygle> Also they track that shit everywhere, I need a roomba so I don't have to sweep so much...
shapr has joined ##openfpga
<shapr> somedays I'm on here
* shapr looks for the wiki link
<awygle> lol
m_t has joined ##openfpga
rohitksingh has joined ##openfpga
azonenberg_work has joined ##openfpga
<openfpga-github> [Glasgow] whitequark tagged revA at a55edfd: https://github.com/whitequark/Glasgow/commits/revA
<whitequark> I feel like we need some docs or something but I need to bring up the FIFOs first
<awygle> whitequark: I thought I tagged Rev A already?
<whitequark> awygle: rev-a vs revA
<whitequark> I just prefer to have the same style everywhere
<awygle> Ahh sure
<rqou> whitequark: despite the joking i actually have neither dakis nor a fursuit
<rqou> although there is a daki somewhere in this apartment (but it's not mine i promise)
* whitequark sighs
<rqou> also, how do you do immune system _de_sensitization?
<rqou> I've only ever seen "make sure you actually do wear gloves when working with <foo> or you can potentially cause immune system sensitization"
<whitequark> rqou: by exposing it to the allergen in a controlled manner, duh
<whitequark> in this case, just playing with cats a lot while on antihistamines
<rqou> why does that also cause sensitization for some chemicals?
<whitequark> she doesn't need them anymore after several weeks
<whitequark> sensitization works differently
<whitequark> specifically, first exposure starts sensitization, which happens over a period of time where you *don't* encounter the allergen
<whitequark> then, second exposure triggers an adverse reaction
<rqou> ah
<whitequark> if you then repeatedly expose immune system to the allergen you can reverse it. terms and conditions may apply
<whitequark> this all is very simplified
<rqou> so that's how my chemistry teacher ended up with a sensitivity to formic acid
<rqou> because you probably don't want to be exposing yourself to that on purpose :
<rqou> :P
<whitequark> why not
<whitequark> make it a small concentration
<whitequark> formic acid is surprisingly nasty so far as organic acids go but your immune system doesn't need like a 10% solution
<qu1j0t3> /b 6
<rqou> is this also how polyurethane isocyanates usually have warnings, but improperly cured polyurethane seems to mostly affect "regular people" and not the installers who messed it up in the first place?
<rqou> because the installers get exposed all the time?
<rqou> huh, in general the human immune system seems ridiculously difficult to understand
<rqou> proof against intelligent design? "nobody would design something this obfuscated" :P
<Bike> i think it's more that it's general
<Bike> it does the same kind of pattern recognition stuff your brain does, only if it goes wrong you choke because of pollen or something
<pie_> immune system education needs to be revamped. add epistemiology to the curriculum
<Bike> yeah i would have liked to have gotten, like, any information at all
<rqou> oh what antibodies are "huge" in relative terms: "The size of an antibody molecule is about 10 nm"
<Bike> or a magic school bus episode about somatic hypermutation
<pie_> Bike, i meant like, when your immune system goes to school
<Bike> oh. that would be good too
<pie_> The Magic Lymphocyte Bus
<Bike> i mean they did an episode that involved antibodies, i think
<rqou> goddammit "In the United States, [sublingual immunotherapy drop] formulations have not yet received FDA approval, though off-label prescription is becoming common."
<rqou> this might be why I've never heard about this
<rqou> FDA: dodged the thalidomide bullet, has been bureaucratically slowing every down since
<rqou> *everything
<rqou> alright, go update the Wikipedia page
<Bike> oh this is a tablet not a drop
<Bike> whoops
<qu1j0t3> pie_: I heard the manufacturer raised the price of Epistemiology by 6x!
<pie_> ugh stop
<pie_> not wanting to pay for anything already feels bad
<awygle> huh, it only occurred to me today that i probably should not work on the proghq stuff
<balrog> heh, why?
<awygle> i'm employed by data i/o
<balrog> ohhhhhh lol
<awygle> i saw them listed in the dump of links and was like "... oh, right"
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined ##openfpga
<balrog> awygle: well, one of the goals is to have a centralized repository of data
<balrog> (meaning: models, software support, etc)
<balrog> they might be ok with that part, heh
<balrog> right now there are too many bits and pieces of information strewn all over the web
<balrog> then again, some companies hate competitive data
<balrog> we're not even interested in multisite/automated, though, ha
<balrog> and pretty much everything data i/o sells is multisite or automated (the lowest end thing seems like a manual gang programmer)
<balrog> that's kinda why I was surprised that bpmmicro released the 1900
rohitksingh has quit [Client Quit]
rohitksingh has joined ##openfpga
<rqou> why is everybody on birbsite upset that Microsoft announced they are adding JavaScript to Excel?
<rqou> i think it's a great idea
<rqou> Excel is already one of the most accessible to newbies programming environments, and JS has much better developer mindshare nowadays vs VBA
<rqou> also, imho the more scripting and ffi interfaces the better
<Bike> i'm going to imagine that there are partisans who prefer when you could use vbscript on websites
* genii shudders
<rqou> lol
<rqou> iirc that used to work a very very long time ago?
<rqou> or maybe only in .hta?
<rqou> also, .hta
<rqou> microsoft was way way ahead of the times
<rqou> you didn't need anything like "Electron" back in the day
<pie_> (ok this is pretty cool https://imgur.com/gallery/QK3lR38)
<pie_> qu1j0t3, we should just do away with scanners ^
<awygle> That's a picture of a rabbit describing a carrot?
<qu1j0t3> pie_: 404
<sorear> Yes, <script language=vbscript> worked in any web page where js did way back
<qu1j0t3> oh wait
<pie_> qu1j0t3, oops sorry about the paren
<qu1j0t3> pie_: never mind, my dumb terminal parser. yeah i've seen some projects like this before.
<genii> qu1j0t3: Omit the closing brace ;)
<qu1j0t3> genii: yes, i worked it out :)
<openfpga-github> [Glasgow] whitequark opened issue #38: Use an FX2LP in a BGA package? https://github.com/whitequark/Glasgow/issues/38
<Bike> the book i learned html from talked about js and vbscript as options
<Bike> also i think some other things
<rqou> wait, so vbscript worked "on the web"?
<rqou> not just in .hta?
<Bike> think so
<Bike> i mean, only in IE
<rqou> hmm
<Bike> https://www.w3.org/TR/html401/interact/scripts.html#h-18.2.2.2 In this example, we declare the default scripting language to be "text/tcl"
<Bike> it links a list of valid mime types which is an ftp site
<Bike> (and broken)
<rqou> hey, i'm looking for a paper that was floating around either here or on birbsite recently about binary translation using "brute force" by just disassembling at every single possible offset and then using jump tables
<rqou> anybody know what i'm talking about and have the title?
<pie_> i think i was talking about that at some point
<pie_> hold on
<rqou> ping awygle, azonenberg, whoever else is "an academic" here :P
<pie_> i totally want to go on about how ive had that idea for ages but meh :P
<rqou> i mean, it's kinda an obvious idea
<rqou> the breakthrough is "wait, this idea works?"
<pie_> yeah
<pie_> i know i have it in my wiki somewhere but i cant find it offhand
<pie_> brb
<rqou> nice, thanks
<pie_> apparently it wasnt in my wiki.
<whitequark> awygle: so in theory I have the FIFO configuration pinned
<whitequark> now I just need USB descriptors and gateware
<rqou> ugh their code is a big ad-hoc mess like i expected
<rqou> whitequark: does llvm understand opcode semantics? can it disassemble opcodes back into LLVM IR? (yes, i know llvm IR is still non-portable in many ways)
<rqou> can llvm be used like qemu?
<rqou> as an opcode interpreter?
<q3k> you can use pyvex + simuvex
<q3k> I'm not aware of an llvm ir interpreter
rohitksingh has quit [Quit: Leaving.]
<rqou> but can llvm do opcodes->ir?
<Bike> opcodes of what? i mean, there's a disassembler
<rqou> can i do x86->IR?
<Bike> yes
<rqou> oh nice
<rqou> for all opcodes? or only for the ones that llvm actually emits?
<Bike> that i don't know
<rqou> "Control flow recovery is performed using the mcsema-disass tool, which relies on IDA Pro to disassemble a binary file and produce a control flow graph."
<rqou> that's totally not what i wanted
<q3k> well control flow recovery is difficult
<q3k> you need control flow recovery for ssa lifting
<rqou> the whole point of the paper i just asked for is that you don't
<rqou> just do it by brute-force
<q3k> oh
<rqou> why are there so many projects that need to understand cpu opcode semantics, and yet there is no unified way to express these semantics and share code?
<rqou> bugs, bugs everywhere
<rqou> i guess sandshifter (https://github.com/xoreaxeaxeax/sandsifter) exists for a reason
<shapr> I love that project
<Bike> people have talked about doing that since like, the 90s
<Bike> well probably earlier
<cr1901_modern> rqou: Just do *what* by brute force?
<cr1901_modern> Fwiw I agree that IDA shoulsn't be the only way to reproduce control flow
<rqou> tl;dr is "what if i just disassembled the program starting from every possible address?"
<rqou> and every time there is an indirect control flow, just put it into a big lookup table to decide which new block to jump to
<shapr> rqou: reopt does x86_64 -> LLVM IR
<jn__> ooh, Chris Domas has tacked a license on sandsifter! he's getting better at releasing stuff!
<q3k> rqou: this breaks down for recovery of jumptable-based switch statements, no?
<shapr> has he merged some of the PRs?
<shapr> buncha good PRs in there
<rqou> q3k: i don't think so?
<jn__> shapr: nope
<shapr> :-(
<shapr> I started writing a collation tool for sandsifter, but only have code to parse the output at the moment
<rqou> the jumptable would end up computing some address to jump to in the old binary, but that still will go through the lookup to new blocks
<rqou> and since the brute-force disassembly has every possible target address (except for dynamically generated code of course) this will still work
<shapr> last I heard, xoreaxeaxeax hadn't released which CPU had the halt and catch fire instruction
<rqou> typical infosec disclosure whinging?
<cr1901_modern> q3k: Why do you think it would break down for switch statements?
<shapr> me? nah, I just want to know.
<shapr> I did notice that sandsifter find different instructions with different intel microcode versions, that was neat.
<rqou> no, i'm referring to the person who discovered the bug
<shapr> oh, seems likely
<q3k> cr1901_modern, rqou: right, I misunderstood the paper
<q3k> I thought they were actually lifting to SSA, but they're not, right?
<jn__> rqou: the hang was not in Intel, AMD, or Via, but in something that's still used… Vortex86?
<kc8apf> I recall trying the "disassemble at every address" approach in 2007
<cr1901_modern> idk what ssa lifting is
<kc8apf> it works reasonably well for non-obfuscated binaries
<rqou> i don't see why non-self-modifying obfuscated binaries would not work?
<rqou> i guess the key is the "non-self-modifying" part :P
<kc8apf> binaries that use partial opcodes can disassemble valid two different ways
<rqou> so?
<rqou> the whole idea is that you now have both ways
<q3k> cr1901_modern: taking a binary executable, disassembling it and recovring the control flow graph to end up with https://en.wikipedia.org/wiki/Static_single_assignment_form
<Bike> ilike that they call it "multiverse"
<kc8apf> as long as you preserve both paths, it's fine
<Bike> and yeah ssa is another adventure the paper doesn't cover
<kc8apf> most tools aren't set up to do that
<rqou> yeah, this paper does
<cr1901_modern> ahh
<q3k> cr1901_modern: which is the classic IR for many compilers (and academic decompilers)
<rqou> i think you can naively turn opcodes into SSA?
<q3k> you can
<q3k> 't
<cr1901_modern> Oh I know what SSA is, I just never heard of "SSA lifting"
<rqou> why not?
<Bike> pretend registers are memory and then run mem2reg
<q3k> because you need to phi anywhere you have two possible incoming edges to a basic block
<Bike> no problemo (probably problemo)
<rqou> yeah, just phi everywhere
<rqou> still ssa :P
<rqou> i think?
<Bike> every instruction is its own basic block
<Bike> simple,
<q3k> right, if you want useless ssa
<rqou> but it's still "correct" in the sense of preserving the semantics
<cr1901_modern> Bike: mem2reg?
<q3k> rqou: right, and absolutely uselss for any further analysys
<q3k> *analysis
<rqou> but if you're just doing brute-force binary translation it seems like that should be adequate?
<q3k> yes, if you are, which is not something i've immediately gathered from the paper
<Bike> the llvm pass that tries to rewrite memory accesses as ssa variables, i.e. does ssa conversion
<q3k> but if you are and this ssa form is useful to you then oyu will do as well with opcodes / opcode-level ir
<rqou> oh maybe the paper is doing something else as well, but i only really cared about the possibility of doing brute-force binary translation
<q3k> the paper is doing binary rewriting, I was mostly stuck in thinking about decompilation
<q3k> (for not good reason)
<q3k> *no good
<rqou> but yeah, i'm now thinking that llvm IR is probably not the most optimal form
<rqou> valgrind IR might actually be better (but i have no idea how it works)
<rqou> or does QEMU have an IR?
<q3k> if you want valgrind ir, then pyvex+simuvex
<rqou> yeah, i saw that
<q3k> qemu has an intermediary translator called tcg, and it has an IR iirc
<rqou> i have no particular preference because i don't really "work on compilers"
<rqou> hmm, iirc @landley was bitching about some issues in that, i'll have to ask him what the problem was
<q3k> better
<sorear> qemu has an IR
<kc8apf> in Xilinx terminology, a part is the full part# including package and speed grade suffixes. Is there a term for just the root (i.e. xc7a35t)?
<rqou> xc2bit very unhelpfully calls it "device" :P
<kc8apf> hmmm, actually, that seems to be what Vivado calls it too
<kc8apf> *sigh*
Kensan has joined ##openfpga
<awygle> words are hard, sadly
<balrog> q3k, sorear: so does MAME :/ (http://wiki.mamedev.org/index.php/UML_Architecture)
<awygle> i have this problem literally every day
<kc8apf> at least there is a term for it.
<rqou> wait MAME has a jit?
<rqou> since when?
<balrog> since like 10-15 years ago
azonenberg_work has quit [Ping timeout: 260 seconds]
<balrog> Aaron Giles designed it
<rqou> huh, i guess i just never noticed because nobody JITs 6502/Z80 code :P
<balrog> it's also underdocumented and full of bugs
<balrog> (well maybe not that bad)
<rqou> i mean, that's just MAME :P :P :P
<balrog> there are various useful subsystems in MAME that no one understands
<rqou> (not intended as an insult)
<balrog> UML is one; discrete subsystem is another
<rqou> discrete subsystem?
<rqou> is that what i think it is?
<balrog> spice-like simulation for discrete analog and digital circuit based systems
<rqou> yeah
<rqou> great
<rqou> now MAME is a circuit tool too
<awygle> MAME seems lke one of those projects that has a billion features but everyone just thinks of it as "the way to play Metal Slug"
<balrog> the runtime lives in src/lib/netlist
<rqou> wait it does _analog_ too?
<balrog> yes
<rqou> holy ****
<rqou> using spice or new code?
<balrog> new code that's optimized for performance
<rqou> O_o
<rqou> wow
<rqou> why haven't they made vidyaspice out of it? :P
<rqou> as in, a real spice tool with the MAME engine
<balrog> "CPU requirements are much higher - the game now maxes out at around 200% on a 4ghz i7 processor. Before the discrete sound it ran at 4500% on the same setup - analog simulation is expensive folks."
<rqou> it does mixed analog/digital simulation too?
<q3k> it has probably more features now than mentor graphics cosimulation tools
<balrog> yep, though connecting the simulation engine to the emulation has some clock domain issues IIRC
<rqou> seriously, why isn't this extracted out into a real eCAD tool?
<q3k> rqou: do it and make millions
<balrog> using this stuff is poorly understood *within the team* :/
<awygle> Who wrote all this?
<rqou> somebody who went to $FANCY_SCHOOL? :P
<q3k> fancy schools don't sponspor working on emulators for vidya game consoles, do they
<awygle> I mean bless the people who have incredible skills and only care about retro video games, but also...
<rqou> hey, they finally put up a tiny little commemorative plaque a few decades late :P :P :P
<rqou> (awygle: i'm talking about the SPICE plaque they put up in Cory)
<balrog> who wrote the discrete subsystem? someone who does PLC programming and barely has time for it and shows up once in a while
<balrog> [14:18:51] <rqou>somebody who went to $FANCY_SCHOOL? :P
<balrog> generally not :p
<rqou> i mean, i only said this because a research group here wrote SPICE originally
<balrog> ahhhh
<balrog> I wish more people would explore the MAME codebase (especially now that it's under a more usable license), but it seems the barrier to entry is high for a few reasons
<q3k> niiiice
<Bike> man, that's crazy. someone's gonna work out how to do matrix exponentiation in linear time because they really want an old arcade game to run at less than 500% cpu
<q3k> similarly, dolphin-emu is quite the engineering feat
<rqou> yeah i'm aware of that
<balrog> Bike: or more like sound correctly :)
<balrog> using sound samples isn't the same
<rqou> but does it simulate parasitics yet? :P
<rqou> like sid simulators
<Bike> just going off the 4500% comment
<balrog> that means it slowed down a ton :P
<daveshah> one day MAME will just take an atomic level model of the arcade machines...
<balrog> daveshah: I wish, but I find that unlikely
<Bike> the other day my lab was looking at computers and one advertised it was fast enough to do 400-something nanoseconds in a day
<cr1901_modern> daveshah: We can't even get DICE to run at full speed
<Bike> probably like... a lot less than a mol of material too
<Bike> an arcade board might be tricky.
<awygle> dolphin runs the best dev blog I've ever read bar none
<balrog> cr1901_modern: DICE ended up getting assimilated into this component of MAME
<rqou> waiting for MAME to get quantum-mechanical simulations so that noise in the audio path is emulated accurately :P
<rqou> wait wat
<rqou> DICE is now part of MAME?
oeuf has joined ##openfpga
<daveshah> I imagine it will end up beating every commercial ASIC tool in the unstoppable quest for accuracy
<balrog> (it's still a separate project as well)
<rqou> wait, DICE is a digital sim, right?
<rqou> i would have expected real-time performance to be achievable
<cr1901_modern> DICE is an analog simulator
<rqou> oh
<rqou> nmv
<rqou> nvm
[X-Scale] has joined ##openfpga
<cr1901_modern> for digital circuits :)
<balrog> so is MAME's simulator
<balrog> cr1901_modern: wait, I thought it simulated analog chips as well
<cr1901_modern> It might, I just know it b/c it can't emulate pong at full speed
<cr1901_modern> oh wait, pong _is_ analog
<balrog> lol there's an mm5837 simulation in MAME
<balrog> (broadband white noise source)
<rqou> MAME is pretty impressive
<balrog> (that implements the 17 bit shift register)
<rqou> soon it'll be at the forefront of eCAD tools _and_ chip RE
<balrog> I wish the debug capabilities were better utilized
<rqou> it has debug capabilities?
egg|zzz|egg has quit [Ping timeout: 264 seconds]
<balrog> (for debugging embedded systems)
<rqou> (sorry, i've never really used MAME much)
<balrog> yeah it has a full fledged debugger
cpresser has quit [Remote host closed the connection]
cpresser has joined ##openfpga
X-Scale has quit [Ping timeout: 264 seconds]
eightdot_ has quit [Ping timeout: 264 seconds]
[X-Scale] is now known as X-Scale
<rqou> 404
<balrog> and nobody says you have to be using it for old games
<balrog> which one 404s?
<rqou> anyways, is it a scriptable debugger?
<balrog> it works for me
<rqou> oh wat
<rqou> it works now
eightdot has joined ##openfpga
<balrog> scriptability? there's the lua engine http://docs.mamedev.org/techspecs/luaengine.html
<balrog> I
<balrog> I'm not sure that exposes all of the debug functionality yet
<rqou> ah nice
<rqou> that's what i wanted
<balrog> looks like it did get added (so the docs may be out of date)
<balrog> (surprise surprise!!)
<rqou> yeah, i'm of the opinion that basically everything should be scriptable
<rqou> you can never forsee what creative uses people want out of things
<balrog> yeah
<balrog> again, lack of documentation is a problem here
<rqou> "MESS is already a mess" :P
<pie_> yeah drawing dicks with an electron microscope is a pain in the ass if you dont have scriptability :(
<whitequark> wait
<whitequark> you can have more than one control endpoint in usb?!
<rqou> wat
<rqou> i though you couldn't?
<whitequark> there's endpoint descriptors for control endpoints
<whitequark> but the spec says that there is never an endpoint descriptor for EP0
<whitequark> so, this implies that non-EP0 can be a control endpoint
<whitequark> but this makes nosense
<rqou> wtf yeah
<rqou> ask scanlime? :P
<rqou> oh wtf the Dorito actually pulled out of the Iran deal
<q3k> whitequark: yeah
<q3k> whitequark: as far as I understand you can
<whitequark> wtf usb
<q3k> whitequark: not sure if People Actually Do This
<whitequark> libusb doesn't even have that!
<q3k> whitequark: yep, SETUP packets are normal TOKEN packets (same as IN, OUT, SOF) and the all contain ADDR and ENDP (device address and endpoint number)
<q3k> whitequark: USB is not my favourite standard (tm)
<rqou> alright, i need to be a troll and make a device with multiple control endpoints
<rqou> bonus if/when you crash a host driver stack
<q3k> i don't think you'll crash much by just being another wierdo endpoint
<q3k> because the host has to initiate any transactions anyway
<rqou> and yet, psjailbreak :P
<cr1901_modern> what's so weird about multiple control endpoints?
<whitequark> cr1901_modern: I have not seen any support for them anywhere
<whitequark> and they seem just kinda pointless
<q3k> cr1901_modern: it's a Spanish Inquisition sort of situation
<q3k> cr1901_modern: nobody expects it
<cr1901_modern> whitequark: Ahh well I got started w/ USB recently, so I had to read part of the spec. So I'm still "green" wrt "what do other libraries do"
<q3k> cr1901_modern: the ep0 control endpoint is there just to bootstrap the device and gain knowledge about what other endpoints it has
<q3k> cr1901_modern: so having that bootstrap endpoint mention 'yeah btw there's another control endpoint here' is somewhat odd
<rqou> hmm q3k if you actually understand usb, i'd like (at some point in the future) some opinions on what you would expect in a hypothetical "libusbgadget" api
<cr1901_modern> Use the ep0 for bootstrap/maintenance tasks/what the spec expects, use another control endpoint for custom shit
<q3k> rqou: I suck at USB
<q3k> cr1901_modern: but you might as well use BULK
<cr1901_modern> q3k: My hypothetical application is an fx2 device where a second control endpoint tells it "time to load new firmware"
<whitequark> why would you need a second control endpoint?
<whitequark> it's just a vendor request
<whitequark> I have it...
<cr1901_modern> Ahh, then I guess you don't
<whitequark> cr1901_modern: besides, fx2 doesn't support any control endpoints other than ep0 :P
<q3k> cr1901_modern: use interrupt or bulk
<whitequark> no just do it over ep0
<whitequark> don't waste a good endpoint on stupid shi
<whitequark> you want wIndex anyway
<q3k> cr1901_modern: generally bulk is what you end up using most of the time
<q3k> whitequark: eh
<rqou> aaargh i just realized how i've been trolled for hours by one of the questions on my take-home final
<rqou> unfortunately i can't show it until tomorrow
<rqou> the answer is pretty trivial once you realize how you're getting trolled
<cr1901_modern> whitequark: Cool, noted. Also, can you tell I don't actually remember the concrete use-case :P?
<rqou> but i guess that's pretty typical
<rqou> "the answer is obvious once you know what the answer is"
<cr1901_modern> (I ran into an issue where I could load new firmware onto an fx2 device on Linux but not Windoze. I don't remember the details other than I wanted to use "the last free endpoint for Windoze-specific config")
<cr1901_modern> Which is prob a terrible idea
<whitequark> q3k: [178515.044150] usb 1-2: config 0 descriptor??
<whitequark> what is linux trying to tell me here
<genii> Probably that you should run update-usbids
<cr1901_modern> Oh, now I remember: Said device (FPGA dev board) configures itself as a serial port on Windows; the device uses a special program that talks over libusb to send the FX2 commands/firmware to reconfigure itself. >>
<q3k> whitequark: what did he mean by this :thonking:
<cr1901_modern> Windoze has a nice limitation where you can't switch between serial port to libusb and back on demand. So I suggested making the device + driver a composite on Windows, where the secondary "device" serves as a control channel
<cr1901_modern> To get around how stupid libusb acts on Windoze
<q3k> * @configuration is the value of the configuration to be installed.
<q3k> * According to the USB spec (e.g. section 9.1.1.5), configuration values
<q3k> * must be non-zero; a value of zero indicates that the device in
<q3k> * unconfigured. However some devices erroneously use 0 as one of their
<q3k> * configuration values.
<q3k> whitequark: ^
<cr1901_modern> (alternatively, I could not use libusb at all; I'm not sure how to make the serial port/libusb work at the same time on Windows)
<whitequark> q3k: oh
<whitequark> thanks
<q3k> also why is this code so well documented
<q3k> since when is there good code in Linux
<pie_> q3k, so....do they basically ignore that value? xD
<q3k> no, it lets you set this configuration as the active configuration on the device
<rqou> is this the feature that allows for mobile broadband modems to appear as cd rom drives by default?
<whitequark> yes
<Bike> is that useful in some context
<whitequark> sure
<whitequark> glasgow has a configuration 1 that's two interfaces, and configuration 2 that's one
<whitequark> or do you mean cd rom drives?
<whitequark> that's just integrated drivers
m_t has quit [Quit: Leaving]
<Bike> i meant the modem as cd rom thing, yes
<q3k> that's just multiple configurations, not configuration id 0
<q3k> then some devices will not return te availability of more than one configuration until you send a magic message
<q3k> so that windows doesn't start off with a 'GIB DRIVERS'
<whitequark> oh
<whitequark> this is dumb
<whitequark> okay moment of truth
<whitequark> *connects all 16 channels of logic analyzer to future logic analyzer*
<rqou> yeah, windows "gib drivers" is dumb
<rqou> i don't know how I'm supposed to feel about the devices that allegedly enumerate as a mouse/keyboard to dismiss all the driver toasters
<openfpga-github> [libfx2] whitequark pushed 4 new commits to master: https://github.com/whitequark/libfx2/compare/28ea07bd1084...a3d4211da064
<openfpga-github> libfx2/master 245fa39 whitequark: Don't use reserved bConfigurationValue 0.
<openfpga-github> libfx2/master fa04c7a whitequark: Make SYNCDELAY produce more compact code....
<openfpga-github> libfx2/master ff9e0a6 whitequark: Update regtxt2c.py.
<whitequark> oh what the hell, most fx2 logic analyzers trigger on the HOST?!
<whitequark> er no
<whitequark> logic16 even
<q3k> yes
<whitequark> this is dumb
<q3k> yes
<whitequark> this hting has an fpga in it
<q3k> yeeeeep
<whitequark> what's the fucking point of having an fpga in it
<whitequark> if it can neither trigger on device nor even has any decent performance
* q3k has a 'write open source bitstream for logic pro16' on his backlog for a while now
<pie_> whitequark, ....what.
<whitequark> this one has an altera fpga (i think?) with the firmware permaflashed
<whitequark> as in it ignores whatever is downloaded from the host
<whitequark> "mcupro" says the silkscreen
<pie_> wait so is this logic16 then? (is that something other than fx2)
<rqou> welcome to the world of "why do LAs all suck?"
<pie_> herp derp anyone can make an la? :P
<whitequark> pie_: it has an fx2 but also an fpga
<whitequark> and it's a logic16 "clone" but not actually a clone
<pie_> ok
<whitequark> it uses the same fx2 firmware but different fpga and bitstream
<rqou> btw my father has one of those ancient heavy rackmount LAs and they suck too (for modern use cases)
<whitequark> rqou: well glasgow wont suck :P
<whitequark> worst case i can just build a different bitstream for every trigger condition
<pie_> rqou, betcha cant kill it with anything below 50 volts lol
<cr1901_modern> whitequark: fx2lafw doesn't trigger on the host (assuming I understand what you mean)
<whitequark> oh huh
<whitequark> so this is *worse* than fx2lafw
<rqou> they can set up advanced triggers to e.g. trigger when your cpu fetches vector <n>, but it doesn't have serial decode or deep memory
<rqou> and then of course they're a hundred pounds or so and don't fit in your backpack :p
<cr1901_modern> Of course, fx2lafw is limited to saelae (sp) clones
<whitequark> no it isn't
<whitequark> you can use it on literally anything that has FD bus of FX2LP connected to probes
<cr1901_modern> Could glasgow use it (not that you'd want to)?
<whitequark> arguably, it was saleae who cloned DP's Logic Sniffer
<whitequark> ah no
<whitequark> that's a different device
<whitequark> cr1901_modern: sorta?
<rqou> wait DP started this "shit but good enough LA" thing?
<whitequark> well
<whitequark> rqou: actually no, that has an FPGA
<whitequark> not sure who started it
<balrog> Saleae is a streaming device
<balrog> pretty sure DP's Logic Sniffer isn't
<balrog> (it uses an SRAM buffer)
<balrog> I have a pro16
<whitequark> oh
<rqou> oh yeah, i also don't know why streaming test equipment is so uncommon
<rqou> other than NI and Saleae
<cr1901_modern> My CWAV USBEE uses the fx2lafw. It's advertised as a saleae clone, and when I add triggers to pulseview, the USBEE honors them
<cr1901_modern> Idling in a tight loop waiting for trigger condition?
<whitequark> well sure, that's because it uses GPIF for triggers (I think)
<kc8apf> rqou: those big chassis were great for capturing processor buses at 1.6GHz
<cr1901_modern> whitequark: Is that what you meant by "device triggered"?
<whitequark> yes
<cr1901_modern> Okay cool, just wanted to make sure
azonenberg_work has joined ##openfpga
<kc8apf> decoding on it was a joke though. Much easier to export and run decoding separately
<rqou> kc8apf: yeah, but i don't know if the old one in the garage is that fast
<kc8apf> I wonder if Tek every fixed their binary log exporter
<cr1901_modern> USBEE also has an analog channel, according to sigrok, but it's not exposed on the connector
<rqou> i never tried any exporter on this one because it's floppy disk only
<cr1901_modern> (and when I enable it, pulseview refuses to capture data)
<kc8apf> oh, one of _those_
<kc8apf> I gave that generation away
<rqou> yeah, it's old AF
<rqou> which is why it's in the garage unused
<kc8apf> might be one that runs HP-UX
<rqou> there's also a very early gen Tek DSO in the garage if anybody might want that :P
<rqou> afaik it still works just fine
<rqou> except the vector crt seems to have some minor issues with the colors not lining up
<q3k> kc8apf: sometimes you need hw decoding though :/
<q3k> kc8apf: ie. for triggering off of complex protocols
<kc8apf> q3k: we tried and gave up
<qu1j0t3> rqou: I might want that ;-)
<rqou> local pickup only
<kc8apf> it was faster to trigger simply and post-process
<q3k> that's why I really need ot go back to hacking on siglents so that everyone can just write their protocol decoders and triggers in migen/verilog
<q3k> kc8apf: yeah if you can do that - I want to be able to trigger off of, for example, a USB transaction and immediately route that trigger to some fault injection circuitry
<q3k> kc8apf: (and not to just find what I need in a long-ass csv)
<whitequark> something something glasgow
<q3k> whitequark: can it do 1GSa/s? :P
<rqou> q3k: have you considered building your own test equipment? :P
<whitequark> q3k: yes
<whitequark> with a custom frontend
<pie_> hey qu1j0t3 rqou has a scope in the garage :PP
<rqou> something something Guren/Bus Armada/STARSHIPRAIDER
<whitequark> and on one channel
<pie_> qu1j0t3, , nevermind lol
<q3k> rqou: why make your own when you can buy perfectly cromulent oscilloscopes that just happen to be zynq devboards? :P https://twitter.com/q3k/status/965009852719394816
<whitequark> rqou: which of these devices actually exists? :P
<rqou> none :P
<rqou> also at this point in time Bus Armada might not be a hardware project anymore
<rqou> it might become software for azonenberg's hardware, except we completed disagree how the software should work
<rqou> Guren is going to be actual hardware
<q3k> whitequark: right, if I build a custom frontend
<q3k> whitequark: this thing already works and is fairly cheap and I'm cheap
<q3k> whitequark: also it has a beefy FPGA and quite some sample memory if needed
<whitequark> q3k: yeah, I don't think doing 1 GSa/s on Glasgow is actually a good idea
<q3k> whitequark: I still want a glasgow, just for different things
<whitequark> but I answered your question honestly :P
<rqou> i still think Guren > Glasgow :P
<q3k> whitequark: when it comes to squeezing the maximum out of a UP5K, I'm considering experimenting if it can keep up with GMII/GbE
<whitequark> rqou: what's going to happen first, Guren or me doing a Glasgow with USB3? :P
<rqou> wait what
<rqou> that's definitely entering the territory of "too much duplicate hardware"
<pie_> whats guren
<whitequark> q3k: FYI we'll likely migrate to HX8K
<q3k> whitequark: because speed?
<whitequark> q3k: I'm currently qualifying UP5K to determine whether you can do meaningful logic in it (a) at all (b) with DDR
<whitequark> *(b) without DDR
<rqou> pie_: i was unhappy with whitequark's hardware design so i wanted to make something better called guren
<awygle> my vote for next gen Glasgow would be on an Artix or ECP5 once those are RE'd, with GbE and optionally PoE
<whitequark> awygle: yep
<pie_> rqou, ah
<whitequark> on FPGAs
<q3k> whitequark: I was under the impression that the UP5K is no worse than the HX8K (bar for LUT count)?
<rqou> but the software will be unusable except by me, just like the Guren :P
<whitequark> q3k: the fabric is slow af
<awygle> rather than usb 3
<whitequark> q3k: it's something like two times slower than HX8K
<q3k> whitequark: and it's not a P&R issue?
<whitequark> no
<q3k> how quaint
<whitequark> you see it in the datasheet
<whitequark> yes
<awygle> what's the _actual_ difference between the HX's and the LP's? daveshah?
<rqou> the Guren unfortunately will not include a waifu :P
<whitequark> I cannot clear 48 MHz with a stupid I2C core
<q3k> awygle: gbe++
<pie_> rqou, aw.
<whitequark> so right now it runs with 30 MHz IFCLK
<awygle> errbody love ethernets
<whitequark> that's already not too great
<q3k> whitequark: that is stunningly craptacular
<q3k> whitequark: what I2C core are you using?
<whitequark> I wrote one lol
<whitequark> their hard IP is *even slower*
<awygle> i wonder if the hard IP on the LM is worth anythign
<daveshah> awygle: they are functionally identical, but the difference is too big to be just process
<whitequark> no
<daveshah> So I think it must be a different cell library
<whitequark> awygle: I'm not sure about USB3 vs GbE
<daveshah> Likely the same RTL, just one using high performance and one using low power cells
<whitequark> FX3 gives us 5 Gbps
<rqou> ok, i definitely need to do delayers+Dash etch
<whitequark> that's quite significant
<q3k> whitequark: 10GbE then? :D
<awygle> whitequark: 10GbE? :p
<pie_> ^^^
<awygle> q3k and i are in the drift today
<cr1901_modern> whitequark: 10GbE?
<whitequark> awygle: q3k: to use that with a laptop I'll need Thunderbolt
* q3k starts usb hater club with awygle and pie_
<whitequark> this would be really dumb
<awygle> 10GBASE-T
<awygle> falls back to 1GBASE-T, no problem
<whitequark> that's stupid
<pie_> USBASE-T
<whitequark> awygle: I am open to both USB3 *and* GbE
<rqou> gotta have the S.E.I.T.E.N. version :P
<pie_> rqou, o im sorry
<awygle> hm that's not totally unreasonable. three part numbers, one with USB3 loaded, one with GbE loaded, one with both loaded
<rqou> that's the one with the most clusterfuck software :P
<whitequark> sure
<awygle> (market segmentation)
<whitequark> just needs uhh
<whitequark> a bootloader on the FPGA, probably
<whitequark> and partial reconfiguration
<rqou> whitequark: so now you're half a step below low-end starshipraider
<awygle> needs lots of stuff
<rqou> why not just use starshipraider?
<q3k> also if ECP5, then ECP5-5G and PCIe
<q3k> #bikeshedding
<awygle> PCIe over TB
<awygle> laptops are back in the game
<whitequark> q3k: if there was a sane thunderbolt chip, maybe
<rqou> needs RE
<whitequark> there isnt
<rqou> seriously can someone RE TB pl0x?
<whitequark> q3k: whats the status of ECP5 RE anyway?
<q3k> whitequark: ask daveshah
<daveshah> So the bitstream format seems simple enough
<daveshah> We have plans for fuzzing
<daveshah> Hope to have the logic tile fuzzed in a couple of weeks
<rqou> prjtrellis is such gross code
<rqou> boost
<whitequark> who cares
<daveshah> What's wrong with boost
<q3k> rqou doesn't like it
<daveshah> It's going to be significantly nicer than icestorm
<q3k> doh
<awygle> boost is fine although it's a distressingly huge dependency. i'm curious what you're using that's not in C++17 tho
<rqou> I've always found it to be a giant mess of template garbage
* awygle goes to check
<q3k> rqou: that's all of C++
<daveshah> Boost::Python
<q3k> okay, boost::python is a dumpster fire tho
<daveshah> Means we avoid the whole parsing text file crap to pass stuff around in iceatorm
<whitequark> daveshah: interesting
<rqou> q3k: not clifford's c++
<daveshah> *icestorm
<whitequark> which PNR?
<daveshah> No idea
<q3k> probably vtr?
<whitequark> can arachne be hacked into supporting ECP5?
<daveshah> The plan will be to start with something custom, probably, based on arachne
<whitequark> ok
<daveshah> Arachne itself is no good
<awygle> you can reuse the SA engine in arachne without too much trouble i'd guess
<daveshah> This will hopefully be my masters project if my uni agrees
<awygle> but everything around it is not very extensible
<whitequark> this seems like it could deliver faster than series 7 RE
<daveshah> I think it might
<daveshah> But famous last words
<awygle> daveshah: have you heard of pybind11?
<rqou> am i just a weirdo who uses tech stacks nobody else does?
<awygle> rqou: yes.
<awygle> lol
<q3k> daveshah: btw, you should be getting your versa board once the workshop is over
* rqou goes to cry in the corner lol
<daveshah> q3k: awesome
* awygle has a versa board
<daveshah> I should already be able to do stuff like change LUT init bits
<awygle> i think i have a versa 5g board actually
<q3k> daveshah: haven't found the license voucher yet, will rummage through my drawer of purgatory when I'm back as well
<awygle> but i haven't activated my license because i don't have time to do real work yet
<whitequark> ok, who here has worked with fx2lp
<awygle> i also have a flea ohm with the 24 klut variant
<daveshah> OK, to get the tile grid all I need is a bitstream, not a license
<whitequark> I can't seem to get any OUT packets, well, out
<daveshah> And the non SERDES tile bits can be fuzzed with any part
<awygle> the versa is actually a pretty sweet dev platform
<awygle> for not that much money
<daveshah> Yeah it looks schlick
<q3k> daveshah: any bitstream for that ecp5 in particular?
<awygle> also the regulators on it are pretty :p
<daveshah> q3k: one for that ecp5 ideally
<daveshah> But AFAIK if i should be able to treat it as a 45 without the serdes
<daveshah> Which is not licensed
<daveshah> Will have to poke about a bit
<q3k> daveshah: no serdes used there though
<daveshah> q3k: no worries, I literally just need a valid bitstream to run through Lattice's dump tool which gets a tilegrid
<daveshah> Including frame and bit offsets and counts for all tiles
<daveshah> Then what happens inside the tiles is the same for all parts - except SERDES tiles of course
<daveshah> Fuzzing the SERDESs themselves is a way off though
<q3k> the serdeses on that thing are a beast
<daveshah> The problem is that most of those applications need a PnR with decent timing
<daveshah> And that could be a long way off
<daveshah> It would also be good to see if you can use the SERDES inside ecp5s sold without one
<q3k> heh
<daveshah> Although it may be out of spec or part damaged, could be a curiosity
<rqou> daveshah: no afaik
<awygle> they are the same part, just binned
<rqou> i saw a blog post where someone accidentally tried that
<awygle> but i think it's _actual_ binning, like the 3G ones won't work at 5G
<daveshah> rqou: there's an IDCODE check in the bitstream
<daveshah> And they do have different IDCODEs
<whitequark> could be efuses
<daveshah> Likewise a 12k and 25k are the same silicon, just with a different efuse
<daveshah> Exactly
<daveshah> The 12k in diamond is just a resource limit
<daveshah> Afaics
<awygle> are the 45 and the 85 the same silicon?
<daveshah> Nope
<daveshah> Different bitstream layout
<awygle> ah
<daveshah> And tile grid
<cr1901_modern> Is it possible to tell openfpga to use a different yosys than the one I have on my path?
<q3k> this is the first time I see a question about openfpga on this channel
<whitequark> hahaha
<pie_> wait....theres a program called openfpga?
<cr1901_modern> openfpga is a channel about anime
<whitequark> cr1901_modern: I think it's -DYOSYS
<awygle> oh actually i take back my earlier assertion. i don't know if the non-serdes parts are the same as the serdes parts, but i know the -5G parts are the same as the slower serdes parts
<cr1901_modern> thanks, there's a (set YOSYS) var in CMakeLists.txt, but I forget how to CMake
<daveshah> Yeah, I know the SERDES are the main cause of yield issues so that is why all fpga firms bin parts
<daveshah> Eg spartan-7
<daveshah> If people like pretty things, here is the LFE5U-25K tilegrid
<daveshah> Works better in Firefox than chrome for some silly css reason I need to fix
<awygle> aw i can't zoom out far enough to get the whole thing :(
<q3k> my firefox is enjoying this page
<q3k> and by that i mean it goes NOPE
<daveshah> Here's the 85k one: https://ds0.me/prjtrellis/tiles.LFE5U-85.html
<whitequark> works fine on chrome
<q3k> it just has to redraw when scrolling
<daveshah> On chrome the boxes aren't filled with colour, at least for me
<daveshah> Whereas they are on firefox
<awygle> it's definitely prettier on firefox for me
<awygle> and on neither browser can i zoom out far enough to get the "carpet view"
<awygle> (surprised there's a limit but it seems to be 30%)
<daveshah> The solution then might be the crosslink, an ecp5 derivative with only 6k LUTs: https://ds0.me/prjtrellis/tiles.LIF-MD6000.html
<whitequark> why is it so ... wide
<whitequark> hidamari sketch the fpga
<daveshah> whitequark: my guess is its something to do with how they stripped down the ecp5
<q3k> daveshah: if you change that min-height into height in td it'll work
<daveshah> q3k: thanks
<q3k> daveshah: height: 100% only works when you explicitely define the height of its' parent element, and apparently on min-height explicitely in firefox too
<daveshah> OK, I see
<daveshah> The joys of css and html
<q3k> although, wait
<q3k> that will break other shit
<q3k> ugh
<q3k> what code do you generate this with?
<q3k> i'll try to fix it properly
<daveshah> Basically
<rqou> i can get this to render on my screen :P
<rqou> 30% zoom + 4k screen :P
<daveshah> You will need the db to run it too:
<awygle> daveshah: have you tried your code on any of the Mach family?
<daveshah> awygle: very briefly
<rqou> why so much work on small-market-share devices? :P
<rqou> get 7-series to work :P :P
<daveshah> The tilegrid stuff breaks, because Lattice encode the tile position into the tile name
<awygle> bleh
<awygle> I bet it's very very similar tho
<daveshah> And the MachXO does it slightly differently for edge tiles
<daveshah> Yeah it just uses letters for the side
<awygle> There's a very clear progression
<whitequark> rqou: series 7 is complex as hell
<daveshah> I think the ECP5 is probably a more manageable "complete FPGA" target
<rqou> not azonenberg's idea of doing s3a?
<whitequark> lol 3a
<whitequark> that's EOL
<daveshah> Obselete crap
<rqou> is it EOL already?
<daveshah> Also the ECP5 are dirt cheap for what they are
<daveshah> The 12k is something like 5€ in single qty
<daveshah> For 25k LCs
<rqou> wait wat
<rqou> that's better than s6
<daveshah> Now you can see why I'm interested in them
<rqou> huh
<rqou> also, what's with that ballout?
<daveshah> Yeah there's no reason to use s6 instead of ecp
<rqou> missing some balls in the middle there
<daveshah> Unless you really need qfp
<awygle> yeah the cost is critical for me
<rqou> awygle what are you building?
<awygle> they're the cheapest option in any market they compete in, by far
<awygle> rqou: among other things, they feature prominently here: https://www.awygle.com/blog/2018/2/18/exploring-the-design-space-of-open-source-nics
<daveshah> Yeah, if you are ok with 40nm and the corresponding timing penalty they are crazy good value
<rqou> i mean, ice40 is also 40nm
<rqou> it's even in the name :P
<daveshah> Yeah, the other end of the 40nm timing spectra though
<rqou> although afaik ice40 is a little bit slower than expected for a 40nm part?
<whitequark> wtf ECP5 is amazing
<daveshah> The ecp5 is an amazing part let down by marketing and tools
<daveshah> If Lattice were better known, the Artix 7 would have serious competition from it
<awygle> well, we can fix half of that
<awygle> lol
<rqou> i thought lattice _was_ decently known?
<awygle> lattice is pretty well known for smaller stuff
<rqou> my father back in the day said "oh yeah, lattice parts used to suck a lot"
<awygle> the ECP5s are their first attempt to play in the big kids pool, is kind of my impression
<balrog> I hear tons of complaints about diamond
<daveshah> Yeah but they don't give loads of free shit to unis or have loads of ip
<daveshah> Diamond is crao
<daveshah> *crap
<rqou> apparently they had a CPLD family back in the 90s that had a complicated AF timing model
<q3k> still better than ISE
<awygle> yeah i do too, but diamond is not any worse than vivado or quartus for my money
<balrog> also, ECP5, almost read EP5C
<q3k> rqou: who, lattice? they still do CPLD
<daveshah> Diamond and ISE are identical under the hood
<rqou> and back then my father was one of those "yes, i do timing analysis with fingers and worksheets" people
<daveshah> Both neocad
<rqou> and so he hated the complicated AF timing model
<awygle> diamond makes more sense to me than any other package tbh, it's nice and simple. i just wish it wasn't so buggy
<q3k> daveshah: I was talking about the *AHEM*, user experience of the tool
<rqou> of course, this is ~3 decades ago and lattice is much better now
<q3k> daveshah: diamond's actual synthesis and p&r are so much worse than the shit in ise
<awygle> in particular their version of chipscope is _garbage_
<daveshah> the synthesis is crap in particular too
<awygle> well, LSE yes
<awygle> don't use it :p
<daveshah> Even Synplify is surprisingly mediocre
<daveshah> Wouldn't say its better than Vivado for example
<daveshah> Certainly based on my testing
<rqou> i mean, yosys is also pretty mediocre in different ways :P
<awygle> neither would i
<awygle> but i don't think it's tremendously worse
<awygle> (although i bet it's slower lol)
<rqou> e.g. "why did it silently accept my totally bogus code and give me garbage?"
<rqou> actually, afaik this is my only real complaint about yosys
<daveshah> error checking is a big problem in yosys
<q3k> daveshah: this was actually enough https://github.com/SymbiFlow/prjtrellis/pull/7
<whitequark> lol indeed
<whitequark> I'm going to improve yosys on that front
<awygle> it's specifically documented at least lol
<whitequark> it's a prerequisite for wider use of glasgow
<awygle> "feed this good code or bad things will happen"
<daveshah> q3k: thanks
<rqou> yeah, iirc when i asked clifford about this he said "well, if you give it bogus inputs, it gives you bogus outputs"
<whitequark> well it shouldn't
<q3k> daveshah: oh, you want a *~*signoff*~*
<rqou> a lot more effort has been spent on making correct inputs give correct outputs
<daveshah> Yeah, mithro set that up
Bike has quit [Ping timeout: 260 seconds]
<q3k> there, have a forcepush
<awygle> a DCO?
<rqou> yeah, apparently mithro likes bureaucracy
<daveshah> rqou: I think the official advice is to use verilators lint option
<daveshah> awygle: Yep
<awygle> bleh
<rqou> daveshah: that must be new advice, iirc a few years ago the advice was "¯\_(ツ)_/¯"
<q3k> i'm fairly sure any lawyer would laugh at the idea of signoffs meaning anything
<daveshah> q3k: merged
<cr1901_modern> How difficult is it to make flex/bison parser not give shitty diagnostics?
<rqou> lol
<rqou> very?
<whitequark> that's not about the parser
<whitequark> verilog syntax is super easy to check compared to semantics
<rqou> yeah that too
<whitequark> i dont care about verilog i use migen lol
<q3k> daveshah: now that I actually have the code checked out I'll maybe do something useful with it :P
<daveshah> q3k: have fun :D
<daveshah> Let me know if stuff doesn't work
<awygle> whitequark: are you happy with migen?
<q3k> whitequark: there was this one case when I get migen (or was it LiteX?) to generate verilog that was actually buggy
<rqou> well, she works for m-labs, so... :P
<q3k> whitequark: it was also GIGO
<whitequark> awygle: it does the job a great deal better than verilog
<whitequark> rqou: i dislike plenty of things m-labs does
<q3k> whitequark: but my error did get through to generated verilog
<whitequark> q3k: yes
<whitequark> migen doesn't do a lot of checking
<q3k> should it?
<rqou> whitequark: do you argue with sb0 about stuff often?
<q3k> I think I'd like it to
<q3k> having a migen liner would be kinda cool
<whitequark> q3k: it would not be bad if it did but i feel like improving yosys would have a higher total payoff
<q3k> *linter
<whitequark> so e.g. i want to fix multiple drivers check in yosys rather than add one in migen
<whitequark> of course we could have both
<whitequark> rqou: sometimes
<q3k> right, but then you have to find where that bug is in your python code
<rqou> wait yosys does have a multiple drivers check?
<rqou> i think?
<awygle> i am not a big migen fan, but i don't think i'll ever really be happy with "embedded HDL inside of $language"
<rqou> i've seen it blow up occasionally
<whitequark> rqou: it's buggy af
<whitequark> see issues
<whitequark> awygle: i don't think i'll ever be happy with dedicated HDLs
<rqou> how does this have bugs? seems like a straightforward pass?
<awygle> lol fair enough i suppose
<rqou> oh, it's about tristates isn't it?
<whitequark> rqou: lololol
<awygle> why, metaprogramming?
<whitequark> awygle: yes
<daveshah> I am supposed to be writing a test bench for yosys that will hopefully help with some of these things (more on the formal side)
<whitequark> e.g. glasgow could never be doable with a dedicated HDL
<daveshah> And help with larger changes in the future
<whitequark> neither could be misoc
<daveshah> But right now my work time is used up with non fpga stuff
<q3k> daveshah: hear, hear
<awygle> i'd rather have an HDL with some actual thought put into metaprogramming
<rqou> whitequark: just be like every asic company i've ever seen and wrap perl/tcl around your HDL :P
<q3k> awygle: systemverilog? :^)
<whitequark> rqou: burn
<awygle> q3k: i'd love to use SV and see if it's what i've dreamed of lol
<awygle> somebody get it working in Yosys
<awygle> or hell, even Vivado from what i've heard
<whitequark> awygle: SV fixes pretty much everything that Migen fixes that was just verilog brokenness
<q3k> awygle: it alrady works in yousys via verific
<q3k> awygle: just gotta pay for that license
<whitequark> like, have you seen my post about migen?
* awygle stares
<awygle> whitequark: yeah i've seen it
<whitequark> so every single verilog issue there is fixed in SV
<whitequark> of course, you still don't get metaprogramming
<rqou> huh the bug is about tristates
<rqou> yeah that sounds harder :P
<daveshah> Tri-states are nasty
<whitequark> rqou: it's a very straightforward multiple driver bug
hl has joined ##openfpga
<whitequark> it is not inherently related to inout
<whitequark> it doesn't even HAVE a tristate in it
<rqou> yeah hmm
<rqou> idk what yosys is doing there
<rqou> i never touch this part of the code
<q3k> rqou | whitequark: just be like every asic company i've ever seen and wrap perl/tcl around your HDL :P
<q3k> here's my favourite from a lattice example design:
<q3k> always @(X) begin // add code from "PRBS_Calculator.xls" here...
<whitequark> hahaha
<rqou> lolol
<rqou> seen it
<pie_> make it stop
bitd has quit [Quit: Leaving]
<awygle> there's only two or three of these issues with verilog that i actually find troubling
<daveshah> I've wanted to make an excel hls as an April fools joke
<rqou> (i did not write this)
<q3k> what the actual fuck
<daveshah> I know lattice has at least one other tool that is excel based
<daveshah> For generating register maps iirc
<rqou> blame jeff dione
<rqou> *dionne
<whitequark> so I've been told that every major CPU vendor has their instruction decoders done in Excel
<whitequark> by various people
<rqou> this isn't excel
<rqou> it's openoffice :P
<q3k> so now, you just need to get them cloud ready
<whitequark> same difference
<q3k> move the spreadsheets to google drive
<q3k> then use migen to pull from there and generate rtl
<pie_> stop
<q3k> integrate with CI
<q3k> ????
<pie_> stop
<q3k> ENTERPRISE
<rqou> lolol
<rqou> where's the perl? :P
<pie_> rqou, what do you mean perl
<pie_> excel is going to have javascript
<daveshah> Can be used to accelerate BLOCKCHAIN
<rqou> every hdl flow has to have perl/tcl in it somewhere :P
<daveshah> 100mn of VC cash appears
<pie_> VV C
<daveshah> Everyone loves tcl
<daveshah> Although I fear lattice are modernising away from tcl
<daveshah> Their latest IP generators in Radiant are wait for it
<daveshah> Python based
<daveshah> Although the user console is still TCL
<openfpga-github> [Glasgow] awygle commented on issue #38: Mmm... maybe. The problem with the 0.5mm pitch is, you can't get vias *or* traces between balls on 6/6 trace/space specs. I'll investigate this at the same time as doing the HX routing - 0.8mm parts have similar-but-not-the-same problems, so seeing what we *need* to do will help us figure out what it'll cost us to do the optional stuff. https://github.com/whiteq
<q3k> - what automation do you have here? - oh, we got both kinds: tcl AND python!
<rqou> and .bat? :P
<q3k> it's incredible that tcl gained such traction just because it doesn't require parentheses for function calls
<whitequark> lol
<daveshah> q3k: I suppose it means they can provide a conventional shell type environment with TCL
GenTooMan has joined ##openfpga
<rqou> offtopic: someone really needs to get @nanographs some turbopumps
<rqou> how many weeks has he spent scrubbing diff pumps at this point?
<Ultrasauce> those can shit the bed in a loss of vacuum even too cant they?
<Ultrasauce> event*
<whitequark> no
<whitequark> not good ones :P
<pie_> define shit in the bed
<whitequark> you have reduced bearing life
<whitequark> but they dont crash unless theyre shit
<rqou> where do the stories of aglient exploding turbo pumps come from?
<pie_> i was taught turbos fail catastrophically?
<whitequark> if it does crash it's spectacular
<whitequark> but just losing vacuum doesnt cause it to crash
<whitequark> again, not on good ones
<pie_> huh.
<whitequark> if you drop something into the rotor then yeah
<whitequark> or if the bearing cracks
<pie_> guss i should tell my teacher the world may have progressed
<whitequark> yep
<balrog> while with a diffusion pump you can't lose vacuum?
<whitequark> and these are early 90s pumps
<whitequark> balrog: with most oils
<pie_> sure you can but worst case you burn the oil
<whitequark> there are oils that dont burn in air
<whitequark> but theyre very expensive
<pie_> um
<pie_> crack the oil. whatsitcalled
<whitequark> it carbonizes.
<pie_> but exploding turbos? :( wall thickness not enough to catch any flying blades?
<whitequark> it generally is
<whitequark> I have not seen any turbos with blades penetrating the case
<pie_> then again i suppose catastrophic vacuum loss probably has a punch, but i mean, one does not simply put a big hole in a vacuum system so ???
<whitequark> however, the conservation of angular momentum means that the turbo gets off its mount and wrecks EVERYTHING in vicinity
<whitequark> unless its mounted really well
<pie_> hm i guess you have a point
<whitequark> you have to bolt it the hell down
<pie_> note to self, mount things well
<pie_> hoe much mass does a turbo fan have
<whitequark> not that much
<whitequark> but it spins at 50-100krpm
<rqou> you mean don't operate a turbo standalone on a desk? :P
<whitequark> rqou: well i did that
<rqou> there's a youtube video of someone doing that for testing
<zkms> do they do blade-off testing on those thingies
<pie_> poke it with a stick \o/
<rqou> but they only spun it up to a very small percentage of max speed before shutting it off
<whitequark> pie_: give me like $1k and sure
<pie_> what turbos only cost 1k?
<whitequark> well no
<awygle> the turbos in some engine dad worked on ran for like 5m and had a service life of 15m.
<whitequark> mine cost all under $500
<whitequark> but thats because im good at ebay
<awygle> Or something like that. But I guess if it only runs once and then crashes into the Atlantic...
<rqou> how do you have so much money to chance on ebay?
<pie_> shes an E N G I N E E R
<pie_> with a J O B
<q3k> what's a job
<rqou> and unlike azonenberg without a spouse and house? :P
<pie_> q3k, a what?
<q3k> a JERB
<whitequark> rqou: its not that much money
bitd has joined ##openfpga
<pie_> ^
<pie_> see
<whitequark> i spent more on a scope i think
<pie_> xD ;p
<whitequark> than on two of my turbos
<rqou> what if you end up with duds?
<whitequark> such is life?
<whitequark> but they all spun
<Ultrasauce> ebay is reasonably ok at consumer protection also
<whitequark> and this is edwards
<pie_> dank spins
<whitequark> Ultrasauce: no the turbos are all sold as is
<rqou> is edwards particularly better?
<whitequark> rqou: you can disassemble any edwards turbo with regular tools
<whitequark> and they do not have a sealed bearing
<rqou> that's not what the manual says
<whitequark> so, you can clean it and give it an oil change with just a pair of hex wrenches
<whitequark> i don't give a fuck what manual says
<rqou> lol ok
<rqou> what about other vendors?
<whitequark> i dont remember offhand which ones suck the most
<whitequark> but edwards is definitely the most serviceable
<rqou> you mean, don't suck? :P
<zkms> "oil change with just a pair of hex wrenches" god that's probably the easiest oil change on any sort of mechanical device i know of
xdeller__ has quit [Remote host closed the connection]
<rqou> whitequark: so the edwards pumps on ebay that say "bad, doesn't spin freely"... what's wrong with them usually?
<whitequark> they crashed
xdeller__ has joined ##openfpga
<rqou> so are they salvagable?
<whitequark> if you're lucky, the blades are fine and the bearing just welded itself shut
<q3k> zkms: my favourite was a manual for a typewriter on oiling it: first, you put the entire thing in a bath of solvent, then you put the entire thing in a path of oil
<q3k> s,typewriter,teletype,
<whitequark> if you're not, you need to reassemble the rotro
<whitequark> *rotor
<whitequark> for that, you need a balancing stand
<whitequark> on edwards you can actually remove the stator blades without disassembling the rotor
<pie_> so how did you get all this xp with pumps anyway
<whitequark> i did that when cleaning it
<whitequark> rqou: generally if a pump doesnt spin freely
<whitequark> its for parts
<rqou> and the ones that say "lol, lab surplus idk if works"?
<whitequark> you could possibly get a bearing out of it or something
<whitequark> lab surplus is usually ok but you should just demand them to say if it spins
<whitequark> if it spins and it's edwards chances are it will function to some degre
<whitequark> *degree
<rqou> how do labs manage to regularly crash these expensive devices?
<whitequark> like the only two things that could happen at that point are
<whitequark> a) it has a leak
<whitequark> b) the motor is burned out
<whitequark> (b) is very rare.
<whitequark> leaks can be found and plugged.
<whitequark> rqou: bearings have a finite life
<whitequark> there is no real indication of how good the bearing feels
<whitequark> it's ceramic
<rqou> can you actually get replacement bearings? the manuals say to send it back to the factory
<whitequark> once it cracks, tell the pump goodbye
<whitequark> sure
<whitequark> you get another pump
<whitequark> from ebay
<whitequark> then replace the bearing
<rqou> lol
<rqou> but there's no way to get a new bearing?
<whitequark> on edwards, again, you can replace the bearing with just common hand tools
<zkms> wait i thought they used magnetic bearings
<q3k> whitequark: are they that specialized/expensive?
<sorear> Somehow I got the idea most turbos were magnetic
<whitequark> zkms: edwards has a bottom ceramic bearing and a top magnetic bearing
<zkms> ah
<whitequark> you cannot use two passive magnetic bearings because of the hairy ball theorem
<whitequark> and active maglev bearings are complex and annoying
<zkms> what about active magnetic bearings
<whitequark> i do not want to use a turbo with active maglev bearings
<q3k> heh
<whitequark> too fragile
<rqou> fragile?
<whitequark> q3k: the bearings are custom designed for every pump model
<whitequark> rqou: power cut = crash
<q3k> whitequark: makes sense.
<rqou> hmm
<whitequark> or rather, it's not *definitely* going to crash, some of them may salvage the rotational energy of the rotor to power the bearing
<pie_> i need to rememebr to put a UPS on my $expensive $vacuum $system
<whitequark> but I sure as hell wouldn't rely on that
<zkms> i know some chillers do exactly that
<whitequark> chillers?
<whitequark> zkms: edwards also has a top safety bearing
<whitequark> that it parks the rotor on when it's not spinning
<zkms> the HVAC compressor thingies that generate chilled water
<whitequark> oh and everything I said applies to EXT series
<rqou> ugh my throat is still super f*cking painful
<zkms> these things
<whitequark> edwards has a newer series that might use active bearings
<balrog> how complex is a balancing stand?
<rqou> whitequark: is there a "secret real" dosing limit to NSAIDs, or is it just the limit printed on the bottle?
<whitequark> zkms: why do these have rotors with any significant rotational energy stored
<whitequark> rqou: which NSAID exactly
<rqou> ibuprofen
<whitequark> rqou: what is the stated limit
<zkms> centrifugal chillers do
<whitequark> balrog: extremely complex afaik
<rqou> the bottle states 200mg every 4-6 hours
<whitequark> no one has ever made a "DIY" one
<pie_> today rqou develops an ibuprofen addiction
<whitequark> rqou: you're taking ibuprofen for a sore throat?
<rqou> definitely infected
<q3k> aspirin the fucker
<whitequark> what
<rqou> well, it's very red
<whitequark> there's antiseptic plus local anesthetic combos
<whitequark> use those
<rqou> hmm, OTC?
<whitequark> dunno, they are in RU
<rqou> and yes, i can go see the doctor, but finals
<whitequark> no idea what the trade name is
<rqou> i thought it would have gone away by now
<pie_> rqou, spare an hour and dont die during finals?
<rqou> well, today is the last final
<pie_> ah
<pie_> lucky :P
Bike has joined ##openfpga
<whitequark> zkms: wtf nice
<pie_> im probably going to lose another year soon
* pie_ gets back to work
<whitequark> awygle: oh if we can't get traces between balls then BGA FX2LP is probably out
<rqou> ok, internet says i can get anesthetic lozenges but idk if antiseptics are OTC
<rqou> also, i really should keep a better stock of medications on hand
<zkms> whitequark: it's pretty neat! you also end up not needing oil alongside the refrigerant :)
<rqou> apparently throats are a pain to clear up
<rqou> thanks human bodies
<pie_> alcohol is an antiseptic
<rqou> lol
<rqou> you do that _after_ exams
<whitequark> fucking fx2lp why doesn't it accept my packets
<whitequark> aaargh
<rqou> whitequark: i'm now curious what medications you regularly keep around
<rqou> i think i asked azonenberg but unfortunately forgot to write down his answer
<whitequark> rqou: estradiol, leuprorelin, paracetamol
<whitequark> uhhh nimesulide
<whitequark> that's about it
<whitequark> i don't really get sick a lot
<rqou> i don't either
<whitequark> oh and valproic acid
<whitequark> of course, none of this helps you :P
<rqou> yeah i think azonenberg is better at emergency prep lol
<whitequark> used to have clomipramine/imipramine but they kind of diminished in usefulness
<whitequark> i don't do emergency prep at all
<whitequark> if i cant get basic medications i have far bigger issues already
<rqou> why do you use nimesulide instead of ibuprofen like a "normal person"? :P
<whitequark> because it works better
<rqou> huh rapid onset
<rqou> but i can't even get that here
<whitequark> yes
<whitequark> FDA banned it iirc because of an extremely minor agranulocytosis risk
<whitequark> what's good is nimesulide can also be used by people allergic to aspirin and paracetamol
<rqou> huh
<awygle> rqou: are you actually taking 200mg ibuprofen at a time?
<rqou> awygle: what do you mean?
<awygle> Doctors always tell me to take 600mg at a minimum
<whitequark> yeah 200mg of ibuprofen isn't a lot
<awygle> I didn't know anybody actually followed the dosing guideline on the bottle lol
<rqou> no, i'm actually taking 200mg and it seems to make my throat not super painfully inflamed
<rqou> wait a sec
<awygle> that's cool. Ibuprofen might as well be sugar pills for me, except for tooth pain
<whitequark> fun fact
<rqou> if normal people don't follow dosing guidelines, and acetaminophen dosing guidelines are already ridiculously high...
<rqou> how do more people not die?
<whitequark> if you ever overdose on paracetamol, you can "not die" if you take a shitload of acetylcysteine
<awygle> acetaminophen I don't fuck around with nearly as much
<whitequark> it regenerates the antioxidant that liver uses to neutralize the toxic paracetamol degradation products
<whitequark> you have something like 10 hours to take it
<rqou> huh that's neat
<whitequark> although it is not completely clear if you should take it as soon as possible OR in about eight hours after
<rqou> i guess i'll keep that in mind for... idk when i would ever need that
<whitequark> since acetylcysteine isn't very toxic you might just do both
<rqou> i guess people can keep this around for anti-suicide?
<whitequark> um.
<whitequark> suicide by paracetamol is the single worst way to kill yourself i can possibly imagine.
<rqou> yeah i know
<whitequark> not only you will not die but you will suffer horribly for the next several decades
<rqou> but occasionally there are news articles about teens doing it
<whitequark> (or you will die after suffering horribly for several weeks)
<whitequark> what you should keep this in mind for is people overdosing on opioid plus paracetamol combos
<whitequark> thanks republicans
<rqou> right
bitd has quit [Quit: Leaving]
<rqou> btw whitequark do you agree with my earlier joke of "FDA dodged the thalidomide bullet and has been slowing down progress since then"?
<whitequark> I am not familiar enough with policy to answer
<rqou> ah ok
<rqou> neither am i
<whitequark> FDA certainly gets a lot of criticism
<whitequark> but a lot of it is bullshit
<Bike> sometimes i hear stories like https://www.statnews.com/pharmalot/2016/10/07/drug-employees-barricade-fda/ and i'm like, what are the manufacturers doing...
<whitequark> wtf
<pie_> rqou, has https://twitter.com/nanographs scanned his apparently god tier service manuals?
<Bike> obviously that's rare, but you know, sometimes it's nice having The Man slow things down
<zkms> whitequark managed to distract me into reading about magnetic bearings
<zkms> apparently some are ITAR controlled
<awygle> magnetic bearings are whack, they're so cool
<rqou> wtf ITAR
<zkms> apparently some people like to use them to spin uranium compounds around very fast
<rqou> ah
<rqou> inb4 "if everything is itar controlled, then nothing is itar controlled" :P
<rqou> or maybe everybody just gets v&
<Bike> https://www.law.cornell.edu/cfr/text/10/appendix-B_to_part_110 i'm not sure if this is describing what parts of a centrifuge are controlled, or just how to build a centrifuge
<azonenberg_work> whitequark, rqou: lol well as a volunteer responder i kinda have to be more prepared
<Bike> export control list doubles as a parts list, very convenient.
<zkms> fun list of wholesome electromechanical projects
<rqou> azonenberg_work: do you keep throat lozenges around?
<whitequark> amazing
<azonenberg_work> rqou: no
<rqou> well, that doesn't exactly help me right now :P
<azonenberg_work> I generally focus on things that can lead to loss of life/limb
<rqou> i guess i'll go to the drugstore and poke around
<rqou> also, i'm actually going to go see the doctor tomorrow
<rqou> hopefully without ending up with a "eh, just sleep it off"
<pie_> protect rqou from temporary insanity
<pie_> and its consequences
<azonenberg_work> rqou: The oral meds I stock are 200mg ibuprofen, 500mg acetaminophen, 325 mg aspirin, 25 mg diphenhydramine, 25 mg meclizine, and 2 mg lopimeride
<reportingsjr> huh, that seems very similar to my medicine cabinet
<rqou> my medicine cabinet mostly contains bandaids :P
<reportingsjr> minus the meclizine and add melatonin
<rqou> i don't even have the "actually an antibiotic, unlike neosporin" thing that azonenberg_work told me to get
<azonenberg_work> rqou: Then benzalkonium chloride 0.13% and lidocaine 2% topical
<azonenberg_work> BZK is *not* an antibiotic
<azonenberg_work> its an antiseptic
<reportingsjr> I use bactine
<reportingsjr> which is.. benzalkonium chloride and lidocaine
<azonenberg_work> reportingsjr: thats either BZK or a very similar quaternary ammonium compound like benzethonium chloride
<reportingsjr> haha
<azonenberg_work> Yep
<rqou> i assume you don't keep lidocaine in a ziplog baggie like nilered? :P
<azonenberg_work> rqou: no its 2% lidocaine in ethanol topical wipes
<azonenberg_work> For pain relief of bee stings etc
<rqou> btw you have seen that video right?
<reportingsjr> I mentioned to an ER doctor that I use bactine and she kinda stopped and went, "Huh, that's oldschool"
<azonenberg_work> Yes
<azonenberg_work> The main skin antiseptics i know of are IPA and ethanol (useful for injection prep but not for broken skin)
<rqou> where nilered extracted lidocaine from "brand-new, never-before-used" personal lubricant :P
<reportingsjr> IPA isn't a great antiseptic
<whitequark> ^
<whitequark> it's quite amusing actually
<azonenberg_work> Chlorhexidine (common, but can cause issues if used near the ear)
<reportingsjr> azonenberg_work: How about Iodine..
<whitequark> you have to dilute it with water for it to start working better
<azonenberg_work> Povidone iodine (causes issues with people who have shellfish allergies, and stains things)
<reportingsjr> that is a good antiseptic and fairly common
<whitequark> i.e. absolute IPA is a worse antiseptic than 70% IPA
<azonenberg_work> and BZK
* genii just liberally applies iodine everywhere
<azonenberg_work> Which is used in a very low concentration, doesnt stain things, there's no known allergies/sensitivities to it (or if they are its super rare)
<whitequark> BZK is great
<azonenberg_work> It's left behind to provide some residual germicidal effects, unlike alcohols which evaporate and dont do anything after
<azonenberg_work> So it's my first line antiseptic for treating minor abrasions, cuts, etc
<rqou> btw is 2% lidocaine legal everywhere? (including some more-insane-than-the-US countries?)
<azonenberg_work> Dont know, never tried
<azonenberg_work> You can actually get 20% lidocaine OTC
<azonenberg_work> in a gel meant for teething pain relief
<rqou> wait you can?
<pie_> if im ever in trouble i want azonenberg_work to save me
<reportingsjr> 20%?? for /what/?
<azonenberg_work> sorry
<rqou> how come nilered had to use personal lubricant?
<reportingsjr> self leg amputations?!
<azonenberg_work> not lidocaine, benzocaine
<reportingsjr> that makes more sense
<azonenberg_work> That stuff is strong, my dentist uses it before giving injections and the whole area gets pretty numb
<reportingsjr> I had to get some stitches in my hand last summer and they injected 10% lidocaine
<azonenberg_work> its by far the most powerful topical anesthetic i am aware of
<azonenberg_work> OTC that is
<azonenberg_work> But i dont keep it on hand
<sorear> azonenberg_work: typo for loperamide?
<azonenberg_work> sorear: oops
<reportingsjr> sorear: yes
<azonenberg_work> anyway, BZK wipes are great for minor stuff but for a deeper or larger wound i prefer using normal saline under pressure
<sorear> Edit distance of INNs is way too low anyway
<azonenberg_work> For home / first aid station use i use spray cans of sterile 0.9% saline, you can get ones that squirt out in a pretty strong jet (not a mist)
<azonenberg_work> For field use when i care more about weight and volume, i use a dental irrigation syringe plus a 100cc plastic jar of normal saline
<azonenberg_work> and draw it up into the syringe by hand
<zkms> nice
<rqou> wait i just saw this:
<rqou> whitequark: "In the United States more than 100,000 cases [of paracetamol poisoning] occur a year."
<rqou> that is such a depressing number
<rqou> wtf are we doing?
<q3k> how many of those are suicide attempts?
<rqou> idk
<whitequark> near zero
<zkms> "lack of access to proper pain medication causes people to seek out riskier alternatives" is a hypothesis
<awygle> i do not tolerate lidocaine well
<awygle> i had my dentist switch to carbocaine(?)
<balrog> that sounds like a trade name for Mepivacaine
<rqou> so i just went to the drugstore, and why does the "homeopathic" loophole still exist?
<rqou> has our health system always been this fucked?
<Bike> loophole?
<rqou> they can be sold OTC with substantially less testing
<Bike> isn't that because it's a "supplement" or something
<Bike> rather than because it's homeopathic
<rqou> no, it's because they _know_ it doesn't actually contain much active ingredient
<Bike> also no, you used to be able to buy radioactivating water tanks.
<Bike> that doesn't seem like a loophole. just like... an expression of basic understanding of physics
<Bike> that homeopathy doesn't have
<rqou> i guess
<mithro> rqou: I follow legal best practices... hence the DCO
<rqou> i've never heard of anybody really worrying about that
<mithro> q3k: Actually legal advice is that DCO is actually the next best thing after a proper CA
<mithro> And CA's are a *pain in the arse* so...
<q3k> you live under a weird legislature
<mithro> q3k: Engineers think they understand law but they are *super* bad at it
<whitequark> politicians think they understand engineering but they are *super* bad at it
<rqou> i disagree
<whitequark> (these two aren't mutually exclusive)
<rqou> (with mithro, mostly agree with whitequark)
<Bike> do you think you understand law?
<q3k> mithro: the thing is that I can pass -s to my git command without ever reading the dco or acknowledging it
<rqou> i think i have a general understanding of US law
<rqou> i certainly am not a lawyer or anything though
<q3k> mithro: if this was a check for a commit line saying 'i acknowledge the dco <insert link here>' then absolutely