Hey friends
this week has been rough for this project, not gonna lie, I have a killer bug that I haven’t solved yet (that I will likely solve as soon as I write all this out complaining about it, lmao) so I’m a little behind where I wanted to be. I also have a little bit of scope creep coming for me. Not a great week, but there was progress nonetheless. At least the good news is that there’s no discernable hair regrowth in the one small area that I tested - it’s only been a week or two, but it’s reason for optimism!
What I’ve been up to
Last time we spoke, I said I was gonna be designing and ordering the Lite Alpha 1. Sadly, I’m not there yet. I did implement fixes for all of the bugs mentioned in the previous post into the start of a Lite Alpha 1 schematic. Unfortunately, a lot of that was low hanging fruit. I have two more daunting challenges ahead of me before I can order boards and actually make a Lite Alpha 1. The first, which is really deeply killing me right now, is a bug, the second is a feature that I’m kind of deciding is necessary that I’ll mention in new developments.
I wired the two boards from last time together to test as one unit, here’s what it looks like:
Here’s the bug behavior:
- Power on the board, everything looks OK. Active light off, done/ready light on.
- Put the probe in a follicle. No current draw.
- Push the pedal. Active light on, done light off, current comes from the probe. Good!
- Timer finishes, active light goes off, done light comes on, current doesn’t stop flowing. Bad. Even after removing and reinserting the probe, current starts flowing again. Until you power cycle the board.
- On paper, this sounds whack but very possible to debug, but crazily enough, I can’t reproduce it with a 10K resistor instead of my body.
Next paragraph is kind of jargon-y word barf that I didn’t bother to make explicit or clear or referenced to the design, sorry in advance, I partly just needed to complain, but: I’m worried it has something to do with the fact that the return line of the probe is technically not ground and instead a current sink floating just a little above ground. If that’s an issue, then I need to idunno make a negative supply or something and I really really don’t wanna. It could be a thousand other things too. My only big lead is that if I physically disconnect the Pulse line with that switch you see in the photo, it doesn’t sink current any more, so it’s probably something wrong with the digital timing board. The voltage appears to be 0 even with it connected, the light is off, and it’s even tied down via the potentiometer on the current source board, not to mention the LTC6993 says it can sink current through the OUT pin so even if there is something driving it high it should get pulled low. The mechanism of action here is that the potentiometer that divides the voltage that goes into the current source input is driven directly by the pulse line. I’m completely lost. It doesn’t help that I’m doing this all with nothing but a single multimeter to debug. I think I’m going to buy an oscilloscope for this. I’ve wanted one for like a decade now and this is as good of a reason as any. It delays things, but hopefully this will speed up all testing I do from here on out forever.
Oh, and I caught and fixed another easy bug - I noticed that every time I turned off my soldering iron, the board would trigger. Luckily I knew right away that that’s a noise thing. I added a 1 uF capacitor filtering the pedal line to ground and I don’t get false triggers any more. Cleaner pedal signal, one less source of false triggers. yay
New Developments
I’ve decided that if I go ahead with the design as it is now, operation will kind of be firing blind. The user has no way of knowing how much current or voltage is coming out. I really want to keep the Lite simple, but I don’t think it’s acceptable for the user to not know if current was even getting delivered through the hair follicle. So I think it’s in order to add one more part to the design before making an Alpha to debug and iterate on. Basically, what I want to do is make a status light that goes on if you are delivering >90% (arbitrary and subject to change) of the current that the knob is actually set to so that the user can know if the device is working with each pulse. I’m lucky I put that current feedback instrumentation amplifier in the last design, I had a hunch it would be useful and now it is: all I need to do is compare the voltage on the input of the high-side current source with the measured current times some factor, probably done with another instrumentation amplifier on the middle leg of the potentiometer on the current sense board. If the current feedback is 90% or higher of where the set voltage has it set to be, the light comes on. It adds a few parts and some complexity, but in testing, I was finding that moving around, having a bad insertion, or any number of other things could make the current drop and deliver an incomplete hair kill, and without a light or an ammeter hooked up, the user has no way of knowing whether each pulse works, and an entire session could turn into wasted time. I hate to make things more complicated when I’m already having problems, but I think this one is necessary.
Outside of electronics, last time, @lilypad@hexbear.net mentioned that sourcehut has a site hosting feature - thank you lilypad! You’re so right and I set it up and put up a splash screen and I think this is a good solution! She also mentioned that printable manuals are probably a good idea - I 100% agree, my thoughts for this were to ensure that whatever site generator we use, should we make our own theme, we make sure that it’s print-optimized. Static site generators usually have Markdown-based pages and that’s also compatible with Pandoc, so it’ll probably be pretty doable to get them over to LaTeX too for that beautiful, beautiful formatting. Good looking out
@ComradeEd@lemmygrad.ml also did a lot of good thinking about static site options in the comments last time - thank you as well probably gonna link its post down below in the comments when we talk about how to make a site!
Also - shout-out to @YearOfTheCommieDesktop@hexbear.net for their amazing work figuring out a probe design in the comments of the last post! I haven’t started building one out myself yet but I have some of the parts on the way in the mail and it looks like their work will probably be the basis for a needle holder probe, something that’s necessary before we can fully release a Lite. Thank you bestie
Next up
Obviously I need to fix my bug and implement my feature. Besides that, there’s not much else to mention in electronics. It’s still too early for enclosure stuff, and the electrical design is too much of a moving target to start trying to port to JLCPCB, so I just have to fight through this one. All other new developments outside of me bashing my head against these two new problems will be in both the site and the applicator probe.
Any ways to help?
I think it’s time I opened up site development to interested parties? We’re not in a rush but it’s on the table! If anyone wants to mess with Jekyll/Hugo/something else and sourcehut’s build system, I set up a repo to connect to it, so with the right configuration, we can have a build job generate with Jekyll or Hugo or something and automatically deploy. That’s here: https://git.sr.ht/~_410bdf/sphynx-site I’ll make a top level comment to aggregate people who want to work on that below! We can work out what static site generator we want to use together and then we can start getting it set up!
Also, 100% looking for ideas on things to test on my bug, if you’re good at electronics debugging, throwing some test ideas at me would be greatly appreciated.
As always, stop by, hang out, say hi, ask questions, tell me what you’ve been up to, design review me, however you’d like to be involved is good by me! All the love and look out for my next post in a week or so!
Big update on killer bug squashing progress:
I’ve narrowed down the source of the bug to the current source at the high side of the circuit. Many of the likely issues implicate the current sink at the low side of the circuit too. See entry #3 for schematics. I thought I could reproduce the behavior with the steps in the original post, but it turns out 1) it’s just flaky and it’s not as repeatable as working on first startup, and 2) it can be reproduced removing the entire digital timing board from the loop and tying the pulse line to ground, and even sourcing current from the output of the high-side current pump to ground instead of sinking it into the low side current sink. It’s not the instrumentation amp either, I built another mk2 without populating it and I’m having the same issues. I haven’t rigorously evaluated the mk1 version of the current source (see entry #1 for schematic) but I believe it behaves a lot better, and with the main two differences being the choice of opamp and the various resistor values, I think the latter is the culprit - I think there’s a lot of ways that using a very small R4/R2 ratio might cause instability, especially considering that tolerances could potentially have a larger than expected impact after all the algebra works out. That said, I do intend to try it both ways - both the new opamp on the mk2 board with the old resistor values, and the old opamp on the mk1 with the new resistor values. This will help me narrow down the source of the problem even further. I might also try to run some simulations with real opamp models instead of ideal ones, and model tolerances into the resistors. I still have confidence in this current source/sink topology so I’m not giving up yet. Of course my debugging options will be better once my scope arrives, but this is a thing I can do in the short term to avoid being stagnant.
@macerated_baby_presidents@hexbear.net you always have really good EE advice - thoughts on the above? Any other potential failure causes you notice, any potential tests you’d like me to try, any other anything? Anyone else is welcome to comment too!