whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.irclog.whitequark.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
redstarcomrade has joined #glasgow
marcus_c has quit [Ping timeout: 255 seconds]
redstarcomrade1 has joined #glasgow
marcus_c has joined #glasgow
redstarcomrade has quit [Ping timeout: 264 seconds]
marcus_c has quit [Ping timeout: 255 seconds]
notgull has quit [Ping timeout: 252 seconds]
notgull has joined #glasgow
redstarcomrade1 has quit [Read error: Connection reset by peer]
marcus_c has joined #glasgow
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
notgull has quit [Ping timeout: 252 seconds]
notgull has joined #glasgow
notgull has quit [Ping timeout: 264 seconds]
bvernoux has joined #glasgow
dfriehs has quit [Read error: Connection reset by peer]
alethkit has quit [Read error: Connection reset by peer]
lane has quit [Remote host closed the connection]
chipb has quit [Remote host closed the connection]
pitust has quit [Remote host closed the connection]
lane has joined #glasgow
pitust has joined #glasgow
chipb has joined #glasgow
alethkit has joined #glasgow
dfriehs has joined #glasgow
chipb has quit [Remote host closed the connection]
dfriehs has quit [Remote host closed the connection]
lane has quit [Remote host closed the connection]
pitust has quit [Remote host closed the connection]
alethkit has quit [Remote host closed the connection]
lane has joined #glasgow
pitust has joined #glasgow
chipb has joined #glasgow
dfriehs has joined #glasgow
alethkit has joined #glasgow
siriusfox has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
siriusfox has joined #glasgow
<Xesxen> Whoo, i got a shipment notification :)
<ari> same! :3
<FireFly> oh, same
<FireFly> nice
FFY00 has joined #glasgow
omnitechnomancer has joined #glasgow
<omnitechnomancer> \o/
chaoticryptidz has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
chaoticryptidz has joined #glasgow
theorbtwo[m] has joined #glasgow
<theorbtwo[m]> Me too! Excited!
<whitequark[cis]> it came up just now so i thought i'd share a fact about the design intent that went into the Glasgow revC, namely the safety mechanism
<whitequark[cis]> the safety mechanism is intended to positively prevent a potentially dangerous action (applying a voltage to something you're not intending to apply voltage to; or applying a stimulus more generally) from occurring when you don't want it to occur
chaoticryptidz has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
chaoticryptidz has joined #glasgow
<whitequark[cis]> as you probably can tell from the name, the "E-STOP/RESET" button doesn't toggle a pin of an MCU or the FPGA, which could, in principle, do nothing if you had a failure in the FX2 (hardware or software) or the FPGA (hardware or bitstream). no, it resets the entire device, which is also built to disable all power output and signal output when it's reset
bvernoux_ has joined #glasgow
<whitequark[cis]> this has the cost of losing all of the state you might've had, which isn't enormous but it's nontrivial, and I actually spent a bunch of engineering time making sure that reloading a bitstream that you've been just using before doesn't take any extra time, by building a really robust (there's no way to clear the cache because it's built in such a manner that we don't anticipate that ever being necessary) transparent bitstream cache
<whitequark[cis]> so, why this design? most engineers would probably hang it to an interrupt pin (not an NMI# since that's inavailable, but an interrupt that's as least likely to be disabled as possible), write an ISR and call it a day
<whitequark[cis]> it's actually partly inspired by firearm engineering, where some gun designs have been built with "safeties" which, for example, prevent the bit of metal that's under spring tension from moving, but do absolutely nothing to prevent the bit of metal that's actually firing the cartridge from moving. so if you drop it, it can fire, and injure or kill you
bvernoux has quit [Ping timeout: 256 seconds]
<whitequark[cis]> I figured that if I'm going to put a safety mechanism on--the only thing graced with an actual physical button--it better actually be safe, not just in the normal conditions, but in as many anticipated conditions as is practically feasible
<whitequark[cis]> s/on/in/
<theorbtwo[m]> Seems like a quite sensible design choice... Why does this feel like you are warning us of something?
<whitequark[cis]> interestingly, there's not only a button, but a capacitor too (C89), which makes sure the button keeps operating reliably even if you don't use it for a long time and the contacts oxidize slightly
<whitequark[cis]> hm
<whitequark[cis]> I suppose that if you want to take a warning out of this reminiscence, it is that you're buying devices whose designer is a catgirl that will take inspiration from a handgun when building something that debugs electronics
<theorbtwo[m]> fair enough.
<whitequark[cis]> but mostly it is that I think functional safety is a really interesting topic, and cross-domain knowledge transfer can happen in unusual ways
<theorbtwo[m]> Huh. ...and I just realized what didn't seem right about the model firearm I recently 3d printed - it doesn't have a safety. (Looking at Wikipedia, that might be historically accurate - the gun it is based on had a "safety notch".)
<whitequark[cis]> anyway, given [this bug](https://github.com/GlasgowEmbedded/glasgow/issues/552), extensive use of the e-stop button is encouraged. train yourself to hit it anytime you do anything or anytime the device does anything weird
<whitequark[cis]> the bug will be fixed but the reflexes will still do you good
<SnoopJ> somehow misread that as "hitting the emergency stop on a train is encouraged", might be time for a cup of coffee.
bvernoux_ has quit [Quit: Leaving]
<violetblob[m]> It shipped!
violetblob[m] has joined #glasgow
<whitequark[cis]> nice!
<ari> looking forward to having nicer probe cables than the ones i use now ;)
chmod750[m] has joined #glasgow
<chmod750[m]> Is there any article in addition to the documentation (even if not official one) in order to get a usage example?
<whitequark[cis]> just to make sure: you've read https://glasgow-embedded.org/latest/use/basic.html, right?
<chmod750[m]> 🙂 Yes, already read it thanks.
<whitequark[cis]> we should probably record a bunch of videos or something
<chmod750[m]> Just using the glasgow on a random target would be perfect
<whitequark[cis]> what kind of target? (are you an infosec researcher?)
<chmod750[m]> Yes I am 🙂
<whitequark[cis]> esden: we should probably mail folks a survey for what's their field and what are they using glasgow for, to get some idea of the demographics
<whitequark[cis]> when the backer orders are fulfilled I mean
<chmod750[m]> An example would be I have a webcam and I read its firmware / modify it.
<whitequark[cis]> in that case I would start by locating the SPI flash, where the firmware is usually stored
<whitequark[cis]> then you'd need to connect to it; desoldering and socketing the memory IC is always an option, but keeping your target in reset and using a SOIC clip is also an option if you have those
<whitequark[cis]> well, or you can always just solder a bunch of wires to it however you like, with a connector perhaps
<whitequark[cis]> (I've done all of that for different targets)
<chmod750[m]> yes sure but it is more to have the global picture with the glasgow (even if it is just one example). it would be useful.
<whitequark[cis]> true
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
maj1030[m] has joined #glasgow
<maj1030[m]> I do believe one of those is on its way to me now, nice!
redstarcomrade has quit [Read error: Connection reset by peer]
esden[m] has joined #glasgow
<esden[m]> maj1030 (@_discord_707920032809746462:catircservices.org) congrats 🎉 🙂
<omnitechnomancer> Fulfillment continues apace?
dne has quit [Remote host closed the connection]
dne has joined #glasgow
galibert[m] has quit [Quit: Idle timeout reached: 172800s]
<chuckmcm[m]> Oddly enough, in the world of military hardware, this could be the 'zeroize' button which has very similar requirements (in addition to safeing everything it destroys key material0. I worked with a team building an SDR for military applications and we had a number of long and interesting conversations about it and the impact of using it "accidently." Like Glasgow it had a an FPGA at its core. It also had the effect of removing the key
<chuckmcm[m]> used to decrypt the SPI Flash that programmed the device so once used, the device was "dead" until it went through refurbishment.
<vegard_e[m]> I was involved in a functional safety project once where emergency stop was not the safe state
vegard_e[m] has joined #glasgow
<vegard_e[m]> IIRC there were two out of band override signals, one being emergency stop, the other being a controller override to a safe setpoint or something, and the latter had priority
<whitequark[cis]> ouch
<josHua[m]> yeah, we have been having these discussions around the X1Plus custom firmware for the Bambu printers. currently there is a button on the top of it that has this label (image from Reddit), which, you might think, is an 'emergency stop' button, but is actually a gentle suggestion to the AP that it do... something... to consider making the 20,000m/s^2 X-Y gantry with a 200C hot glue gun on it pause its work
<josHua[m]> and so there are questions as to 'what is the safest thing for this button to do?'. the thing that it currently does, which is 'finish some movements, then eventually return the carriage to the rear left of the printer' is definitely wrong. but for instance: an obvious thing for it to do would be for it to instantly cut current to all the steppers and heaters. but this may not be good: now you have a 200C nozzle sitting there in close
<josHua[m]> contact to something on the bed, prepared to melt things at random!
<vegard_e[m]> for a 3d printer, it'd make sense to lift the nozzle before stopping
<josHua[m]> yeah, in my mind, lowering the bed 10mm with minimal motor current, then cutting all the steppers and heaters, is probably the most obviously right thing, but even that is not exactly a 'stop'
<vegard_e[m]> I'd argue that the forces involved in a typical desktop 3d printer poses a lot less risk than the temperatures
<josHua[m]> there are pinch possibilities of fingers in timing belts
<vegard_e[m]> I didn't say zero risk, just a lot less
<josHua[m]> but yes. my actual point that is relevant to the discussion at hand is that e-stops are all a balance of risks
<vegard_e[m]> yep
<vegard_e[m]> the project I mentioned above were related to active heave compensating winches on ships, dead stopping the winch when it's lifting a subsea load risks tipping the ship, so the safe state is a basic torque controller that lets it maintain a reasonable wire tension even when the main controller is malfunctioning
<Attie[m]> industrial control systems have a fun time trying to balance "safety", "reliability", etc...
oakwhiz[m] has joined #glasgow
<oakwhiz[m]> something just showed up in the mail
<oakwhiz[m]> it has edible packing peanuts and says glasgow on it
<whitequark[cis]> nice!
<whitequark[cis]> mmmm.... packing peanuts
<oakwhiz[m]> can confirm that the non food grade starch does not taste like anything good or bad
<whitequark[cis]> wait are they literally intended to be edible
<oakwhiz[m]> Edible for microorganisms I usually dump them in the compost
<oakwhiz[m]> I think the manufacturers advise against trying to eat them since they aren't controlled for food safety
<whitequark[cis]> eating a packing peanut just to feel something
jstein has joined #glasgow
<cyrozap> I just received my order! No idea what I'm going to do with it yet, but I'm glad it's finally here.
<whitequark[cis]> \o/
<oakwhiz[m]> OK so someone saw my glasgow and said it's a wired flipper zero
<whitequark[cis]> they're not really wrong
<whitequark[cis]> i was thinking about doing a wireless version of glasgow before discovering flipper and deciding that it's good enough
<whitequark[cis]> (unsure if it is tbh, but also revE would probably work just fine with an RF frontend anyways)
<oakwhiz[m]> plus gnu radio exists for more complicated setups anyway
<whitequark[cis]> gnu radio made me feel like i'll never be able to do any sdr anything
<whitequark[cis]> the one thing that made quadrature modulation actually click was asking my headmate to explain it and reading her very nicely written ipython notebook demonstrating the topic
<theorbtwo[m]> It can be really overwhelming.
<whitequark[cis]> ... which was also probably the one time in my life i felt like i understood something after reading an ipython notebook ...
<oakwhiz[m]> an XOR gate is 1-bit analog double sideband modulation
<whitequark[cis]> these are definitely words
<oakwhiz[m]> I will never think of XOR gates as normal because of that
cr1901 has quit [Read error: Connection reset by peer]
<oakwhiz[m]> The connection between the analog and digital worlds reminds me of the Richard Feynman analysis of the Connection Machine message router. He made a bunch of differential equations out of the router logic and nobody understood whether the analysis was sensible so they ignored him and just added a safety margin that Feynman didn't think was needed
<oakwhiz[m]> They had some kind of problem finalizing the design, like they couldn't fit everything on the chip, so they ended up listening to the advice and it turned out apparently that it was correct
<omnitechnomancer> XOR doesn't sound very multiplicationy to me
<oakwhiz[m]> nature seems to think it's a multiplier
cr1901 has joined #glasgow
<cyrozap> I think I'd want a multi-gigabit SERDES glasgow before a wireless one. I already have plenty of SDRs (way too many, actually), and I think it would be useful to be able to explore protocols like USB 3.x, HDMI, DisplayPort, SAS/SATA, PCIe, EPON/GPON/XGS-PON, and more, all using one reconfigurable device.
<cyrozap> No idea how feasible that would be, though. I assume a device like that would cost in the few-thousand-dollar range, at least, and we'd need open toolchain support for an FPGA with >10G transceivers.
<vegard_e[m]> if you treat your binary states as +1 and -1 instead of 0 and 1, it does
notgull has joined #glasgow
notgull has quit [Ping timeout: 264 seconds]
notgull has joined #glasgow
<oakwhiz[m]> all I have is a capacitor so I guess I get 0.5 and -0.5
<omnitechnomancer> Does that mean 0 is +1? In that mapping?
<oakwhiz[m]> it also doesnt really matter most of the time whether you used an xor or xnor
<oakwhiz[m]> do you care if your sine wave started at 0 or 180 degrees
<omnitechnomancer> The demodulator is going to lock on the 180 degree out of phase carrier sometimes anyway
<oakwhiz[m]> if you're building funny radio gadgets you can ignore it unless you're doing weird physics experiments or phased arrays or something
<oakwhiz[m]> then you'd probably want some performance, which is not gonna happen with logic gate abuse lol
jstein has quit [Quit: quit]
<omnitechnomancer> You still need a data signal that is tolerant to inversion
<oakwhiz[m]> Hmm! a serdes glasgow could be very very interesting. especially if there's a way to get different encodings to work like Manchester encoding vs NRZ etc.
<whitequark[cis]> <cyrozap> "I think I'd want a multi-gigabit..." <- revE is that (and obviously you can just hang a chonky radio to one of the SERDES)
notgull has quit [Ping timeout: 252 seconds]
<whitequark[cis]> the BOM target for revE is under $200, which means the price on the shelf would be, at least, something like $600 + taxes
<whitequark[cis]> oh, multi-gigabit as in >10G
<whitequark[cis]> that's basically just xilinx
<oakwhiz[m]> a lot of things become easier if you have inversion tolerance so it's very common
<whitequark[cis]> but note that USB3, HDMI, DP, SAS/SATA, PCIe are all possible to do with the planned ECP5
<omnitechnomancer> Unsure if the gowin parts with 10G SerDes on them are possible to buy as parts
<whitequark[cis]> from what i've seen of the gowin toolchain i would not trust that device that much
<whitequark[cis]> it's basically a weird copy/paste randomly mixed ecp3+ecp5
<omnitechnomancer> With bonus AndesTech SoC
<violetblob[m]> how annoying will it be to populate and reflow that manually? :p
<oakwhiz[m]> hardware developers want one thing and it's f-ing disgusting:
<oakwhiz[m]> open toolchain that's upstreamed
<whitequark[cis]> there's a counterexample: quicklogic
<whitequark[cis]> when i started using it, the installation process consisted of running a shell script that downloaded another shell script from sharepoint, without authentication, installed conda, and mutated your user-global conda rc without checking if you had one there before already
<whitequark[cis]> that got fixed
<whitequark[cis]> the quality of routing that made it functionally inapplicable to any real design, as far as i know, was not
<whitequark[cis]> be careful what wish you cast upon a fae, for you might live to see it marketed
mwk has quit [Ping timeout: 240 seconds]
<cyrozap> whitequark[cis]: Oh, cool, I haven't been following development so I didn't realize this was already in the works! And yeah, 5G is fine for those protocols, but IMO things get a lot more interesting once you get above 5G, since with 10.3125G (for example) you can do 10 GbE and 10G PON, DisplayPort HBR3 and UHBR 10, PCIe 8 GT/s, USB 3 Gen2x1 (and Gen2x2 if you have enough transceivers), and 6G SAS/SATA,
<cyrozap> and with 12G transceivers HDMI 2.0 and I think HDMI 2.1 and 12G SAS. But then again, the cost... maybe that could become a "Glasgow Pro" line, haha.
<whitequark[cis]> cyrozap: it's been "in the works" (planned, eventually) for several years :D
<whitequark[cis]> above 5G isn't something i expect to become viable with the FOSS toolchain for rather a while