cyborg ring

cordwood + smt + jewelry + blinkies + zinc-air batteries

Similar projects worth following
This project evolved from Splinter, the SMT cordwood project I did last summer/fall. The ring is powered by tiny size 10 hearing aide batteries which should give 4-6 weeks of intermittent use, once I come up with a design that doesn't break after a few days of wear and update the firmware to put the ATtinyx5 to sleep. The first rev (labelled 'blink-ring') used deep red 650nm LEDs. Searching for particular component lengths gave me an excuse to use strange 0508 resistors. And somehow, this is my first Charlieplexing project. Yaay novelty soldering!

  • OSHWA certification, much better documentation

    zakqwy11/07/2018 at 18:42 0 comments

    OSHWA certification. Yay! The cyborg ring is US000141. That means as of this posting, I'm responsible for around 4% of all certified projects. Wait that is bad, it means more people should get certified. Certify your projects! Don't let Open Source Hardware become a stupid marketing term (or at least, continue to be that).

    I also did a major documentation update which can be seen in the in the GitHub repo, available here. The repo now contains all the instructions of record, and will likely be the thing I update first whenever I get around to a fresh cyborg ring iteration. But I'll keep this project updated too, so don't worry.

  • build live stream recording . . . and kits . .

    zakqwy10/10/2018 at 04:17 0 comments

    I did a live stream of a ring build and it went pretty well. Certainly better than the first recording I made. Just shy of two hours with shitty audio:

    Also, I made ten kits. 

    they are simple but hopefully well instructioned enough for an intermediate solderer to enjoy over the course of an evening or two. also they come with lots of extra parts.

    goodbye kits. enjoy the protection offered by my favorite corrugated box:

    more on this development in a few weeks...

  • slack group!

    zakqwy07/20/2018 at 14:40 0 comments

    A few folks on Twitter ordered PCBs and wanted to start a cyborg ring build slack channel, so I obliged. Link to join, if you are interested:

    I think this invite expires in a month, so.. if you read this afterwards, remind me to update it!

  • A wild ring, plus a better diagram

    zakqwy06/04/2018 at 19:23 0 comments

    @F0cks built a cyborg ring and proposed to his girlfriend! Awesome. He made a few excellent improvements (sized down to 6.5-7, programming pads on one side, etc); check out his excellent build log here:

    Also I added a programming diagram to the repo, as the previous text description was difficult to follow. And wrong.

  • Design files released!

    zakqwy05/17/2018 at 20:25 0 comments

    CC-BY-SA 4.0

    Someday this will end up on Crowd Supply as a kit, but if you're impatient.. have fun!

  • assembled, put to sleep, in daily use.

    zakqwy05/05/2018 at 15:59 8 comments

    I assembled the new ring version some time ago but didn't get a chance to putz with the programming until now. Gross, programming. But yay, yellow LEDs:

    Used a pin change interrupt on the button to wake up the t85; previously, resting current draw ("resting") was nearly a milliamp which nuked the batteries in a few days. Now down in the microamp range, which should make Zn-air life the limiting factor (4-6 weeks depending on use):

    Note that I kept the pogo rig together but soldered wires on for iterative programming. It's fussy to repeatedly align.

    Reinforcement wires worked like a charm. I took a few traces dangerously close to the PCB edge which bit me this time, but nothing a few jumpers couldn't fix:

    The ring also has a bit of conformal coating, and I used the largest spring tabs from the previous order (A108284CTs). Assuming the ring doesn't break in the next week, I'll wear it to Teardown. 

  • some next rev freshness

    zakqwy02/01/2018 at 23:25 10 comments

    I intend to tackle a few problems with this revision. None of the changes are huge, and thankfully didn't require any rework in Inkscape and only needed a bit of re-routing.

    First, none of the battery contacts I ordered previously really worked. I tried a few flat gold-plated plates (they lacked any 'give'); various bits of RF gasket material (unreliable connection due to size, I think); and wimpy spring-loaded finger joints (batteries fell out). Here they looked in my Digi-Key cart:My experience with the gaskets in particular leads me to believe that a soldered-in solution is best here. The batteries measure 3.45mm long but the spec suggests this can vary between 3.30 and 3.60mm, so I need a solution that covers a reasonable range. I considered using a stubby pogo-type pin, but it would need to be thru-hole soldered and would probably stick out a bit. So I selected a variety of spring clips:
    Datasheet quality varies here; some give recommended closed height, some give typical force numbers, etc. I selected the six specimens above based on these bits of info where available, and otherwise based on uncompressed heights in the 1.0 - 1.3 mm range. Since the footprints vary a decent amount, I also changed the battery cathode pad to a fully exposed copper disc like the anode.

    Second, I fixed that stupid capacitor pad that required a minor bodge to get the LEDs connected. I took another look at the PCB layout and I clearly hand-labelled the netlist incorrectly on that pad:
    Serves me right for not including the structural caps on the schematic. Manual netlist stuff is never a good idea, it's just asking for trouble down the road. Fixed, with fills displayed:
    Third, I need to add some tensile strength -- the 0805 resistors in particular come apart quite easily. I'm using lengths of 30 AWG wire wrap wire as reinforcements. The wire should be 0.254mm diameter (my crappy calipers suggest less, but... I believe the spec), so I added some slightly larger plated through holes in strategic spots:
    None of the wires (8 in all) are electrically connected to anything, so it won't matter if the battery slides around a bit and hits one. During assembly, I'll rig up some kind of scheme to keep the wire under tension during soldering. Mechanical strength is really important, especially when changing batteries!

    Boards are ordered. They should be here in a few weeks, at which point I will post an assembly log.

  • assembly, breakage, next rev plans

    zakqwy01/25/2018 at 23:29 4 comments

    I used OSHpark's 0.8mm / 2oz double-sided service to save a bit of width on the ring. When the boards arrived, they were nicely routed but required a decent bit of clean-up with a file as mousebites aren't nice to fingers:

    Note the holes on each positive battery contact; these are Zn-air cells, so the vents should be exposed to the atmosphere.

    The circuit includes two board-to-board jumpers along with four high-resistance structural resistors, all made from standard 0805 components. I pre-assembled these on a heat-resistant surface (in this case, my PTFE-jawed Stickvise):

    Easiest method here is to carefully align the two components with tweezers...

    ... dab a tiny bit of flux at the junction...

    .... and touch the junction with a tinned iron tip.


    Once I had the 0805 jumpers sorted, I started soldering the vertical components onto the switch side of the ring. I followed my standard SMT soldering procedure here: a drop of flux on the pad...

    ... careful alignment with tweezers...

    ... and a touch with a tinned iron tip.

    The same procedure works for the QFN ATtiny, too, although the iron 'touch' turns into more of a 'scrub'. If this doesn't make sense, I made a QFN hand-soldering video a few months ago that explains the concept a bit better. Note that in both cases, holding the part near the bottom helps a lot to ensure the component is square. Practice makes perfect...

    Examination through the loupe ensures we've got a good fillet (not yet defluxed...):

    The rest of the parts go on in a similar manner. The LEDs live on either side of an 0508 stubby resistor, so I soldered these onto each side before mating the halves, as shown in this picture from an earlier log:

    [keen observers will notice that this is a different copy of the board with the QFN rotated 90 degrees. This was wrong, and I actually had to rework this component after the two halves of the ring were assembled. Yes, solder braid can work miracles.]

    Since the batteries are a bit under 4mm tall -- more like 3.3mm, give or take -- I used a set of tiny spring tabs to fill the gap:

    [yes, I didn't really plan the PCB footprint around these tabs, so they hang over a bit. And the QFN definitely needs to be straightened out. Soldering under the camera is a pain.]

    These worked for a time, but eventually the batteries fell out; the tabs plastically deformed after a few insertions and eventually broke. During one of the periodic tab tightenings I attempted over the course of a few days, I pried a bit too hard and the back of the ring actually broke. It seems that I need to treat 0805 resistor stacks like unreinforced concrete columns -- not so great in tension, as the caps tend to pop off:

    Fortunately none of the pads were damaged, so I replaced the resistor jumpers with lengths of wire. I used tiny scraps of self-adhesive conductive RF gasket for the batteries, which seems to work but still doesn't seem ideal:

    Just popped in a new set of batteries, so I'll wear the repaired ring for a bit and see if any other weaknesses pop up. I'm starting to make a list of improvements for the next rev which I'll share next time, as this log is already long enough.

  • more (specific) design notes

    zakqwy01/18/2018 at 16:54 3 comments

    I started this project by measuring my wedding ring. I like its form factor and it fits well enough, and the wide curved stone on the top seemed like a nice element to replace with LEDs:

    That got me in the ballpark; my fingers are all different sizes and I figured the PCB edge wouldn't be nearly as accommodating as a smooth gold band, so I decided on a ~19.5mm opening. After creating initial footprints in KiCad and pulling them into Inkscape (via *.svg export), I putzed about for a few hours and came up with a reasonable PCB outline:

    A few things to note here:
    • I'm using Inkscape, not a nice parametric CAD program that allows dimensioning and complex constraints. As such, I depend heavily on guidelines and snapping to ensure dimensional consistency and (in this case) symmetry. Like all things, using this tool rather than something like Fusion360 or FreeCAD is a tradeoff.
    • I tend to design organic shapes using the minimum number of points possible; in this case, the ring outline has 8 nodes, six of which are smooth. Again, I used guidelines to ensure node alignment and approximate handle positioning. But if you zoom in close enough, the ring isn't perfectly symmetrical.
    • I keep critical footprints in their own layer, and move them around as needed to get other dimensions correct. In this case, those footprints are mainly the batteries (the large red circles, one of which has a large hole for the Zn-air vent), the side-mounted pushbutton switch, and the LEDs. Note that the LEDs are linear-spacing-equalized but not rotated to final position; as fas as I can tell you can't do circular arrays in Inkscape, and in any case I wanted KiCad to identify them as discrete footprints rather than an imported graphic. The critical dimension here was width, so I used one footprint as a rough ruler and rotated it as needed to approximately equalize clearance between the inner and outer edge cut.
    Once I was satisfied with the profile, I printed it out at full scale and glued it to a piece of cardboard for a fit check. This would have worked well if I had a laser cutter for the inner line; it was difficult to precisely cut the circle but I was able to verify that the ring was roughly the right size. And finally, since KiCad doesn't like Bezier curves, I copied the outline to a new layer (in case I needed to modify the original down the road) and cut it into tiny straight segments:

    I then imported the outline as a *.dxf file (twice) into KiCad and got the two halves aligned on the same grid:At some point, "the perfect is the enemy of the good" applies here. I added centerlines and moved the respective outlines until they were aligned within 25 microns or so, but they aren't perfect. It doesn't really matter. Next, I created a circular array of LED footprints (again, twice...), tweaking spacing and radius until they seemed to fit nicely:

    Note that I added the specs to the PCB comment layer, and manually named each LED footprint to its appropriate net. Then I deleted all the originally imported LED footprints. Probably a simpler way to do this, but it worked for me.

    Routing was straightforward. I arranged the Charlieplexed LEDs in such a way that I minimized vias and was able to run the four signal lines as four pours around the skinny part of the ring, which avoided awkward jointed traces:
    Note the four 0805 footprints above and below each of the side pours -- these were added post-netlist for the 20M structural resistors. I used a high value here since they short out the LED signal lines; I suppose I could have pushed the pours to the outside of the ring, but this worked well enough. This also caused one screw-up, as I improperly specified one of the front-layer pours resulting in an unintended gap:
    After assembly and programming and still not being able to light up the center four LEDs, I discovered the problem, scraped away a bit of solder mask, and added a blobby bridge:

    Good enough. And yes, the ring does tend to pick up glove fuzz (seen on the LED), but...
    Read more »

  • design process notes

    zakqwy01/16/2018 at 19:51 0 comments

    I build weird PCBs. Most include copper- and mask-layer graphics, and they often feature complex routed outlines beyond the normal 'this-needs-to-fit-in-an-enclosure'. My tools of choice are Inkscape and KiCad, following a clunky but effective workflow:

    I usually lead with KiCad: throw together a preliminary schematic, make footprints as needed, pull them into Pcbnew, right-click-global-spread-and-place, and export the grid of components into Inkscape. Starting this way ensures the graphical work gets done at scale; most graphics and board outline decisions are bounded by component sizes so it's nice to have this in place up front. Then I put together a first pass at graphics and board outline, export to KiCad, and start high-level routing. Inevitably this results in numerous minor changes that drive the iterative loop until I get sick of the process and send the board out for fabrication. It's no PCBmodE, but I don't think I could live without real-time DRC and push-and-shove routing.

    Fundamentally, this process doesn't change with SMT cordwood construction beyond a few extra considerations.

    First, cordwood design is confusing. You are designing a circuit in which every component is split in half on the schematic, so it's a lot to keep track of. Between this project and #Splinter, I have found that (a) drawing the schematic (and potentially testing the circuit) in a conventional manner is helpful; and (b) keeping components precisely laid out across from their counterparts is a necessity:

    As you can see, I've made a few schematic symbols that are specifically designed to minimize confusion; they even look like they're supposed to interlock across the gap. Remember, KiCad knows how to handle routing on a single PCB, but you have to keep track of routing between the two boards. Note that this means you can't just drop GND and VCC labels everywhere -- keep them on one side if you use them at all!

    This layout strategy extends to the part placement process, since opposing boards must be inverted and perfectly aligned. The strategy here is to sort parts into two piles, flip half to the back side, align the two PCB outlines to the same grid, and use comment-layer lines and visual cues to ensure component alignment:

    Second, component selection is driven by component length in addition to the usual myriad of other characteristics that one finds via parametric search. SMT cordwood doesn't have the luxury of component leads to absorb small differences between components; everything has to be pretty much spot-on. In the case of this project (and #Splinter for that matter), the key gap of 4mm is based on the dimension of the QFN version of the ATtiny85. Why this part?

    Beyond the general excellence and simplicity of the ATtiny series, the QFN version of the ATtiny85 in particular is great for cordwood construction because it uses a 20-pin package for an 8-pin part. Atmel wisely chose to only utilize pins on two opposing sides of the package, meaning one can access the chip's full functionality in a cordwood design (using a jumper wire for the ground pad, which seems to work without tapping Pin 8). Furthermore, QFNs have square edges, meaning one can solder the chip to half the board and be fairly confident in its alignment and mechanical strength:

    [above, the resistors marked '106' are 10M each -- effectively insulators for the part of the circuit they short out. They are purely structural elements. The resistors marked '0', on the other hand, are jumpers and quite important for circuit operation!]

    Once this chip was selected, I worked backwards using Digi-Key's parametric search and a good bit of datasheet examination. I'll put up a Page later on with an updated list, but for now my 4mm span cordwood compatibility guide looks something like this:

    • 4mm QFN (i.e. ATtiny85)
    • two 0805s, end-to-end (resistors, capacitors, or LEDs)
    • one 0508, one 0603, and another 0508, all...
    Read more »

View all 10 project logs

Enjoy this project?



Hpag wrote 02/11/2019 at 16:04 point

I'm really interested in this project, is it waterproof?

  Are you sure? yes | no

Jarrett wrote 02/11/2019 at 18:12 point

It is not! A fun project could be to encase it in resin, then it would be more sturdy, and waterproof as well.

  Are you sure? yes | no

will b wrote 10/19/2018 at 22:07 point

I'd be interested in purchasing a kit! How do I go about that?

  Are you sure? yes | no

F0cks wrote 06/04/2018 at 10:11 point

@zakqwy  I have finally made my own cyborg ring! :
(used to formalize things with my girlfriend :p true story)
Thanks for your amazing work!

  Are you sure? yes | no

zakqwy wrote 06/04/2018 at 12:38 point

this is delightful! thank you for sharing, @F0cks !!

  Are you sure? yes | no

F0cks wrote 05/17/2018 at 21:08 point

Thanks for your work and  for making it "open source". I will try to make it from scratch, but the BOM will be very useful. I will quote you on Instagram if I succeed in doing something clean :D

  Are you sure? yes | no

F0cks wrote 05/18/2018 at 06:43 point

Actually, I have already found that... That s why I was thanking him `:D

  Are you sure? yes | no

Evan wrote 04/05/2018 at 01:15 point

This is very cool.

  Are you sure? yes | no

Clay Shippy wrote 03/29/2018 at 16:11 point

how about an optic or some way to read thumb position when rubbed over the ring (or a accelerometer/gyro), some way to plug it in even one wire magnetic link coupler, could use this for pointer finger and have a mouse for the computer/tablet. maybe use it to recall your 500 - 1000 bit encryption keys via rfid or maglink. make a communication protocol based on a read writer (not sure how healthy that would be for skin and prolonged usage if using wireless rfid/wireless)

  Are you sure? yes | no

Maurice wrote 03/05/2018 at 13:25 point

Hi, for a really complex pcb edge like your, you may find these tools useful:

and kicad forum's related topic

PS nice artwork though! :D

  Are you sure? yes | no

morgan wrote 05/18/2018 at 06:55 point

Hmmm, if only you supported multiple boards..... hehe, I kid. StepUp is great, I excited to keep pushing forward with it.

  Are you sure? yes | no

Maurice wrote 05/24/2018 at 09:47 point

Now it works also for multiple pcb board :D

And StepUp can be configured to have a nice OSHPark purple pcb color ;)

just add this to the ksu_config.ini file


;; pcb color r,g,b e.g. 0.0,0.5,0.0,light green

pcb_color = 0.427,0.039,0.556, oshpark purple #6D0A8E

  Are you sure? yes | no

Paul Crouch wrote 02/11/2018 at 17:41 point

  Are you sure? yes | no

ETERNAL wrote 01/29/2018 at 19:34 point

The ring looks awesome! Might I ask, what company did you order the PCBs from?

  Are you sure? yes | no

zakqwy wrote 01/30/2018 at 19:12 point

Thanks! OSHpark!

  Are you sure? yes | no

oshpark wrote 01/26/2018 at 05:17 point


  Are you sure? yes | no

Ben Hencke wrote 01/25/2018 at 14:00 point

Wow! Very nice design and some incredible soldering!

  Are you sure? yes | no

Robert Mateja wrote 01/25/2018 at 08:15 point


  Are you sure? yes | no

freefuel wrote 01/24/2018 at 21:11 point

very cool, now could we squeeze an IR LED in there and some "TV be Gone" code to drive it

  Are you sure? yes | no

Daren Schwenke wrote 01/20/2018 at 21:31 point

Change the pattern and you got a Cylon ring.  :)

Pot it with clear degassed epoxy or for a smoky look add a drop of inkjet ink, leaving space for the batteries of course.

  Are you sure? yes | no

Seth Hunter wrote 01/19/2018 at 23:38 point

I really like the way the components are nested between the PCBs - and the way you laid out the schematic to help think about both sides - very unique. 

  Are you sure? yes | no

Z wrote 01/19/2018 at 13:45 point

The name is painfully obvious. Blink+ring= Bling. The only appropriate use of that word :D

  Are you sure? yes | no

zakqwy wrote 01/19/2018 at 14:05 point


  Are you sure? yes | no

Stephen Tranovich wrote 01/19/2018 at 00:10 point

I love hearing about all your design considerations. Are you planning on filling out a build instructions section specifically for walking through people replicating the piece? I would love to make one for myself and friends!

  Are you sure? yes | no

zakqwy wrote 01/19/2018 at 02:15 point

yup! I need to make a few PCB modifications but I'll be putting up some good build instructions shortly. 

  Are you sure? yes | no

Makerfabs wrote 01/20/2018 at 04:25 point

and a good lesson for the kids to learning soldering, but maybe a little difficult :-D

  Are you sure? yes | no

Crypto [Neo] wrote 01/17/2018 at 23:23 point

Hey! I made almost this exact same thing a few years back but I used a 3D printer with ABS and Conductive Filament. I used an extra battery as well but only had one LED. My major issue was that it just didn't last as long as I liked and it was pretty bulky for a ring. If you ever sell these I may buy one just for the novelty that someone out there also had an idea for LED rings :D

  Are you sure? yes | no

zakqwy wrote 01/17/2018 at 23:37 point

cool! would love to see your design. I got a few days out of the batteries but that's without any power saving strategy.. either way, Zn-air cells don't last long regardless.

  Are you sure? yes | no

Morning.Star wrote 01/17/2018 at 03:38 point

Very impressive piece of work, its beautiful. And very inspiring too. :-D
That is some next level soldering as well. Architectural SMT? Brilliant, no other for it.

  Are you sure? yes | no

Dr. Cockroach wrote 01/16/2018 at 21:21 point

That is great looking and great thinking out of the box :-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates