Security and open source at the hardware/software interface. Embedded sec @ IOActive. Lead dev of ngscopeclient/libscopehal. GHz probe designer. Open source networking hardware. "So others may live" Toots searchable on tootfinder.
Public Key
npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Profile Code
nprofile1qqsvxk504cz6sw9cvdc8sqamrl0uljanntw0q8hp48799m6ynxxwfsqpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43qz9thwden5te0wfjkccte9ekk7um5wgh8qatzsljs6d
Show more details
Published at
2026-08-17T11:28:56+02:00 Event JSON
{
"id": "3ae6dc84756b1a2cd852dab6a4168319792eece73b1b43118926509963dbbab8" ,
"pubkey": "c35a8fae05a838b863707803bb1fdfcfcbb39adcf01ee1a9fc52ef44998ce4c0" ,
"created_at": 1786958936 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://ioc.exchange/users/azonenberg",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "{\"name\":\"Andrew Zonenberg\",\"about\":\"Security and open source at the hardware/software interface. Embedded sec @ IOActive. Lead dev of ngscopeclient/libscopehal. GHz probe designer. Open source networking hardware. \\\"So others may live\\\"\\n\\nToots searchable on tootfinder.\",\"picture\":\"https://files.ioc.exchange/iocexchange/accounts/avatars/109/320/697/263/826/535/original/452045644aa6671b.jpg\",\"banner\":\"https://files.ioc.exchange/iocexchange/accounts/headers/109/320/697/263/826/535/original/e9bac12e369b65ab.jpg\",\"nip05\":\"[email protected] \",\"fields\":[[\"ngscopeclient\",\"https://www.ngscopeclient.org/\"],[\"Blog\",\"https://serd.es\"],[\"Location\",\"Seattle area\"],[\"GitHub\",\"https://github.com/azonenberg\"]]}" ,
"sig": "cb95ac608aeab68392a1b7690fbb84c99f889d01b555a8af01eb4e9c9dc72da571cf1bb2c7079e4e3888eeaa0fe937637ca6fff6a4671d09d51eb914990f5ed7"
}
Last Notes npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Silly idea: has anyone ever made an embedded device that can run HDLC over serial console for initial provisioning or OOB management or something? Like for when you want the ability to do file transfers and more fancy things than you can do with a simple shell, but don't want to burn the area and power/BOM cost of an ethernet phy npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Tuning performance on something like ngscopeclient is a never ending job, there's so many things to do and always more room to tweak. Fun, but I need to ship v0.2 eventually so I should probably get back to the documentation pass... npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg After another round of tuning to remove some expensive barriers and optimize memory access patterns, the CDR PLL on this benchmark went from 13.6 ms baseline down to 4.5 on the AMD R9700. The 3070 Ti is still faster, but by a much smaller margin: 7.8 ms on the original code down to 4.2 on the newly optimized. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…02n5 but one of my local supermarkets doesn't have *any* staffed checkout lanes after a certain hour so if I need something late I'm forced to deal with the robot npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…y6u5 @nprofile…eew3 My feeling for a long time has been that purpose-built neural networks designed to do one thing can be useful. They may not be the best or most efficient solution to a problem, but if you have no idea how something works and a lot of data, and can tolerate some errors, throwing some kind of boolean classifier at it is not an unreasonable move. And if it was trained on data you or a trusted organization vetted and curated you have increased trust in the ethics and accuracy of the model. Things like "how likely is this drug to bind to that receptor" are a perfect use case because you're gonna do a ton of molecular dynamics and lab testing on the ones it likes so you don't need perfect accuracy, you just want to whittle trillions of candidates down to few enough that you can spend significant resources on. And you can't test every possible molecule so if it rejects some promising options by mistake, it's not the end of the world - you already left a ton on the table by not even evaluating them. Trying to make a single "god model" that can do everything is never the right move even if you could somehow ethically train and operate it. Even if decades or millennia down the road we somehow do create an AGI, it will be so compute heavy that a purpose built NN - or classical tool - will always be able to solve any given problem far less expensively. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…u75k @nprofile…e965 No, I'm saying that if a government sees the device wiped, they're going to throw the book at you no matter how legal or illegal the data on the phone may have been. There is no situation in which you walk away from that even if the phone was factory-blank when they caught you, they're going to assume you are hiding something and it will be extremely difficult to convince them otherwise. If you're part of an activist group and want to take one for the team so the rest of your organization doesn't all end up like Prarieland? Or a journalist protecting sources who might face life in prison or the death penalty if identified? That's a level of self-sacrifice you might want to consider. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…aejz And again, I am never going to be applying more than like a few millinewtons of shear load to the axis during a machining operation when i'm making a cut whose depth is measured in the low tens of microns npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…aejz probably lol. But I don't want a machine the size of a car so it's gonna be tricky to figure out how to improve npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Testing out the new light mode toolbar artwork for ngscopeclient. The application as a whole is definitely not practical to use in light mode yet. While it's theoretically possible and there's selectors in the preferences dialog to configure all of the non-contrasty colors, you would need to update 50 separate preferences to re-theme everything from the color of X axis tickmarks to the cursors in the plot. Down the road, most likely for v0.3, the plan is to simplify this all down by having all of the color preferences be scoped to a light/dark mode selector, and provide a single light/dark switch to change all of those. There will be separate selectors for changing the ImGui theme and the icon theme, but we'll put them together so it's easy to make them all change at once. https://files.ioc.exchange/iocexchange/media_attachments/files/116/914/731/716/373/338/original/1e6cc40fb3e48627.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…huwm Internally, there are two different representations. Uniform stores a single sample rate and then a value at each sample index, and is more memory efficient and fast (this is what e.g. a scope capture would use). Sparse stores a timebase resolution then each sample has a start time, a length, and a value. This is used for protocol decodes, recovered clocks, and anything else that's sampled at irregular intervals or has gaps in the data. Rendering is done by a compute shader. At a high level, we do a preprocessing step (either simple division for uniform waveforms or binary search for sparse) to find the first and last samples that overlap each X coordinate along the visible area of the plot. A separate GPU thread group then processes each of these blocks of samples in parallel, working on a sliding window of two samples and calculating Y coordinates. If the samples' X coordinates are completely within the pixel (you're zoomed out) then the final range for this window is simply the sample Y values. If one or both samples are outside the pixel (you're zoomed in and samples are >1 pixel apart) the shader interpolates a line between the two samples and projects the line onto a rectangle at the left and right edges of the pixel, finding the Y coordinates where the segment enters and leaves the pixel. Once the window's start and end Y values have been calculated, the shader increments all of the pixel values between those indexes in an internal float32 working buffer. If the Y values aren't round numbers, at the top and bottom edges of the window there's a simple antialiasing applied weighting the pixels above and below the edge appropriately. The alpha of the pixel block is scaled based on the sample interval so that higher and lower sample rates and different zoom levels produce uniform image brightness. This working buffer starts out either all-zero (if persistence is off) or retains its previous value multiplied by a decay factor (if persistence is on) before rendering starts. Once the rendering shader is done, a tone-mapping shader takes the float32 buffer, does some normalization and weighting and multiplies by the final display alpha value, and converts to RGB24 to produce the final rendered texture. This process repeats for each waveform in the plot separately. Finally, Dear ImGui does a compositing pass drawing a pair of textured triangles for each waveform stacking the textures into the final display. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Talking about regional convenience stores with my wife and said "I haven't seen a Wawa in years". Which is true. But as soon as I said it, I realized I *have* seen awawa far more recently. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…vm0w yeah j1939 is mostly for heavy vehicles like bulldozers and tractor trailers not regular cars npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…vm0w @nprofile…m794 unsolicited advertising from a company I do not have an existing relationship with is basically the definition of spam imo npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…m794 I've started getting spam about the altium influencer program lately. Like if you did the slightest bit of research you'd know I don't use altium nor do i have any intention of doing so... npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg How many Gbps of waveform data can I shove into one GPU and do something useful with? We're gonna find out pretty soon. Need to run a cal cycle on the one currently on the test fixture then install it in the VM server, put an oculink board in the microscope bench workstation, then I can think about initial tests. https://files.ioc.exchange/iocexchange/media_attachments/files/116/827/593/186/527/728/original/1d0b39a8888b9ffd.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg A bit awkward to get photos of the actual process https://files.ioc.exchange/iocexchange/media_attachments/files/116/821/553/997/540/529/original/87e88258719fa60f.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…vnlz i wonder how the ngscopeclient ones compare to github's. They're roughly equivalent to an AWS c6i.2xlarge (8 vcpu, 3rd gen xeon scalable) but with addition of some more RAM and some have a GPU. My recollection is they're around double the performance? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg So apparently running massive EM solver simulations makes my workstation draw enough power compared to normal usage that it shows up in the lab-wide power usage graphs. I wonder how much more it'll pull when I get the uncapped version that uses all my cores https://files.ioc.exchange/iocexchange/media_attachments/files/116/785/667/017/645/116/original/d091817c53c3c184.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…02n5 Bearing ate itself? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…5yze Sadly I don't get to dictate what products the school first aid kit stocks lol. If we find one she's not sensitive to, the school says we can bring a pack by and they'll designate it to be used instead of general inventory for any future minor injuries. I guess I'll run a few tests and see which styles/brands cause issues and which don't. But not until she's recovered from today, she was so excited to play with the neighbor's kid that she tripped over her own feet running out the front door and scraped up both elbows and a knee and had to go back inside to get patched up before playing lol. I ended up using 2x2 gauze and coban since there was no adhesive at all so I figured it was a pretty conservative approach as far as allergens go. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Do all bandaids use the same type of adhesive or are there multiple kinds in use? Kid seems to be allergic to at least some of them. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kgg0 fuck ntp, marry GPS... kill -9 systemd-timesyncd npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kflw Nope that's all on my own. And there's a lot of code review and design/architecture work but yeah, plenty of reverse engineering too. It totally varies, I've done bootrom reviews and high level block diagram analysis down to transistors. Here's a few examples of recent publications and conference presentations mostly silicon centric https://harris2025.mpi-sp.org/keynotes/#sub-3J9WLG (keynote at Max Planck Institute) https://www.usenix.org/conference/woot25/presentation/zonenberg (peer reviewed paper the keynote was based on) https://www.usenix.org/conference/woot25/presentation/muench (collaboration between my team and several others describing multiple attacks found in the same target) https://harris2026.mpi-sp.org/speakers/#sub-988VMQ (most recent silicon WIP) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…vnlz and in a world where encryption by civilians was not widespread, encrypting your communications was an automatic red flag that made you worth a second look. So the goal was to not trigger that detection against a NSA/FSB level adversary who was not already watching you personally. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Ok so... First simulation pass on a SERDES track is done. Performance actually looks fine without a ground plane cutout under the BGA lands. https://files.ioc.exchange/iocexchange/media_attachments/files/116/734/083/617/183/460/original/ea72db5db522e456.png https://files.ioc.exchange/iocexchange/media_attachments/files/116/734/083/647/734/608/original/3ee92be02d1510a1.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…ntr3 HONK npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Yesterday was another interesting solar record: the 88.6 kWh of solar production didn't quite beat Saturday's record of 93... but our grid power consumption was the lowest I can recall seeing. We consumed only 111 kWh, compared to the 150ish we more typically burn. Not entirely sure why... we didn't do any laundry or much in the way of cooking and it was a nice day so we had the windows open and no heat or A/C usage, which probably was part of it. Lab power demand was about the same as usual But combining the low consumption with the high production meant a net consumption of only 22.4 kWh, with a whopping 80% of our total power demand self-generated. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…vm0w so basically you end up with the same global immutable ECC keys and you can roll the RSA key. So if you configure your client to only authenticate with RSA, everything is fine. But if you prefer ECC by default (as OpenSSH does) anyone who's dumped the firmware from the same model of switch can MITM you. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg It's here! Just need to find time to play with it... https://files.ioc.exchange/iocexchange/media_attachments/files/116/648/346/128/732/217/original/d82bbdd41a45e457.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…t2th @nprofile…0f4l I am seriously looking at energy harvesting heat pumps to heat the house with waste heat from the lab in the winter, right now I run the air conditioner in January and feel like I'm wasting a ton of energy doing so. Because I am. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…0f4l My actual server/network load is * 4U VM server that's my main big iron (probably pulls as much power as the rest of the rack) * Friend's 2U offsite backup server * 3x 2U Ceph nodes * 2U 100G router * 1U 10/40G Cisco Nexus switch I plan to retire soon, my former core * 1/2 width 1U FS 40/100G core switch that is going to get paired side by side with a second one later this week, at which point the Nexus should be redundant * 4x 1.5U Catalyst 24-port 1G switches, to be replaced with my own LATENTRED design one day (tm) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…0f4l 3 full height racks??? Like, if you stacked my test equipment racks on top of each other in a standard height cabinet I'd have around two and a half but that is very spaced out and not optimized for density in the slightest, and includes a lot of things like switches providing LAN access to all of my workstations and wall ports around the house etc npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Assorted boards with spartan-3a fpgas on them, I've probably lost the schematics but they're 4 layer so should be easy to reverse or just salvage the chips https://files.ioc.exchange/iocexchange/media_attachments/files/116/631/377/037/714/861/original/fb0c293b68a4ef2f.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…fqfm @nprofile…cy5p I'm hoping one day a bunch of angry nerds will design either an entire suite of new electronics/controls for a popular late model vehicle, or better yet an entirely new vehicle, that is simple, low tech, repairable, and open source to the extent practical. Rip out the CAN bus controlled door locks and replace them with ones that use physical keys that don't need batteries. Remove the touchscreen HVAC controls and put in physical knobs. No fly-by-wire anywhere except where required to perform a key safety function like ABS. If you have to put software between human control inputs and steering/braking/acceleration, it should be as minimal as possible, formally verified, and multiply redundant processors, sensors, and actuators. Publish full mechanical drawings of common wear components to make third party replacements easier and allow the vehicles to outlive the manufacturers if they later go out of business. No ADAS features whatsoever. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg As written this probably wouldn't work but it's inspired by the military / sport training practice of doing a group run across a field or something. The first one to the other side gets to take a shower. Everyone else does it again. The idea isn't to punish the worse performers, it's to give more practice/exercise to those who are underperforming until everyone is able to meet the standard eventually. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Set up this OEM approved cooling solution. Temps dropped by 10C or so but still getting 570 Mbps in / 138 out on iperf3. On a 40Gbase-SR4 pipe. Something is definitely wrong. https://files.ioc.exchange/iocexchange/media_attachments/files/116/574/732/766/052/930/original/17782daed6223d3c.jpg https://files.ioc.exchange/iocexchange/media_attachments/files/116/574/733/143/439/207/original/f92f6eb906d9824e.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Not a whole lot I can do about it until the new fan comes in though, so i'm just gonna have to deal with the poor performance until tomorrow. Right now I can cook the CPU VRMs or the NIC, there's no "neither" option npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg This also shows up as spikes in load average, i think due to IO syscalls blocking more https://files.ioc.exchange/iocexchange/media_attachments/files/116/573/848/575/072/641/original/a4e4a13bda3d0885.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…zwgp I actually think it's a lot more simple, maintainable, and secure than something like jenkins. and it's customized to my specific needs (including things like mutexing between two different logical runners that share a physical resource like a pcie passthrough GPU), does what it needs to and nothing else npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…zwgp (looks over at ngscopeclient CI system made from SLURM, ~375 lines of bash, and an 86 line PHP webhook) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…ffys apt install libvulkan-dev Problem solved? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…czzc @nprofile…t9xu ah interesting, but the heating probably makes it impractical for small scale applications where you have a high surface to volume ratio causing lots of losses there. Like, for me to store a year of power generated over the summer I'd need to be storing a few tens of kW during the afternoon over months, and trying to hold a shed-sized tank of stuff at 500C for that long seems like it would use a significant fraction of the input power. If it's a facility the size of an apartment building, you have much less surface area per unit volume so it'll be easier to insulate with less losses. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…es0p we had one mission a year or two ago where it was the middle of the dry season, hadn't rained in several months. Get called out on a crime scene search and the ops leader manages to find the one patch of swamp in otherwise desiccated terrain to send us through npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…r9vg I run the vast majority of my stuff that opens a socket to the internet in VMs that I can reboot much more casually. But also I'm mostly running single-user systems. very few kernel bugs are RCEs, those are major headlines and the kind of thing that *would* get me to do an out of cycle reboot. But something that lets you privesc to kernel while running as a normal user really doesn't matter to me. If you pop my workstation you a) can get all of my files and data, root doesn't buy you much else and b) it's a dev box I almost always have a root shell open or am going to su/sudo in the next few minutes to do something you can keylog. The goal is to prevent an attacker from getting code exec as my local user in the first place not preventing root once they do that. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg New GPU. This is the R970p "ai top" edition which i think just means more vram (32g vs 16). General benchmark scores are about twice my 2080 Ti and it has almost 3x the vram. First time daily driving an AMD card but i didn't want to go nvidia since i already have a 3070 in the lab and i want to be able to profile and debug AMD specific issues in ngscopeclient https://files.ioc.exchange/iocexchange/media_attachments/files/116/481/067/152/537/234/original/df238432f782cd30.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…scs2 I've pretty much standardized on SMA for everything. My VNA and vector sig gen both have N ports that have permanent SMA converters on them. The BMAs on my big lecroy scope are converted to 2.92 or SMA any time I don't have an active probe on them. The BERT has 3 channels of untouched 2.92 on it, but the one channel I use most often for slightly slower work has a 2.92 to SMA adapter on it. At some point I might put a 2.92 connector saver on another channel npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…scs2 I'm gonna be buying a r&s nrp18t soon but not for work, for my own lab mostly as a cal standard for other equipment npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 let me put it this way if you are the kind of shop that runs cadence virtuoso on linux, you can afford a RHEL license :p npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 yes RHEL is what the big eda folks run for linux, fedora is close enough we expect it to work on RHEL despite not officially testing npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg So now we have builders for * arch + nvidia * debian 13 + nvidia * debian 12 + nvidia * ubuntu 26.04 + llvmpipe * ubuntu 24.04 + nvidia * win11 + nvidia Fedora is next on the list as soon as I fix an issue around updating the msys2 runtime on the Windows build... npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg OK, the Arch runner is now set up and working after my rather annoying tangle with llvmpipe. The entire six-job build ran for 17 minutes. I could probably optimize it further: right now the Windows and Ubuntu 24.04 builds are among the slower ones and they share the same GPU forcing them to run sequentially. If I shuffled around which VM ran which job, I could probably fine tune a bit. Max concurrent jobs was four, three using nvidia cards plus the Ubuntu 26.04 using llvmpipe. I was watching YouTube videos in a SSH+VNC session to another VM on the server the whole time and it didn't stutter or slow down noticeably, suggesting that I wasn't overloading the server. I think my earlier problems with performance of other VMs during builds were due to the default xcp-ng scheduler granularity being "CPU" not "core"? After changing that things seemed to be a lot better. Was it maybe allocating the entire 32-core CPU to a single VM at a time or something in that mode?? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Tossed a PCIe passthrough GTX 1630 in the builder VM and fixed a few other things and now it's churning away again. We'll let this build do its thing and hopefully it'll pass tests, if not I need to troubleshoot further. Gotta love those plots of 100% CPU usage lol. No sense having all this big iron if it's not going to be put to use. https://files.ioc.exchange/iocexchange/media_attachments/files/116/465/321/026/731/045/original/b69197e80d61f965.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The first washing had a kind of milky color to it and likely contains a bit more product that was really fine and didn't join the clumps. I saved all the washings and will see if anything settles out that might be worth trying to save in a second work-up pass later on. But first step will be seeing what my yield on the filter paper is. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…huwm my vision was a laptop with a tablet class mainboard and nice big hot swappable batteries, fully IP67 including keyboard and display, in a cnc'd aluminum orthogrid chassis with hex bolts and gaskets to close panels npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The existence of the New York Post implies the existence of the New York GET and HEAD npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 I have a TBT to 10G SFP+ dongle on my work laptop and keep meaning to put an intel 10G controller asic in a custom framework expansion bay board so i can have SFP+ to the other laptop natively with no dongles npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 to give you a better idea... The barely perceptible jump around 21:00 is, I think, me turning on the switch, Compare this to the much sharper and more well defined jump around 01:00 where I was playing a game on my desktop causing increased CPU/GPU load. Assuming worst case 75W 24/7 that's 1.8 kWh a day, or about $11 a month at my current power prices. But that's a worst-case number and I expect the actual number will be quite a bit less. Put a different way, this time of year on a sunny day *one* of my solar panels puts out enough power during daylight hours to run this switch for the entire day, including overnight. https://files.ioc.exchange/iocexchange/media_attachments/files/116/442/129/582/012/248/original/059d392f6d57ac1c.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 (that should go down now that the sun is shining more) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 75w is datasheet max. ups is metered but there's 4 kW of load tens of watts are lost in the noise npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg I might have to do some tuning on the Ceph cluster to push performance up a bit more, though. Right now with all 3 cluster nodes and the client on 40G, I get 991 MB/s (7.92 Gbps) of writes, 1864 MB/s (14.9 Gbps) of sequential reads, and 1841 MB/s (14.7 Gbps) of random reads. This is certainly "usably fast" but not saturating the 40G like I wanted/ npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…s32f i have 192gb on this box so if something leaks a few tens of gigs i might not notice until I'm about to do a memory hungry task and check and go "wait why is kicad using more ram than vivado" npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…5a85 My solar system is grid tied and no use without utility power, although if I get a battery to go with it that will change and I'll be able to run off grid in a pinch supplementing with generator. My current plan is... for brief blips in power the UPS handles things for the computers, nothing else cares. For longer duration (30 minutes to maybe one day) outages I fire up the generator to keep everything running so I can work, not lose open documents, and remain fully productive. The only things that degrade in this state are the heat pump, water heater, and oven - all of which use too much power to run on generator. If I anticipate the outage being multiple days in length (i.e. it's the result of a large scale disaster not a random storm or tree on a power line), we're no longer in "business as usual" mode. In that case priority #1 is to shut down all of the tech as quickly as possible to keep the batteries charged for later. Then go dark but set up the generator. A few times a day, fire it up to cool down the fridge and run the microwave or toaster oven or something to eat as much perishable food as we can (charging phones etc at the same time), then shut it off and keep the fridge closed to stretch our limited fuel supply as long as possible. When we run out of generator fuel or fresh food, switch to shelf stable stuff. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…z3nt @nprofile…a638 Sure, by all means be prepared to escape and/or resist if a band of violent looters shows up. But you also have to consider the more practical issues - some people might have medications that need refrigeration. Perishable food is going to spoil unless you can provide backup power to refrigerators and freezers. But if you can't preserve that food, you're not going to be able to last nearly as long on shelf stable pantry goods. How much water do you have? Is it drinkable? I'm downhill of a water tower so even if treatment plants and pumps fail, we would probably still have water pressure at least for a while, but if pipes are damaged it might have to be filtered or boiled before it's safe to drink. Who has stockpiles of bottled water, and how much? Who's injured? How bad? Who has first aid or medical training, and supplies? Can people be treated for minor cuts and scrapes and sent home unsupervised? Can someone with a broken limb be splinted and left with a friend until you can get them to proper care, potentially days out? Is there something really critical that demands immediate higher care, and is there anyone nearby capable of providing it? Can you get them there on foot? Sure, tourniquets and quik-clot are nice to have. But can you manage someone with a broken arm for a week until a boat shows up to take them over to the one undamaged hospital in the area? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…z3nt @nprofile…a638 But the part they miss is that 99.9% of the time, going solo isn't the way to do it. The most likely scenario is that a town or neighborhood will have most or all paths in and out cut off, and some or all utilities out of service for an extended period of time. So what you need to do is address any imminent life threats (put out fires, evacuate unstable structures, rescue people trapped under debris) to the extent possible, then get together with neighbors (ideally not meeting them for the first time) and make a plan to deal with whatever is happening right where you are, because you're all you've got. The three fire stations in my city of 13000 are not sending anyone to my tiny street when the big one hits regardless of how bad the damage is or how many injuries there are. There's too many of us and not enough of them. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg (is this something graphene or any of the other more user-respecting android forks / mobile platforms fix? When I launch an executable I want it to stay running until I tell it to stop, or it segfaults due to a bug, or I run out of ram or something. But barring exceptional circumstances it should run forever) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Noise waveforms seen by ZS1500. They get stronger when the probe is sitting flat on the steel lab bench and weaker when it's lifted up on top of something. https://files.ioc.exchange/iocexchange/media_attachments/files/116/355/985/786/971/579/original/77089ec95f74108b.png https://files.ioc.exchange/iocexchange/media_attachments/files/116/355/985/774/881/865/original/f48316d2617db98a.png https://files.ioc.exchange/iocexchange/media_attachments/files/116/355/985/785/144/275/original/e097be7bf11e0e8c.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The noise is *strong*. I just plugged a ZS1500 active probe into my LeCroy scope planning to use it to measure the actual voltage on the media converter board. With the probe just sitting on my lab bench, not doing anything, it sees almost 200 mV p-p with a very similar looking waveform. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Chassis ground of the RJ45 on the media converter is connected to circuit ground. It's a Bel Fuse 0826-1G1T-23-F. The RJ45 and cable are unshielded, so there is no connection from a cable shield to the metal shell of the board-side RJ45. But the Bob Smith termination on the cable is connected to that same shield connection. I have to assume this is how the noise is coupling in. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The simulated reflow defect is the bit I was most concerned about: I put no solder paste apertures on those balls in hopes of creating an open circuit failure, but I didn't know if I might have a good-enough contact between the ENIG and the SAC305 ball sans flux/paste to still make some level of contact. I got exactly the result I wanted, it failed open. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Banged up some quick grader firmware. Confirmed challenges 3 and 13 (the only two I've attempted to bodge to date) are passing, all others failing as expected including the simulated reflow defect on balls A2 and A3. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…rng8 it's bad this year... my wife and daughter are both super sniffly even with their allergy meds. Kid is wearing KN95s to school although she's not super good at remembering to put them back on for afternoon play time. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kuux meanwhile I'm saving up for a https://signalhound.com/products/vna400-40-ghz-vector-network-analyzer/ npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kuux do you have Dunsmore yet? More on the RF than power side npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kuux if you want a deeper dive, https://www.amazon.com/Switching-Power-Supply-Design-3rd/dp/0071482725 You know it's a good textbook when they're still publishing new updated editions despite most (all?) of the original authors being deceased npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The existence of toblerone implies the existence of related triangular hydrochocolate chains such as the base alkane (toblerane), as well as the closed ring form (cyclotoblerone) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg I wonder if anyone has ever actually bought the 2990 eur giant bear at the airport gift shop (immediately followed by a second seat on the plane to take it home) https://files.ioc.exchange/iocexchange/media_attachments/files/116/294/439/934/009/342/original/1f0bb15ddd1a7552.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Any idea what these cables are for? There's five sets of mounting points on the face of the building, of which two currently have cables installed. There's nothing attached to the cables currently and they look too weak to be any kind of like window washer safety gear or something https://files.ioc.exchange/iocexchange/media_attachments/files/116/282/975/869/898/260/original/439abf5ba25e8ff4.jpg https://files.ioc.exchange/iocexchange/media_attachments/files/116/282/976/083/284/297/original/35213b501c294841.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg 13 DRC errors and 60 warnings? Sounds like a board that's ready to order. Here goes, hopefully there's no major bugs besides the ones I put there on purpose lol. https://files.ioc.exchange/iocexchange/media_attachments/files/116/256/158/508/146/285/original/3a57dd39cf36b1ab.png npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…4424 realistically i expect all of these scale up networks to be out of reach for a while, and the best option will probably end up being RoCE into the PCIe interface npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Another night on the couch. I can mostly breathe out both nostrils right now as long as i stay in a semi reclined or upright seated position, although there's still plenty of congestion so who knows how long that will last. The irritation on the left eye is very much still there, and now there's an annoying tickle of a cough. Right eye seems unaffected, strangely. Wonder if i got lucky or if I'll wake up with it all crusted up too? Kid is fully recovered and back at school so at least we can rest in peace during the day. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…huwm Is it a 2D-PAM3 constellation like baseT1S? Similar line coding? What's changed vs T1S? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The only appropriate response to AI https://www.youtube.com/watch?v=KCWJ8bhE2OU npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Anybody know where the unsubscribe link to the preschool disease-of-the-month club is? I want out lol npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg So like, at the lowest level * One bit per byte? * One bit from each of eight channels per byte? * Eight bits from one channel per byte? * Do we perhaps want multiple of these for different use cases? If so, how do we convert/adapt between them? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…yery but since the VM doesn't exist when the job is enqueued I can't run the slurmd on the runner VM, it's going to run on the orchestrator VM and the prologue script will launch the VM which means if I have a dozen runner VMs I need a dozen slurmd's on the orchestrator npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Next step: it doesn't boot. Probably need to poke some bios settings or something, there's a good chance the OS install on here predates UEFI. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…xr5j @nprofile…vnlz i only intend to do git clones and nothing else npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…nhhd @nprofile…3tsk 53 foot containers are a thing too. Maybe our concept was overly conservative or they get better engine performance or something? If they can make a commercially viable launch vehicle that size, I expect you could go quite a bit smaller if you just wanted to launch a cubesat npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…2esm although to be fair if i had to rank all the slop companies, they would be floating near the top of the septic tank. Just because their bot has a documented kill switch, something afaik none of the others do npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…gftk Ice Lake. It's 8 channels, 2DPC, all slots loaded with a 32GB RDIMM. I do have an older dual socket Skylake-SP system with 192GB currently, but that was intentionally loaded with 192 to avoid going 2DPC and slowing down the memory system. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg That could explain why i couldn't ping the box after it booted... https://files.ioc.exchange/iocexchange/media_attachments/files/116/135/290/123/468/574/original/942d7077c94063ba.jpg npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg The image just popped into my head of a PCBA manager in a Smokey Bear hat taking his blue-coated SMT technicians out for a morning run around the factory grounds singing cadence at them I don't know but it's been said Vintage solder's made of lead Some say RoHS is a pain But I kinda like my brain Aoyue irons make me sad But my Metcal ain't half bad npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…thd8 so i can run as many seats as i want without licensing issues or consuming ludicrous amounts of disk space npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…thd8 this is why i a) installed vivado to a cephfs share and b) only use parts the free edition supports npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…h98k yeah thats the part I wasn't sure about. My usual Chinese fab ships boards DDU so you're on the hook for tariffs, but when they charge $1K for a board that would cost me $6-10K domestically, I'm more than willing to pay a few hundred or even $1K in tariffs since it's 3-5x less than domestic manufacture even so. (related: I'm not sure what the tariffs on PCBs were hoping to accomplish... if you make overseas manufacture more expensive *but* it's still cheaper than domestic by a huge margin, all you do is raise costs for consumers, nobody is going to switch to domestic fabs. OTOH, a 500% tariff on PCBs would likely make me just cancel large projects rather than fabbing locally as if they reached price parity w/ domestic manufacturers I couldn't afford to do the board at all) npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg So one of the next scopehal filters on deck for a revamp is the NCO. It takes in a frequency vs time waveform and outputs a frequency modulated sine whose frequency tracks the input. The refactoring was easy but I'm struggling with how to parallelize it. It's trivial to parallelize synthesis of a fixed frequency sine but if the frequency can change over time I'm not sure how you could predict the future phase without having already computed the waveform at all previous points. Ideas? npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…y6u5 SAC305 (3% Ag + 0.5% Cu) like you're getting is the industry standard. It's almost but not quite eutectic, with a 217-219C melting range. There are a wide range of other lead free alloys with various additives to control crystal grain sizes or improve various other properties but SAC305 or small tweaks to it are by far the most commonly used. npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…rhdc @nprofile…x9sp Am I weird for actually liking Vulkan a lot? Of course, I'm mostly using it as "cross platform CUDA that occasionally draws something" which is probably not the intended use case npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg Anybody know of an "asan for vulkan" tool that can catch use of uninitialized values in a VkBuffer? Validation layers will catch out of bounds access but not reading a value that you failed to write first npub1cddglts94qutscms0qpmk87lel9m8xku7q0wr20u2th5fxvvunqqxz9vpd Andrew Zonenberg @nprofile…kuux Atom makes a wide range of specialty epoxies. They're expensive especially in small volumes but good. I have experience with several including F110, F113, 2104, and 2116 for various purposes. F110 and 113 are both low viscosity optically clear. There's small differences in specs, a key one for me is F110 has only a 3 month shelf life while F113 is 6.