Hi! As promised, here’s my progress so far. This post will also be the loose format of how I want to post these in the future. I intend to have four sections: what I’ve been up to, what new developments have come up, and what I have planned next, and if there’s any immediate opportunities to help. I also want these to be written casually so I don’t have to agonize over them, and so that they’re fully readable by technically experienced folks but also skimmable with occasional tl;drs for curious but not electronics literate onlookers.

What I’ve been up to

In ultra brief summary, my last week on this project was giving up on the LM334, which is a lovely chip if you want a precision low-amperage source (seriously I was getting stable single microamp precision), but it just has too many quirks for use as an on the fly adjustable current source. I’ve since committed to a dual opamp design I found on some blog somewhere and I haven’t looked back, because it seems to work perfectly. I designed a circuit, simulated it, it worked swimmingly, I laid it out on a PCB, ordered it, and ordered parts to build it out.

Here’s the blog post - I went with the “Two Op-Amp Topology”. It’s actually sick as hell. Here’s my implementation of it in SPICE:

Something I’m really adamant about on in regards to safety (a core objective) is that this needs to have hard limits on both current and voltage. I’ve been able to design this in in the simulation, see:

It’s hard to tell exactly what’s going on here if you don’t know how to read circuit diagrams and also know how I set this up, but essentially, I’m varying the simulated human body resistance and looking for it to behave the same way as I do so. Even if the device can drive the amps into you by current and voltage availability alone, it’s hard capped at 2 mA, with the voltage limit imposed by whatever voltage you give the opamp and the current limit imposed by (basically) the resistance of R1. (More technically, this is a voltage controlled current source, and the voltage applied to V_current_set is divided by the resistance of R1 for the value of the current sourced from U1A.) All bodies are not the same resistivity, all parts of the same body are not the same resistivity, and even the same part of the same body is not always going to be the same resistivity. It’s important that the administered current and voltage don’t vary based on user, body part, and et cetera. This is an important safety and performance feature that most other DIYers I’ve seen have omitted. This is exactly what I was hoping to see this design do and it nailed it.

So, I drew up the circuit, routed the PCB, and with that, we’re here:

It comes in the mail next week! Thanks to @lapis and @macerated_baby_presidents for the JLCPCB rec, I didn’t get a populated board, I wanna build it myself, but their service has been nice so far and I look forward to ordering a populated board from them soon to test accessibility! I left off test points, status LEDs, and some other stuff. That’s okay. I’ll do better next time. :comfy: The important thing is that this circuit is the circuit I’m rolling into 1.0.

Non-technical tl;dr: This is the circuit that takes in a normal power source and conditions it into the correct amount of power, specifically voltage and current, to kill hair follicles in a safe and controllable fashion.

New developments

I decided to give up on microcontrollers. 💔 For now.

Adding a microcontroller adds a lot of pros, and a lot of cons. The upshots are that it really makes this into something cool, something with flipper zero vibes - I’d be able to add a splash screen with graphics and I’d be able to explicitly list voltage/current/pulse time numbers on a display, I’d be able to shift a number of changes into firmware over hardware, meaning quicker debugging, and more. The downside though, is that I’d likely be requiring end users to flash a firmware build (not accessible, breaking one of the core 3 objectives), I’d be dealing with a data bus like SPI to get the screen to run, which is a pain to debug, and I’d be opening myself up to feature creep. I decided to axe it for now and just do everything by knobs with no screen to be able to get y’all a working basic finished project sooner. ❤️‍🩹

Next up

My availability is somewhat limited for the next week, but I want to at least build out this board and test it on the bench to make sure it actually applies the current I designed it to. While I’m waiting for this, I can start to design the other parts of this circuit. I have the power conditioning designed, next up I need to design the following, roughly in this order:

  1. instead of just loose inputs I put voltages on, I want to make knobs that set the amperage.
  2. I need to add timing circuitry so that instead of just an on/off, the user pushes a button and the device outputs current for an amount of time configured by a second knob.
  3. I need to add power conditioning, so that a 9V battery, an 18650, or something like it can be boosted up to generate the voltage required to drive the current required to smoke ur hairs.
  4. Fit and finish. Oh, and all of the activation switch and applicator probe everything.

I can probably design 1 and 2 in the next week. I definitely won’t be able to actually build and test them until late next week, but now that I’m getting better at SPICE, I can simulate them, which will give me the (probably ill-founded) confidence to order boards without testing anything on the bench first. Likely no updates until mid next week due to this.

Any ways to help?

First of all, ask to be put on the tag list if you want updates! Knowing there are other real life human beings who think this is cool helps me a lot. Besides that, no electronics help at the moment, I don’t have enough done to have any shared work to propose. Soon, I’ll start thinking about the current probe, and I’ll need help thinking about that. Besides that though, just get hype and if you know anyone who knows anything about electrolysis hair removal, let them know about this so they can be here for discussions if they want to be!

I’ll see y’all some time next week for the next update. Thursday of next week or earlier. It’s in my calendar. Bye!


tag list: @ComradeEd@lemmygrad.ml, @raven@hexbear.net, @Wake@hexbear.net, @BountifulEggnog@hexbear.net, let me know below if you want to be added or removed!

  • 410757864530_dead_follicles [she/her]@hexbear.netOP
    link
    fedilink
    English
    arrow-up
    3
    ·
    9 months ago

    This is all amazing advice, I appreciate you for all of this, lemme do my best to address everything piece by piece:

    • 100% gonna round board corners next time, I’ll probably add mounting holes too although this isn’t a board I plan to ever enclosure, this is basically an opamp breakout for debugging
    • thanks trans-heart I tried, although the bottom is poured so I still payed for a second layer. KiCAD defaulted to like 7 or 8 mil traces or something and since the current is capped at 2 mA on the output I called that good enough for now
    • Throughout development I’m gonna assemble everything myself to keep costs low, and then the end goal is for the final product to be orderable 100% assembled by the board house with no additional solder touches required. We’ll see if I can do that
    • another smort tip thank you
    • I like 0805 because I can run traces under them and save on vias meow-melt probably good advice for moving to a final version though!
    • 30V is just what I used in SPICE, I think I’ll take a page from /u/abbxrdy on Reddit (linked in my first post) and keep my voltage range from 6 V to 22 V, which is a boosted single 18650, which is convenient. I think power management is going to be the hardest part though, I have some reckonings coming up that I’d love your input on in next week’s post
    • yep yep test points ohnoes for now I was just gonna poke IC/resistor legs but that’s not sustainable for the rest of development, I like these too
    • really good idea on the shunt! I’ll do that
    • I’m trying my best to shop out of the preferred catalog! It’s actually pretty big so that’s cool
    • yep, my plan was a 555 for pulse generation, with the longest pulse time being 10 seconds and the shortest being, idunno, 0.5 seconds, I think it should be fine? I’m going to avoid an MCU as long as I can, I think I can make 1.0 work without one.

    Your input is amazing and I appreciate you, you’re on the tag list and I look forward to seeing you around cat-trans

    • macerated_baby_presidents [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      9 months ago

      lol i should have numbered the bits

      5- i’ve only ever used those array parts once, on a board that needed a whole bunch of RC filters on input lines, and they were kind of a pain in the ass to solder without hot air. so I can’t actually recommend them but just wanted to tell you they exist
      7- neat those are nice looking
      11- you seem good at simulation so idk if it’ll be a problem at all, this is just what i’ve heard “through the grapevine” about non-ideal capacitors. i wonder if they make digital pulse generators that don’t require flashing

      super excited to see this project come to fruition! you have me absolutely green with envy, I want to make a widget now

      • 410757864530_dead_follicles [she/her]@hexbear.netOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 months ago

        Post incoming today, but you were right about the 555 timer inaccuracy and non-ideal capacitors. I found a solution that avoids both a 555 and a microcontroller (although it all still rides on a +/- 20% potentiometer cringe)

        • macerated_baby_presidents [he/him]@hexbear.net
          link
          fedilink
          English
          arrow-up
          3
          ·
          8 months ago

          sadge. Pot isn’t the end of the world (±20% strikes me as high but what do I know) since it’s probably close enough to linear but anything analog probably means users need a calibration step which sucks. Lemme go look at the post