A Goofy 3D Printer Setup

TL;DR: I converted my Anycubic Linear Kossel to Klipper.
Using a hacked Chromebook as the host, which is great and I recommend hacking surplus education market Chromebooks for many of hobby projects usually done with an SBC.
Running in containers as a docker-compose project, which works but is dumb and wasteful.
Next I’m going to try to do some systematic performance experiments to it, but that’s for a later post.
Details below.

Continue reading
Posted in Computers, DIY, Electronics, General | Leave a comment

USB-C Trigger Boards

Between having more disposable income and the potential for upcoming trade weirdness, I’ve been pretty fast-and-loose about buying random bullshit that catches my fancy from China of late.

A recent Aliexpress order consists mostly of USB tampering supplies, like an exhaustive set of breakouts for all the common USB connectors, including a couple extra type C breakout boards because I’ve been doing a bit of Chromebook abuse recently and a SuzyQ cable is likely to come in handy.

Close up of a HW-398 USB C Trigger Board


In that batch, I also picked up a 10 pack of these little HW-398 USB C PD trigger boards (aka Decoy boards). They have a USB C Female connector on one end, + and – pads on the other, and a series of little pads marked with voltages that you can solder bridge to an adjacent resistor to have it negotiate that mode – apparently via any of the PD/QC/AFC protocols for doing so.
They seem like they should be useful for powering projects from easily obtained junk, but merit investigation because they also seem a little sketchy and were a whopping $0.63/each.

A couple of the behaviors and design decisions are interesting:

  • The USB C connector is slightly inset on the PCB, which is probably good for strength, but rather unfortunate for mounting it into a project.
  • They DO supply 5V when none of the higher values are selected, which is both reasonable and desirable.
  • There is a little blue indicator LED next to the plug, and it’s marginal at lower voltage.
  • It appears if you set a voltage not supported by a supply, you get the next voltage down, which I gather is suggested by the standard. This is not unreasonable but has real potential for unwelcome surprises if you don’t protect your design. The most likely issue seems to be a lot of supplies don’t support the optional 12V mode: I didn’t thoroughly test, but I popped one strapped for 12V onto a little Anker 313 whose label says 5V@3A,9V@3A,15V@2A,20V@1.5A and it delivered 9V.
  • The IC is conspicuously unlabeled. It’s an SOP10 package, and is smart enough to do to necessary USB negotiations (which are actual USB protocol traffic performing a handshake to read and write some control registers at either end). A little googling seems to imply the chip is a Fastsoc FS312 – It’s in the right package, supports PD,PPS, and QC negotiations, which lines up with the product description, and the setting straps are connecting resistors of values 184(180kΩ)=20V, 140(14Ω)=15V, 104(100kΩ)=12V, 513(51kΩ)=9V which matches the datasheet.
  • I haven’t done any load testing, but I don’t see any sign of regulation on the board, so I suspect the regulation will depend entirely on the supply.
  • I have no idea if the USB IF considers these legitimate.

It certainly seems like a useful gadget for the parts bin. LCSC doesn’t seem to stock the FS312 IC, which is a shame since now that I know they seem to just work with the very minimal suggested circuit in the datasheet that requires only a capacitor and resistor beyond the chip and connector, I’d start designing them into boards if I could get them stuffed by the usual scumbags.

Posted in DIY, Electronics, General, Objects | Leave a comment

Mac Desktop DynaComp DCF-803 Recap

DynaComp DCF-803 PSU, as used in Apple Centris 610/Quadra 660AV/ PowerMac 6100 Systems

Since finally being rid of my PhD work, I’ve been hitting a bunch of projects that have been on my TODO list for ages.
The oldest so far is this PSU which has been sitting for …decades… in my parts pile with some compatible machines, and I’ve always intended to try rebuilding it. It died with a “ticking” symptom some time in the mid-00s.

I finally got around to it this week, and it wasn’t a bad job. About $10 of parts, a few hours of work, and it’s back in action. Rebuild details below.

Continue reading
Posted in Computers, DIY, Electronics, General, Objects | Leave a comment

Pull Your Xbox Clock Capacitor

If you have an OG Xbox sitting on a shelf somewhere, this is your reminder to pull the clock capacitor and clean up whatever corrosive goo it has already vomited out.
I was talking old video games with a student in one of my labs this week and it reminded me that this is one of the many projects I’ve been meaning to get to but haven’t had time for for the last several years.

Photo highlighting the leaked clock capacitor in an OG Xbox.

Microsoft used some cheap 2.5V 1F early super caps which will inevitably fail and spray electrolyte on your motherboard, because they made some cost-cutting choices about the RTC, so now everyone with an old Xbox has to fix it.

iFixit has their usual helpful guide for pulling it apart, and the ConsoleMods wiki has the details on the clock cap situation. I didn’t even bother replacing the one in mine, I don’t pull my old Xbox out enough for it to matter.
Remove dead cap, clean residue thoroughly, move on. It’s a quick job.

Posted in DIY, Electronics, Entertainment, General, Objects | Leave a comment

A Field Guide to the University of Kentucky Graduate School

Having now collected two graduate degrees myself, and been related many stories by friends and acquaintances doing grad school at UK, some advice for those behind me.

UK’s graduate school is the absolute archetype of the rule of thumb that, at UK, every individual you deal with will be nice and helpful, but as an organization they’re the most useless, obstructive motherfuckers you’ll ever have the displeasure of dealing with. You will never find an individual to punch in the face when something deserving happens, because responsibility has been diluted sufficiently that there isn’t usually an individual bad actor responsible for whatever bullshit is going on; the problem is that there are half a dozen overpaid people with inflated titles not dealing with the thing, and an assortment of folks in lower-titled, public-facing positions having to scramble to make things work around the administrative dysfunction.
The fact that UK just went into administrative bloat overdrive by dissolving the faculty senate with no concrete plans to replace their functions, then started hiring random assholes who don’t even have the context to know how things have to work to take over matters the senate used to handle has made it even worse this year than usual.

Detailed Notes Below

Continue reading
Posted in General, School | Leave a comment

PhD Complete!

It took another round of “longer than expected” because, while I passed my defense at the end of July, I had some requests to make significant changes to the dissertation before submitting my final copy, and that didn’t get wrapped up until early September with my advisor paying meaningful attention to what I was doing for the first time in years.
I ended up having to include a lot of the modern academic hype-spewing, stake-claiming bullshit I’ve developed a deep distaste for, but even with that I’ll admit it’s a much better document overall after the rewrite. It looks less negative than the earlier drafts, because they were largely written before my last “I give up, I’ll try one more stupid thing” experiment finally turned up something reasonably compelling.

The copy of record of the dissertation is published, here are local PDF copies of the deck from my defense and my dissertation. More information below.

Then I had several weeks of catch-up for all the many things in my life I’ve been shorting time to get done, while I was having the apparently requisite back-and-forth with the graduate school about petty formatting matters, but it is done.

Continue reading
Posted in Announcements, Computers, General, School | Leave a comment

Finally wrapping up my PhD!

The largest reason I’ve been starving every one of my other interests, like posting here, for the last several years is finally wrapping up, and looks like it will get me a PhD in Computer Science.

Wednesday July 24, 2024. 1:00PM. 101 Davis Marksbury Building.

Title: Post-Capture Synthesis of Images Using Manipulable Integration Functions
Abstract:
Traditional photographic practice, as dictated by the properties of photochemical emulsion film, mechanical apparatus, and human operators, largely treats the sensitivity (gain) and integration interval as coarsely parameterized constants for the entire scene, set no later than the time of exposure. This frame-at-a-time capture and processing model permeates digital cameras and computer image processing.

Emerging imaging technologies, such as time domain continuous imaging (TDCI), quanta image sensors (QIS), event cameras, and conventional sensors augmented with computational processing and control, provide opportunities to break out of the frame-oriented paradigm and capture a stream of data describing changes to scene appearance over the capture interval with high temporal precision. Captured scene data can then be computationally post-processed to render images with user control over the time interval being sampled and the gain of integration, not just for each image rendered but for every site in each rendered image, allowing the user to ideally expose each portion of the scene. For example, in a scene that contains a mixture of moving elements some of which are more brightly lit, it becomes possible to render dark and light portions with different gains and potentially overlapping intervals, such that both have good contrast, neither one suffers motion blur, and little to no artifacting occurs at the interfaces.

This thesis represents a preliminary exploration of the properties, application, and tooling required to capture TDCI streams and render images from them in a paradigm that supports functional post-capture manipulation of time and gain.


So excited to be rid of this thing. It’s a genuinely nifty idea, and sort-of the idea I started out with, but I’m very tired of looking at it.

If any internet friends want to come watch me talk shit about it for ~1 hour, you’re welcome.
I’ll post my thesis and slides after it’s done.

Posted in Announcements, Computers, General, School | 1 Comment

A buddy of mine dropped me a link to TI’s new brushed DC motor driver with sensorless speed control, the DRV8214. I spent a few minutes trying to hunt down the mechanism they use to derive speed from back EMF because it’s such an intriguing idea, and the datasheet proper is slightly cagey abut it… but it looks like they’ve fundamentally figured out how to build in the sensing and control loop from the filtered ripple counter mechanism (PDF) they previously published a guide for doing with discrete H-bridge/current sense/op amp/comparitor ICs and an MSP430 microcontroller directly into a $3-in-single-quantity I2C addressable chip.
It even has stall detection that looks good enough to potentially use for sensor-less homing.
Interfacing to a host micro is fairly pin-and-peripheral intensive, but this seems like good magic.

Posted on by pappp | Leave a comment

Firefox has a facility to use native file pickers via xdg-portals, which most of the internet will tell you is set in a key in about:config called widget.use-xdg-desktop-portal. Quite some time ago, that was split into more granular keys so those instructions aren’t useful anymore.

I finally got irritated enough to look into it this morning, turns out now switching your file picker is now via the key widget.use-xdg-desktop-portal.file-picker with values “0” (never), “1” (always), “2” (auto, apparently meaning “when run from a Flatpack”). There are similar keys for open-uri, mime-handler, etc. Most of the documentation on the internet is still the old version, though (of course) the Arch Wiki page on the topic is correct and up to date, and I should have looked there instead of googling.

You have to have a suitable xdg-desktop-portal package installed to plumb the picker, which varies a bit from distribution-to-distribution and environment-to-environment, on Arch+KDE it’s xdg-desktop-portal-kde.

I find the whole portals arrangement architecturally ugly, but important thing is that I can get rid of that obnoxious buttons-on-the-top GTK filepicker dialog, which is both ugly and upside down from the rest of the universe.

Posted on by pappp | Leave a comment

Recent Intermittent Outages

There have been some intermittent issues with this site for the last few days because some shitheel has been hammering the server that hosts web-facing things for me with automated script-kiddy bullshit that my existing hardening didn’t automatically catch.

Roughly 10GB of it in the last week.
With user agents set to around 500,000 different Chrome versions.

I noticed because the (small) box has been OOM killing processes any time the stats tools look at the logs of this behavior.

Most of it came from one address (in the AliCloud IP allocation, as always. I’ll continue to half-pretend it’s just a compromised VM) so I cleaned up the worst of it by adding an nftables rule to drop anything from that saddr, and did a little filtering to the logs to fix the OOM situation.

I’ve also turned on some rate-limiting features in nginx, and rigged fail2ban to block repeated violators of the rate limit, so hopefully things are more permanently taken care of.

Posted in Announcements, Computers, General | Leave a comment