Profile cover photo
Profile photo
Christopher Fredericks

Post has attachment
Making progress printing and assembling a little delta 3d printer I'm designing from scratch. The 3DR (by +Richard Horne) was the primary inspiration​ for the design.

Here's a sneak peek, it's the second and hopefully final version of the top, printed in magenta PETG. Ignore the T-nuts, they're only used since I didn't have enough M5 nuts on hand. Designed in OnShape over a several months.

The walls are all 5mm (~1/4in) thick; it's overkill both because I'm not a real engineer - I have no idea what I'm doing -and because I want it to be resilient to being transported. I hope it'll take a beating and stay calibrated.
Will be about 500mm (~20in) tall depending on the aluminum extrusion lengths used. It's about 250mm (~10in) in diameter in order to fit the controller in the bottom between all the motors - unlike the 3DR. Like the 3DR, though, it should have a build area big enough to print its own printed parts and reproduce itself!

Uniquely satisfying to build something complicated from scratch and have it be a tangible thing. Contrast to writing code, which at times simply disappears right into the void.

We live in the freaking future.
5 Photos - View album

Post has attachment
Here's a quick thing I designed for the house yesterday.

Post has attachment
First time I've been asked politely... (Ablecom 280w server power supply)

Post has attachment
Current layer is now displayed if != default_layer

Post has attachment
On my clearly-in-progress Ergodox keyboard (, I finally got the U8glib ( library to compile, link, and run, squirting pixels at a cheap 128x64 OLED display (~$12) via the I2C bus. With u8glib's Hello World, it all just barely fits in 32k of flash :/

It's not clear yet if U8glib's screen updates have slowed down the I2C traffic that the Teensy needs to scan the left keyboard half. The Ergodox is a completely separated design, so there's a MCP23018 I/O expander on the other side doing the key matrix scanning. The MCP doesn't do any work on its own - if it can't be polled quickly enough, keypresses will be lost. You know, that primary thing you use a keyboard for? Since the display controller does (seems to?) persist its contents, if performance is unsatisfactory I can try to update it every N seconds instead.

I've chopped out the Trackpoint module (nipple mouse) of an IBM Thinkpad, the use of which I hope will let me keep my hands from moving to/from a separate mouse; it's still using the (ancient) PS/2 interface under the covers. Farewell another 5k of flash, needed for PS/2 mouse support. Be kind to those electrons.

Still todo: throw together a tiny UI and figure out exactly what information I want to display - definitely the current layer and modifiers, but what else? Should I just move the display control to a separate AVR chip instead and leave the Teensy just chirping status updates at it? Where should that Trackpoint go, and how should it be mounted? And the mouse buttons? How annoying will it be to have a very bright but tiny display updating out of the corner of one's eye while typing, anyway?
2 Photos - View album

Today I bemusedly learned: due to a lesser known feature in TCP, you can actually connect to your own (ephemeral) connecting socket.
If your ephemeral port range overlaps with the target port you're connecting to and your OS happens to use the same port for both connections, TCP will happily handshake with itself.

Normally, TCP's three-way-handshake looks like SYN -> SYN-ACK -> ACK.
TCP sends RST(reset) to any "unexpected" packet , the types of which depend on current TCP state.
However, in the SYN-Sent state (I've sent a request to handshake to the other side), a SYN response (remote trying to handshake to me) from the remote will, unexpectedly in my opinion, be accepted. It's called "simultaneous open" in RFC793.

Can happen out of the box on Winders and Linux; looks like OSX ignores the RFC and prevents loopback connections from getting the same port.

Post has attachment
Trying out Atom editor (from GitHub). Initial thoughts:

First-class package management. This has annoyed me about Sublime and I've felt it's been successful in spite of it not being built in. You can quickly generate scaffolding for a new theme or Atom package out of the box.

Web developer focused live reload / preview / etc. Well, it's Chromium under the covers after all.

Default theme is meh, but Monokai, the one and only correct editor theme, is a package install away.

Did I miss an IDE style "Build/Run" workflow somehow? Might have to be written.

No linting packages yet(?) I might've missed it somewhere.

"Install Shell Commands" just pops up a dialog saying `atom` and `apm` are installed. Okie dokie.

Nice and fast. Records startup time for each plugin/package it loads, why the hell doesn't everything with plugins do that?! Should be easy to track down misbehaving extensions. (even the thing that records how long each extension takes is itself an extension, 'Timecop')

No Linux version yet. Not an actual issue, clearly it is coming and will work fine.

Styling can be changed with a quick CSS rule. That might actually get me to change default styles for once.

??? is this actually open source? It's not clear and I don't understand why, with such attention to detail otherwise, it's not spelled out somewhere. Just "free while in beta"
I don't have a huge problem even if it's closed, but something feels funny about the (intentional?) oversight.

Working on the house always turn into "If You Give a Sarah a Cookie..." *

Sidenote: I just installed an all-in-one light fixture that has no bulbs. It's a sealed unit. You install it, it works for an estimated 32 years (LEDs), and that's it. Truly, we live in the future.

*Also, I'm just as guilty

Just received spam with the subject "Check out these funny jokes", so of course morbid curiosity gets the better of me.
"What do you call an alligator in a vest? An Investigator"
I'd open port 25 for more stuff like this, are you listening spammers?

Post has attachment
I "converted" my IBM Model M keyboard to USB in a very silly way that does work and isn't permanent. There's just enough space in the top of the casing to stuff the entire 15' PS2 cable inside.
Used a Bluecube PS2 to USB converter and a right angle adapter PCB I had laying around.
Wait while more posts are being loaded