Ergo S-1 Product Development Cycle
The purpose of this document is to describe my experiences developing the Ergo S-1 wireless keyboard that lead to it’s release as an open source project.
I, like many others, found myself unemployed October 2020. The engineering job market in Houston was a little thin at the time, so I decided to take the opportunity to tackle one of my more aspirational bucket list projects. I had been a keyboard enthusiast for years at this point and saw an opportunity in the existing products on the market (both commercial and hobbyist) to make worthwhile improvements on what was available. I roughed out a schedule to have the project finished in six months.
My first step was to decide what price point I needed to hit to be competitive with other offerings on the market. This is an important first step because it will influence every single decision you make on the entire project from materials to design complexity.
I then spent a week roughing out conceptual models, similar to how clay models are made for new car designs. I’d start with a concept in my head, whip up a rough model on the computer, then imagine it in meat space and usually say ‘this looks like crap’ and iterate. This was the first time I really gave any focus to the aesthetics of a project and was likely more challenging for me than it would be for somebody more artistic. My projects had always started and ended at the simplest, most practical shape possible. I ended up taking a lot of inspiration from multiple open source projects like the Ergodox and the Dactyl as well as commercial products like the Advantage and the L89.
I also put some thought into the manufacturing processes I was going to use. I spent a lot of time researching thermoforming at first, but ultimately my focus became MJF for the keywell (switch retention is the most critical dimension in the design) and FDM for the case. FDM was chosen mostly due to the small production scale I was planning on. In general, manufacturing processes go from 3d printing –> thermoforming –> injection molding as you move up in production quantity.
I investigated designing for a thermoformed ‘skin’ over the printed case, but that idea was ultimately scrapped due to material availability of the sheet goods. The temperature requirements of thermoforming would have caused me to abandon PLA for the FDM process, which was otherwise a suitable material choice.
This is where I initially expected to spend the most time. I started the keywell model first but most of the iteration happened in parallel with the case design.
During the process of iterating on key angles and positions I quickly realized that I wouldn’t be able to deliver the same typing experience across all of the different keycap profiles that are available. Initially I wanted to keep the design compatible with all the keycap profiles on the market, but eventually decided to narrow that compatibility to the most available profiles so my customers would have the easiest (and, importantly, cheapest) options open to them if they wanted to customize their board. Not doing this would have compromised the out-of-the-box ergonomics of the product.
This is also when I was experimenting with different switch retention mechanisms. The difference between a good fit that can hold onto the switch when a keycap is being removed, an overly tight fit that is prohibitively difficult to insert a switch into, and a loose fit that pulls out was a matter of a few thousandths of an inch. That is why products with injection molded keywells, like in the Advantage or L89, hot glue the switches into place. These kind of tolerances are difficult to hit with 30+ switches in any process.
Case – Basic Shape
Once the keywell models were far enough along, I started focusing on nailing down the shape of the case. Once again, this was a heavily iterative process. The first dozen iterations all included the necessary draft angles and geometry constraints of thermoforming, but that was eventually dropped in favor of FDM. At this point I went out and bought an ender 3 from microcenter. I had never used a 3d printer before, but my intention was to test multiple units later on for actual production.
I was regularly getting budgetary quotes for the different components of the design to make sure I was in the ballpark of the price point I wanted to hit. This is when I realized that MJF was not going to be the right process for parts of this size. For some reason I remembered MJF being priced similarly to FDM, but I had only used the process once before and I must have just been lucky.
Once I limited my manufacturing process to FDM, the keywell and case became one integral part to save on cost.
EMC Design Research
My two choices for PCB design software were KiCad and Eagle. I had used KiCad for some earlier projects, so I had some familiarity with the software and with circuit design in general. I ultimately chose Eagle for this project, as it has some specific routing features that I needed for the flex PCB that, at the time, were absent in KiCad.
I was also planning on obtaining FCC certification for this project, and had some idea that this is difficult to do.
I spent 3-4 weeks going through the modules on https://learnemc.com/. I felt like I was in college again with a lot of the theory but, overall, this was a positive experience. I used a handful of other references but this was my primary source of EMC information.
Split Case for Printing
Up to this point the models I had been printing were solid to make printing easier. Now I began breaking the case up into multiple parts that could be printed separately and assembled. I spent a good two weeks experimenting with different places to break the model up into two or three pieces. I put some effort into minimizing supports to make cleanup easier but largely planned to address that after I finished the first prototype.
Design Mainboard & Keywell PCBs
One of the big features I was excited to work on was designing a polyimide PCB for the keywell. My design process eventually lead me down the path of mesh flattening. Turns out the software that does this is a huge, and almost completely proprietary, market in industries like clothing and boat sails. The pricing for the commercial software that does this was INSANE (i.e. normal industrial software prices). Luckily, mesh mixer can be made to do a good enough job with the right input.
I identified several key features early on that I knew I needed to incorporate into the design, which I plan on writing a separate article about later.
This was the point where I realized just how much work I still had to do on the case design. This process was a back and forth between tweaking slicer settings and modifying the model when some geometry turned out to be impossible to print cleanly.
In total, I tested more than a dozen brands of PLA and four different 3d printer models. I used a digital lab scale to quantify the effectiveness of different drying processes and did month long comparative tests to figure out the most effective dry box design.
I also extensively tested three different slicers: Simplify3D, Cura, KISSlicer. I ultimately chose Simplify3D because I was spending a lot of time exploring settings in the other two trying to get results as good as Simplify3D produced out of the box.
The experience had enough setbacks that I considered writing my own slicer to get around some of the difficulties I was having, but that turned out to not be necessary.
My most popular phrase during this time was ‘why the hell are you doing that’, muttered while staring at my printer during a trouble area of a print.
This took a little more than three months to complete, compared to my expected one month.
Shortly after the first prototype was complete, the global stock of the wireless module I was using disappeared with a lead time well outside my planned launch date. I chose another module and immediately designed a replacement mainboard, only to discover later that it’s FCC certification was fraudulent by closely inspecting the pictures associated with the claimed FCC ID. That’s the kind of thing that didn’t even occur to me to check until I noticed some inconsistencies in their documentation. I limited my search to official nRF52840 modules in a list provided by Nordic for the final redesign.
By the third time I designed this board, I had a much better understanding of the layout process. The end result doesn’t contain a single signal or power via, which was a point I was particularly proud of.
Circuit Testing Jigs and Procedures
By now, the second prototype was finished and the project was, more or less, in its final form. I had kept the QC process in mind during the design phase of the electronics, so I had exposed contacts in each signal line as well as some holes for alignment pins. The following months were spent building fixtures to improve the ergonomics of assembling these boards, designing a test fixture for the mainboard, and drafting written QC procedures so that I could deliver a quantifiably consistent product. This didn’t have the same glamor as the rest of the design process, but if anybody but you is ever going to build your product then it’s absolutely critical.
This felt like easily the biggest accomplishment of the entire project for me. At the suggestion of my peers, I worked with a regulatory compliance testing lab in Austin that I could drive to and attend the session in person. The entire experience was, simply put, totally cool.
Getting to correlate the EMC research I spent so much time on to real world industry practice was a great experience. For this device, classified as an intentional radiator, the frequency ranges that we need to test for regulatory compliance are 30 MHz – 1GHz and 1GHz – 18 GHz. There was a handful of techs / engineers gathered nearby at the conclusion of the 1-18 tests and, upon seeing the results, one of the more senior guys said to me ‘It’s really quiet, good work’. I did my best to play it cool, but getting that validation from an industry professional that the last year of work had produced a well designed part is a feeling that’s going to stick with me for a long time.
For any more technical readers, after the full range of scans were complete, there weren’t any points across either frequency range that had less than a -5db margin.
Product Launch & Business Planning
Throughout the last year, I had been steadily reaching out to suppliers to nail down a primary and backup vendor for each component. After the preliminary EMC testing was successful, I dug into the details of where I was going to get what and how exactly this product launch was going to go.
One key area of this was producing marketing materials, specifically a ~2.5 minute advertisement video. Knowing this was an area that I had zero experience with, I reached out to several marketing firms and independent videographers in my area. The entire experience was, simply put, miserable.
I don’t want it to sound like this was entirely the fault of the companies / individuals I was working with. It can’t have been. There isn’t a doubt in my mind that part of the problem was my inexperience in the field, but it turns out engineers and videographers DO NOT speak the same language. There are expectations for communication that I have developed over my career as an engineer, and everything about the interactions I had (or lack thereof) had my gut screaming that I was getting myself into a bad situation. Again, I don’t want this to sound like I’m trying to say that I’m perfect, nor that the blame should lay entirely on the other parties involved.
I decided to delay the video production for the time being, there were plenty of other details I needed to work out. This was when I made what, for me, was a groundbreaking realization.
Running a company sucks.
The last year had been a continuous string of technical challenges and clever (or sometimes not so clever) solutions. It had been a lot of work, but each hurdle was interesting in its own way. Resolving each deficiency that presented itself in the design was certainly a rewarding experience. But one day I looked up and realized I had spent a month buried in communications with vendors, marketing firms, videographers, financial spreadsheets. . . with a feeling like I was going in circles.
I decided that I needed to take a few days off, which would be the first break from the project I took in the last 12 months.
I hadn’t been tracking my time, but I went back and added up an estimate of how much time I had spent on the project. Somewhere between 2500-3000 hours in the first 6 months and another 2000 in the following 6 months. In hindsight, no matter how badly I wanted this to happen, this was really, really stupid.
For most of my life, whenever I heard anybody talk about burnout, I would outwardly sympathize with their situation but it wasn’t something I ever took seriously. I imagine it’s a lot like how someone who hasn’t yet dealt with depression views that experience in others. When it was time to get back to work, I just. . . didn’t. The thought of putting any more time into this project made me physically recoil. I started to resent the entire thing, feeling like I had wasted so much of my life on a meaningless design that I wanted nothing to do with.
Around this time I was contacted by a local recruiter, so for the sake of my sanity I shelved the entire thing and returned to the workforce.
Pivot to Open Source
Once I had a few months away from it, my interest and passion for the project slowly started to return. I decided that, since I had spent so much time on this design, it would be a complete waste not to get it out there for others to use. Even if I still hadn’t regained any interest in building a team and launching the full finished product.
I reworked the design to be built with off the shelf parts instead of the custom components I designed. To keep the cost of entry as low as possible I wrote up complete instructions for hand wiring the switch matrix. This got me back into the groove and I was enjoying the thought of enabling somebody who had never build a keyboard before to be able to tackle their own first project.
Since I spent the time finalizing the gcode for production of the previous design, it was easy for me to make the new open source parts as well. I added the prints to my Etsy store for anybody that didn’t have a printer to make their own. I decided to make a hardware kit as well, similarly to lower the cost of entry for anybody starting out in the hobby. This was necessary because I had selected relatively higher quality (expensive) heat set inserts and bolts that were only available in batches of a 100.
The preceding text has been a look into what the development cycle for the Ergo S-1 was like. I may dust off my original design someday, but for now the open source project is available for all to use. I hope you were able to glean some information that may help you develop your next project idea, or at least got some enjoyment out of the read.