It happened again

I had dinner after work and then got to the printer. I plugged it in, and tried the motors. X and Y worked, Z sucked. I unplugged it. I plugged the X and Y motors into the Z driver, centered the bed and fired it up again. The motors spun, so it’s not the driver. I plugged the two Z motors into the X and Y drivers. I was able to stair step up arranging moving the X and Y. So it’s not the motors. I killed the power, swapped everything back to normal, and powered it up again. Everything worked. I think about 5cm from the bed I may have missed a couple steps, but that’s it.

Weird.

A Z, a Z, my kingdom for a Z

This last weekend was the Wif’s time off as well so I didn’t mess with the printer. Monday and Tuesday, I was too tired when I got home. Yesterday though.

I plugged my fans back in, and started leveling. Everything looked sweet. Powered it up. Started moving across the bed, making sure I was really level. Sweet. Moved up a bit. Didn’t move. Messed around with stops and stuff. Still nothing. All I get is the motors juggling for the Z. Trimmed the trim pot. Nothing. Dropped the feed rate. Nothing.

Long story short, tonight I’ll start by swapping the two Z’s for X and Y. Is it the motors or cables?

Huh

Again, tried various things. Nothing seemed to be working. Undid the couplers, redid the couplers, nothing. Swapped which was which nothing. Tried setting the speed to the “right” setting. Nothing.

Set the speed to 10 steps a minute (I think, not sure what the unit is, I sent M92 z10). Nothi… Wait, what’s that clicking? They’re turning crazy slow. But, they’re turning. I’ll have to check to see if I can locate the potentiometer for adjusting the voltages.

Winning.

Y oh why

Two nights ago, I trouble shot my Y axis. Nothing worked. Finally in a pique of annoyance, I swapped the cables (at the controller) between the X and Y. Everything worked? I swapped them back. Everything worked.

Now to fix the Z.

Pictures will come later

I finished assembling my printer over the weekend. Mistakes were made, parts were broken, but parts of it totally work. On the long term, I need to go the traditional, bootstrap the meh parts with new custom parts. On the short term I definitely should replace at least the one linear being that I started dropping the balls out of.

Oh… I should also figure out why only the x-axis consistently moves. X guess left and right like butter, though the tension is complete shit. The Y will move to the front and then the back and then grind like it can’t find it’s home position. The z-axis, when manually moved up will head towards home, but then the left side will come to a standstill while the right hand still has quite a bit to go. Moving up just didn’t happen.

Y – Let’s check by resetting the configuration first. Then make sure the cables are in tight. Try switching the direction of travel (or manually trigger the limit switch in the other direction?) on the Y. Try switching the motors (x and y). Try to remove microstepping?

Z-Oh you little devil Z. Check for loose connections? Try swapping motors? I’m just not sure?

Shopping

Great movie…

  • https://www.sparkfun.com/products/12992 – the warning about needing to be good at soldering… Though I’m also wondering about just using an accelerometer. Depending on where the Wif taps, or something it could have a different result. I’ll think about it.
  • https://www.sparkfun.com/products/13003 – might be a little on the small side, but it will give a good baseline of what she wants. At a minimum, I can always use them for my own projects
  • https://www.sparkfun.com/products/13907 – where the brains will be prototyped from. Then, when I have it down, remove the rest.
  • https://www.sparkfun.com/products/13851 – physically bigger then I hoped for. I’ll see how much juice this gives and then consider my options.

Development plan

I’m starting to see work me bleed into home me. I’ve always been a self learner and motivator, but now I’ve started to add the thoroughness I bring to work. It’s not that I’m super through at work, good enough is still good enough, but I predefine good enough. I assess my risks. I prioritize outcomes into musts, wants, wishes, disinterests, don’ts, and can’ts. I come up with development plans so I can assess where we’re at against word salads. I bereaucratize my work life. Im doing that at home.

The following is the current working plan. This is of course a work in progress and anything that is answered might be changed, and anything that is not on the list night be added.

  1. Scope project. A smartwatch with specs defined a couple posts ago.
  2. Decide on the connection type and base. BLE done on the ESP32. I’ll prototype based on the ESP32 variant of the Sparkfun Thing. It’s an open source design which will make it easier to take what I build and then remove everything I don’t need for production. There’s probably a lot of things I don’t need,, but it’ll nice having all the power that the ESP32 brings whole I figure out what I can get rid of.
  3. Decide on the screen. This is being a pain. I started looking at Arrow last night and want pleased with what I found or the prices. I think I’ll have to dig deeper on this. I started by looking at Sparkfun and Adafruit, and want some on what I found. I should think about braving out. Maybe look at what Seeed has, though their store never has the information I’m looking for.
  4. Decide on buttons, piezo buzzer, speaker, etc.
  5. Get all parts and assemble. Build an interface and check with the Wif. This should focus almost entirely on the interface and functionality.
  6. Refine down the main board. Add spots for everything I can buttons and speaker, etc. This will help with structural integrity. Remove everything from the base design of the Thing I don’t need. Headers for programming purposes should just be an edge connector at this point.
  7. Order the balance of standalone parts. Within reason I should order 5x of what I need.
  8. Breadboard these to verify the board is probably right.
  9. Order boards. Also order some boards to practice surface mount soldering. Order 5-10x of everything because the price is basically the same.
  10. Assemble after I determine good places to check functionality during assembly.

Induction

http://www.nutsvolts.com/magazine/article/august2013_Bates

https://electronics.stackexchange.com/questions/129753/how-big-does-my-wireless-charging-coil-need-to-be

The commercial until I’ve found are a little too big. I think I’ll have to try rolling my own, though it sounds like a lot of work. Even if it works, it might be too thick or interefery, interfering, interfuriating, whatever. I might be able to get around the thickness by printing it into the case. This will also help with transmission.

Really phone, you just autocorrected transmission four times in a row as transportation, even when I literally typed it? Now a keyboard, that’s an app I need to make for myself.

So yeah, I should really read those links, see what I’m missing, make a shit prototype, see what I’m missing, make a better prototype assuming that anything is working.

Doing stuff

My current mission might be a smartwatch. Jesus.

That being said, the Wif likes the size of the smaller (fruit) watch, so 38mmx33.3mm for the main body. Depth 11.4mm and a weight of 28.7g.

I need:

  • A second hand
  • Programmable alarms
  • Static alarms
  • Vibration and audio alerts
  • No phone integration necessary or required, in either direction
  • Waterproofing to some degree

Knowing the Wif, I’ll have to build in easy charging (inductive?) or insane battery life so I can change it without her knowing.

All OLED would be a good start, though I’ll have to look into one with enough resolution.

I should look into this. It might get some brain juices rolling.

How to error check a dragon

That is to say…

How do I go about checking every bit of data that comes into a template, knowing that:

  • I’m too lazy to write a rule for every piece
  • A given data file may not require the same field filled in for every record
  • Extensible is better

Now this should be running headless and that means I’ll probably be filtering out bad records and dumping them separately. My current thought is have a stack of rules to see if a given data thing meets a criteria. Is it blank? Does it have a single double-quote in it (yeah, that’s a thing)? Is a date field a date? Does a number fall in a range? Whatever. Once I check all, or as little if this as possible, turn around and change the field to be something like DATA_EMPTY_FIELD or DATA_BAD_FIELD. The trick would be then I generate all the letters, even the bad.

You’re probably saying you yourself dear reader, “Self, doesn’t that defeat the point of the entire process?” And that’s where they magic happens.

So I can filter the data with a complex rule saying for a given letter and a given field what it has to be. This would be a terrible amount of filtering, prone to human error, and entirely one off rules. After everything then, each rule would then need to congregate all the different filters ouputs back together to either give single good or bad files and… No, I’m not doing this, I started working a single basic rule for one letter version and only found problems.

I can though, and that’s where we get tricky, is parse PDFs. So I take the data, combine it with the text, make a single PDF. Split the PDF based on a constant, a constant that I put on all first pages of any given letter. We then filter into two branches based on just the words like DATA_BAD or DATA_EMPTY. These PDFs are then recombined and go to either a folder for review for the bad or to print for the good.

The best part is that most of this could turn into subprocesses that could be reused for any letter.

I have to wonder how much of a performance hit this will be and how much work I’m doing to solve a problem that shouldn’t even exist.