Tap Light Focus Timer System

I’ve been procrastineering on a “sticky note timer” which would incorporate an e-ink display, be portable, updatable via WiFi, show me what I should be working on, and flash lights at me to give me a sense of movement / time passing / and urgency.  Sometimes I use the word “procrastineering” to refer to when I start to spiral on a project and end up in analysis paralysis.  But, I think it is more appropriately used when I’m doing a deep dive on a project when I really have something much more important / urgent I should be working on.

A long time ago I added a few components to an off the shelf dollar store tap light and turned it into a game buzzer.  While the sticky note timer project was marinating  / incubating1 in the back of my brain, I realized that maybe I don’t need or even want something that high-tech.  Maybe what I need is something dead simple?  As cool as the sticky note timer project is – and it really is neat – there’s a lot of pieces to the puzzle and a fair bit of maintenance that goes along with it once its finished.  You have to connect to it, upload a list, set up timers, etc.

I finally decided on something not so easily adjustable, but still flexible in it’s simplicity.  Rather than making the setup (adding / updating / uploading lists to a timer) something I have to do in order to start the timer, what if I made it part of the timing?

First, let’s look at what the setup.  A dollar store tap light which includes a lot of handy parts – a battery holder, a push button switch, several springs, and a simple and at attractive enclosure.

This slideshow requires JavaScript.

On the far left is a basic off the shelf dollar store tap light.  Next to it are two others I had previously modified to work as game / timer buzzers2  The last picture is the wiring diagram, except that I wired the ATTiny chip to the positive wire coming from the button switch.  Whenever I hit the button, it will toggle the circuit on and off.

Using some parts from my electronics bin3, I cobbled together a prototype on a breadboard that would do the following when the button was hit:

  • Turn orange for 1 minute and beep 3 times in the last 3 seconds
  • Beep once more and turn green for 12 minutes, then fade from yellow through orange over the last 3 minutes
  • Flash red and beep three times after 15 minutes had lapsed (12 minutes of green and 3 minutes of color fading)
  • Turn off, go to a low power mode, and then wake up long enough to flash blue every 8 seconds
  • After 5 minutes, it would flash green and beep twice
  • Then keep doing this 8 second blue flash and green light plus beep every 5 minutes
Animation of LED timer button

You’re probably wondering – what’s with all these timers and lights and beeps?  Here’s how I use them:

  • Place and slap the button to get going
    • I put my phone on my desk and the timer right on top of my phone.  It’s a big 4″ diameter timer and covers the phone pretty well.  I can’t pick up my phone without seeing this timer ticking down.  This is a huge difference between a phone app and a physical thing standing between me and my phone.  There are some web browser based apps – but these don’t really work for me.  Either I have to keep that window open and on top or … I’ll forget it exists.  This timer is right there, front and center, on my desk and lit up no matter where my desktop might take me.
    • Plus, it’s actually a little therapeutic to slap the tap light.  Pushbutton switches like this are built to take a bit of abuse and the physical action of hitting the light is a lot of fun.
  • Orange for 1 minute
    • This is the replacement for the “maintain / update a list.”  Instead of having to fuss with a list, I’ve dumped myself directly into work.  I’m suddenly racing the clock for 60 seconds to write all the things I want to try and accomplish in the next 15 minutes.  Maybe it’s a few emails, make some phone calls, or write / edit a document.  After 57 seconds, the buzzer will beep three times to let me know that the 15 minute timer is about to start.
    • Or, if you already have a particular task to work on, you could use this time to follow a process like Steven Kotler’s suggestions on tactical transitions to a a flow state4.  His three step process is:
      • Anchor your body
        • Practice box breathing.5  You could box breathe 3 times in one minute and have a few second left over to psych yourself up.
      • Focus your mind
        • Write down one clear goal.
      • Trigger your ritual
        • Recite a mantra, perform a gesture, start a “work” playlist
  • Green for 15 minutes
    • It’s go time!  Whatever I wrote down, now I’m in a race to work on those things – and those things only.  I can’t let new emails, calls, etc, distract me – that buzzer is going off in 15 minutes.  As the timer closes in on 15 minutes, with just 3 minutes to go, it turns yellow and fades to orange.  If I look up / down and see this, I know I’m in the home stretch and I’ve got to start moving fast to wrap things up.
  • Red alert!
    • Once the 15 minutes is up the light flashes red and beeps to let me know I’m off the hook.  Now, if I’ve already hit peak productivity, I could keep going.  If I got sidetracked, it’s an alert for me to restart the timer and get back to it.
  • Blue flashes, 5 minute green flash and beeps
    • These blue flashes happen once every 8 seconds6 just to keep the timer present in my vision so it doesn’t just appear into the mess on my desk.
    • If I finished out the 15 minute block of work time and I don’t stop the timer, the 5 minute timer is my reminder to return to my desk, reset the timer, and get going again.
    • If I ended up working past my 15 minute block of work time, the 5 minute beeps still give me a sense of how much time has passed.7
    • Importantly – if I get distracted by a sidequest, one of the beeps every 5 minutes is bound to catch my attention and remind me I’m supposed to restart the timer and get back to work.

So… does it work?  For me, yes!  Here’s why:

  • The hardest part of getting started is getting started.  My tendency is to want to collect all the stuff I’d need, get real comfy, make a list, look up some documents, etc.  This system short circuits all that.  I just need to be able to slap the big button sitting on top of my phone.  If I can manage that, I get 60 seconds to collect myself and then it’s time to rock and roll.  That’s enough time to take some deep breaths, start a playlist, or just sit quietly before I get started.
  • It covers up my biggest distraction.  Unlike an app on the phone or my desktop computer, I can literally cover up my phone with this big damn button.  I won’t see any notifications and if I want to pick up my phone, I have to actually look at and ouch the button – which is itself a reminder to get back to work.
  • It plays into a sense of play, urgency, and my own overdeveloped sense of competitiveness.  I enjoy hitting the timer to turn it on – and I want to beat that 15 minute timer.
  • The 5 minute timer acts like a built in break timer.  If I can get through 15 minutes of work, I can goof off, write a blog post, and without doing anything else that 5 minute timer can bring me back.
  • It includes a “failsafe” to bring me back to the timer if I get distracted by a sidequest.  If I miss the 15 minute timer, there’s another 5 minute timer around the corner.  Even between timers, there’s an intermittent flash of blue light to grab my attention.

The only meaningful “downside” to this timer button for me is there’s no pause button.  However, this isn’t exactly bad.  It helps me really hone in on what’s important and what’s interesting.  If a family member asks me for something or a call comes in, I just need to weigh the benefit of addressing the intrusion against having to restart the timer.  And realistically, if I pause the timer, I’m going to need some time to drop back into “flow” anyhow.

Sticky Note Timer
  1. Ah, just what I need! A new project!
  2. Sticky Note Timer, parts arrived!
  3. Seeed Studio XIAO ESP32C3 and a small sticky note display
  4. Brainstorming More E-Ink Stuff
  5. Smol Fonts for E-Ink Displays
  6. Tap Light Focus Timer System
  1. Fermenting?  Festering? []
  2. The older ones would flash orange a few times to alert you the game was going to start, turn green, fade from yellow to red, then flash red and buzz after 15 seconds. []
  3. I used an ATTiny45 because I had one, but it’s not much more expensive to use an Adafruit Trinket, a buzzer, a RGB/neopixel LED, and some wire.  In a subsequent version, I also used a small prototyping board like the Adafruit Perma Proto Boards []
  4. It’s the second slide []
  5. TLDR:  Breathe in slowly through the nose for 4 seconds, hold for 4 seconds, breathe out slowly through the mouth for 4 seconds, hold for 4 seconds, repeat []
  6. Because that’s the longest the little microchip can do between “deep sleep” to conserve battery life []
  7. I may adjust the program so the first five minutes is 1 beep, second five minutes is two beeps, etc []

Ah, just what I need! A new project!

A rough sketch
A rough sketch

If you’re anything like me, you’re familiar with the idea of Too-Many-Tabs™️.  I see a cool thing, I open it in a tab, I might organize tabs, I might bookmark them, and see them now and then.  The worst part about this for me is that as long as they’re not yet bookmarked and organized, I don’t want to close the tabs – so that I don’t “forget” about them.  But, as long as I’ve not bookmarked/organized/blogged about something, it will feel like it is still using some level of brain bandwidth, running as a “background process” using a small, but non-zero, amount of brain attention.  The only good ways I’ve found to excise these ideas/tabs/processes is for me to act on them (get started building and/or blog about them) or kill them (bookmark/organize).

I’ve seen several projects recently which are swirling around several similar concepts for me:

All of these projects do interestingly adjacent tasks – displaying relevant information, in an attractive way, serving as a reminder, good either on a desktop or perhaps a wearable.  I could see making a version of Tymer as a wearable watch.  The build seems fairly straightforward – buttons to input times, deep sleep functions which wake once a minute to determine if it needs to set off the vibration motor.  I would love a small simple e-display such as the ESticky – to sit on my desktop, perhaps on/near/in front of my monitor.  What’d I’d really like, of course, is something that’s kinda does some of each.

I ordered the parts for the ESticky, since the Tymer appears to basically require just a battery charging board (already integrated into the ESticky’s Seeed Studio XIAO ESP32C3) and a vibration motor (which I have a stack of already).  I’ve not used a Seeed Studio product before, but it appears to be similar in formfactor and function to the Adafruit QtPy’s I’ve been using in various recent projects.  Because I know I’m going to want to use one XIAO board as my dev board with headers and breadboard, one in the project itself, and one because…  they’re cheap ($5) and there’s even odds I’ll blow one up.

My plan is to build a direct copy of the ESticky on a breadboard, add the vibration timer and buttons to manipulate it, see if I can do it in a more permanent format by soldering it together, then design / print a case.

I’ve never worked with a Seeed Studio product and not played with eink displays yet.  Hopefully this will be fun!

Bonus:  Now that I’ve purchased some of the parts, I can close dozens of tabs!

Sticky Note Timer
  1. Ah, just what I need! A new project!
  2. Sticky Note Timer, parts arrived!
  3. Seeed Studio XIAO ESP32C3 and a small sticky note display
  4. Brainstorming More E-Ink Stuff
  5. Smol Fonts for E-Ink Displays
  6. Tap Light Focus Timer System

One Simple Trick Can Save You 30 Minutes…

After mentioning long render times on my machine, @raster suggested switching to the manifold 3D rendering backend.  Depending on your OpenSCAD version, you might need to poke around to find how to enable this option.  It’s absolutely worth your time and should really be enabled by default.

If you dig into this option a little, and you’re a 3D printing old timer, you might recognize the creator of this library as none other than Emmett Lalish!!!  Emmett was an early 3D printing adopter, from back in the MakerBot Thing-O-Matic days, creator of the original heart gears, and just all around incredible engineer. 1 2

Emmett’s manifold library dropped the render time for one of my designs from 300 seconds to… under 8 seconds.  I literally used to avoid hitting F5 on more complex designs or avoid cranking up the facets so I didn’t have to wait for long renders.  A single comment from a friend, telling me about an option written by another friend, has completely and permanently changed how quickly I’m able to iterate and design objects forever.

Here’s how you can instantly save tons of time with your OpenSCAD designs:

"Manifold (new/fast)"
“Manifold (new/fast)”
#OpenSCADClub
  1. OpenSCAD 3D Printed Spring
  2. OpenSCADClub Week 2: Directional Pad
  3. OpenSCAD Render Times
  4. One Simple Trick Can Save You 30 Minutes…
  5. OpenSCAD Club Cookies
  1. Emmett even wrote a guest post on this very blog about… 14 years ago?!?!  Time flies, I guess? []
  2. Special thanks to my honorary editor Andrew for catching a typo… []

OpenSCAD Render Times

Thanks to @raster, I’m going to do a side-by-side taste test of several different flavors of OpenSCAD.1 To give each one a similar test, I’m trying out my D-Pad design from … uh, earlier this morning.2

Version Release F5 Preview F6 Render Notes
2021.01 Stable 09:50.220 2.302 Best place to start
2024.01.13 Current 04:37.763 0.948 I’ve been running this one for a while
2025.04.04 Latest 04:36.593 0.483 Latest snapshot

Obviously, the good folks working on OpenSCAD have dramatically improved preview/render times over the last four years.  The speed boost in using a later snapshot is pretty significant if you’re doing any kind of complex designs.  They must be using some kind of cache system to make the render times so fast.

The speed differential between 2024.01.13 and the latest snapshot is so slight, I’m not going to switch things up unless I bump into a design that struggles with rendering some complex feature.

#OpenSCADClub
  1. OpenSCAD 3D Printed Spring
  2. OpenSCADClub Week 2: Directional Pad
  3. OpenSCAD Render Times
  4. One Simple Trick Can Save You 30 Minutes…
  5. OpenSCAD Club Cookies

 

 

  1. *I’m not avoiding work!* YOU’RE avoiding work! []
  2. Like, way earlier…  midnight or so… []

OpenSCADClub Week 2: Directional Pad

This week’s topic related to @deshipu’s directional keypad designs.  The directional pad is clearly the most complicated part of the design.  The four buttons are basically just cylinders that can be created in several different ways.

@deshipu's D Pad Design
@deshipu’s D Pad Design

Brian published his designs to Github.

@beerriot's designs
@beerriot’s designs

After staring at the design a little longer, I changed from my original design idea to creating a 2D cross, extruding that, subtracting out the curved area described by a sphere (a homebrew hack I’ll describe below), using the minkowski function to surround the entire surface with a small sphere to give it a rounded look, then cutting the bottom off to ensure it is flat.  I didn’t include a flat cylinder as in the original design above, but that’s a trivial addition.  The downside?  This is a 5 minute render on my machine, largely due to the minkowski function.

//  Settings
    fn = pow(2,5);
//  Measurements
    pad = [10,30,1,3];
    corner = 1;

dpad();

module dpad()
    {
    difference()
        {
        minkowski()
            {
            difference()
                {
                linear_extrude(height=pad[3], center=false)
                    offset(r=-corner/2, $fn=fn)
                    for (i=[0:1])
                        rotate([0,0,90*i])
                        square([pad[0],pad[1]], center=true);
                translate([0,0,pad[3]])
                    scale([pad[1]*1.03,pad[1]*1.03,pad[3]-pad[2]])
                        sphere(r=0.5, $fn=fn);
                }
            sphere(r=corner/2, $fn=pow(2,4));
            }
        mirror([0,0,1])
            cylinder(r=pad[1], h=pad[1], center=false);
        }
    }

Renders to:

MakerBlock's design
MakerBlock’s design

Hacks:

  1. You’ll notice I use “offset” to reduce the size of the directional pad, because I knew I was going to round it all with the minkowski function in a few lines.
  2. The directional pad is actually just a rectangle, run through a for loop once to rotated it by 90 degrees, before being extruded to the specified height.
  3. The last two lines of code are used to create a large cylinder, larger than what I knew the pad would be, then mirrored in the Z axis to cut everything below the XY plane.
  4. As in prior designs, I pre-define “fn” to be a “pow(2,5)” so that I can use a low exponent to iterate designs quickly, then crank it up for a detailed design.
  5. The hack I use the most often here, and the one I’m the most proud of, is where I make a sphere like “sphere(r=0.5)” and then scale it by whatever I need.  Since the sphere has a diameter of “0.5” mm, the actual sphere is 1mm in diameter – so when I scale it in the XY by 30 and in the Z by 2 (since the edges of the keypad are 3mm tall and the center is 1mm tall), the diameter is now 30mm and the height is 2mm.  This little trick, of being able to scale a sphere to the exact size I need has come in handy countless times.

I’m not the best programmer, not the best at OpenSCAD, but I’m kinda happy that I was able to build this in about 31 lines of code.  :)

#OpenSCADClub
  1. OpenSCAD 3D Printed Spring
  2. OpenSCADClub Week 2: Directional Pad
  3. OpenSCAD Render Times
  4. One Simple Trick Can Save You 30 Minutes…
  5. OpenSCAD Club Cookies

Review of DriveThruCards.com

TLDR:  The cards from DriveThruCards.com (DTC) arrived yesterday and I couldn’t be happier with the result.  Great customer service, product, and value.

This slideshow requires JavaScript.

  1. Shipping:  Great
    1. 3/19/2024:  I ordered 120 cards around 2 AM PST in California.
    2. 3/19/2024:  The DTC website was updated with the following statuses:  Pending Payment Approval, Paid For, Sent to printer, Confirmed.
    3. 3/24/2024:  I received a shipping confirmation email from DTC in Overland Park, Kansas with a USPS tracking number at about 4:32 PM PST.
    4. 03/25/2024:  The date on the “External Packing Slip” included with the box.
    5. 3/28/2024:  USPS sent me a notification the package arrived around 8:29 AM PST.
    6. This was basically exactly as long as my Reddit lurking had suggested (about 10 days) it would take.

      Order confirmation and status screen
      Order confirmation and status screen
  2. Packaging:  Great
    1. The cards arrived wrapped in a cellophane band, within packing paper, inside a small box (about 5″x5″x3.5″ cube).  This was perfectly fine for these cards.  They have options for tuck boxes and other containers, but I didn’t need or want these for this project.
  3. Card Quality:  Great
    1. Text and images were sharp, legible, and colors rich but slightly darker than what I saw on my computer screen.  By tinkering with Inkscape, I would guesstimate the final card was about 5-10% less bright than what I saw on my screen.  Without comparing the cards directly against a large bright monitor, I don’t think I would have noticed this difference.
    2. When I set the deck down on a flat surface and run my finger over the side of the stack of cards, there’s a very slight variation over a few cards.  It’s barely perceptible and probably totally fine for any kind of card usage or card game except a super precise cut for casino playing cards.
    3. When the cards are viewed edge-on in a stack, you can tell see a faint bit of the card’s edge color.  I grabbed some “Magic: the Gathering” cards and looked at a mix of black and white bordered cards and noticed that even the black border cards seem to look white-ish when viewed edge on.  The slight bit of color here doesn’t bother me at all and for most purposes would be totally irrelevant.
    4. The cards were 2.503″ or 63.57 mm wide and 3.506″ or 89.05 mm tall, or about 0.2% large.  Some variation is to be expected in any order and this miniscule variation would be completely unnoticeable except I used digital calipers to measure them.
    5. The cards, printed on DTC’s “premium stock,” advertised as 11.4 pt (0.0114″) were 0.0115″ or 0.29 mm thick.  Flicking the cards against a table, right next to an actual casino poker card, they felt identical.  (The casino card has a slightly raised texture, but the flex, bounce, and flick of the card stock felt identical).
    6. Card Cut.  This is the one aspect that didn’t come out exactly as I had planned.  Ten of the cards I printed had borders, but they were visibly different widths at each end.  These cards were Premium U.S. Poker sized (2.5″ x 3.5″), the PDF itself was 2.75″ x 3.75″ (to account for the 1/8″ bleed area at each edge).  Unfortunately, I didn’t notice this until after I had used the cards a bit, so I don’t know whether top or the bottom was slightly thinner.  Since these cards are basically dividers, this isn’t a huge deal for me.  However, I’d prefer being able to get them back with an even border all the way around.

      This slideshow requires JavaScript.

  4. Customer Service:  I discussed the responsiveness of the DTC customer service team in the prior post.  They went out of their way to help me with my project – and it really smoothed things for me.

I simply could not be happier with these cards.  I will absolutely be trying them again.

Print On Demand Custom Cards
  1. Custom Cards with DriveThruCards.com
  2. Review of DriveThruCards.com
  3. Designing Custom TCG Cards and Proxies

Custom Cards with DriveThruCards.com

I’ve been looking to get some playing sized cards for various purposes recently.  I’ve enjoyed making my own cards from blanks ordered off of Amazon, but for things that might get used a little more regularly, it would actually help to have these things pre-typed/printed.  And, as a long-time / returning enthusiast of a particular card card game, I was also looking to print up some proxy cards for casual play.  I don’t want counterfeit cards – just make some obviously unofficial stand-ins for real cards in casual play.

  1. Cost Breakdown
    1. If you do any kind of Googling about searching for a company to print up cards of various sizes, you’ll quickly end up at MakePlayingCards.com – or a company that has a website that looks nearly identical to MPC.  Getting a single deck of custom cards printed up through MPC is $26.15 for up to 108 cards (they offer incremental price breaks) plus $11.99 shipping (with tracking taking about 20 days) as the cheapest option, coming to $40.17 (including some tax).  This is roughly $0.37/card.
    2. Lurking in some Reddit forums, I found a few suggestions on different ways to create proxy Magic: the Gathering cards.  These forums renewed my interest in getting some cards printed up – and lead me to DriveThruCards.com.  I just placed an order for 120 cards,1 but I’ll describe the cost for 108 cards for an apples-to-apples comparison.  A single deck of custom cards printed through DTC is $12.42, plus $5.99 shipping (USPS Ground Advantage and anecdotal evidence from Reddit suggests ~10 days), plus  $1.00 in tax, comes to $19.41.  This is roughly $0.18/card.
  2. Benefits / Costs
    1. There’s no question the MPC website is cleaner and slicker, featuring drag and drop options, without a lot of technical jargon about printing, colors, etc.  They also seem to have many more options for card sizes, materials, and finishes.  They also have lots of templates in various formats to download and populate.  The obvious downsides are the length of shipping required and the cost, both estimated to be roughly twice that of DTC which is apparently in Overland, Kansas.
    2. The DTC website is… by their own admission, “challenging to learn.”  While I’m sure the interface permits a ton of customization, the dizzying array of options is daunting.  They have lots of guides on their website and knowledge base, as well as elsewhere, but it’s probably too much information.  I went with DTC for my first custom card order because I wanted to inexpensively try out some ideas and I figured that after the first order, I’d probably get the hang of their system.  However, one thing that really sets DTC apart is the responsiveness of their customer service.  I’d emailed them in the middle the day and middle of the night (aka goblin hours) and someone always back to me super fast.  Although DTC doesn’t have official PDF templates, Brian with DTC kindly whipped one up and emailed it to me which answered tons of my questions.
  3. Anatomy of a Printed Card
    1. Both MPC, DTC, and other print-on-demand (POD) websites have numerous descriptions, graphics, tutorials, and samples all using slightly different words, relating to the various sizes, printing zones, etc.  I found it incredibly confusing.  Now, I’m not certain I’ve gotten everything right, but here’s my best understanding…
      Annotated sample poker card
      Annotated sample poker card
      1. Cut Line / Trim Line / Bleed Line.
        1. The area described by the solid black line will be where the card is trimmed to the exact dimensions of the card.  The good thing about knowing what this line means is that if you know the final dimensions of your type of card, this is easy to look up and then design everything else around it.
        2. Importantly, you don’t want to include this line in your designs.  The purpose of the “safe” zone area is so the critical components of your design are certain to appear on the final product – even if it is perhaps slightly offcut.  The purpose of the “bleed” zone is to make sure a “full art” card doesn’t have bits of white or black at the edge if it is very slightly miscut.
      2. Safe Area Line / Border.  The important part to know here is that the distance from the “cut line” to the safe area is 1/8″ or 3.175 mm on all sides.  Thus, if you know the dimensions of the card you want, you just make sure your critical art and text don’t exceed this area.  All the area inside the safe area line is the “safe zone.”
      3. Bleed Box / Bleed Area / “Full Bleed” / Page Size.  As with the Safe Area Line, this is easy to figure out – it’s just 1/8″ or 3.175 mm outside the edges of the cut line.  This should be a rectangle.
  4. Software / Design Process
    1. I don’t have Adobe InDesign, Photoshop, Illustrator, or Affinity Publisher – and I wasn’t going to buy / subscribe to any of these just for this one project.  What I do have, however, is OpenSCAD and Inkscape.  Using OpenSCAD I started with a rectangle of the precise dimensions to match the exterior of the “US poker” card I wanted printed, then exported this to an SVG file.  I then did this for a rectangle of the “bleed box” size, safe line, and also the trim line.  I then imported all of these into Inkscape, layered them, and used them as guides while I designed my cards.  I made sure the critical areas were within the safe line, but made the safe line, trim line, etc all invisible.  Inkscape will allow you to export a file into a PDF file format which DTC accepts.  I created fronts and backs for cards, each exported as a separate PDF, then combined all of them using one of my favorite pieces of freeware, PDFTK.
  5. Potential Issues, Fixes
    1. Unembedded Fonts.  Apparently Inkscape did not embed all of the fonts used in the creation of the PDF.  When I tried to upload the PDF originally, DTC’s uploader balked at this and said I’d need to embed the fonts.  While I used a different PDF program (Foxit PDF is reasonably full featured and way less expensive than Adobe) to embed the fonts, I think I could have simply re-exported all the card faces as images instead of PDFs, then combined those into a new PDF which just had pictures (including pictures of the desired text).  It might have been possible to change the fonts as well to be more uniform, but given the number of cards I was creating, I didn’t want to do that.
    2. Currency.  I’m putting this here more for me than anyone else who might stop by.  At some point while using their website I accidentally did something which made all the prices and calculations appear in the Japanese Yen.  :/  I’d been through the account settings numerous times and even cleared my cookies and website cache trying to fix this problem.  After an embarrassingly long time, I gave up and emailed Brian to ask for help.  As so often happens to me… moments after hitting send I saw website footer had a drop down box to choose the currency and language.  Sorry Brian!

So, what’s next?  Well, after placing the order at roughly 2am PST on 3/19/2024, now it’s time to just wait and find out if the cards are going to get produced and arrive!  It’s now almost 6 pm PST, and their Order History page says “Sent to printer.”  Some Reddit posts suggest that it takes another 1-2 weeks to actually ship.

Print On Demand Custom Cards
  1. Custom Cards with DriveThruCards.com
  2. Review of DriveThruCards.com
  3. Designing Custom TCG Cards and Proxies
  1. $20.86, if you’re being nosy []

Beep Boop: Emotions for ED-E

So I’m trying to program emotions for ED-E.

Better ed-e dialogue at Fallout New Vegas - mods and community

In Fallout New Vegas, ED-E doesn’t use regular dialogue, but communicates through beeps. Basically, he gets <(Emotion) + beeping> as his dialogue. Obviously the only way to research his beeping for this project is to replay Fallout New Vegas and talk to everyone’s favorite eyebot. I came up with a list of some of the emotional beeps he has in the game (and some that I just want) to start programming into him. I have ideas for what I want him to sound like, but I just need to find the right pitches and durations.

By this I mean I am sitting in my room and saying “beep beep” to myself at different pitches in sync with a program I wrote.

Yesterday my dad was checking in on me and how my programming was going and asked how I was doing. I replied, approximately, “bleurrrrghhhhh.”
I was having trouble programming the emotional beeps because I have very specific ideas for what ED-E should sound like and no way to get that into a computer. I’m a huge music nerd, but I unfortunately don’t have perfect pitch or some superhuman ability like that to use to get ED-E to sound exactly like I want him to.1 Dad suggested using a loop with an array going up every time, which made everything so. Much. Easier.
This plays frequencies starting at 100hz and going up by 10hz every time. I started with 100hz but going up by 50hz every time, but I liked the specificity of 10hz. Once I get in the ballpark of where I want to be, I can then just run the program and correct the pitches if need be.
If you read my last post, specifically the spoiler section, you will know why I started with a shy beep. If you didn’t read my last post, go do that! If you didn’t read the spoiler section, that’s fine. What you really need to know is that I want ED-E to make noises.
I’ll admit, this took a while to get right. Not playing the tones or even figuring out what pitches they were or how long they should play for. No, getting the tones to play was easy. Getting them to stop… was much harder.
ED-E was shyly screaming at me on repeat for at least 10 minutes while I was slowly losing my mind and trying to make him shut up.
I turned to ChatGPT to help me fix this, but it was utterly unhelpful and I ended up fixing the problem myself by deleting a bunch of the garbage it generated. Now the problem was that I had to continually upload the code to make the ShyBeep function run again. I was happy that it wasn’t looping anymore, but I wanted to fine tune the beeps and making it upload again and again was a pain. That’s why I decided to make it run when a button is pressed.2
It took a little while to make it run when a button was pressed, but then it would only run once and never again, even if the button was pressed. I finally realized that this was happening because runOnce was set to false, and fixed that.
Now that I have this framework, it has been much easier to program more beeps. Now I have a sad beep, and I’m going to start working on a happy beep because I have had just about enough of ED-E’s negativity.3
  1. I almost decided to use the definitions of pitch from my Rickroll code so I could just ask the computer to start at middle C and go down or say I want the pitch to be a half note in 3/4 time. I then realized I was making this WAY more complicated than it needed to be and just used seconds and hz like a normal-ish person []
  2. I seriously love Circuit Playgrounds. They have everything. []
  3. Just kidding ED-E, I love you []

ED-E Project: Origins

Hi, I’m DexterStarfighter, offspring of MakerBlock.1 I am a maker and artist with possibly too many interests that include drawing, writing, cats, theatre, video games, horror podcasts, folklore, coding, Jenga, history, triangles, succulents, and reading literally anything. I have been going to MakerFaire for basically my entire life and it has always been something I look forward to for the whole year. As soon as Dad told me MakerFaire was coming back, I knew I had to make something super cool for the occasion. This brings me to my latest project, a companion robot.

First, some background. My favorite game is part of the Fallout series (New Vegas, if you were wondering). I started the Fallout series because my dad played them when the first Fallout came out and I wanted to be able to share a cool game with him. I started Fallout 1 and loved it, then played Fallout 2 and 3. Over the summer, Epic Games released Fallout New Vegas with all DLCs for free and of course, I played the crap out of that.23

In Fallout New Vegas, there are various companions you can take with you on your journey through the Wasteland. There are human companions of course (and ghoul and nightkin), but you can also take with you one nonhuman companion. At first I was super disappointed that I couldn’t find Dogmeat. I don’t actually like being around dogs in real life, but I got Dogmeat in Fallout 1 and somehow I have become very attached. (I do not even want to think about how many times I have reloaded a save to keep that little jerk alive.) I quickly got over my disappointment though, because there is a statue of a dinosaur and now I’m disappointed that you can’t have a dinosaur robot companion. Anyway, in my travels through the Mojave, I found two interesting nonhuman companions. The first one I found was this little eye bot named ED-E. I play as a charismatic nerd (high INT and CHA with good repair, speech, barter and science) so I was able to fix him up. ED-E was still only able to beep in ways I couldn’t understand and when I brought him to where I was supposed to for his quest, there was some sort of glitch and I couldn’t interact with the lady for the quest. ED-E seemed kind of lame to me then, so I took him back to the place I found him and left. I later ran into a dog named Rex who I had to take care of for an Elvis impersonator (no, really) and found he was a pretty good companion.

Flash forward to the endgame. I had met a cowboy robot, climbed a dinosaur statue, resurrected a B-29, fought a soldier for a dog’s brain, charmed a scientist, accidentally sided with the mafia, cleaned out an entire casino, assassinated a 261-year-old man, had my vital organs removed, stolen 27 bars of gold, befriended a man wrapped in toilet paper, and was well on my way to conquering New Vegas for myself. I had only one more thing to check off my list: walking the Courier’s Mile. Don’t worry, I won’t spoil the Lonesome Road quest for you- I’ll just tell you that I met ED-E again. Somehow, within the first few minutes of interacting with him, I had become so completely charmed by this little robot that I would do literally anything to protect him. I’m not sure what about ED-E made him so endearing to me, but he became my best friend. 

GameBanshee

In 2019, I met Odd_Jayy at MakerFaire. I remember seeing his spider bot and thinking how cool it was. I’ve always liked the idea of a companion bot, but I’ve never actually had a specific idea of what I want out of one. When dad told me that we would be going to MakerFaire again, I immediately thought of an ED-E companion bot.4 Dad loved the idea too and gave me lots of good tips on how to get started. I have a tendency to get lost in the details, so he helped me focus on the big picture and the first steps I could take to achieving my goals.

I have a lot of ideas about what I want ED-E to do eventually, but I’m a complete beginner at Arduino programming. Knowing this, Dad suggested starting small. First, turn on one light. Then multiple lights. Then make them flash. Then make them change colors. Then add beeps. Stuff like that. I was like “cool, cool” and immediately programmed ED-E to beep the entirety of Never Gonna Give You Up instead of doing literally anything sensible.

I regret nothing. It was frustrating at first because I was super out of my depth. I used Chlorondria’s arrangement of Never Gonna Give You Up and used ChatGPT to help me learn how the code works. ChatGPT was super helpful because I could get feedback on why my code wasn’t working. The sense of accomplishment when I finally recognized the tune made all the frustration so incredibly worth it.

After my self-indulgent first project for ED-E, I moved on to taking Dad’s suggestions. Sort of. I’m a teenager, and therefore I am legally obliged not to listen to any authority figures, real or perceived. I made ED-E flash some rainbow lights. I started with just red lights and it took a while to make the code work, but once I made it work, I just changed the color brightnesses. Fun fact: my ED-E bot now actually glows two shades of blue in his rainbow light show pattern. For some reason I decided RGB stood for Red Yellow Blue and messed up with the color values when I was trying to make green and accidentally made a light blue. The light blue actually looked pretty cool, so I decided to keep it.

Today, I worked more on5 ED-E’s… musical function. I’m going to warn you right now: there will be spoilers for MakerFaire below! I intend to take ED-E to MakerFaire with me, and if you meet him, there will be some fun surprises in store for you. Not if you read the spoilers, though. MakerFaire is a big place and I don’t expect everyone who visits this page to run into me at the Faire, so I’ll include some stuff about the surprises below. 

***SPOILERS START***

 

If you’re still here, I assume you want to read this. One of my favorite things about ED-E in Fallout are the little conversations you can have with him. I want to be able to have a few little “conversations” with my companion bot, kind of like in the game. I’m going to have a Pip-Boy with various buttons to run functions for ED-E, but one of the first conversations I thought of had to do with his musical function. This was my idea:

 

Me: Hey, ED-E. Do you wanna sing them your favorite song?

ED-E: [Shy beeping]

Me: Aw, are you shy?

ED-E: [Shy beeping]

Me: Come on, ED-E. We’d all really like to hear you sing!

ED-E: [Questioning beeping]

Me: Yes, of course! Listen, I’ll ask them. Do you want to hear ED-E sing his favorite song?

Other person: Yes!

Me: See, ED-E? 

ED-E: [Pleased beeps, wait, then Rickroll beeps]

 

Obviously, I’m not going to make ED-E understand my words and respond to them. ED-E will be a shoulder mounted bot, so I want to be able to have conversations that trigger based on movement. I’m using a Circuit Playground, so I intend to take full advantage of all the different sensors it has. I programmed ED-E to run his Rickroll function if he senses a significant change in acceleration. I’ll pop my shoulder like I’m giving him a nudge, triggering the function. He waits for 8 seconds to give me time to talk, then plays the Rickroll beeps.

I have to admit, this took a WHILE to get right. It was still incredibly satisfying to see it all come together and go right. I was so excited when it started working! I did a lot of testing to get the sensitivity right because I don’t want it to trigger if I’m just walking around. I’m still fine tuning that part because I bumped the cord earlier and he started Rickrolling me. Then again, maybe ED-E just has a funny sense of humor.

 

***SPOILERS END***

So, what’s next for ED-E? I think the next thing I want to work on is getting his beeps right. I can make him beep music, and that’s great, but I also want to have him beep every so often and have “conversations” with him. I’m going to program some little beep clips for different emotions or situations that I can then mix and match into various conversations. I might also actually listen to Dad for once and work on a light show.

Thanks for reading about my ED-E project! I’ve enjoyed working on him and I’m so excited to share him with other makers. I’ll try to post updates regularly (they shouldn’t be as long as this one since you won’t need all the background next time). Thank you to Odd_Jayy for the inspiration, Chlorondria for the musical arrangement, ChatGPT for the troubleshooting help, Adafruit for making awesome boards, whoever made Fallout New Vegas, MakerBlock for being a great dad and helpful sounding board, and to you for reading this post.

ED-E Companion Bot Project

  1. ED-E Project: Origins
  2. Beep Boop: Emotions for ED-E

  1. I considered saying progeny and descendant of the House of MakerBlock, but offspring sounded the best. Progeny sounded weird and the descendant thing reminded me of Game of Thrones, which I have not read or watched, but I might someday and I don’t want to invite spoilers. []
  2. I love Epic Games. Free games every week? Yes please! Disclaimer: I am not being sponsored by Epic Games, but if I was, that would be awesome. []
  3. New Vegas is best Fallout, you can fight me on this. []
  4. I also considered a Muggy companion bot. I love Muggy and if ED-E turns out well, Muggy might be my next project. []
  5. Lol, moron []

Carved Eraser Stamping

I recently stumbled across the world of fantastically charming mini prints and carved erasers by Serena Rios McRae aka Cactus Clouds Art.  This short Instagram post provides an excellent overview of her process.

Serena’s artwork is evocative, accessible, and affordable.  I bought several of her prints the other day.  She also posts how-to’s on YouTube and provides plenty of links to her recommended supplies (Serena’s lists and affiliate links).

These looked like so much fun, I bought a pile of cheap pink erasers off Amazon, repurposed an old set of stamp carvers we had lying around (I had done some linoleum block printing back in high school and my wife had a small stamp making kit from years before), and gave it a shot.  The kids had a great time with this while I fretted about whether they were going to jab their fingers and how many bandaids I’d have to have handy.

After their first stamp, I hacked together a 3D printed holder.  Despite measuring the erasers carefully, it was too long and really, too big for what it needed to be.  Here you can see version 01 taped to a piece of mahogany wood left over from my ukulele project.

This slideshow requires JavaScript.

There were several problems with this first attempt.  The holder was a little too long, so the eraser would shift back and forth.  It was also much bigger than necessary.  I designed it with those large fins on the side to make it easy to tape down, but it really wasn’t necessary and just made rotating the eraser holder a little more unwieldy.  While my kids were carving things using this holder, I went to work printing a few accessories.

3D printed screw top blade container, extra blade handle
3D printed screw top blade container, extra blade handle

The blades came in a little plastic baggie, so I printed a bespoke screw top container for them so they can be stored securely.  I also printed another blade handle so that two people could carve stamps at the same time – one using the original wooden holder and the other using the printed holder.

The next version was more compact and had dimples on the edges which I hoped would make it easier to hold.  I also added some little ridges inside so the eraser wouldn’t fall through.  Here they are:

Eraser holders for carving, versions 1, 2, 3, 4, and 5
Eraser holders for carving, versions 1, 2, 3, 4, and 5

The dimples didn’t work.  They weren’t deep enough and my hand couldn’t really grip it very well to keep it from moving while I was carving.  The area for the eraser was a little too long.  Versions 2-5 involved tuning the length just right.  Each one takes about an hour to print and used about $0.30 of plastic.  The final result fit the erasers like a glove.  They nestle in the holder perfectly and are easy to poke out using the little hole.  Admittedly, they might only fit the specific cheap erasers I found.

Here’s my process:

I created a page of eraser templates, which match the length and width of the large and small edges.  Of course, the long section matches the long side of the eraser – but the shorter section only matches the short side of the eraser if you tip it over.

Eraser templates
Eraser templates

I got to use several iterations of the eraser holder for this next section:

All the pieces, laid out nice and orderly
All the pieces, laid out nice and orderly

The process is pretty easy.  Put the eraser in the eraser holder – it should slip right in, drop in snugly, and lie flush with the top edge of the plastic holder.  After cutting out a paper strip, it’s trimmed to size, creased to locate the central point, and a pencil drawing (drawn as I’d like to see it printed).  This is taped upside down onto the eraser, rubbed along the back (a coin would work very well, but I just used one of the extra eraser holders), and the design is neatly transferred to the eraser.  The neat thing about this process is that I could design something in Inkscape, print it into the template, and color it in with the pencil for transferring to the eraser.

Lastly, let’s see the result!

Eraser stamp!
Eraser stamp!

As you can see, the final stamped result matches the orientation of the little drawing.  I just wish I’d saved the little scrap of paper with the original drawing on it!  The eraser holder was a joy to use and the final result looks every bit as great as I was hoping.

If I keep making these, I’ll probably want to upgrade my setup to include Serena’s recommended stamp pad and sharpener (you’ll see them linked in Serena’s Amazon link above).  I’d like to design something to make easy to hold the eraser, center it, and make a clean even stamp, but don’t have a great idea for one yet.  I’ll keep pondering this and maybe whip something up this weekend.

Eraser Stamp Carving

  1. Carved Eraser Stamping
  2. Further Adventures in Eraser Carving
  3. DIY Carved Eraser QR Code Stamp

  1. I mean, I guess it’s version 1 – but I labeled all the purple ones starting with 1 so… []