<sb0>
nevermind, it still crashes when i don't flush... this bug is pissing me off seriously
<cr1901_modern>
kristianpaul: migen/actorlib/spi.py implements an SPI driver I believe
<stekern>
sb0: I was about to say that flush == invalidate since we are using writethrough cahce, but you actually used invalidate. either case, that's the way to invalidate cache, and as far as I know, it works flawlessly.
mumptai has joined #m-labs
sturmflut-work has joined #m-labs
bentley` has quit [Ping timeout: 255 seconds]
bentley` has joined #m-labs
_florent_ has joined #m-labs
fengling has joined #m-labs
nicksydney has quit [Read error: Connection reset by peer]
nicksydney has joined #m-labs
mumptai has quit [Ping timeout: 255 seconds]
<mindrunner>
is there misoc source available to read/write sd cards on pipistrello?
<sb0>
"Hello baby, Welcome to my shop! happy shopping! The best for you, love you for ever!"
<sb0>
the gasket material on the kf16 rings I have ordered looks a bit cheap and non-viton, but the rest is fine.
<sb0>
maybe it ends up holding vacuum correctly, I don't know
<mumptai>
the prices are pretty low
<sb0>
and well, those rings *were* cheap ;)
<sb0>
less than one euro a piece
<mumptai>
how much vacuum do you need?
<mumptai>
well, 3 yuan for a seal, how much can one expect
<sb0>
I have some kf16 viton seals I dumpster-dived at ethz but no centring rings, I can sort this thing out ;)
<sb0>
the centring ring from taobao looks totally OK
<sb0>
for now, not too much vacuum, I don't even have a turbo yet
<mumptai>
i'd still want a vacuum oven for drying samples, but didn't have the money for the vacuum parts ;)
<sb0>
order from china ;)
<mumptai>
okay, sounds like serious high-vacuum stuff
<sb0>
if you don't get racketed by the customs, it should be cheap
<mumptai>
even with 40% tax it would be cheaper than many ebay deals
<sb0>
those kf16 rings are for a thermistor gauge I also got off taobao
<sb0>
it cost 10€ or something, new
<sb0>
absolutely no documentation, I only found out it was thermistor by measuring the pins and heating the gauge from the outside
<sb0>
well, not absolutely
<sb0>
there is a crappy quarter-page note that comes with it, all in chinese, without much useful data
<sb0>
the thing itself looks very well made
<sb0>
I guess the procedure is to put it in vacuum, measure the thermistor, and increase the filament current until the thermistor reading is the same as when the gauge is heated from the outside to a "reasonable" temperature
<sb0>
then calibrate against an existing gauge
<whitequark>
sb0: uh, no
<whitequark>
I believe the proper calibration procedure is to have two gauges at once
<whitequark>
since the thermistor is nearly linear
<whitequark>
you calibrate it at air and vacuum
<whitequark>
sb0: btw which was the hk hackerspace?
<sb0>
two gauges at once?
<whitequark>
yeah
<sb0>
dimsumlabs.com
<sb0>
what do you mean?
<whitequark>
pump, your gauge, reference gauge
<whitequark>
your system
<sb0>
yes, that's what I meant
<whitequark>
ah
<sb0>
the "procedure" i talked about is about avoiding burning out the gauge by sending too much filament current
<whitequark>
gotcha
<sb0>
you want to do it in vacuum as this is when the temperature gets the highest
<sb0>
what's the typical temperature at the thermistor for those gauges btw?
<whitequark>
never used 'bare' ones
<whitequark>
I generally only use gauges with an integrated controller, it's not worth doing your own circuitry usually
<whitequark>
you want someone else to do the bridge/amp/HV supply and figure out the linearization
<sb0>
those controllers are expensive. and a controller for a thermistor gauge is just a lm317 + an ohmmeter
<sb0>
yes, the ionization gauges are more painful
<whitequark>
they often aren't
<whitequark>
edwards pirani is ~$100 almost-new, edwards magnetron is ~$120 almost-new
<whitequark>
with analog output and a proper datasheet
<sb0>
also I guess that for UHV you can use the ion pump as gauge
<whitequark>
yes
<whitequark>
though if it's contaminated, it's not very precise
<whitequark>
and it starts to leak eventually, too
<whitequark>
(leak current)
<whitequark>
bonus points: all edwards gauges have the same pinout
<whitequark>
i.e. digital/analog i/o and power at predefined pins, plus ID resistor
<whitequark>
I'm going to do a POE-powered controller that allows you to query any of these just by plugging it in
<sb0>
plus price through the roof if you buy new
<whitequark>
well, why would you do that? :]
<whitequark>
magnetron gauges are literally forever
<whitequark>
pirani are nearly forever unless you do something really dumb
<whitequark>
(magnetron gauges disassemble and then you can clean the tube or replace the dirty parts for nearly no cost)
<sb0>
gauge reading over ethernet?
<whitequark>
yup
<whitequark>
when i get to do process control properly, everything will be connected via UDPv6 and powered via PoE
<whitequark>
I considered something like rs485 but it has no real benefit and you need to do your own debug tools
<sb0>
if you're going to go through the hassle of building circuitry, doing an adaptable circuit that can plug to chinese gauges is a much more interesting investment than the expensive or non-reproducible edwards stuff
<whitequark>
disagree
<whitequark>
interface to edwards is reading a single analog pin plus sometimes writing a single digital pin
<whitequark>
interface to different chinese gauges is hours and hours of work
<whitequark>
sure if you'll need dozens of them, it gets worth your time at some point
<sb0>
well i'd love to see more oshw/hackerspace people get into this...
<whitequark>
i usually look at my hourly rate multiplied by the amount of hours needed to learn about, design, fab, assemble, debug and publish all that, and compare it with whatever i can buy used
<whitequark>
with gauges, it is not even a question
<whitequark>
OSHW? but the chinese gauge itself is not OSHW
<whitequark>
neither you really want to be building those...
<sb0>
nah, but a simple PCB that contains a current generator and a ohmmeter for connecting to thermistor gauges, plus ethernet/rs485/usb/whatever interface, would be interesting imo
<whitequark>
btw, why thermistor and not pirani?
<sb0>
well, same for pirani
<sb0>
or TC
<whitequark>
possible
<sb0>
TC is LM317 + instrumentation amplifier
<whitequark>
I want to make a reusable PCB with an STM32F4 core + PoE splitter + buck + ethernet jack
<whitequark>
interested?
<sb0>
I built one to hook up to a old USSR gauge I got from Poland
<whitequark>
and basically an array of pins you can connect your control or instrumentation equipment to
<whitequark>
and a software stack
<sb0>
it worked only with minor hassle due to stupid things I did with building the amp
<whitequark>
so that you could build a system in essentially 'plug & play' mode, just by attaching stuff to the PoE switch
<sb0>
mostly because I thought the TC was galvanically isolated from the filament... it wasn't
<whitequark>
hah
mumptai has quit [Ping timeout: 272 seconds]
<sb0>
what do you mean by "ID resistor"?
<sb0>
there's a resistor on the active gauge that you can set and use to identify each gauge on the network?
<whitequark>
a resistor that tells whatever the gauge is connected to, the type of the gauge
<whitequark>
which determines what appears on analog out and whether you need to do something with digital in
<whitequark>
like turning on the magnetron gauge only when it's at -1 or so
<whitequark>
(or it arcs)
mumptai has joined #m-labs
mumptai has quit [Ping timeout: 250 seconds]
<cr1901_modern>
Wow, Pirani gauges are significantly cheaper lightly used o.0;
mumptai has joined #m-labs
sturmflut-work has quit [Quit: Leaving]
<sb0>
basic vacuum system is almost complete. should receive the pump adapter tomorrow and then first plasma :)
<whitequark>
what do you use for a chamber
<sb0>
stainless steel pipe with what should have been DN100 flanges (but we fucked them up) machined at electrolab
<whitequark>
ah
<whitequark>
my chamber should be done in a few days too
<sb0>
TIG welded (we fucked that up a bit, too)
<whitequark>
i'll get some flanges fixed up and then give it to a professional welder
<whitequark>
because i am in no way qualified to do SS this thin
<whitequark>
might even ask him to give me a few lessons, because holy fuck this is hard
<sb0>
oh, the welds are actually pretty good. the main issue was lack of shielding gas on the other side
<whitequark>
yes
<whitequark>
shielding gas is an absolute necessity to avoid sugaring
<sb0>
partly, because we forgot one of the plastic covers in one of the flanges during welding. it made a nice mess...
<whitequark>
my SS is 2mm thick and there's nearly no space between "it doesn't make a puddle" and "it melts through"
<whitequark>
which both current and arc length affect
<sb0>
have you seen Ben Krasnow's video on welding soda can?
<whitequark>
I can do a semi-decent bead or corner weld now but the other side is a horrible mess, also I have trouble keeping arc length constant and short
<whitequark>
hardcore
<whitequark>
"a bit of a challenge" lol
<whitequark>
his torch is enormous, wp-28
<whitequark>
or is that 27
<whitequark>
i use wp-9
<sb0>
the welds are all on the vacuum side, so the shielding gas mess hopefully should have little effect
<sb0>
the chamber went down to 10-3 without any trouble already
<whitequark>
yeah, I now realize why the welds have to be on the vacuum side :D
<whitequark>
lol what he holds the torch by the NOZZLE?!
<sb0>
yeah. how safe is that?
<whitequark>
well it can get red hot
<sb0>
and electrically?
<sb0>
can you get a nasty shock?
<whitequark>
electrically a welder is harmless to humans
<whitequark>
I got shocked by the HF ignition in mine a few times
<whitequark>
it's a bit more than, say, a lighter piezo
<whitequark>
but not much
<whitequark>
and the arc itself is too low voltage to really go through your skin. the hazard is heat, not electrocution
<whitequark>
besides, alumina is one of the best insulators there are
<whitequark>
"it doesn't need much cleaning action" that's incorrect
<whitequark>
the "clean" position is running current in reverse polarity to get the aluminium oxide off the puddle
<whitequark>
which *will* form no matter what you do
<whitequark>
though it's true that you don't need much of the cycle to be reverse polarity
<whitequark>
wtf, an inveter welder with a *sparkgap*?
<whitequark>
well, yes, but you can avoid the neon lamp
<whitequark>
lol
<whitequark>
(joule thief) they're similar in that they're both self-oscillating nonsense
<whitequark>
but the joule thief is arranged a bit differently
<whitequark>
you don't have a lot of design space with a single BJT :D
<whitequark>
oh btw, if you take the joule thief circuit
<whitequark>
and wind the two coils it has on a TV flyback transformer
<whitequark>
you can make it do some really nice HF arcs
<whitequark>
I did it in HF, it was fun
<whitequark>
*HS
<sb0>
yes. i did the same thing when i discovered the joule thief circuit =]
<whitequark>
i didn't really understand electronics enough to design analog stuff from scratch back then, but i was pretty excited when someone shown me this
<whitequark>
sb0: some really fun self-oscillating nonsense is contained inside a CFL lamp
<whitequark>
pin 8/11 of TL494 are collectors of output BJTs, to save you looking up a DS
<whitequark>
(and TL494 is a PWM driver with an oscillator, in case you haven't encountered it)
<sb0>
whoa, only a single feedback line
<whitequark>
yeah
<sb0>
this 3.3V stabilizer circuit looks crazy
<whitequark>
yes
<whitequark>
never figured out how it works
<whitequark>
more interestingly though, look at T2
<whitequark>
and the way IC1 regulates the voltage
<sb0>
see
<sb0>
seems there is some diode switching wizardrey to mix the right proportion of 5V and -5V that then gets filtered by the coil and cap
<sb0>
it's connected before the rectifiers when it's still AC and reminds me of PIN diode switches for RF
<whitequark>
hum? what do you mean?
<sb0>
this schematics makes me feel like I suck at analog electronics
<whitequark>
or rather which components?
<whitequark>
it definitely has this effect :D
<sb0>
D29/D32
<whitequark>
oh you mean the 3.3V stabilizer
<whitequark>
yeah
<whitequark>
ohhhhh I just remembered why and how
<whitequark>
see the small arrow thing?
<sb0>
yes
<whitequark>
it's a dedicated wire in the ATX connector that senses the 3.3V level on the motherboard
<sb0>
ah, so they put the wiring resistance into the loop?
<whitequark>
yes
<whitequark>
and linearly regulate it using Q13
<sb0>
is that all?
<whitequark>
I think so
<sb0>
why would they bother putting a 100V capacitor near Q13 then?
<sb0>
D32 also has the wrong polarity for powering a linear regulator based on Q13, and that 100V capacitor is too small for a filtering cap
<whitequark>
so... D29 is a full wave rectifier. see, it connects to -5 and +5 so that it could source current regardless of the cycle
<sb0>
looks more like Q13 is messing with the high-power switching done by D29/D32
aeris has quit [Ping timeout: 276 seconds]
<whitequark>
agreed that Q13 is not a part of a linear regulator
<whitequark>
looking closer, it seems like it's a kind of a buck converter?
antgreen has quit [Remote host closed the connection]
<whitequark>
oh
<whitequark>
TL431 is a shunt regulator
<sb0>
yes, i wonder why they drew it that way
aeris has joined #m-labs
<whitequark>
it seems rather oddly connected
<whitequark>
you're supposed to have a divider from VO to VI, and there's C33 in the way
<sb0>
yes, and no filtering cap
<sb0>
I guess they use it for AC
<whitequark>
the datasheet warns that TL431 is prone to oscillation
<sb0>
somehow
<whitequark>
especially if you use it to drive a capacitive load
<sb0>
so, Q13 is sending some of the filtered 3.3V back into the transformer, right?
<sb0>
it's a PNP in common emitter
<whitequark>
uh, I'm not sure that makes sense
<sb0>
D32 and the 10nF/100V cap are perhaps for protecting Q13 against high voltage spikes from the transformer
<whitequark>
D32 should work as a rectifier here
<sb0>
and there's L6 between the transistor and the transformer ...
<sb0>
mh
<sb0>
how could that possibly work
<kristianpaul>
cr1901_modern: i dont see any actorlib in migen's github
<sb0>
the upper part of D29 makes a half-wave rectifier that should generate 5V already
<whitequark>
D29 is a fullwave rectifier
<sb0>
yes, but it's bottom part is connected to weird stuff
<whitequark>
ok I figured out what R73 and C33 are for
<sb0>
whereas the upper part is like a half wave rectifier
<whitequark>
the thing is, TL431 is not a programmable zener. or at least, it's *actually* an opamp with a fixed bandgap reference connected to negative input
<whitequark>
so it should really be drawn as an opamp, and then those R/C become feedback
<whitequark>
but the rest is doing something weird
<sb0>
could be that Q13 is discharging the excess voltage during one half of the cycle
<whitequark>
that just seems weird
<sb0>
and huh, 15 ohm bleeder resistor? it seems efficiency happens elsewhere
<sb0>
that dissipates 730mW
<whitequark>
bleh. let me model this in LTspice
<whitequark>
I'm just curious enough
<sb0>
I don't see Q13 doing anything else than discharging excess voltage
<sb0>
maybe the coil at the right of D29 is what prevents it from reaching the full voltage during one cycle
<sb0>
along with the transformer's leakage inductance
<whitequark>
that should be just a filter...
<sb0>
then how can it possibly be less than 5V after one cycle?
<kristianpaul>
cr1901_modern: oh wait.
<sb0>
if there is no significant reactance in the circuit, the upper part of D29 would rectify half the wave and send the 3.3V terminal to 5V
<whitequark>
what if during the upper half, Q13 is open and bleeds it into -5V, and during the lower half, L6 is providing that reactance?
rjo has quit [Read error: Connection reset by peer]
<whitequark>
that's just some bizarre asymmetry
<whitequark>
I don't get it
<sb0>
by "open" you mean it conducts?
<whitequark>
yes
<sb0>
how can the Q13 driver detect which part of the wave the circuit is in?
<whitequark>
D32 will prevent it from opening in the other half
<sb0>
maybe the transformer is designed to have a large leakage inductance, and only charges the output capacitors by a small amount at each cycle
rjo has joined #m-labs
<whitequark>
the ATX transformers have no gap
<sb0>
you may be right...
<sb0>
well
<sb0>
no
<sb0>
there's R71
<sb0>
it would prevent any current significant enough to discharge any overvoltage
<sb0>
Q13 is probably doing some sort of low-power diode biasing
<sb0>
it would help to see what it actually looks like and what power it can handle ...
<sb0>
does this circuit even work or is the schematics incorrect?
<whitequark>
the schematics is correct
<sb0>
oh
<sb0>
could it be something like a magnetic amplifier?
<sb0>
you saturate the inductor core with DC to reduce the inductance
<whitequark>
hrm
<whitequark>
funny; I've just googled some more circuits (in RU) and it calls the TL431 part "magnetic stabilizer"
<whitequark>
"magnetic amplifier" seems to be another name
<sb0>
+3.3V rail is set by a so-called magnetic amplifier (magamp) comprised of saturable inductor L8, bipolar transistor Q15, diode D14, and control circuitry. Initial inductance of L8 is much higher than L9, so at the beginning of each switching cycle L8 prevents current from flowing through D28. Then L8 rapidly saturates and D28 begin conducting. The blocking time depends on the reset current through Q15 and D14, which in turn is set by shunt regulator M9.
<whitequark>
right but L6 is only engaged half of the cycle
<whitequark>
maybe they found that enough?
mumptai has quit [Ping timeout: 250 seconds]
<whitequark>
sb0: also did you figure out how T2 operates?
<sb0>
hmm the only particularly weird thing i see right now is the connection to the -12 output
<whitequark>
well.. on a single core there is the coil through which goes primary current
<whitequark>
two coils controlling the bases
<whitequark>
and two more coils connected to TL494
<whitequark>
why does primary go through the control transformer? :]
<sb0>
hmm... overcurrent protection?
<whitequark>
overcurrent protection also uses that
<whitequark>
but the idea is that it's self-oscillating nonsense that's also regulated by TL494
<whitequark>
every cycle, the current starts to go through C8/R4 thus opening one of Q1, Q2
<whitequark>
which remain open until the TL494 activates, effectively shorting the transformer
<whitequark>
and abruptly stopping the conversion cycle
<whitequark>
and the overcurrent protection just shorts it out entirely
<sb0>
so it's a high frequency oscillator PWMd by the lower frequency TL494?
<whitequark>
it never actually oscillates even a single full cycle, I think
<whitequark>
although I might be mistaken
mumptai has joined #m-labs
<whitequark>
oh
<whitequark>
not quite
<whitequark>
I found a proper explanation in RU
<whitequark>
the issue is that this PSU needs power BJTs as Q1/Q2 and those require large base current
<whitequark>
but there are no drivers
<whitequark>
and TL494 is really weak
<whitequark>
so it injects a bit of current into T2, which slightly opens Q1 or Q2
<whitequark>
which makes more current flow through the primary and also T2
<whitequark>
which opens Q1 or Q2 even more
<whitequark>
and then at some point feedback makes TL494 short T2, as I've said, and the cycle ends
cr1901_modern has quit [Read error: Connection reset by peer]
<whitequark>
so it can't /really/ oscillate but it has a positive feedback not unlike those in an autogenerator
cr1901_modern has joined #m-labs
antgreen has joined #m-labs
mumptai has quit [Ping timeout: 256 seconds]
mumptai has joined #m-labs
<GitHub37>
[pyparser] whitequark pushed 1 new commit to master: http://git.io/vJkB2
mumptai has quit [Remote host closed the connection]
<cr1901_modern>
sb0: I added Windows support to Migen simulations. Because Windows doesn't have a AF_UNIX type packet, I had to use TCP/IP. I'll post a patch in a bit after I work out some issues
<cr1901_modern>
Actually, I don't think this is going to work... I thought TCP guaranteed sequential delivery, but I'm sure as hell not getting that using it as IPC o.0;
<whitequark>
TCP guarantees sequential delivery
* cr1901_modern
looks at the test bench again to see if he missed something...
<cr1901_modern>
Okay nevermind, it actually is working as intended. The graycounter.py example uses a random seed, so the some of the output looks out-of-order
siruf has quit [Remote host closed the connection]
siruf has joined #m-labs
<cr1901_modern>
Python's not letting me close the socket without erroring out... great