X-Scale has quit [Ping timeout: 265 seconds]
X-Scale has joined ##openfpga
pie__ has quit [Ping timeout: 264 seconds]
<whitequark> awygle: hmm, you didn't do the via tenting thing for the MSOP?
<awygle> whitequark: I did not. I could, if you like, although it wasn't recommended in the datasheet iirc
<awygle> (this is why putting this kind of thing in the footprint is sort of obnoxious)
<whitequark> ahhh okay
<whitequark> then don't I guess
<openfpga-github> [Glasgow-JTAG] whitequark pushed 2 new commits to master: https://github.com/whitequark/Glasgow-JTAG/compare/42634b8bf3a3...721374b1cebc
<openfpga-github> Glasgow-JTAG/master 721374b whitequark: Connect INT0 to FLAGD to get an interrupt triggered by FPGA.
<openfpga-github> Glasgow-JTAG/master 75b5840 whitequark: Add stencil alignment holes, fix attribution.
<whitequark> azonenberg: on my next board I should put a few of Mouser 897-LZ440G1080000
<whitequark> as indicator LEDs
noobineer has quit [Remote host closed the connection]
<whitequark> awygle: poke
<whitequark> awygle: wtf
<whitequark> the DAC has SDA/SCL on the left, the ADC on the right
<awygle> you mean on the symbol?
<whitequark> yeah
<awygle> that was requested by the maintainer
<awygle> in the case of the adc at least
<awygle> I can swap the dac if you think that would be better
<awygle> I originally had them both on the left
<whitequark> yeah, I think consistency here would be nice
<awygle> I think the idea was inputs on the left outputs in the right
noobineer has joined ##openfpga
<whitequark> oh ffs
noobineer has quit [Max SendQ exceeded]
<whitequark> why do the ADC addresses clash with EEPROM address space
<rqou> lol
<whitequark> I hate I2C
<rqou> lolol
<awygle> whitequark: you want ADR0 on the right too?
<whitequark> no that's an input
<whitequark> and it's on the left on the ADC
<awygle> k
<openfpga-github> [Glasgow-JTAG] awygle pushed 1 new commit to master: https://github.com/whitequark/Glasgow-JTAG/commit/f757eb9798c0d387d4e611f2fb5366416e9079cb
<openfpga-github> Glasgow-JTAG/master f757eb9 Andrew Wygle: Swapped VOUT and I2C pins on DAC symbol.
<whitequark> thanks!
<awygle> np :)
noobineer has joined ##openfpga
<whitequark> awygle: do we *need* those 4.7u decoupling caps for all three of ADC, DAC and level shifter?
<whitequark> there's way more board space taken up by decoupling than ICs lol
<awygle> lol
<rqou> also, inrush current lol?
<whitequark> yes.
<awygle> probably not tbh
<awygle> are those from the datasheet or from azonenberg?
<whitequark> azonenberg:
<whitequark> well
<whitequark> the datasheets list them too
<awygle> the adc wants 4.7 and the dac actually wants 10 uF lol
<whitequark> we operate the DAC at like 1 millihertz
<whitequark> I'm pretty sure 10uF is way excessive
<awygle> yeah agreed
<whitequark> meh I'll put one 4.7u for both analog parts and one for the level shifter
<awygle> sgtm
<whitequark> awygle: so the question I originally wanted to ask
<whitequark> how the heck do I control an ldo with this DAC?
<whitequark> it
<whitequark> *it's not a digipot
<awygle> basically you drive the DAC into the feedback node through a resistor
<whitequark> but the feedback node needs to have, well, feedback
<awygle> yes, you leave that too
<awygle> i linked a reference like two weeks ago, let me pull it up again...
<awygle> https://www.maximintegrated.com/en/app-notes/index.mvp/id/818 here you are (ignore the maxim-ness)
<whitequark> lol maxim-ness
<awygle> maximosity?
<whitequark> hm, how do I do the divider on ADC
<whitequark> dividing by half means 20 mV step at 8 bit (alert doesn't work at 12 bit anyway, and also we don't get that resolution because of impedance issues)
<awygle> Vtg->R1->R2(shunt)->cap
<awygle> oh
<whitequark> no, I understand that, heh
<awygle> lol
<whitequark> wait
<whitequark> isn't it Vtg->R1->R2(->cap)->gnd ?
<whitequark> errr
noobineer has quit [Remote host closed the connection]
<whitequark> Vtg->R1(->cap)->R2->gnd ?
<awygle> i think we're saying the same thing
<whitequark> we need to use SMILES :P
<awygle> R1 between Vtg and the node, R2 between the node and ground, the cap between the node and ground
<whitequark> *nod*
<awygle> as for the values
<awygle> "ideal" would be 5V divides to 3V3 i guess
<awygle> gives max resolution
<awygle> but 20 mV is easy to do math :p
<whitequark> yes
<whitequark> we don't *need* max resolution
<awygle> agreed
<awygle> as long as we're within 150 mV or so
<whitequark> also, this means slight overvoltage is ok
<awygle> yup
<whitequark> because 5V5 is also legal for the level switcher
<awygle> yeah i guess 5V5->3V3 is really optimal
<whitequark> not sure who would want to run their circuits at 5V5 but okay
<awygle> it's 5V + 10% is all
<awygle> tolerance
<whitequark> that's 12.8mV
<whitequark> also two more easy to fuck up resistors
<awygle> tru
<awygle> 20 mV is cool
<whitequark> wtf who made the TPS736 symbol
<whitequark> it's not even grid-aligned
<whitequark> awygle: the LDO is "cap-free"
<whitequark> on the output, there will be two caps very close for bypassing the VCCB of the FXMA
<whitequark> on the input, do we place anything?
<whitequark> I'm thinking one 4u7 anyway
<awygle> whitequark: you don't technically need to but i would anyway
* awygle always picks those cap-free regulators and then chickens out
<whitequark> lol
<whitequark> so that's 9 capacitors per analog frontend
<awygle> these regs are just magic
<awygle> 30 mV dropout? get the heck outta town
<whitequark> lol
<whitequark> awygle: can you please do the math for the DAC too?
<awygle> sure
* whitequark skimps shamelessly
<awygle> what are you using for the divider?
<awygle> err wait
<awygle> never mind
<awygle> hm i wonder if we could have replaced the DAC with an op amp run off of Vtg...
* awygle files that away for another day
<whitequark> wait how
<whitequark> Vtg is not always provided
<awygle> ah yeah. i keep forgetting that
<awygle> but i like the idea of "dac driving into regulator feedback pin" as something to explore on a different project
<awygle> err op amp, not dac
<whitequark> couldn't you just use a beefy op amp with unity gain?
<whitequark> i mean that's more or less what an LDO is
<awygle> yeah you could
<awygle> i was thinking you'd need a higher voltage but of course you need that for an LDO also
<whitequark> btw do we run the DAC at 3V3 too?
<whitequark> and does that work with 5V LDO output?
<awygle> yes and yes
<awygle> i'll make sure it does
<whitequark> thanks :)
<azonenberg> whitequark: my recommendation is generally excessive
<azonenberg> But i generally am not optimizing for lowest cost
<azonenberg> i'm optimizing for "make it work the first time"
<azonenberg> The closer you get to the optimal/minimal BOM for a design the more likely you are to overshoot and need rework/a respin
<whitequark> mhm
<whitequark> I mean, it *is* true that I can DNP many of those
<azonenberg> Exactly
<azonenberg> And unless PCB area is your limiting factor in cost
<azonenberg> having empty spaces on the PCB costs you essentially zilch
<azonenberg> Look at how many empty placements a lot of commercial boards have
<azonenberg> They make multiple products with the same PCB, or just do a very conservative design and remove half of it
<whitequark> I guess
<whitequark> awygle: wait, shouldn't VOUT be on the right too?
<awygle> lol
<whitequark> I'll fix this myself
<whitequark> let's see what kicad people say
<awygle> mk
<whitequark> awygle: hmmm
<whitequark> what do we do with the LDO EN pin?
<whitequark> it looks like unless we explicitly drive it low, there's no guarantee against reverse current flow
<whitequark> but I'm not sure
<whitequark> better just route it to CY7C I guess.
<whitequark> we have... exactly two free CY7C pins
<azonenberg> whitequark: sounds like you need two GPIOs or LEDs
<azonenberg> :P
<whitequark> azonenberg: I just allocated them.
<whitequark> no more free pins
<azonenberg> Problem solved
<whitequark> lol azonenberg
<azonenberg> Now to make sure all of the FPGA pins are used too
<whitequark> they already are
<whitequark> I have zero NC pins except for I2C device address pins
<whitequark> awygle: a side effect of having a DAC and an ADC is that board can self-test every capability it has
<whitequark> (if we make a loopback adapter)
<awygle> whitequark: small wrinkle
<awygle> err let me check one more thing
<openfpga-github> [Glasgow-JTAG] whitequark pushed 2 new commits to master: https://github.com/whitequark/Glasgow-JTAG/compare/f757eb9798c0...9bcdbe2f29ec
<openfpga-github> Glasgow-JTAG/master 9bcdbe2 whitequark: Add proper RC filter on VCCPLL.
<openfpga-github> Glasgow-JTAG/master 1879416 whitequark: Add analog frontend schematics.
<awygle> never mind we're all good
<awygle> i didn't show my work quite as much, bunch of on-paper calculation
<awygle> azonenberg: do you know why so many adjustable regulators use 1.2V as their feedback reference? or occasionally 0.6V?
<awygle> like, it's not *quite* a silicon bandgap, is it?
<awygle> hmm maybe doping changes the bandgap
<azonenberg> yeah i'm pretty sure that's silicon bandgap +/- various circuit-specific tweaks
<openfpga-github> [Glasgow-JTAG] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow-JTAG/commit/8a1bd9a40cb3a290a977e6cefa98580efb26fa89
<openfpga-github> Glasgow-JTAG/master 8a1bd9a whitequark: Add power budgeting.
<whitequark> awygle: alright, I believe the schematic is done
<whitequark> can you please go over it?
<openfpga-github> [Glasgow-JTAG] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow-JTAG/commit/f3015bb39bb3d75eea72efcad9a163fd8be175d4
<openfpga-github> Glasgow-JTAG/master f3015bb whitequark: Add DAC resistor network values.
<awygle> whitequark: sure
<awygle> whitequark: i guess you've done this already by virtue of doing the schematic but can you check the pinouts once more and maybe check if my math looks reasonable on those spreadsheets?
<whitequark> I haven't checked the pinouts yet, I will before signing off the layout
<awygle> cool
<whitequark> math, I can try, but in all likelihood that will be useless
<whitequark> I was always really bad at arithmetics
<whitequark> just... putting the right numbers in the right holes part. algebra, sure.
<awygle> sure, excel did all the math-math lol
<awygle> whitequark: assuming "u1" is "0.1 uF"?
<whitequark> yes
<whitequark> standard notation as I was taught
<awygle> mhm, just wanted to make sure
<whitequark> this design has 33 decoupling capacitors >_<
<openfpga-github> [Glasgow-JTAG] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow-JTAG/commit/8af3d3cd37c122668905210601f420fd8e55f697
<openfpga-github> Glasgow-JTAG/master 8af3d3c whitequark: Fill in Mouser_PN for every component.
<awygle> whitequark: hm, so for Vtg we should either split the pins or put a switch or jumper in, we shouldn't sampling from the DUT and also driving onto the same rail
<azonenberg> awygle: in starshipraider i planned to have one Vref_in and possibly a vccio output if you wanted to supply (a bit of) power to the DUT
<whitequark> awygle: why not?
<azonenberg> vccio for each bank would be generated either by tracking the external vref or driving a user-specified constant voltage
<azonenberg> Your choice
<whitequark> when the LDO is disabled, the driver is effectively hi-Z
<whitequark> at least, that's what the datasheet implies, as far as I understand it
<awygle> hm. so come up disabled, sample vtg, then decide whether to turn on the LDO?
<whitequark> basically
<awygle> okay so that will work, but it presents certain risks if Vtg does something funny
<awygle> basically the LDO will prop up the voltage and the ADC won't see Vtg drop, if it does
<whitequark> you mean rise?
<awygle> that too, actually, the LDO will sink current if Vtg rises
<whitequark> well... if you enable the LDO, you kinda decide to put the voltage onto that pin
<awygle> yeah
<awygle> i guess that's fair
<whitequark> so I'd say that is working as intended?
<awygle> the LDO is a little more load on Vtg because of the feedback divider as well but i think that's probably OK, should be swamped by the ADC divider
<whitequark> yeah, and at 1ksps there's some margin
<awygle> wait hang on. i feel like it's important to be able to communicate with the device without changing its power state.
<whitequark> elaborate
<awygle> i like preserving the ability to track Vtg without actually putting power onto that rail
<whitequark> then don't power up LDO?
<awygle> but then you're drawing power from that rail
<whitequark> yes, 0.28 mA
<awygle> plus whatever the I/O buffers draw
<whitequark> no, that's the I/O buffer draw
<whitequark> at maximum frequency all 8 together
<whitequark> at least, that's how I'm reading the datasheet
<awygle> i'm seeing up to 35 mA in figure 3
<whitequark> oh, hm
<whitequark> hmmm
<whitequark> suggestions?
<whitequark> use one pin for sensing Vtg (and connect ADC to it), another to export Vccio?
<awygle> we could do that
<awygle> we can put a jumper in to choose whether to supply power or just track it
<awygle> or we can put in an analog mux
<whitequark> no pins
<awygle> mm
<awygle> yes
<whitequark> we'd need an I2C extender or something
<whitequark> which I'd prefer to avoid
<awygle> definitely
<awygle> the bus blaster uses the jumper
<whitequark> yeah, I know
<whitequark> I don't like it very much
<awygle> i don't either
<awygle> i was trying to think if a couple of diodes would work
<awygle> but no
<awygle> i don't think so
<whitequark> WTF
<whitequark> I massively overestimated BOM
<awygle> splitting the pins is fairly clean, and only slightly breaks bus blaster compat
<awygle> _over_estimated? .... yay?
<whitequark> I just actually requested things from Mouser and it's $21.51 @ 5
<awygle> wow what? isn't the cypress more than that by itself?
<whitequark> it's over half of the BOM, yes
<awygle> oh i see, 21$ per board at qty 5. i misinterpreted lol
<awygle> that really _would_ have been cheap
<whitequark> oh wait
<whitequark> I can't arithmetics
<whitequark> $43 @ 5
<whitequark> now *that* makes sense
<awygle> yeah let's just split the pins. nobody uses the bus blaster anyway.
rohitksingh_work has joined ##openfpga
<whitequark> which means... I'm right into my target at BOM+board at... *drumroll* $50.01
<azonenberg> Lol
<whitequark> couldn't have hit it if I aimed
<azonenberg> whitequark: quick, make six of them and get a tiny price break :p
* awygle applauds
<awygle> we definitely can't add a jumper now
<whitequark> azonenberg: I can probably get one at ten
<whitequark> awygle: LOL
<whitequark> yeah that would be expensive
<azonenberg> lol
<awygle> whitequark: do we want usb termination? or does the cypress do that internally?
<whitequark> awygle: cypress does everything internally
<awygle> mk
<openfpga-github> [Glasgow-JTAG] whitequark reopened issue #11: TI ADC081C021CIMM MSOP-8 https://github.com/whitequark/Glasgow-JTAG/issues/11
<awygle> yeah this looks good
<awygle> the only thing that makes me slightly nervous is the relatively low cap on 5V
<awygle> but i guess we're at about half of the maximum legal capacitance
<awygle> azonenberg: do you think we need cap before the ferrite on 5V?
<awygle> mmm actually hang on
<awygle> whitequark: we might potentially be overdrawing 5V. were we trying to stick to 500 mA?
<whitequark> awygle: the Imax values are absurdly conservative
<awygle> whitequark: mk
<whitequark> I basically did "all drivers on and at full current"
<awygle> we're probably ok then. i'll be interested to see current numbers though
<whitequark> I think this will need to be checked on samples
<whitequark> if we really are overdrawing 5V... well that's a problem
<whitequark> we're going to have to use a buck for 3V3
<whitequark> but I think that the worst case here is "you don't have very much power available for Vtg"
<awygle> yeah i'm not really worried about the vtg side
<openfpga-github> [Glasgow-JTAG] whitequark pushed 2 new commits to master: https://github.com/whitequark/Glasgow-JTAG/compare/8af3d3cd37c1...3a522033a8aa
<openfpga-github> Glasgow-JTAG/master 3a52203 whitequark: Correct Imax numbers for FXMA108.
<openfpga-github> Glasgow-JTAG/master e0d87da whitequark: Replace non-stock capacitor with stocked one.
<awygle> i think we should put a cap in front of the ferrite
<whitequark> ferrite?
<whitequark> where do you see a ferrite
<awygle> F1?
<awygle> above the usb
<whitequark> fuse
<azonenberg> That's a fuse
<awygle> ohhhhhhh
<awygle> never mind then
<awygle> i am dum
<whitequark> wtf
<whitequark> lattice didn't follow their own guidelines for PLL on their own devboard
<whitequark> they swapped the sides of the RC filter
<azonenberg> whitequark: pretty sure clifford caught that
<azonenberg> he tweeted about it a few months ago
<whitequark> also they connect USB shield to ground
<whitequark> which is a huge no-no
<whitequark> oh wait no they don't
<awygle> yeah, their "fancy" dev board does it right
<whitequark> looking at the ultraplus one
<azonenberg> whitequark: you arent supposed to ground usb shield?
<azonenberg> seems like guidelines for that change constantly
* azonenberg hasnt done a usb design in ages
<whitequark> azonenberg: only on one side
<azonenberg> but i thought it was supposed to go to chassis ground on the device
<whitequark> hm
<azonenberg> if you had a metal case
<azonenberg> again, dont quote me on that
<azonenberg> its been ages
<whitequark> noooot sure
<awygle> we're running everything through an LDO and nothing off of 5V raw, so we probably don't need a ferrite.
<awygle> which is good
<awygle> cypress recommends a 1M resistor and a 4.7 nF cap in parallel between shield and logic ground
<whitequark> awygle: that is done
<awygle> yup
<whitequark> the cap is a bit larger
<openfpga-github> [Glasgow-JTAG] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow-JTAG/commit/36b66873e7f61ae63c92da7491524d960c7d9594
<openfpga-github> Glasgow-JTAG/master 36b6687 whitequark: Split voltage supply and sense.
<whitequark> I copied that from one of my devboards, idk if it matters
<awygle> if it's more cap but not physically larger, it should be the same or better
<whitequark> all decoupling is set to u1/4u7 mostly for cost and simplicity reasons
<awygle> remind me when i get one of these to poke it with my near field probes
<awygle> just for fun
<whitequark> alright!
<awygle> okay, schematic looks good
<awygle> i badly need to work on some other stuff now
<whitequark> go ahead
<whitequark> I won't finish layout today anyway
<awygle> let me know when you do and we can both run through azonenberg's checklist
<whitequark> yup
* awygle starts a pot of coffee
<whitequark> probably tomorrow
<whitequark> awygle: so I'm going to place order for parts for two.
* whitequark giggles and selects Mouser's free FedEx Intl Priority
<whitequark> azonenberg: oh btw
<whitequark> could you take a look at the board too?
<whitequark> however much time you feel you can spend on it, anyway
<azonenberg> whitequark: Busy right now but maybe tomorrow
<whitequark> sure, no rush
pie__ has joined ##openfpga
pie__ has quit [Ping timeout: 240 seconds]
pie__ has joined ##openfpga
pie__ has quit [Ping timeout: 256 seconds]
soylentyellow has quit [Read error: Connection reset by peer]
soylentyellow has joined ##openfpga
soylentyellow has quit [Max SendQ exceeded]
soylentyellow has joined ##openfpga
<cr1901_modern> whitequark: https://twitter.com/cr1901/status/985754037915144197 *whines* :'(
<cr1901_modern> It's not been a good day lol
soylentyellow has quit [Remote host closed the connection]
<azonenberg> cr1901_modern: if it makes you feel any better
<azonenberg> you can get 32-bit MIPS in dip
<cr1901_modern> Yes, I can. And I do have one at least
<azonenberg> pic32 has a bunch
<azonenberg> not the highest end but they exist
<cr1901_modern> I actually love the LPC810, not just b/c it's DIP but b/c it's ridiculously small (4kb flash/1kb RAM). Someone made a MIDI synth w/ it they sell on adafruit: https://www.adafruit.com/product/2400
<cr1901_modern> I never actually made anything w/ it. The SVD files provided by NXP are extremely broken, so my Rust adventures didn't go far either.
<cr1901_modern> azonenberg: I have a PIC32MX220F on hand
<cr1901_modern> Huh, apparently this family has USB OTG... didn't know that
<whitequark> azonenberg: awygle: btw seeedstudio does 4/4 and up to 6L
<whitequark> and they're absurdly cheap too
<whitequark> and they do PCBA with MOQ 1
<whitequark> they also do weird-ass boards like TG210, PTFE, ceramic, up to 50 layers, 6oz copper on inner layers (?!), HDI, gold finger, back drilling...
* azonenberg is going to stick with multech
<azonenberg> first rate QA and, more importantly, i know them
<azonenberg> i'd rather pay a bit more for a one-off than risk it not working
<whitequark> sure
<azonenberg> (and rendering my $1K of components scrap)
<whitequark> if you do uber-expensive one-offs, miltech makes sense
<azonenberg> yeah thats what i use them for
<azonenberg> then i go with oshpark or hackvana for lower spec stuff
<awygle> I like seeed
<azonenberg> I generally use oshpark for high speed stuff and hackvana for lower end things, but that isnt a hard and fast rule
<awygle> I need a decent hi-spec board house for if I'm doing something exotic
<awygle> Will check out multech
<whitequark> awygle: i'm going to do PCBA with seeed if people do in fact preorder a lot of Glasgow boards
<whitequark> fuck all i'm going to solder all these capacitors myself
<awygle> Hahaha
<awygle> I've never used them for assembly
<awygle> It's such a cost adder for prototypes
<azonenberg> yeah i've never contracted out assembly
<awygle> I've done so for space stuff but that was $$$$
<awygle> Because Space
<azonenberg> Lol
digshadow has quit [Read error: Connection reset by peer]
<awygle> hey azonenberg how do I get through the epoxy on a chip on board pcba?
digshadow has joined ##openfpga
<azonenberg> awygle: to decap?
<azonenberg> same way you decap anything else, it's just epoxy
<azonenberg> hot nitric or sulfuric
<azonenberg> it acts a bit different since the glass content is lower than normal ic molding compounds
<azonenberg> not even sure if there's any glass at all
<awygle> geh
<awygle> How do I do it without a fume hood? :-P
<whitequark> awygle: their assembly is *cheap*
<whitequark> it starts at $25 per board.
<awygle> damn
<whitequark> that's the setup fee
<whitequark> actually
<whitequark> so it's even cheaper
<whitequark> so $25 per board plus $0.01-$0.30 per component
<whitequark> that's... at that cost I'm not sure if I want to ever assemble another board again
* whitequark laughs maniacally and populates the entire board with 0402s
<awygle> Haha
<whitequark> now, it's someone else's problem!
<awygle> Don't they have a "use these parts" list?
<whitequark> no
<whitequark> they have a "if you use these parts you get 24h turnaround time" list
<awygle> Not as in they won't - yeah that
<whitequark> but you can just tell them to go to mouser
<awygle> Pay dirty PCBs to make footprints and do layout
<awygle> Pay seeed to do boards kitting and assembly
<awygle> Only do the fun parts ever again
<awygle> (actually I find layout kind of soothing but still)
<whitequark> yeah same
<whitequark> wtf why does seeed have a solid state ToF lidar https://www.seeedstudio.com/Solid-State-TOF-LiDAR-CE30-p-3043.html
<whitequark> they kinda upgraded from arduino clones
<awygle> Because that's dope as hell
<awygle> Actually I wonder if the dirtypcb decap service would take chip in board
<awygle> For less than $CHEMLAB
<whitequark> awygle: seeed has pcb layout now too
<azonenberg> whitequark: somebody should send them like a microwave AFE
<whitequark> no kicad though
<azonenberg> and see how badly they bungle it
<awygle> They advertise it like a CM though don't they?
<whitequark> "High speed layout like DDR circuit will be asked for extra fee."
<whitequark> awygle: CM?
<awygle> It seemed like they wanted to do the whole thing
<awygle> Contract manufacturer
<awygle> So also design
<whitequark> oh wtf they also have absurdly cheap 3d printing
<whitequark> 1 cent per mm^3 SLA
<whitequark> ONE CENT
<cr1901_modern> Well, it's discontinued, but... huh, I'm tempted to buy the pieces
<awygle> There are a lot of things I hate about the modern world but there are some undeniably awesome things too
<cr1901_modern> That's really cute <3.
<cr1901_modern> And it's SO much cheaper than RC2014
<rqou> q3k: ping?
pie__ has joined ##openfpga
<marcan> whitequark: huh, didn't know seeeeeeeeed did assembly that cheap
<marcan> that's pretty neat
<marcan> bushing and I had some... misadventures getting assy done in china. the first provider we used did a terribad job (and we also made the mistake of letting them source chips, which ended up in like a 30% failure rate)
<rqou> heh
<marcan> I think they used out of date chips that weren't properly stored, and the packages had absorbed moisture and a bunch of them popped
<rqou> marcan: have i told you one of the "fun" CM story from one of my father's friends?
<marcan> you haven't
<rqou> one of my father's friends wanted to make some consumer-ish electronic device in china for cheap
<rqou> went to a CM and asked for a quote
<marcan> incidentally, this was my cpld flashing production line: https://www.youtube.com/watch?v=RcuxEqyS8Uc
<rqou> the CM asked how long the product warranty is before they were willing to give a quote
<rqou> my father's friend gave a reasonably short time (3 months or 6 months, something like that)
<rqou> and got back the expected heap of crap
<marcan> lol
<rqou> so he went to the CM and basically asked them "wtf?"
<azonenberg> and they're like "you told us it had to last 6 months"
<rqou> basically
<marcan> this is so typical china
<azonenberg> Chinese engineers are very good at optimizing for cost and "minimum viable product-ness"
<rqou> even the solder looked wrong
<marcan> they have no concept of quality by default
<rqou> it's allegedly "recycled" solder
<marcan> you need to spell out all requirements precisely
<azonenberg> lol
<marcan> lol
<marcan> ours looked like they were soldered by a drunken monkey
<rqou> presumably from wave soldering or solder pots or similar and is gold-contaminated
<marcan> and some LEDs were backwards
<marcan> my home skillet reflowed earlier run looked way better than what we got back
<rqou> meanwhile my father had much more success when he was doing manufacturing in china
<rqou> at one point my father was working for a company making telco equipment
<rqou> the company decided to move R&D to china
soylentyellow has joined ##openfpga
<rqou> and for PCBA they basically took a factory that used to make VGA graphics cards
<rqou> and had one of the china engineers sit with and work with the factory until the factory got everything right
<rqou> worked great and was cheap too
<rqou> ooh wait
<marcan> bunnie has told a lot of stories of chinese manufacturing
<rqou> marcan: is savemii using a coolrunner-ii?
<marcan> like that time when they had microphones soldered in backwards, so he told them to swap the wires
<rqou> is the HDL available?
<marcan> they dutifully did
<marcan> on both sides
<rqou> lol i remember reading about that
<marcan> HDL is not public but at this point nobody cares so https://mrcn.st/t/savemii.v
<marcan> half of that is unnecessary, we filled in all the "don't cares" with interesting logic in case we ever wanted to detect "genuine" ones (probably just for some silly joke)
<rqou> is this for coolrunner-ii?
<marcan> xc2c64a
<marcan> so yes
<rqou> hmm
<rqou> there are photos on the intertubes showing an xc9536xl?
<marcan> hm wait
<marcan> it was 9536xl
<marcan> IIRC
<rqou> goddammit
<marcan> what happened here
<rqou> do you think it fits on an xc2c32a?
<rqou> i'm looking for HDL to test my toolchain
<marcan> oh sorry I grepped wrong
<marcan> I was using a digilent board for JTAG so I had a bunch of extraneous crap in the chain
<marcan> 9536xl, yes
<rqou> oh, i know why it's a 9536xl
<rqou> no need for 1.2vddcore
<marcan> yeah
<marcan> it's all 3.3V
<marcan> we wanted the smallest thing that would do the job
<marcan> without any extra components
<rqou> anyways, when i have time i'll use this to debug my yosys coolrunner-ii toolchain
<rqou> since i need some "real" designs
<marcan> the board just has a couple caps, LEDs and resistors
<marcan> feel free
<marcan> do you have a wii to test it on?
<rqou> yeah i do
<rqou> unfortunately too late for a vulnerable boot1
<marcan> if you want to do the full design let me get you the testbench
<marcan> which tests everything
<rqou> i got a wii early enough that i could still use the twilight hack but late enough that no bootmii-as-boot2 for me
<marcan> these days you know you can just update to the latest version and letterbomb, right?
<marcan> they gave up on fixing security bugs
<marcan> no need for a game even
<rqou> and just to make you sad marcan i had ios249 installed
<rqou> yeah, i never lost hax and updated all the way
<marcan> that was my production test app
<marcan> my poor memory card sockets got a couple thousand insertions
<rqou> also, i "love" (/s) how banner bricks are possible
<rqou> epic fail
<marcan> well, we made an exploit out of that at one point so :p
* pie__ attempts to write a dvd
<rqou> lol pie__
<rqou> might be difficult depending on what you're trying to do
<rqou> a while back i tried writing a CD for a G3 "fruit" imac
<rqou> i thought that there was something wrong with all of the ISOs i had downloaded
<rqou> (of mac os 9)
<rqou> turns out that the problem was using CD-RWs :P
<marcan> lol CD-RW
<rqou> i forgot that CD-RWs have lower reflectivity
<rqou> and the aging/dying drive has trouble reading them
<rqou> also, CF-card-as-IDE-drives really do seem to fail prematurely
<rqou> putting debian on a G3 "fruit" imac is overall lots of "fun"
<rqou> you can encounter all of the random BE bugs
<rqou> and technically there's nothing too unsupported about this configuration because it really does run kernel 4.xx
<rqou> but every now and then people forget that ancient machines like this don't have altivec
<rqou> e.g. kicad launches on this machine :P :P
<rqou> GAL mode doesn't work though
<marcan> I have a mac mini G4 at home with debian ppc
<marcan> on a CF card
<rqou> equally as fun i presume?
<marcan> I don't really use it much, it's mostly there as a "if I get bored and feel like using a ppc machine" box
<rqou> yeah same
<rqou> i mostly use it as a "smoke-test BE bugs" machine
<marcan> yeah it's good for that
<rqou> since these machines are actually modern enough that exchanging files with them isn't a _huge_ pain in the ass
<marcan> less useful to me now that I no longer need to write software that runs on mainframes or old POWER4 systems *cough*
<marcan> but it's a handier ppc box than a PS3 or a Wii
<rqou> e.g. they have usb (full speed!) and ethernet (fast!)
<rqou> marcan: or a wiiu? :P
<marcan> sure :P
* pie__ gives up and goes over to the windows machine
<marcan> but did anyone even port proper linux to wiiu yet, with multicore support?
* rqou doesn't even own a wiiu
<rqou> idk
<rqou> i heard that tooling for the wiiu is a total disaster and barely even usable
<marcan> I own one and have never run anything on it other than the homebrew channel in wii mode to get the keys out
<marcan> I own zero wiiu games
<marcan> basically people suck
<rqou> although 3ds tooling is pretty awful too
<marcan> after we pwned it we had a channel full of old-timer Wii people who had access but nobody stepped up
<rqou> e.g. extracting a .firm requires a bajillion steps
<marcan> and then I published the espresso tricore hack and told people "show me you're interested and can do it, go port Linux with 3-core support to vWii mode"
<marcan> nobody cared
<rqou> although it's not clear how much of that is the tool's fault and how much is nintendo's fault
<marcan> well, a bunch of kids on gbatemp cared
<marcan> but none of them had half a clue how to even start
<marcan> 50 pages into the thread nothing got done
<rqou> hey, i used to be on gbatemp
<marcan> replicating that exploit (which I detailed) would've taken like an hour for someone who knew what they were doing
<marcan> I mean I'm not dissing newbies, I'm just saying, nobody actually competent/capable cared :p
<rqou> lol it's a wiiu :P
<marcan> that's the problem with homebrew on "weird" systems these days
scrts has quit [Ping timeout: 255 seconds]
<marcan> it's way too much effort to write a homebrew SDK
<marcan> and way too easy to just patch two functions and pirate games
<rqou> meh, i personally don't care about piracy
<shuffle2> maybe people realized homebrew sdks are a bad idea :P
<marcan> ps4 and switch are kind of an exception because they're close enough to open systems that you can run linux on them with ~full hardware support without ridiculous amounts of effort
<marcan> (you still need effort, but not port-graphics-drivers-to-entirely-new-chips levels of effort)
<awygle> a switch is also a cool hardware platform
<awygle> wii u was too but not in a good way :-P
<rqou> i mean, i kinda think a 3ds is a cool platform too
<rqou> but now homebrew seems to mostly involve really weird invasive patches that rewrite half the OS
<awygle> The 3ds stuff is a nightmare but at least it's a well documented nightmare
<rqou> and pirate game installers
<awygle> I was amazed that the ~30 step process worked correctly the first time
<rqou> even though i personally don't care if people write pirate game installers, i don't want that to be the _only_ thing people write
<rqou> awygle: 1 step now :P
<rqou> unfortunately not found by me because i was busy doing things like "school"
<rqou> but yeah, the weird crossgrade to 2.1.0 was "interesting"
<marcan> that sounds like the shit people did with LSI cards
<marcan> "go through these 4 firmwares and firmware flasher versions to crossflash a dell card to LSI firmware"
<marcan> "involving UEFI and DOS and Windows"
<rqou> wait marcan you didn't follow 3ds?
<marcan> nope
<rqou> the procedure used to involve crossgrading a n3ds to o3ds firmware 2.1.0 because that firmware version forgot to set the OTP disable bits
<rqou> but would still boot to a functional browser that could be exploited
<rqou> this is before people managed to exploit the crypto bugs and construct a universal signature
<marcan> my only involvement with portables was that time I stared hard enough at input/output pairs for the DSi key scrambling function to realize it was (X ^ Y + (uint128_t)("任天堂株式会社".encode("utf-16"))) ROL 42
<marcan> or something like that
<pie__> this stuff sounds hardcore
<rqou> lol that
<marcan> (that's Nintendo Co. Ltd. in japanese, utf-16 with BOM, little endian)
<rqou> i manged to reproduce that attack after the 3ds people explained it
<marcan> *everyone* makes that mistake
<marcan> AES partial key overwrite
<marcan> *everyone*
<rqou> lol yeah
<marcan> seriously I know of like 5 vendors at least who have goofed on that one
<rqou> (drama question): how was low-level code exec on dsi initially achieved?
<shuffle2> nv even thought they fixed it, i think
<rqou> i remember when the dsi first came out and i wanted to try and hack it
<marcan> RAM MITM
<marcan> scanlime did that
<marcan> well, not really MITM for most pins
<rqou> but being in middle school/high school at the time and not really knowing how to work with people, i didn't have the resources to
<rqou> marcan: that actually achieved code exec?
<marcan> sure, you just patch a jump in or whatever?
<rqou> i thought i remember reading that keys didn't leave TCM and were supposed to have been wiped?
<rqou> i guess that must have not been true
<marcan> I don't know the details of the arm9/arm7 split and how keys were pulled
<rqou> i do remember the scanlime jig
<marcan> but code exec is easy if you can hijack RAM
<rqou> i actually wanted to build that after scanlime published it
<rqou> but i didn't have the money
<rqou> but yeah, i've been lurking the "scene" for quite a while :P
<marcan> I've been lurking since the PS2 days
<rqou> never really getting anywhere because i suck at collaborations
<marcan> Wii was when I decided to go from lurking to getting shit done :P
<rqou> i remember the ps2 and somehow needing to buy some weird swap disks and crap
<rqou> except now you can just dd something to the hdd and it's pwned
<marcan> I once wrote a PS2 memory card -> USB redirector / emulator
<marcan> 1GB memory card!
<pie__> god i knew this would be a clusterfuck
<pie__> do some usb drives overheat if you write to them constantly
<rqou> marcan: my first ever real fpga project was sniffing spi for the ps2 memcard
<marcan> https://mrcn.st/t/big_mc.jpg oh it was 2GB
<rqou> unfortunately i didn't know anything about the crypto/magicgate stuff
<rqou> wait
<rqou> marcan: you don't need to magicgate authenticate?
<marcan> this is high level
<rqou> or had that already been cracked at the time?
<marcan> it replaces the MC manager protocol
<marcan> it couldn't care less about what's under it
<rqou> hmm, i don't know how this part works then
<marcan> it just redirects memory card to FAT32 on USB
<marcan> it's software
<rqou> wait, the ps2 has an OS?
<rqou> i thought games ran on bare metal?
<marcan> well, not really
<marcan> I mean kind of
<marcan> on the EE yes
<marcan> mostly
<marcan> but the IOP had modules
<marcan> though I think each game shipped the core too
<marcan> but you could build modules compatible with wide ranges and inject them
<rqou> i just remember the architecture being insane
<marcan> the O2 modchip I used had a feature for that
<marcan> hence that patch
<marcan> it's a bit like IOS on the Wii with IOS modules, except it supported dynamic loading
<marcan> (explicitly)
<marcan> (and no security anywhere)
<pie__> its not surprising normal people cant use computers
<marcan> so you could just ask IOS nicely to load some code in
<rqou> huh TIL
<rqou> how does this work in pcsx2?
<rqou> other than "it doesn't"
<rqou> :P
<shuffle2> they are too lazy to reverse them
<marcan> I think pcsx2 does have IOP low level emulation?
<marcan> unlike dolphin
<marcan> well, normal dolphin anyway
<shuffle2> i tried to get them to reverse and hle and they were scared :p
<marcan> that branch I made did graft an IOS emulator in :P
<shuffle2> but that was a while ago, maybe it changed
wpwrak has quit [Read error: Connection reset by peer]
wpwrak has joined ##openfpga
<rqou> so, how does one pwn the ps2 mechacon? :P
mwk has quit [Ping timeout: 264 seconds]
wpwrak has quit [Read error: Connection reset by peer]
<marcan> no idea, never looked at that :p
<marcan> I was mostly lurking in the ps2 era, never really looked super deep into it
<rqou> ah ok
wpwrak has joined ##openfpga
<rqou> marcan: are you familiar with the nds "scene?"
<marcan> at user level mostly
<rqou> hmm
<rqou> do you know how the encryption tables were originally found?
<marcan> no idea
mwk has joined ##openfpga
<rqou> was it just the nocash "jump and pray" approach?
<rqou> anyways, overall i would like to thank nintendo for teaching me a lot about embedded systems and embedded systems security :P
rohitksingh_work has quit [Ping timeout: 240 seconds]
<pie__> marcan, whats a partial key overwrite, google wasnt helpful
<rqou> pie__: imagine you have a hardware AES engine with write-only key registers
<rqou> an AES key is 128 bits, but a CPU register is only 32 bits
<pie__> ah i can sort of guess where this is going
<rqou> so you need to do 4 writes to set the entire key
<whitequark> rqou: "and had one of the china engineers sit with and work with the factory until the factory got everything right"
<pie__> ohh
<whitequark> yeah everyone i've talked to says this is *the* approach
<rqou> so what if you could overwrite only 1/4 of the key?
<rqou> so what you do once you gain code exec is
<rqou> encrypt all zeros with the key you can't see, write down the output
<rqou> overwrite the first 32 bits, encrypt, write down the output
<rqou> overwrite the next 32 bits, then the next
<rqou> and now you know the key is <12 zeros><4 bytes unknown>
<rqou> which is bruteforceable
<rqou> and then you can repeat the bruteforce for each 32-bit chunk
<rqou> boom, key recovered
<pie__> niiiiice
<marcan> some systems are nice enough to let you do it 8 bits at a time
<rqou> sure
<marcan> so you don't even need to write some C code :P
<rqou> was that written after the dsi pwning?
<rqou> also, whatever happened to tmbinc?
<marcan> it was
<marcan> nothing?
<marcan> he's still around
<marcan> did dieselgate stuff recently
<rqou> the blog hasn't been updated since dec2015
<marcan> because being lazy about blogs is such a rare occurrence among hackers
<rqou> lol true
<rqou> what happened to the "explain GC ODD security" series?
<marcan> I'm not tmbinc but I'm going to guess and point back to the word lazy
<marcan> also something something married something something kids may have something to do with it :p
<rqou> oooh
<rqou> that explains it
<rqou> lesson for hackers: don't have kids :P
<awygle> I'm at that age where friends are having kids and I still don't get it *shrug*
<rqou> solution: have cats :P
<awygle> I mean it's not like a solution, I just don't understand wanting kids
<rqou> i don't even know what the "proper" age to have kids even is supposed to be lol
<awygle> In the same way my poly friends don't understand jealousy, I guess
<awygle> Love, marriage, sure. Kids, just doesn't compute.
<awygle> *shrug*
<rqou> 🐈
<awygle> Anyway, no one cares but my parents :-P
<rqou> problem solved
<rqou> wait, non-asian parents ask the "when are you having kids" question too?
<awygle> Yes.
<awygle> And why you got a B
<rqou> lolol
<awygle> (or an A-)
<awygle> And do the "no dating" to "when are you getting married" flip
<rqou> wat
<rqou> i thought all of these were just "asian parent" things :P
<awygle> Well my mom did them lol
<awygle> She's fairly calmed down at this point though
<awygle> It's just a funny joke so I play it up, unfairly to her lol
<rqou> awygle: what about the mandatory language and musical instrument lessons? :P
<awygle> Jeez it's West Coast Late-Night tonight
<awygle> rqou: no and yes respectively
<rqou> O_o
<awygle> Although school handled language just fine
<marcan> and here I am sad that my parents *didn't* sign me up for lessons :p
<marcan> music lessons
<rqou> meh, my music skills are kinda shit
<awygle> marcan: better to be sad about that than sad you never practiced :-P
rohitksingh_work has joined ##openfpga
<rqou> awygle: i was _originally_ supposed to be porting math code to potato microcontrollers
<marcan> I used to work out disney melodies as a kid. then I did nothing until ~10 years ago, when I decided to buy a keyboard and actually start playing
<marcan> now 10 years later I've realized I've been teaching myself stupid shit instead of actually learning useful concepts and techniques
<marcan> so I finally signed myself up for lessons
<rqou> oh is that why you pwned that weird d510mo-based thing?
<marcan> yes
<marcan> well that was later
<marcan> but yes that's my keyboard
<rqou> funny that i actually own a d510mo
<marcan> now it's a skylake
<rqou> the d510mo is kinda crap
<marcan> unfortunately it hangs hard once in a while
<marcan> need to jtag debug it
<rqou> mostly because the southbridge is crap
<rqou> O_o skylake jtag?
<rqou> via the usb thing?
<marcan> yeah
<marcan> not many other choices
<rqou> ah ok
<marcan> the synth runs in kernel mode
<rqou> so you don't have some super sekrit NDA jtag tools
<marcan> you can actually get intel software for the usb thing, it's just lolslow
<marcan> and only runs on windblows
<awygle> hmm I should get a keyboard
<marcan> and I don't have a computer that works with it yet
<awygle> I finally got rid of my shitty guitar, iirc
<marcan> I wanted to reverse engineer the protocol
<awygle> I should get one that doesn't suck, ideally an electric
<marcan> I have a txt somewhere where I documented the JTAG-over-USB protocol
<rqou> i'll probably want that someday once i actually get around to really trying to implement the ME arbitrary code exec
<awygle> But music is money
<marcan> and the crypto on the jtag definition files is pretty lol
<marcan> so I wonder if I could add skylake support to openocd
<marcan> :p
<rqou> the ME arbitrary code exec is pretty lol too
<marcan> there's actually already support for some tiny intel core
<marcan> can't be that different can it?
<marcan> :p
<rqou> that core is similar to the ME core
<rqou> anyways, i took the BH slides for the ME code exec vuln and found the equivalent bug in my image immediately
<rqou> but because i didn't have time to reverse more, i can't really usefully exploit it
<marcan> awygle: just get a MIDI controller or a cheap yamaha digital piano or something
<marcan> and if you want a piano that sounds good buy pianoteq :P
<rqou> because i have no idea what address anything is at (stack, registers, any way to output stuff, etc.)
<marcan> even runs on a raspberry pi these days!
<rqou> but i only spent one day looking at it
<rqou> when i was supposed to be studying for finals
<awygle> I actually know nothing about digital instruments, I've only really played an upright
<marcan> pianoteq does physical simulation of a piano instead of using samples
<marcan> which means it's tiny and sounds awesome
<rqou> it turns out it's actually quite difficult to sploit something when you know absolutely nothing :P
<marcan> (and you can customize the piano)
<awygle> That does sound cool
<awygle> The thing about trying to get back into piano is that I used to be good, and now I'm not
<awygle> So I know what my fingers are supposed to do but I can't make them do it and it's frustrating lol
<marcan> just practice
<awygle> Yeah I know
<marcan> I signed up for jazz lessons in november and now I'm having to figure out how to actually press 5 keys at once with my right hand
<marcan> "this is alien voodoo to me"
<awygle> I have Gifted Kid Syndrome pretty bad where I have a hard time sticking with things that aren't easy for me. Trying to get better about that.
<rqou> awygle are you a white version of me? :P
<rqou> or do all $FANCY_SCHOOL people have similar problems and experiences?
<awygle> rqou: yes but older and wiser and don't you forget it
<awygle> Of course I'm working at 3am and I just had networking problems because I didn't plug Ethernet in
<awygle> So maybe not that much wiser
<rqou> lol
<rqou> i'm currently reading a file that ends in ".f"
<rqou> so idk if that's good or bad :P
<marcan> lol.
pie__ has quit [Ping timeout: 255 seconds]
<awygle> yeah but that's like an assignment and has rewards, this is entirely my own fault
<awygle> there's gotta be a term for this in psychology, where when there's something you badly need to do but also deeply don't want to do your body reacts by being sleepy and/or hungry, and you use those as excuses not to work until the last possible minute
<rqou> lol
<rqou> awygle you are definitely a clone of me :P
<awygle> rqou: i was about to say "okay i'll trade you" but you would way rather do the thing i'm currently doing probably
<azonenberg> awygle: i'm just a little bit different
<azonenberg> I have a hard time sticking with things that i don't really want to do
<azonenberg> if it's hard but i really want to do it, i'll power through just about anything
<marcan> can you substitute sleepy/hungry with reddit/youtube (until hungry enough or sleepy enough that they take over?)
<azonenberg> But if my heart isn't into it, it's very hard to force myself to do it
<marcan> because then that would be me :P
<awygle> azonenberg: go to bed :p
<awygle> marcan: i think i've successfully worked through the reddit/youtube stage
<awygle> although i did watch quite a bit of lucky star today... so maybe not
<awygle> but that was mostly while eating
<marcan> azonenberg: I have a hard time *starting* things I want to do (but have longer-term reward cycles)
<awygle> i'm much like azonenberg but i stop wanting to do things when they're hard, usually.
<awygle> not always though
<marcan> OTOH if I get nerd-sniped on a short-term reward project then see you at 8AM when I *might* go to sleep.
<azonenberg> marcan: now that is a problem i dont have, my problem is that I oversubscribe too much
<azonenberg> and end up with 30 tasks to do and time to do one or two
<azonenberg> But i'm always doing SOMETHING so i appear massively productive while feeling massively overworked :p
<marcan> the problem is I oversubscribe but then *also* wind up doing none of the things
<marcan> because there's just so many to pick from
<awygle> marcan: yes that exactly
<rqou> ok seriously fuck lapack
<rqou> why does everything in this ecosystem suck?
<awygle> i just recently sorted my projects by "time to completion" and have stopped taking on new ones
<awygle> i'm trying to burn down my task list to a more manageable length
<marcan> maybe I should actually write down my project list
<awygle> so today i did _not_ start writing an Earley parser in Rust
<rqou> awygle: Earley? how lame :P
<rqou> do shift-resolve from that incomprehensible paper whitequark likes :P
<awygle> Earley has many desireable properties that i can't afford to get nerd sniped into right now :p
<rqou> i mean, i took cs164 too :P
<awygle> (that said if you have a link to that paper i am not above throwing it into my stash)
<azonenberg> meanwhile here i am waiting for a place-and-route on $client's FPGA design
<azonenberg> and starting schematic capture for my switch because i got bored of writing the starshipraider ram controller
<rqou> this is the one that has the NFA-of-doom and "Proof. A straightforward induction on the length of γ."
<awygle> "simple"
<rqou> i think that's what whitequark said too :P
<azonenberg> awygle: btw if you're curious, azonenberg/latentpacket is the repo for my switch project
<azonenberg> LATENTRED is the 1/10G edge switch, i'm working on the line card design
<awygle> i am booting up servers and finding VMs i don't remember existing
<awygle> that's... troubling
<azonenberg> lol
<azonenberg> 8x DP83867, PSU, i2c management/sensors, and a backplane connector
<rqou> awygle: are you running drupal? :P :P :P
<azonenberg> or... (gasp) wordpress?
<azonenberg> <insert bash.org quote re wordpress here>
<rqou> azonenberg: iirc there's a drupal sploit going around?
<awygle> no i just blocked about half of 2017 out
<rqou> but yeah, for the most part drupal and wordpress are not allowed on servers i maintain
<rqou> php*Admin is _definitely_ not allowed
<awygle> which is a joke i used to tell that is becoming increasingly serious as things from that time keep coming up
<rqou> awygle: no, this is from like last week
<rqou> there's some major drupal RCE or something
<awygle> yeah i know
<awygle> i just set this stuff up in ~May 2017 apparently
<rqou> ah
<awygle> azonenberg: i'll take a look eventually
<awygle> by the way if you're going to call it Red you should call it Open Networking Infrastructure
<azonenberg> awygle: ??
<awygle> and the next one is Blue of course
<azonenberg> missing the reference
<awygle> Red Oni/Blue Oni
<azonenberg> ??
* azonenberg must not be weeb enough to get the reference
<azonenberg> I'm just going with the standard USG code naming format
<azonenberg> project name + subproject variable
<awygle> is it weeb if it's japanese folklore and not like, a specific anime reference?
<azonenberg> hmm, maybe?
<awygle> or does that make it _more_ weeb....
gruetzkopf has quit [Quit: quit]
<azonenberg> LATENTORANGE will be the 10G/40G core switch
<azonenberg> LATENTYELLOW will be a border router/firewall
<azonenberg> Havent defined names for the rest
gruetzkopf has joined ##openfpga
<awygle> hm firewall is an interesting problem
<awygle> ... dammit i have work to do i can't shave this yak
<rqou> wtf afaict lapack is actually pessimized for potato uCs
<azonenberg> yeah i want something (to start) that can do basic port based TCP firewalling at full 10G line rate
<azonenberg> then add stateful support
<awygle> azonenberg: put "firewall yak shave" on the calendar for next week sometime :p
<azonenberg> awygle: lol i dont have time to work on it in any detail
<azonenberg> right now starshipraider rtl and latentpacket schematic capture are what i work on to kill time while waiting for $client's code to compile
<rqou> oh what
<rqou> numpy/scipy low-level primitives can corrupt memory
<awygle> argh why don't i have more outlets in this apartment
<azonenberg> rqou: um, duh
<azonenberg> its basically raw ram access
<rqou> it's not memory-safe?
<azonenberg> imo if you're doing that might as well use C, at least you know the footgun is loaded
<azonenberg> or C++, so you can reuse the bullet :p
<rqou> why does "scientific" code suck so hard?
<azonenberg> awygle: $wife thinks i'm crazy for the number of outlets i'm putting in our new house
<azonenberg> NEC requires no point on a wall be more than 6 feet from an outlet, so basically 12 foot outlet to outlet spacing
<azonenberg> and typically you'd put one pair of outlets at each location
<azonenberg> My personal minimum is no point more than 3 feet from an outlet, so 6-foot pitch
<azonenberg> And i drop to 32" (two studs) pitch in office/lab areas
<azonenberg> And i put two pairs of outlets in each box
<awygle> wtf, where are all my power strips
<awygle> i know i own a bunch
<azonenberg> With a minimum of one dedicated 20A circuit per room, and offices/other areas that are expected to pull lots of power will get several
<rqou> oh yeah, NEC minimum outlet requirements
<awygle> unless they're still in nebraska
<azonenberg> rqou: those are stupidly lax IMO
<rqou> do you know if it's true that these requirements exist because the NEC people learned that people abuse power strips too much?
<azonenberg> Almost certainly
<azonenberg> and extension cords
<azonenberg> But they dont go far enough for me
<azonenberg> In the garage i am putting one 20A UPS-backed circuit *on each wall*
<azonenberg> And i'm putting an average of one outlet every 8 inches
<azonenberg> (2x2 NEMA 5-20R every 32")
<azonenberg> This is in addition to a second set of non-UPS'd circuits, exact topology TBD, for power hungry but non-sensitive loads like reflow ovens, soldering irons, heat guns, etc
<azonenberg> (haven't wired those up yet)
<azonenberg> rqou: re extension cords, when we bought this place
<azonenberg> the garage door openers and sump pump were all fed by "permanently installed" extension cords
<rqou> uh
<rqou> i thought that's actually explicitly disallowed?
<awygle> i am pretty sure i'm going to trip a breaker with my new toaster oven
<azonenberg> The inspector dinged it, of course
<azonenberg> But code doesnt stop a resident from doing something in their own house unless somebody finds out :p
<awygle> i may have to run a big extension cord to the kitchen or something
<gruetzkopf> hmm
<rqou> gruetzkopf: no need to tell us how europe does it better :P
<gruetzkopf> in this spaces lab i have 2*schuko every meter or so, each pair on it's own 16A breaker
<azonenberg> gruetzkopf: the UPS'd workbench outlets are mostly for relatively low power instrumentation
<azonenberg> i dont expect to max them out or even come close
<gruetzkopf> yeah, this is the high-current stuff
<azonenberg> a couple of SBCs and LCD monitors on each bench, test equipment, place to plug in a laptop/prototype, etc
<azonenberg> I'm also planning to put fiber and cat5 drops to each bench
<gruetzkopf> instruments are plugged into a UPS'ed rack pdu mounted horizontally
<gruetzkopf> fiber tbd, 2*CAT6 next to each socket here
<azonenberg> i have all of my test equipment at my current place on a single 19" rack
<azonenberg> i think 15U or so desktop
<azonenberg> i plan to get a second one since the high-up stuff is hard to reach from a seated position
<gruetzkopf> we do have a instrument shelf above the bench
<awygle> are ESD bags _actually_ conductive?
<awygle> like if i have header pins poking through one, and one of those pins is power and one is ground, is that a short?
<rqou> ugh
<gruetzkopf> the silver ones?
<rqou> lapack code is just _not good_
<awygle> yes
<whitequark> I think they're conductive but not like, very conductive
<rqou> was that a reply to me or gruetzkopf?
<whitequark> kiloohms per cm range
<awygle> hrm. probably best not to risk it on 200mils then. i'll just remove the bag.
<azonenberg> awygle: depends on how damaged the plastic is
<azonenberg> there is a pretty conductive metal layer but iirc its not on the outside
<azonenberg> it's laminated between plastic layers
<azonenberg> So unless you have HV or a puncture it wont conduct well
<azonenberg> But surface abrasions can easily expose it
<azonenberg> i wouldnt chance it
<gruetzkopf> the transparent ones are less bad than the opaque ones
<gruetzkopf> but don't
<awygle> i definitely have a puncture lol
<awygle> i removed it
<awygle> i keep forgetting i have 500ct esd bags now
<awygle> too used to conservation
<gruetzkopf> i do have a whole box of (used) esd bags that fit a 100x160 pcb with big DIN41612 connectors on them
<gruetzkopf> (i somehow use a lot of these connectors, and many "faster" ones are compatible (as in usable on the same backplane and card next to actual din41612 connectors)
<awygle> oh great my janky setup still works! that's reassuring
<awygle> i have *counts* 10 copies of the llvm source tree, that's interesting
<gruetzkopf> i don't even know how many linux and gcc trees i have on my disks
<gruetzkopf> possibly terabytes..
<rqou> arrrgh index juggling
<rqou> wtf is `1 + ( 1-K2 )*INCX` supposed to do?
<awygle> arrrrrgh this minimal reproducible example isn't and doesn't
<whitequark> hey rqou
<whitequark> how do you call a eurorack in chinese
<rqou> sorry, idk
rohitksingh_wor1 has joined ##openfpga
<rqou> ok seriously
<rqou> how tf does `1 + ( 1-K2 )*INCX` work
<gruetzkopf> yeah schroff is kinda expensive
rohitksingh_work has quit [Ping timeout: 256 seconds]
<q3k> rqou: pong?
<rqou> q3k: i just realized that you're obviously correct re: persistence after sploiting the bootrom
<rqou> because the pkc_disable fuse is set to 1 to disable asymmetric crypto
<rqou> and if you can burn fuses like you claim you should be able to do
<rqou> then all you need for persistence is to set pkc_disable to 1
<rqou> and then you need to leak the sbk, either via the sploit or via jamais vu or via the aes engine being fucked
<rqou> and you win
<rqou> so you're right that the "real sploit" can totally be a "tethered" sploit
<rqou> so, have you found it yet? :P
<rqou> (i haven't)
<rqou> q3k: anyways, does this sound correct?
<rqou> q3k: this also means that the sploit can totally be in the warmboot path
<rqou> (except that using it would be a _huge_ PITA in that case)
<rqou> also, i'm starting to suspect there may be multiple bugs to be found still
<q3k> rqou: as much as I understand fuses on there, yes
<q3k> there's also other fuses you can poke at that achieve some effects
<rqou> fa3c?
<rqou> er, *faec
<q3k> yeah
<q3k> fa8c as well, iirc
<marcan> < rqou> also, i'm starting to suspect there may be multiple bugs to be found still <- I thought I already mentioned that :P
<rqou> also why the f*ck is it pkc_disable and not pkc_enable?
<rqou> that's just obviously asking for a bug to happen
<q3k> also
<q3k> fairly sure you won't even need to leak the SBK
<rqou> oh?
<q3k> the AES checks are a fucking shitshow in their own right
<rqou> HOW CAN YOU FUCK THIS UP?!
<marcan> >nvidia
<rqou> q3k: how so?
<q3k> they appear to be two vastly different codepaths implemented by two different teams
<q3k> also
<q3k> there's some built-in keys used for some rcm (iirc) codepaths
<rqou> you mean other than all-zeros?
<q3k> and then some magic happens if you select one in particular
<q3k> yeah
<rqou> wait, WTF?!
<rqou> there's a backdoor?
<q3k> didn't read it that much yet
<rqou> address?
<q3k> possibly, possibly shitty code, possibly leftovers
<q3k> keystuff starts at 0x117000
<q3k> happy reversing :P
<rqou> wait wtf?
<rqou> i thought that was a falcon blob or something
<q3k> this might only be for devboards, though
<q3k> and for rcm, apparently
<q3k> dunno ^^
<q3k> tell me
<rqou> hmm no it's definitely keys
<rqou> wtf
<q3k> that blob seems to have a two-fold use: one for aes keys, and part of it for the XUSB controller - maybe the falcon there
<q3k> you know there's like four falcons in that SoC, right? :P
<rqou> yeah
<rqou> hmm, unfortunately i think it's pretty unlikely that a sploit giving bootrom code exec is here though
<rqou> also, disappointingly, they did remember to disable the bootrom even in the FA uart loader
<rqou> so you can't just dump bootrom by setting the FA bit
<rqou> ugh what
<rqou> q3k: i _just_ discovered that there seem to be two copies of all the verify routines
<rqou> one for RCM and one for normal
<rqou> WTF is this code?!
bitd has joined ##openfpga
<q3k> ugh, I was supposed to do actual work today
<rqou> me too
<q3k> but okay, four more hours of staring at code it is
<awygle> lol
rohitksingh_wor1 has quit [Ping timeout: 245 seconds]
<rqou> ugh
<rqou> messing with lapack code is basically reverse engineering
<rqou> also, wtf it's _super_ late
* rqou zzz
<rqou> also, i swear lapack is pessimized on potato microcontrollers
<awygle> cat, why must you lick my beard....
pie__ has joined ##openfpga
rohitksingh_work has joined ##openfpga
<rqou> ZOMG WTF
<rqou> afaict i just spent a bunch of time figuring out some code i don't even need
<awygle> whoops
<rqou> fuck lapack
<shuffle2> q3k: how did you dump the rom?
<q3k> glitch
<q3k> from a jetson
<q3k> well, G33KatWork finally ended up doing that because I was traveling :P
<shuffle2> ah, nice
<rqou> shuffle2: how about you?
pie__ has quit [Ping timeout: 256 seconds]
<shuffle2> i saw the ipatch data from switch and guessed that some entry was suspicious. someone that had dumped it via glitch confirmed and so i dumped it myself on jetson via software
<rqou> wait what
<rqou> you can dump completely from software?
<shuffle2> on tegras without this fix in fuses, yes
<rqou> wtfwtf
<rqou> so i never needed to set stuff up for glitching
<awygle> but you _learned_ something :p
<rqou> I'll look "tomorrow" since it's 5am now
* rqou zzz
<q3k> shuffle2: huh, how quaint
<rqou> awygle go the f*ck to sleep
<awygle> yeah i'm gonna try to grab 3h before work
<awygle> tomorrow will be... fun.
* awygle contemplates calling in sick
<rqou> also, patching the switch like that is useless! since the jetson is unfixed
<rqou> and it just draws attention
<rqou> fucking nvidia
<G33KatWork> you summoned me...
RaivisR has quit [Ping timeout: 264 seconds]
pie__ has joined ##openfpga
<shuffle2> it's fun to wonder what would have happened if nvidia hadn't used security by obscurity for the rom. would the bugs be ironed out by the time switch came along? kinda hard to say cause it just seems no one cared to try hacking it until switch, anyways
<G33KatWork> the fuck, shuffle2
<G33KatWork> (dumping it via software)
<marcan> well of course you can dump it via software
<marcan> it's buggy
<marcan> if you know of any of the bugs...
<rqou> yeah, i guess it's much easier if you already have the bootrom :P
<marcan> yeah
<q3k> I have a feeling doing it blindly would've been quite tricky
<G33KatWork> I'm just amazed that he found this by JUST looking at the patches
<G33KatWork> without knowing other context
<q3k> shuffle2: did you have the patch service handler code, or just the 2-byte patches into the IROM?
<marcan> but actually... I'm just going to say it's *entirely* possible to guess precisely what some of the bugs are without having any fuses, and without having the rom
<rqou> anyways, $300 💸
<marcan> if you know what to aim for
<G33KatWork> I ain't even mad
<shuffle2> to be clear i just knew a patch was suspicious because it's the only one (and the first time, including jetson, etc) that ipatch handler touches data in iram
<q3k> yes
<G33KatWork> the TX1 was my first glitching target at all. With a self-made chipwhisperer. I'm kinda amazed that I was able to pull that off at all
<marcan> let's just say nvidia may have shared code between the bootrom and other things... and you can find some interesting stuff on github :P
<marcan> I don't think anyone followed that path, but it could've well happened
<G33KatWork> shuffle2: ah, okay. I only ever had access to public stuff like the patch data itself. never the SVC handlers
<marcan> the SVC handler you can just pull from any jetson
<marcan> the first 4K of the ROM are readable as-is
<marcan> that includes the ipatch code and the uart loader
<rqou> wait, SVC handlers?
<shuffle2> they mean the fused ipatch data
<marcan> oh, the payload
<G33KatWork> well yeah, but not the actual handlers that handle the inserted SVCs
<G33KatWork> because they are in IRAM
<marcan> those weren't published? they're just part of the fuses
<marcan> (I don't know what was published)
<G33KatWork> only info I found about switch patches
<marcan> oh so they only published the registers
<marcan> not the actual fuse data they come from with the handlers
<G33KatWork> I dumped the ones from a tegra myself
<q3k> s,tegra,jetson,
<G33KatWork> yeah, stupid names
<rqou> wait, so it's not those last 4 patches but something else?
<rqou> (i never looked at ipatch data)
<G33KatWork> rqou: that's how patching works. they install an SVC instruction using IPATCH at the location they want to patch. Then they install that SVC handler that jumps into a handling routing coming from the fuses and is copied into IRAM
<rqou> what
<G33KatWork> the SVC argument determines the offset where to jump to in that patch block they copy from the fuses into RAM
<rqou> i guess that works
<rqou> but i don't see any patches that patch iram?
<rqou> or it patches data that ends up in iram?
<G33KatWork> I'd think the handler of one of these patches patches stuff in IRAM
<rqou> ah ok
<G33KatWork> and these handlers aren't public
<rqou> i see
<G33KatWork> at least I didn't find them
<rqou> hmm
<rqou> yeah, I don't see how you can get any useful information if you didn't already have a copy of the bootrom
<rqou> especially since all the "new" patches aren't in the visible part
<shuffle2> someone with code exec on switch gave me a dump of the fuse mmio page, that's all that's needed
<rqou> right
<rqou> but i didn't have that
<rqou> and still don't
<G33KatWork> huh? that's enough?
<marcan> shuffle2: the mmio page?
<shuffle2> G33KatWork: for the ipatch data, yea
<G33KatWork> I thought the patch fuses aren't aliased to that MMIO page and you need to read them manually
<rqou> they are
<G33KatWork> TIL
<rqou> anyways, afaict we really need to just find some kind of ability to burn arbitrary fuses at this point
<rqou> (starting from a secure state)
<rqou> since there's afaict an obvious logic hole to persist from that
pie__ has quit [Ping timeout: 264 seconds]
<shuffle2> maybe the ipatch data had to be re-sensed, i can't really remember. anyway i've added the dump to the wiki
rohitksingh_work has quit [Read error: Connection reset by peer]
<G33KatWork> shuffle2: thx :>
<shuffle2> yea you're right - not visible in the mmio page
Lord_Nightmare has quit [Ping timeout: 264 seconds]
scrts has joined ##openfpga
Lord_Nightmare has joined ##openfpga
ondrej2 has joined ##openfpga
<gruetzkopf> wow.
pie__ has joined ##openfpga
pie_ has joined ##openfpga
pie__ has quit [Read error: Connection reset by peer]
pie_ has quit [Read error: Connection reset by peer]
pie_ has joined ##openfpga
<mithro> Morning everyone!
azonenberg_work has quit [Ping timeout: 260 seconds]
<mithro> What was that company doing the "only CLB" FPGAs (where each cell could be fabric or logic)?
rohitksingh has joined ##openfpga
ZipCPU has quit [Ping timeout: 265 seconds]
ZipCPU has joined ##openfpga
azonenberg_work has joined ##openfpga
RaivisR has joined ##openfpga
pie_ has quit [Ping timeout: 264 seconds]
<awygle> some mornings the engine in your chest is trying to run in maple syrup or some other viscous liquid
<azonenberg_work> awygle: nothing a little WD-40 won't fix
* awygle sips his coffee
<awygle> Indeed
digshadow has quit [Ping timeout: 240 seconds]
user10032 has joined ##openfpga
<azonenberg_work> awygle: i got up at like 7am after 3 hours of sleep, debugged some FPGA clock domain crossing until i felt awake enough to drive
<azonenberg_work> Went to the house, ran a few pieces of wire while waiting for the siding guys to show up or a coworker to get online so we could discuss plans for our project
<azonenberg_work> and now i'm trying to maintain some degree of consciousness so i can actually pwn $CLIENT's gizmo
<awygle> i got up at 8:30 after 3 hours of sleep and i'm in that happy denial state of sleep deprivation where i feel fine mentally, but my physical form appears to be decaying around me
<azonenberg_work> lol
<awygle> (a thing which i found funny in my younger days but which is increasingly concerning to me as i approach my middle years)
<azonenberg_work> I find reaction time and short term memory are the first things to go when i dont sleep enough
<azonenberg_work> i'm stuck at the house until either the HVAC guy i have coming at noon, or the siding guy who's here now, finishes up
<awygle> for me it's reaction time and like... ability to people
<awygle> my ability to make eye contact goes _way_ down
<awygle> for whatever reason
<awygle> meetings today will be fun
<azonenberg_work> once they're done i'm probably going to go home and sleep, lol
<awygle> i am gonna take a nap instead of a lunch, then eat at my desk
<azonenberg_work> Then get up at... 3am? and make up the hours i missed sleeping this afternoon
<azonenberg_work> not like i can go into the office until the ferry starts running
<awygle> i'm not going to sleep until at least 6pm, if i let my sleep schedule get wonky from this i will be miserable for a week or more
<azonenberg_work> My sleep schedule is already wrecked from the weekend and it'll take me a while to reset
<rqou> we just talked about CoolMOS in class
<rqou> it's pretty cool :P
<rqou> using more dimensions than one, amazing! :P
<azonenberg_work> once i'm in this state i tend to get significant over/undershoot
<awygle> so do i, and i can't deal with that anymore. so i apply as much damping to the oscillation as i can.
<azonenberg_work> stay up 26 hours, sleep for 14, then gradually damp until i hit a sane frequency
<azonenberg_work> then slowly phase shift until i'm aligned with the work day
<awygle> rqou: lol is "superjunction" the new "superbeta"?
<azonenberg_work> i try but it's hard because damping tends to add a phase shift
<rqou> um, idk?
<azonenberg_work> i find it very hard to sleep when not tired
<azonenberg_work> I can force myself to stay up when tired, up to a point
<azonenberg_work> but i can't force myself to sleep when wide awake
<rqou> i don't follow the semiconductor trends that closely
<awygle> yeah me either which is why i only apply force to one side of the system
<awygle> i've gotten depressingly good at this
<awygle> the key is to not punch anyone
<awygle> i've never actually done that but i get very short-tempered on lack of sleep
<azonenberg_work> awygle: yeah i just find functionality generally degrades
<awygle> it reminds of being in college and playing fast-twitch flash games while drinking
<awygle> my robot unicorn attack score declined way before i felt mentally reduced
digshadow has joined ##openfpga
rohitksingh1 has joined ##openfpga
<azonenberg_work> yeah the easiest way for me to tell how sleepy i am is to try playing a FPS
rohitksingh has quit [Quit: Leaving.]
<azonenberg_work> and see how much my fragrate tanks
<awygle> lol
mumptai has joined ##openfpga
m_w has quit [Quit: leaving]
m_w has joined ##openfpga
wpwrak has quit [Read error: Connection reset by peer]
wpwrak has joined ##openfpga
rohitksingh1 has quit [Ping timeout: 260 seconds]
mumptai has quit [Quit: Verlassend]
azonenberg_work has quit [Ping timeout: 240 seconds]
<awygle> why don't more programs have things like chrome/firefox developer tools
user10032 has quit [Quit: Leaving]
rohitksingh has joined ##openfpga
rohitksingh has quit [Quit: Leaving.]
azonenberg_work has joined ##openfpga
egg|work|egg has quit [Ping timeout: 260 seconds]
<rqou> what a messy looking board
<awygle> what, because of the toporouter?
<rqou> yeah
<awygle> i actually like the toporouter
<awygle> at least a lot better than any other autorouter
<rqou> i think it looks messy and unprofessional
SpaceCoaster has quit [Ping timeout: 240 seconds]
<lain> hm
<lain> if it had decent planes it would look fine from an electrical perspective,
<lain> but I'm partial to the pre-CAD style of hand-drawn pcbs
bitd has quit [Remote host closed the connection]
<awygle> i think it looks more... futuristic somehow?
<awygle> all the 45 degree angles of conventional PCBs tend to look very retro
<lain> a recent board of mine: https://i.imgur.com/yhPH2qq.png
<awygle> this is more organic, like the hyper-advanced aliens in many sci fi shows (specifically thinking vorlons from babylon 5)
<awygle> well that board looks like a jellyfish but i think that's the color scheme
<lain> hehehe
<rqou> i think that board looks much better
<rqou> maybe it's just the planes
<awygle> really? the changing trace lines and the weird entry angles to pads make me like it less (sorry lain)
<awygle> err, changing trace _sizes_
<rqou> with the planes i seem to see it as "artsy"
<awygle> hm interesting
<awygle> #psychology
<rqou> whereas the normal TopoR output looks like "n00b"
<awygle> the normal topor output looks inhuman to me
<awygle> not noobish
<lain> that layout I did was way too difficult. PADS doesn't have the feature you desperately need for such a layout: tangent arcs
<awygle> and it makes the "professional" layouts look kind of noobish, like you're building iwth blocks/legos
<lain> I had to get them close to tanget manually
<lain> I hope that board works, it's finally arriving today after USPS took it on a cross-country tour
<lain> started at oshpark in OR, instead of going to WA it went to FL, now it's being delivered in WA as intended... about a week late :P
<awygle> lol
<awygle> my ex lived in portland and i was down there all the time, it used to drive me nuts that i couldn't just drive to lake oswego and pick boards up
<lain> haha
<rqou> hmm, looking again it seems like TopoR is still a bit too "angular" to feel "artsy" to me
<awygle> i can see whyyou might feel that way
<awygle> i don't think that board is a great example of cool-looking topor routing
<rqou> that's certainly "unique"
<awygle> everything looks like a hairball if you leave all the layers on
<awygle> but yeah that doesn't look ideal lol
<lain> whee
pakesson has quit [Ping timeout: 255 seconds]
<awygle> hm, it's interesting how sometimes i still estimate difficulty of a task in computing wildly incorrectly
<awygle> sometimes i'll google something and expect to get an algorithm that fits on a napkin and instead i get "this is an open research problem, the best solutions are O(n^3+d^3/5+q)"
<awygle> and sometimes i think something's going to be essentially impossible and i get "there's been a linux tool to do this for 40 years and it runs in O(n) time"
<rqou> lol you just haven't been trolled hard enough in cs170 yet :P
<awygle> that's cuz i didn't take it lol
<awygle> ... did i? i don't think i did.
<awygle> anyway, tree diffs of s-expressions - more complex than i would have thought
<rqou> wait, it's not just using a tree GI algorithm? should be polynomial time
<rqou> although graph isomorphism is a "fun" problem
<awygle> yeah even that is more complicated than i expected
<rqou> great for your "i only want people who went to a $FANCY_SCHOOL but HR says i can't say that" whiteboard interviewing :P :P :P
<awygle> lol
<rqou> "doesn't have to be UCB, other $FANCY_SCHOOLs are fine too" :P
<rqou> too real?
<awygle> a bit :p
<awygle> (there are no women engineers at my current employer for example)
<rqou> wat
<rqou> that's actually worse than i expected
<awygle> well idk how typical it is
<awygle> it's just something i've noticec
<awygle> at this particular company
<awygle> actually we seem to not be great at recruiting generally. i had a very unpleasant recruiting experience and almost didn't take the job because of it.
<awygle> which is why i was so surprised by how well run the place is
pakesson has joined ##openfpga
<lain> the worst jobs I've had were the best hiring and onboarding experiences
<lain> this is also generally true of the companies I've worked with -- the easiest to get going with have almost always been the worst to work with long-term
<lain> I guess they optimize for the bait & switch :P
<awygle> lol yeah
<rqou> offtopic: according to the latest electroboom, canada doesn't use the weird US 180 degree split phase system?
<rqou> apparently houses just get 2 120-degree phases
<balrog> US has a mix of split-phase and three-phase for commercial
<rqou> yeah i know
<rqou> also high-leg-delta systems
<balrog> yeah... LOL
<balrog> rqou: there's also this bizarre thing: https://www.mikeholt.com//forum/Forum1/HTML/005278.html
<rqou> power electronics is full of all sorts of weird bullshit
<rqou> this is called "legacy systems" :P
<balrog> note: "It is still used in parts of Philadelphia, PA"
<awygle> hm, i wonder if i should be suspicious of this chinese roomba knockoff
RaivisR has quit [Ping timeout: 264 seconds]
<lain> awygle: marco reps did a video on (one of?) the chinese roomba ripoffs and iirc he liked it. might be worth watching his video if you're considering it
<lain> though he was mostly using it to harvest cheap LIDAR I think
<awygle> lol
<awygle> my cats would _hate_ this
<awygle> oh wow the new version also mops