Hello, comrades! I'm mostly not sick any more! Sorry so much for the week plus since my last post, most of the time I spent in that timespan was doing other things while I waited for components to arrive (especially because there's stuff I forgot in the first order and had to make a second one ). Components got here, I put everything together, and things... work more than they don't work
What I've been up to
Behold:
The boards are in and I made them and they work
This segment of the post is going to be dense and technical, so feel free to skim and ask questions if you feel lost and want to get caught up!
Both boards have minor bugs that I will be addressing in the next revision - the next revision being the Alpha 1 version of the Sphynx Lite. The bugs I have are as follows:
Current pump bugs:
- The knob is wired backwards. fix: make the knob go forwards, or more specifically, switch pins 1 and 3 on VR1. Ez.
- The knob doesn't have a zero offset - instead of 0.1 mA to 2 mA, it goes 0 mA to 2 mA. This is annoying; if you turn the knob all the way, the device won't do anything, you have to bump it a tiny bit. The solution is to put a resistor of roughly ~~11~~ ~~5.5~~ 1 kiloohms on the low-side leg of the potentiometer (exercise for the electronics-curious reader to figure out why! check the schematic from my previous post!). The wide tolerance on the potentiometer means there will be somewhat of a range on the actual minimum current, but it should be a pretty small variation, around 0.08 mA to 0.12 mA worst case variation. Since this error 1) gets stacked up with the error of the user's body being different from everyone else's, and 2) is only error on the low side, not on the high side, I'm deeming it tolerable.
- Not a circuit bug per se, but I designed this around a INA350CDS, which has 50 times gain, and then I accidentally bought some INA350ABSes, which only have 20 times gain. This part is a new addition that uses R1 as a shunt for active current measurement. It works exactly as intended, just with 20 gain instead of 50 gain. This can be used for a lot of things, but particularly, an automatic shutoff of the board if the current draw ever goes above, say, 2.5 mA. More safety! However, this component has another problem, which is...
- The INA350 is fucking impossible to solder All these new space saving packages are absolute nightmares for hand assembly. I didn't even need space savings, it was just a cheap instrumentation amplifier that worked nice. I think I might have to ditch it because it doesn't come in a usable size. The same thing can be done with a dual opamp and some bonus resistors, which is less than $0.50 and I already have them on the board.
Digital timing bugs:
- Backwards knob again...
- Ignoring backwards knob, the range, instead of being 2 seconds to 10 seconds like I expected, is actually 2 to 7.5ish seconds. I haven't actually figured out why on this yet - I think it's because of the relatively simpler resistor divider thing I did with R2/R4/VR1, and there's some other current path I haven't thought about yet through the potentiometer. Could be something else too. In any case, the move here is probably to do something more like in figures 8 and 9 of the LTC6993 datasheet with an opamp current sink and a potentiometer, and something less like what I did, which came from the unlabeled figure on the last page of the LTC6993 datasheet. Again, one more part, but opamps are pennies and I use them elsewhere, which drives the cost down further.
- The LTC6993 is one of the microtiny packages too. This is a little worse than the other microtiny package in the INA350, in that I can just buy another inamp or an opamp for that one, but the LTC6993 is fairly unique and I can't just shop for another part that does the same thing. I'm not sure what to do about this. It's too late to add a microcontroller, but this timing issue just won't let up. I think the difficulty to solder this one might just be a thing to fix in the Lite 2. Technically, you need this level of coordination and fine motor skills to do the actual electrolysis hair removal anyways, and I was able to do it with nothing but an iron, a solder sucker, and a magnifying glass, so it's not impossible and anyone with even slightly better tools than me should be okay, but it's still a bummer. From now on, new rule, nothing smaller than a DFP package. If I get rid of the INA350 and this, then there's no more.
- The done alert doesn't work. The intention was that LED D3 turns on and buzzer LS1 beeps for half a second when the current pulse is done, alerting the operator that it's time to move to the next hair. This circuit is everything connected to U4 in the schematic in my last post. Not only did I pick the wrong kind of buzzer (very easy fix I just need to shop better), but the whole timer sticks on forever instead of just flashing on for half a second. I didn't know this at the time, but if I were to read the damn datasheet, I would have seen on page 10 that: "Monostable operation is initiated when TRIG voltage falls below the trigger threshold. Once initiated, the sequence ends only if TRIG is high for at least 10 ฮผs before the end of the timing interval." Basically, the 555 wants to see a super quick off/on to start the timer, and I'm just giving it an off with an indefinite delay after, causing the timer to stick on. I don't really know how I'm going to handle this to be honest - my current best guess is to make some kind of quick and cheap RC high pass filter thing hooked up to a transistor that turns a high to low edge into a high to low to high pulse. I'll have to breadboard or simulate it a little bit, but if I can make this work it's a very cheap fix to the problem.
I'll be fixing this list of issues and moving both circuits to a new united design with test points and jumpers this time (thank you @[email protected] ) that will be, if it works, the first alpha version of the Lite. Progress!
I also cleaned up git - not sure if anyone has tried to pull down the repository and look at the boards yet, but if you have, it was broken - it should be fixed now, but you'll probably need to re-clone. If anyone tries this, let me know how it works!
New Developments
I bought a domain name! Meet sphynx.diy
Currently empty, just points to the git repo, but you have to start somewhere - this is where I want to host blog posts like this one, the assembly guide, and the usage guide and resources in the future. I'm not going to be doing much with it immediately myself, but having this makes it so we can start working on an actual site! I was thinking GitHub pages for hosting with a cute Jekyll theme, or maybe readthedocs like mentioned last time - thoughts?
Also! I used the boards above to remove a couple square centimeters of hair as a proof of concept! It's only been a couple days but I'm optimistic - I tested by tugging on the hair with tweezers, observing it tightly connected to me by the follicle, applying about 10 units of lye per Figure 2 of this very helpful resource I found, and then after current application, pulling again, for the hair to slide out with no resistance, which is a very strong indicator that it worked! Stay posted to see if they stay gone or if I need more juice, 10 units of lye is on the very low side but I'm playing it safe.
Next up
I'll absolutely be fixing up the boards as mentioned above and making and designing an Lite Alpha 1.0 next! I don't want to suggest that this one be used on human beings, but once I make it, it might be fun to buy and assemble for research purposes? Probably not, maybe best to wait until I at least make it to a beta version, but in any case I'm excited for it! It's also not too early to get work on a manual started - this is something that I'm going to try to lean on community help for.
I'm also exploring JLCPCB assembly - it would be much better for accessibility if I could keep 100% to their parts catalog (plus I wouldn't feel bad about using microtiny packages any more), and for now I think I'm close, but I know that there's at least a potentiometer I use that isn't in their catalog.
Any ways to help?
There are starting to be more things to do! I'm kinda feeling like it might be time to start pulling in folks for web stuff! If anyone has GitHub sites or Jekyll experience, getting going on a place to host an assembly guide would be awesome! This is also something that should be doable even without this particular experience if you know web stuff, so don't feel intimidated - I think this is accessible with a bit of new learning for anyone with intermediate web knowledge.
Another thing I could totally use help with is BOM management - I have links for all the parts, but I don't have them linked anywhere and I don't have them automated, tallied up based on cost, in a convenient one click buy cart, or anything else like that - if anyone likes making bills of materials in KiCAD, let me know, that would be super helpful! In a similar vein, having an audit and maybe a port of my design to 100% JLCPCB catalog compliance would be extremely nice, if either of those things sound interesting to you, let me know!
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 I'll talk to you in a week or so!