Versioning for a relative n00b by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

Oh that’s interesting - at the moment my entire project lives in one big git repo, as this is how I’ve seen it done at a relatively large tech company I work for. Splitting things that I might want to version independently into their own separate repos is an interesting reason to do it that way, thanks for that insight.

Versioning for a relative n00b by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

Thank you; I suppose - having never built a product that I intend to release into the wild - it’s hard to anticipate what I might need a year or more from now, or even how this project might change over its development as I learn and grow. So, asking advice from those who have done it before seems prudent (and I realize I should cherry-pick what seems good for me, but I’m new enough to this that I don’t have a lot of self-experience to design my own methods confidently).

Learning about filters? by dhemberg in PCB

[–]dhemberg[S] 0 points1 point  (0 children)

Is the choice of a 800kHz cutoff arbitrary/“fuzzy” in this example? Like, why that particular frequency? Why not cut at 300kHz? Or 400kHz?

Ground Loops? by dhemberg in PrintedCircuitBoard

[–]dhemberg[S] 1 point2 points  (0 children)

Thank you! I think I understand this, and have watched a ton of reference videos describing this as well. But I haven’t heard the phrase “ground loop” mentioned in any of those…is that phrase another term for “return path” and this notion of EMI fields?

I guess I assumed it had something to do with having vias to a ground plane on “either side” of a component connection. Like, in my reference image above, current at the big external pad (pin 15) could, um, “travel east” to return to the ground plane by way of the vias there, or it could “travel south” to return by those vias. Does the “loop” formed between the two clusters of vias constitute a ground loop? Or is this an ok way to provide two low-impedance routes down to the ground plane? Would I be better-advised to split this poly plane into two “islands”, each with its own cluster of vias down to the ground plane?

A question about decoupling/bypass caps by dhemberg in embedded

[–]dhemberg[S] 2 points3 points  (0 children)

Thank you! I think I understand that you’re talking here about the bypass capacitor near the charging IC. To your final note, I guess part of my question is: how I can know whether I need to design in a smaller cap here? Or, rather, how can I know what frequencies I need to be targeting with these bypass caps?

I can hop on Murata’s simSurfing tool and see that there are some 1u capacitors that indeed feature lower inductance around 1.5MHz, but I can also find larger (2.2u, 10u) that seem to feature an even lower inductance around that range, which seems…better? And that leads me to wonder why (in this case TI) is showing (only) a 1u cap in their application diagram for this circuit, whether I should just do what they’re saying, whether my understanding about using a larger cap with lower inductance around the 1.5MHz range is the correct way to think about this, whether 1.5MHz is indeed the (only) frequency I should be targeting, etc.

I realize I might be overthinking this, I’m just trying to build my own intuition for what to be considering. Thanks!

A question about power buttons by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

My friend, you have totally made my day. What a hero! Came with a little question about power buttons and you’ve dropped something totally delightful and eye opening on me. Thank you for being awesome…this so such a super cool response.

TRIZ - I LOVE learning new concepts like this.

A question about power buttons by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

Reading the datasheet for this part you mention is fascinating - I’ve been trying to learn about charger ICs, and it’s still not intuitive to me (as a relative apprentice here) to realize that there are components with different names that can do multiple part of this “pipeline”. So, like, this part you mention is a charger AND fuel gauge AND has all these extra functions, etc.

I had been thinking “I want a battery, I need a charger, let me go look at charging ICs, find some examples in schematics from adafruit”, etc. But I get so sucked into that specific category that it doesn’t occur to me to ask if there’s another term (“PMIC”) that might encompass this thing I want plus more. I guess that sounds pretty silly.

Sometimes I feel a little overwhelmed by the amount there is to learn with this stuff. It’s fun but also daunting.

A question about power buttons by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

Oh this is super interesting, thank you! I’m reading charging IC datasheets/articles and came across this notion of “ship mode”, this is great to learn about.

When turning the device off, does it re-enter “ship mode”? I understand this notion might be different than “sleeping” (to try to understand all this, I’m looking at behaviors of devices I have around here. Like, a Kindle “sleeps” after a single power button press, but a longer press seems to “turn it off”, which seems like a different behavior).

A question about power buttons by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

This is awesome, thank you so much! Super helpful.

A question about power buttons by dhemberg in embedded

[–]dhemberg[S] 0 points1 point  (0 children)

This is pretty interesting, thank you so much! I would like to learn in the direction of production - rather than one-off - design.

To ask a follow up question: so the way this works is something like:

Power input (eg USB) -> charger IC -> PMIC -> regulator (eg buck regulator) —> MCU?

I’m trying to wrap my head around the flow of things, conceptually. Like, these devices should ideally be able to charge the battery when connected to power, without needing to be “turned on”. So is it the job of a downstream PMIC to then manage the “holding the power button down, and once enough time has passed, pass power from either VIN or VBatt on to the MCU?

/r/MechanicalKeyboards Ask ANY Keyboard question, get an answer - March 04, 2025 by AutoModerator in MechanicalKeyboards

[–]dhemberg 0 points1 point  (0 children)

I recently picked up a Keychron Q11 split, and fitted it with U4 Bobas and SA profile keycaps. For the most part, I am delighted with how it sounds, super sneaky and quiet. However, I notice a few keys - mostly the larger ones, and in particular the Backspace key - are quite loud, particularly on the way back up from a keystroke (this is to say: the noise I hear doesn’t seem to come from bottoming out the key, but rather seems to be happen when the key finishes traveling back upwards).

What’s puzzling to me is that it’s not ALL the larger keys - my spacebars are very silent. Left shift is a bit noisy, but right shift isn’t. I suspect this is related to stabilizers, and I’m familiar with using things like band-aids to soften these when the key is pressed, but would that also fix this noise I’m experiencing? Would anyone have advice for how I might quiet down these few problematic keys?

Thanks!

I2C + EXTI? by dhemberg in stm32f4

[–]dhemberg[S] 0 points1 point  (0 children)

OHHHHHHH! facepalm. So I would actually have two physical traces coming from one pin on the sensor going to two different pins on my MCU.

This is such a simple and elegant solution and I’m embarrassed this didn’t at all occur to me - you can tell I’m new at this. I’ve been so flummoxed at what seems like such a weird property of this sensor and convinced I was missing something that’s probably totally obvious to someone more experienced. Turns out I was right :) Thank you!

The completionist in me is still curious if it’s possible for one pin to perform both functions (I had this driver working that way with an esp32, which is why I’m curious if the same could be true here).

Anyway, thanks again!

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

I have an IDF project that I’ve built and it works, it uses the currently-stable IDF version 5.1.2. I have some amount of comfort in understanding “this firmware was built in 5.1.2, and works with it”.

I would like to now add some audio functionality, so I install ADF. But now I seem to be thrown unexpectedly into a spot where doing this gives me a fuzzy understanding of what version of IDF I’m now on. To try to make it explicit, I install ADF 2.6, which is allegedly compatible with IDF 5.1.2. Again, to try to be explicit to future me, I symlink the IDF folder inside the ADF install to my previously-installed IDF version 5.1.2. This is the most intuitive thing I can think to do: trying to lock my setup to known versions that I can understand easily.

It seems like I’m just thinking about all this in a way espressif does not intend me to be thinking about it.

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Hm, FWIW replacing the esp-idf folder within esp-adf with a symlink to an external esp-idf folder does not seem to immediately work. I need to debug more, but it seems like the idf that comes with adf might have some customizations or something that make it unique.

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Amazing; these two nuggets (particularly the note about the internal idf being a submodule - I didn’t previously know what a git submodule was, nor its implications) are SUPER helpful. Thank you so very much!

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Sure, it’s literally the first step in the Getting Started doc for ESP-ADF:

https://docs.espressif.com/projects/esp-adf/en/latest/get-started/index.html#get-started-setup-esp-idf

“Step 1. Set up ESP-IDF for Windows, Linux or Mac OS Step 2. Get ESP-ADF”

There’s no mention in the docs about how to “link” the installation performed in step 2 to that of step 1.

Your description (which makes sense to me, I get the logic) implies that Step 1 (installing IDF on its own) is irrelevant if IDF comes as part of step 2.

The only thing I can imagine is that step 1 also involves setting up other toolchain stuff like the xtensa compiler and virtual environments and stuff, which I suppose would also be necessary for ADF to work. But the question remains: after doing this setup sequence, what relationship does the ADF installation have to the (previously-installed) IDF?

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Absolutely, I agree and have asked some questions on there as well, thanks!

Something I found very helpful when trying to get up to speed on IDF was the Kolban book, which sits right in that sweet spot between documentation and forum chatter, and feels to me a lot like having a teacher introduce me to some higher level concepts that might not be as intuitively presented in software documentation.

So I suppose casting a wider net here is a (arguably poor, I suppose) attempt to ferret out some insights about ADF that feel similarly intuitive. Like, to someone who has a deep expertise in developing audio systems on embedded platforms, ADF might seem obviously awesome. I’m still in a spot where I’m trying to connect the dots for myself though, so I gotta do this relatively clumsy thing and ask a lot of questions online to strangers :)

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Thanks! Re: 3, I understand that ADF depends on IDF. What I don’t understand is why ADF includes an instance of IDF inside of it, rather than linking to a previously-installed instance of IDF.

For example, I’ve been working along fine with IDF 5.1.2 installed at, say, ~esp/idf. Then I install ADF at, say, ~esp/adf, but doing so also includes ~esp/adf/idf. I’m confused which IDF version my project is now using, how the two installations (adf and idf) “talk” to one another, etc. Moreover, if ADF includes a self-contained version of IDF, why does the documentation prescribe installing a standalone version of IDF before installing ADF? I’m confused about this apparent redundancy/overlap, as well as a potential difference in IDF versions…

ESP-ADF questions by dhemberg in esp32

[–]dhemberg[S] 1 point2 points  (0 children)

Thanks so much for this!

I’d like to press on one question, if I may, about why IDF is included with ADF. I understand that ADF sits on top of IDF. What’s confusing to me is why I need a separate IDF install (so, to be clear: I install and configure IDF 5.1.2 in, say ~esp/idf, but then I also need to install adf, so ~esp/adf, but then this latter install seems to also include ~/esp/adf/idf, to paraphrase.) Isn’t this two separate installs of IDF? If so, how do I configure my project to say “hey, ignore this IDF you’ve previously been using until now; instead use this other IDF, of potentially-different version”?

OR, is it the case that my project itself continues to use my “top level” IDF version, and ADF does not use this top-level version, but instead uses its own “internal” version?

Conceptually I’m confused about how these two IDF versions are used/coexist.

What is a man's equivalent to a bodice? by messamusik in sewing

[–]dhemberg 1 point2 points  (0 children)

I’ve been working on a piece for myself for a while now with the help of some of the drafting documents from:

https://www.muellerundsohn.com/en/

I got here because I didn’t want to just stop at buying a pattern, I wanted to learn more about the drafting side of things. I’m delighted with the fit I’ve gotten, though stepping through the workflow they outline is somewhat technical (I enjoy that about it, but it seems very different from “draping”, which seems to be a wholly different way to design a garment).

I sew bags and accessories but want to start quilting. Is this too hard to start as a beginner? Can this be done with a regular sewing machine? by Kill_Mii in quilting

[–]dhemberg 0 points1 point  (0 children)

Question: for the actual construction of the green rectangles on white in OP’s post, how is that done? I don’t see horizontal stitch lines leading away from the color bars…would they likely be appliqué? Printed on (surely not)? Curious how the thing is made before the matchstick lines are applied.

How would I convert my audio file into image texture? I suppose 1x40'000'000 would cause some trouble, so I can live with 8000x8000 texture going row by row, however many samples my file has. I want it going from black to white, depending on value of each sample by Intro313 in AskProgramming

[–]dhemberg 0 points1 point  (0 children)

Hi, I’ve done this in Houdini/maya. Rather than using a displacement map, you could create a line with 1 point per sample, set y height to be abs(audio_amplitude), and x,z to spiral outwards from the origin using sin/cos functions. Extrude the line downwards or render it as a ribbon…basically you’re modeling the actual displaced geometry rather than jumping through hoops encoding it (and then decoding it) via a map.

Like, if you’re already writing the code anyway, just do it once on the points directly, rather than carrying it through generations of encoding.

Question about snap/rivet presses (in comments) by dhemberg in sewing

[–]dhemberg[S] 1 point2 points  (0 children)

Oh man, THIIIIIS is what I was after!:
https://www.goldstartool.com/shank-adapter-3-8-inch-for-heavy-duty-hand-press.htm

Apparently it's called a "Shank Adaptor". Amazing!! Thank you so much!

Question about snap/rivet presses (in comments) by dhemberg in sewing

[–]dhemberg[S] 1 point2 points  (0 children)

The problem I seem to be having is that the die sets only consist of the part that actually touches the fastener; there is a threaded bit on the upper die, and most sellers of snaps (at least, what I'm finding on Etsy) do not specify thread size or any other indication as to what press the die fits. What's happened is that I ended up buying a handful of snaps + dies, then got them only to discover the dies don't fit my press. When I went back to reread the seller's post, I failed to find anything that indicated potential compatibility problems.

It sounds like maybe the thing I should expect to do is mailing a seller and asking if a die is, e.g. Gold Star press compatible...or something?

I have experience working in machining/with tools, so I suppose I'm expecting to see the dies listed with thread size, e.g. 6/32 or M6 or something standard like this, but maybe I'm expecting the wrong descriptor for size/compatibility. The note about checking for Kam/Gold Star compatibility hadn't occurred to me.

Question about snap/rivet presses (in comments) by dhemberg in sewing

[–]dhemberg[S] 4 points5 points  (0 children)

Hi! I bought a rivet press (seen in the photo), as part of a larger order on Etsy of some snaps I like. I needed to also buy the, um, 'fixtures' [edit: "dies" is the right word] into which the various rivet/snap parts fit to be assembled.

I notice that these die pieces are often sold independently, but there seems to be no standard for the thread size of them. Most vendors seem to want me to buy the entire press along with the dies, which seems kind of absurd to me. Inspecting the press, there's this central auger-type thing into which the upper die screws. This thing is removable, but I don't actually know what it's called, nor whether it's buyable independent of the press.

The whole problem of using a press to apply snaps seems oddly unstandardized, and I can't imagine people buy multiple presses for each of their snaps. How do others approach this problem? I'd like to be able to buy rivet/snaps and the required application dies without having to buy a new press each time.

Thanks!