3dp Tag

3 Articles

Canary v1

22 Jun 2022

categories: small-computers
tags: 3dp circuit-python i2c rp2040 stemma

Recently my partner bought an LCD resin 3D printer. That was kind of the last straw for a risk that has been growing in the last few months. I already had a filament 3D printer (so far just for PLA, but who knows!), and several weeks ago I hooked up a kegerator with a carbonation system. Oh, and all of these share the same airspace as my office.

The risk we’re concerned about is a buildup of VOCs, carbon dioxide and carbon monoxide. To mitigate this, I wanted to build a device that can sense these things, display their levels on a readout, and potentially make a loud noise if they go over a certain threshold.

Are there consumer devices that also do this? possibly. Are there even fancy filter fans that can show you what’s in the air on your smartphone? also yes. But this sounded simple enough to prototype that I could spend a little extra money on the parts and then have fun putting them together. (Also, I couldn’t find a consumer-grade device that would measure carbon dioxide, so I wanted to start there).

The main board I chose for this is the Adafruit Trinkey QT2040 (guide). I didn’t have a lot of criteria to match. I mostly wanted it to be easy to get running, and use I2C for the connections. Trinkey is easier than easy. Anything Adafruit makes that works with their Circuit Python libraries is very approachable, code-wise. And this board is based on the RP2040 chip, which is more than powerful enough to run the code I need.

It also happens that Adafruit maintains a hardware spec called “Stemma QT” that transmits I2C signals over premade JST PH wires (youtube intro). Trinkey has Stemma QT (hence “QT2040”), and a lot of the sensor breakout boards that Adafruit makes also use Stemma QT.

An Adafruit Trinkey RP2040 QT

The star of the show is the CO2 sensor: that’s an Adafruit SCD-41 (guide) photoacoustic “true” CO2 sensor. It measures temperature, relative humidity, and CO2 (in parts-per-million). It transmits all of this over I2C, using Stemma, once every few seconds.

An Adafruit SCD-41 sensor package

For an interface, I’m using a monochrome 0.96" I2C OLED Display (guide) with 128 x 64 pixels. Later I may switch to something like a SHARP Memory display, for low-power use.

A monochrome 0.96

I had a Pi-Fan laying around from a past project, and figured the sensor wouldn’t do much good without a continuous supply of new air.

A DC brushless “pi-fan”

Finally, I 3d-printed a frame for all these parts to screw (or hot-glue) onto. The first attempt is always a little kludgy, but I really like it! Without further ado, here’s my first take of a CO2 sensor:

The full CO2 sensor device, powered off

The full CO2 sensor device, powered on

The code and 3d-printing files are available at https://github.com/spilliams/canary

Final Bill of Materials:

Next time I come back to this, maybe I’ll add a speaker and “hush” button, or CO and VOC sensors, or a battery for portable use!

Starting in on Dactyl

25 May 2022

categories: keebs
tags: 3dp dactyl ergodox glove80

Since December 2020 I’ve been using an Ergodox EZ as my main keyboard, both for work and games. I have my own QMK firmware flashed on it, and I’m nothing but pleased with it.

[image] My Ergodox EZ

Seasons change though, and in January 2021 I found myself backing the Glove80 Kickstarter. I’ve been curious about a curved (“manuform”) keyboard, and this one looked really slick.

[image] a Glove80 in Colemak layout

Up to that point I’d put together keyboard kits with PCBs, and hadn’t yet 3d-printed any enclosures or plates. I kept seeing peoples' cool creations on reddit though, and eventually I started down that path myself.

Today I’m writing this on my first 3d-printed, handwired keyboard! It’s the “Dactyl Manuform Open”, available from source code here.

[image] my new Dactyl Manuform handwired keyboard

For my first attempt I didn’t want to change anything from the stock model, but I did frankenstein it with some parts from a similar build, here. I had noticed in my first print of the Dactyl Manuform that the legs wanted to adjust themselves a little too much.

I was stymied temporarily by my available tools at the time: I only had an FDM printer, which didn’t have the right resolution for some of the smaller parts. My partner recently got an LCD resin printer though, so I’ve completed the Dactyl Manuform build.

[image] the guts of a handwired 3d-printed keyboard

Handwiring was fun! A little frustrating. My only loose connections were in some crimps in rectangular cable connectors (my build eschewed the standard 3.5mm cable between the halves, because one fewer microcontroller is 50% easier to debug). I ended up cutting out the cable connector and replacing it with soldered wire connection: it’s not as if I’m going to use either of the halves by themselves.

I’ve come up with my own firmware for it (cribbed from qmk’s). It’s technically Via-compatible, but I don’t know yet how to set the vendor/product/keymap to make the tool show an accurate representation of the layout and key mappings. A work in progress, perhaps.

Last night, after typing on it for an afternoon, I started hacking around in the source code, to see if I could get one with the key layout I’ve grown accustomed to with the Ergodox. I was able to generate something that seems like it’ll fit my needs better, and then I took another look at one of the Dactyl Manuform’s ancestors: the Dactyl Keyboard.

[image] Adereth’s Dactyl Keyboard

With the exception of the inner row, this matches the key layout of the Ergodox. I like the 6-key thumb cluster. I’m not sure how comfortable the shape will be, but aesthetically I think it’s a great board. As I write this, my FDM printer is making a bottom shell, and my partner’s resin printer is making a top shell (in two parts).

[image] three parts of a keyboard frame: two top shell halves printed in resin, and a bottom shell printed in PLA filament

As with my first attempt at Dactyl Manuform, I haven’t tweaked any of the source code. That may come later, if I really find the shape or lack of an inner column uncomfortable. Next up: wiring this half, playing with it, and iterating!

[image] an Adereth Dactyl Keyboard, coming soon to a desk near me

toggle switch guard print #1

18 Jun 2021

categories: Lander Module
tags: 3dp fdm

I printed out the “space shuttle toggle switch guard”. In plating I selected the single guard then did “Add Part” to expand it to a row of 5. Then, in print settings I made sure to go into Expert > Infill and set “Solid infill threshold area” to 16mm^2. This ensures there’s a solid infill for the upright portions of the guard, extending just below the joint with the side plates. Overall, quality was pretty low, probably due to all the jumping around, and bridging. For the next attempt, I may want to re-model the holes for the switches, since the switches I bought are nowhere near fitting the holes as-is. I might also want to try a build in a different orientation? or with different infill options (was it really necessary to use solid, or to use infill at all?) Anyway, good first attempt!

Oh, for the second iteration I could avoid the 12-hour time by just printing squares with holes in, and inset the squares to the guard I have! CA glue will be a key part of the build anyway.

In other news, first Digi-Key order arrived and it is great! Lots of buttons to push and the joysticks live up to their name (especially the ball-top one).

For the next round of orders I want to try to get a large square button or two, for a “main alarm” function. These can be pricey, but with only 1 on the board I think it’s worth it. I also want to try out some “standard round” toggle switches, because I can print out the cover to make it look more spacey.