Projects

WiFi Temp+Humidity Sensor

I’ve been getting into quite a bit of fermentation lately. Between garlic honey, sourdough, tepache, ciders, and whatnot, I’ve amassed a bit of a collection of containers fermenting all at once. As the weather changed, I wanted to start keeping track of the temperature and humidity of the area where I’ve been keeping my ferments. What I wanted was a sensor that showed me that information but also logged it on an online server to view away from home.

I did a bit of research and have been wanting to dig into Arduino for a few years but have been a little intimidated by it since my proper coding skills are pretty rusty. I came across a number of similar projects and decided to bite the bullet, order parts, and patchwork them together.

DigiKey is my go-to for electronics parts

Once they all came in, I set to work! The schematics themselves were easy enough to follow and I had a lot of fun trying to decipher exactly why certain components were used like the resistors. With the breadboard setup and a whole spaghetti of wires, it connected and things lit up! In the actual fermentation station, there wasn’t a nearby outlet, so it’s being powered by a spare power bank I have.

Spaghetti!
Spaghetti + Battery!

The next part was coding it so that it communicated properly. Luckily, I have enough of a background in coding that I was able to make the code modifications I needed easily enough and working well enough. With that loaded and linked to Thingspeak, we were recording temperature and humidity straight to the internet! But it still looked like spaghetti.

It functions!

Now it was time to boot up KiCad and design a proper shield and even a display adapter for the LCD screen that included a switch so I could turn off the screen to conserve power. The idea was that I could have a ribbon cable between the Arduino and the display so I could have the sensor inside the area and put the display just outside the fermentation area.

With the schematic from the breadboard, all I needed to do was add a switch between the power lines and that should switch on and off the display. Then I set out to design the PCB and laying out where the components would be and then basically connecting the dots!

Once I was done, I ordered a few prototypes and a the parts I needed to put it all together. It was designed as a single board that I would then just cut into two pieces. In a week, I had it all at my house and got going. For whatever reason, the footprint for the pins that connect to the Arduino ended up being mirrored so that the sensors ended up being inside the Arduino Uno board. Luckily, I was able to salvage the build and it worked great!

The only problem is that the switch doesn’t properly turn off the display, the backlighting remains on when the switch is off. When the switch is turned back on, it just displays garbage info. So that was a bust, but now we know!

The next version of this PCB has the footprints on the correct side and adjusts some of the placement of things at the edge of the board. Otherwise, I’m very happy with how this turned out.

If you’d like see the code, let me know and I can finally get around to upload it to GitHub. I made a few optimizations to the code so it doesn’t upload to the cloud as often and doesn’t update the temperature as often either. The only real reason was to reduce power consumption to extend battery life.

SouthPad – Southpaw Mechanical Numberpad featuring USB-C

SouthPad

April 2019 – Present

The goal was to design, build, and program a discrete USB number pad from scratch. The primary challenge was that this would be mirrored from a standard keyboard number pad so that it could be used on the left side of a deskspace. This would better allow for the use of a right-handed mouse and a numpad at the same time, which would be useful for a lot of data entry work that I had been doing at work.

The PCB Design of MW-01 Rev 0.1

The design itself was rather straightforward. I could copy most of the work from existing designs and shuffle some things around to accomplish the goal of being mirrored. I added a row of keys above the standard layout to add some increased functionality: Backspace, Equals sign, and the Parenthesis keys. Some minor modification to existing firmware code was needed, but nothing too crazy or difficult.

Proof that the firmware can flash

As of July 2019, the first 4 prototypes have been built, are working, and a few have been sent out for additional testing. Next steps include changes to the layout to allow for it to fit in a proper case (sandwiched or milled), to make some minor aesthetic changes to the silkscreening, and to possibly make some location changes for the non-switch components (diodes, processor, etc) for aesthetic reasons.

The bulk of the details on this project can be found on this project can be found in a Geekhack post linked below.

See Project

In December 2020, I got a message that found this exact post and asked if they could purchase one from me. I’ve been wanting to do some updates as noted above. I also wanted to see if I could change a bunch of the components from SMD to THT. So I set to work, thinking that a simple replacement of all but the ATMEGA would work without issue.

It didn’t.

Oof

So after banging my head against the desk over a few rounds of prototypes that didn’t work. I just did some minor updates to the original design. Some fancy masking, cleaning up the traces, a little “professionalization,” and I shipped a round and sent that off.

Comparison to the original numberpad

Then I went to work designing a case that could go with it!

A E S T H E T I C
USB-C Fits So Nicely

And finally, I needed to come up with a name for it. MW-01 just doesn’t quite roll off the tongue. So the project was renamed to the SouthPad.

Now it’s listed on my store on Etsy. So you can grab one there!

From here, I’m pretty happy with the project. I’d really like to understand why my THT version doesn’t work, so if anyone reading this has any ideas, feel free to use the Contact form to email me about it, if you’d like to take a look at the files I have.

MW-1:1 – Split Full-Layout Keyboard

100% Split Keyboard

November 2017 – Present

The intent of this project is to develop a full-sized 104-key ANSI layout keyboard that can be converted into a more ergonomic “split” configuration. Think similar to the VE.A keyboard but with a more standard layout that you would find in a normal keyboard.

The reason this concept is being created is based on my enjoyment of the Ergodox keyboard that I have for my home computer. I wanted to bring the ergonomics of that configuration (and the ability to “tent” the keyboard) to my work station. But what I found is that after using my home Ergodox over the winter break and not using a standard layout, I had almost completely forgotten how to type on the layout. So, if I keep a standard layout on this concept and split it right, I can maintain my ability to use a standard layout keyboard while reaping the benefits of a split keyboard configuration. Being able to pull the two pieces back together would also allow coworkers to use the keyboard relatively easily, as well.

After some concept work, I found that if I kept the standard staggered layout that you would find on the standard ANSI layout, I could move the number cluster to the left side of the layout and split the two halves down the middle like on the VE.A keyboard and both halves would have the same width, thus avoiding most of the disparities of having one hand sitting higher than the other in a tented configuration of the keyboard.

This was my first big dive into proper PCB design, thankfully there is a plethora of information about proper diagrams, design, and programming within the Mechanical Keyboard Enthusiast community and most of the design has been rather simple. My primary issues have arisen from connecting the two halves and the protocol to use for that. The Ergodox uses an IO Expander Chip, other split boards use an I2C interface, and both of those methods have tripped me up, so I need to do some more research on that to continue the project.

PCB Layout of the Left-hand side of the keyboard

The Geekhack post is a chronology of my time designing it until I find a better home for the information.

See Project

SteamCube

2014-Present

The concept of the SteamCube was to see if I could fit a bookend PC (like an Intel NUC) inside the housing of a Nintendo GameCube. From there, a service called SteamOS could be installed onto it and the Steam Link feature could be used to play games from your couch or games could be installed and played directly from the small computer. With a system of this size, it could also be extremely portable, as long as you had a screen to play on and wifi access. In 2014, this was a pretty novel concept, in the current year with the advent of Google’s Stadia, Steam own Link devices, Nvidia Shield, etc. the idea is much more commonplace.

I am still technically working on this project, though much more in the background. This project is still great to do as practice in replicating parts via 3D printer that have a slightly different configuration than the original parts. For instance, the front section where the controllers would be connected could be modified to house ports for USB controllers and keyboard/mouse devices, the rear section where the IO and Power ports are could be modified to house ports for video (HDMI, DVI, VGA, etc.) as well as additional USB ports for additional storage.

CyDrone

May 2009-May 2013

CyDrone was a college project I was involved in that was to prove the feasibility of designing, manufacturing, and deploying a highly modular, semi-autonomous small Unmanned Aerial Vehicle which individuals or small local entities can easily afford and operate to perform a wide envelope of civil missions.

CyDrone CAD rendering
Rendering of the X-3 Airframe

It primarily used Commercial Off The Shelf (COTS) components to create an affordable and modular system to complete a variety of missions. The airframe was custom designed from a low-cost foam with an internal structure to support our flight envelope. We used analytics tools like XFLR5 for determining the right airfoil for our flight profile and ANSYS for the structural members of the airframe.

3D Representation of some of our Aerodynamic Analysis

Knowing this would be a project that would need to be worked past our time at Iowa State University, the team developed rigorous flight test and material plans and reports so that data could be recorded and shared to the teams as the project moved forward.