Featured Post

RedScarf II Build Log

A 60% board with integrated numpad

More ›

MacBook Pro Touchbar Lockdown


The new Touch Bar is often marketed as a gimmick, but one powerful capability it has is to function as a lockdown mechanism for your machine in the event of a physical breach. By changing a few power management settings and customizing the Touch Bar, you can add a button that will instantly lock the machine’s screen and then begin a countdown (that’s configurable, e.g. 5 minutes) to lock down the entire system, which will disable the fingerprint reader, remove power to the RAM, and discard your FileVault keys, effectively locking the encryption, protecting you from cold boot attacks, and prevent the system from being unlocked by a fingerprint.

[via Jonathan Zdziarski]

Not only can you use Jonathan’s guide to lock down your MacBook Pro, but you can use it with all modern Macs using a hot corner.


Typed on MacBook

Peeqo The GIF Bot Video


Following up on a post from last month, the creator of Peeqo has created a video about his GIF bot.

Now, more than before I realize the potential of this bot. Peeqo just exudes charm.

The GIF response functionality is just a red herring to me. I see a bot like this, and I see personality, I see true potential for digital assistants. Systems like Siri and Echo make use of natural language understanding and machine learning, but they don’t have a lot of personality.

I see great potential with Peeqo (or a similar bot) serving for the front end of an Echo or a Siri-like machine learning system. It’s fantastic. The developer plans to make the entire project open source, so there is a real possibility of seeing something like this available (even if it’s DIY) soon.

I want one.


Typed on Blue Alps64

Kaby Lake CPUs


Intel’s Kaby Lake CPUs were ‘officially’ launched today. Kaby Lake is a marked change from Intel’s old Tick/Tock release schedule. They are instead moving to Process/Architecture/Optimization. This ‘optimization’ release looks to offer few improvements over the 6th generation Skylake chips:

Like the Devil’s Canyon refresh of Haswell, Kaby Lake desktop is but a mere clock speed boost disguised under the nomenclature of a new CPU generation. From an IPC standpoint, there’s nothing to tell Kaby Lake apart from Skylake. The one feature that might have proved interesting—support for Optane memory—is unlikely to be put to use until late 2017.

[via ArsTechnica]

As a Mac user, I mostly ignore Intel’s high-end CPU SKUs. That said, when happens in the high end can also have implications for their mobile chips. If Intel can’t iterate on their chips, Apple can’t ship machines with updated hardware.

[Source] annotation mine

Curiously, it’s worth noting that while several U series chips (like those used in the MacBook Air) are present in the Kaby Lake lineup, the only Y chip (used in the 12” Macbook) is an m3. Apple’s MacBook lineup currently has m3, m5, and m7 chips. Given this, I’m curious if the 12” Macbook will be updated any time soon.


Typed on ErgoDox Test Board

Handwired Jellycomb Numpad

Mod Log

I’ve been on the look out for a good programmable numpad for a while, but haven’t seen much available. There is the AMJ, but it’s programmability is in question, heck, there isn’t even a publicly available QMK/TMK fork of it. There’s the GHPad, but PCBs & cases are nowhere to be found. There are a multitude of high quality mechanical numpads in the world from Leopold, Filco, and others - but they aren’t programmable.

The clear solution: make one.

I started off with a Jelly Comb mechanical numpad, available on Amazon for a mere $17 Prime shipped. Out of the box the Jelly Comb is pretty great, actually. It’s got a solid plastic bottom frame, and a metal top plate. Switches are Outemu blues - they’re no Gaterons, keycaps are thin ABS, but pretty. The non-detachable USB cable is quite long, at least 2 meters, and it’s wrapped in paracord (or some equivalent). The board doesn’t output true number pad codes, but as a macOS user that’s irrelevant to me anyway. Overall pretty decent, especially for 17 damn dollars. Largely this project was impromptu. I ordered the Jelly Comb on a whim and figured that if I ruined it while attempting this mod, I wouldn’t be out too much money.

All this said, I simply cannot abide MX mount blues of any kind, and I prefer something programmable, so that I could tweak the numpad layout to my liking, at least.

I’ve never done a hand wired board before, actually. I have several vintage keyboards in my collection that I’ve held of from converting, simply because hand wired has always felt very intimidating to me. After completing this project I’ll say that hand wired isn’t that difficult, after all. I spent more time trying to cram my hand wired frankennumpad back in the case than I did soldering the key matrix or setting up the firmware.

Disassembly

First all the keycaps are removed. You can see that the stabs here are plate mounted Cherry style (thank goodness). Six screws are removed from the top of the plate. Then the top plate and PCB are removed from the bottom case.

There is a single screw securing the PCB to the top plate. It’s necessary to remove this

The PCB itself is pretty cheap. Since I’ll be removing it, no matter.

The Matrix

I intend to be using this numpad at work, on days I feel like using a 60% keyboard instead of my ErgoDox. Since I’ll be using this a lot, I’ve chosen 65g Zealios for this build.

First I soldered the diodes for the rows. It’s my first hand wired build, so the work here isn’t pretty. Once I start modding other boards I’m sure I’ll get better. I had some conflict about the Enter key and which row to place it on. In the end I opted to put it on row 6. If I were to do it over I would’ve put it on row 5.

Next I soldered on the columns. I’m not 100% sure how others have done with with hand wired boards, but I opted for solid copper wiring. I decided to go with a single wire for each column, stripping the shielding away where needed. I suppose the alternate option would be to cut a wire for for each row, down the column, I suppose I’ll find out if I try it for the next time I do this. In hindsight, I probably could’ve made these wires shorter, not extending so far past the keys, but that was easily remedied with my flush cutters.

Controller

Largely for this build I was making do with what I had on hand. I know the Arduino Pro Micro is quite popular at the moment, considering its price tag, but all I had on hand was a Teensy. Again, as a mostly impromptu mod I opted to use what I had instead of waiting for more parts to arrive.

Wires were soldered to the ends of each column, and to the end of each row. I decided to wire it pretty logically to the Teensy on one side. Rows from F0-F6, columns from F7-D7.

The Bodges

The Jelly Comb comes with a non-detachable USB cable, with a 4 pin connector on the circuit board. The Teensy controller I now have driving this board has mini-USB. Rather than try to position the teensy in the case for easy access to the mini-USB port, I figured it was simpler to just use the cable that came with the numpad.

I soldered a male mini-USB connector to the end of the Jelly Comb cable, connected it to the Teensy and called it a day.

As was mentioned at the top, I spent more time getting the entire rig back in the case than I did working on the firmware. There isn’t a ton of room inside the case, so getting the matrix + Teensy inside was no simple task. In the end I decided to bodge it and drill a few holes in the bottom of the case.

This made room for the Teensy’s mini-USB port and provides access to the reset/programming button. The work here is rough, I’ll admit. I really ought to buy a Dremel one of these days. Fortunately it’s impossible to tell it’s a bodge unless you flip the numpad over.

The Code

Going into this, the firmware was the most intimidating part. I figured that if nothing else I could solder together a proper key matrix, but I was worried I’d never sort out the firmware. I’m decent at going into QMK/TMK and modifying a keymap, but getting into the rest of the code can just blow my mind. I’m not a programmer so a lot of code is just Greek to me.

Fortunately there is a brilliant site - kb.sized.io (TMK Firmware Builder) that simplified the process significantly.

First, one goes out to Keyboard-Layout-Editor.com to configure a key layout. Then the Raw Data is copied, and imported into TMK Firmware Builder.

At this point, TMK Firmware Builder maps out a likely matrix and provides a pin config for the columns and rows. There is even an option to flip the orientation of the matrix. For my layout I had to do make some corrections to the matrix layout, but after that it was a simple matter of setting which pins I wanted to use for the rows and columns.

One can also use the site to set up a keymap. I opted not to do this as I prefer editing a layout within my text editor.

TMK Firmware Builder also offers functionality to create a macro. Typically with TMK a macro must be coded manually, like so:

case MACRO_0:
    return (event.pressed ?
            MACRO( T(M), T(A), T(C), T(R), T(O), END ) :
            MACRO( END ));

The process is transparent enough, but time consuming. Each macro event must key whether it’s a press, a release, duration, etc.

With TMK Firmware Builder, you simply go to the Macro Editor (above), click ‘record macro’, and type out the the macro - super convenient and fast.

Then its time to compile. Click on the Settings/Compile button and there are several options. You can set your project’s name, your diode direction, etc. It’s possible to download a precompiled .hex file, or download a zip file. I opted to download the zip as I prefer to be able to edit a board’s layout after the fact. The Zip file contains an entirely functional copy of TMK from which you can compile your firmware after editing the layout.

I’m incredibly impressed by TMK Firmware Builder, it took what could have been a significant task of creating a new keyboard project and digging inside config files to set pins and made it an easy point and click operation. I feel very comfortable editing keymap files, anything else is very intimidating. TMK Firmware Builder removed all that friction.

With the layout downloaded it was time to edit my keymap.

I’ve set up 4 function layers on this numpad: the base, a media controls layer, a macros layer and an F keys layer.

I’ve got layer toggles on the top most keys(FN7-FN10). I’ve also set up momentary layer tap keys on 0 and Enter(FN1 & FN2), to get to the two layers I’ll be using most often.

The Macro layer has 6 macros (FN14-19)presently, but I’ve obviously got room for a lot more.

/* layer 0 */
KEYMAP(
  FN7,  FN8,   FN9,  FN10,     \
  ESC,LBRACKET,RBRACKET,BSPACE, \
  7,    8,    9,    DEL,      \
  4,    5,    6,    TAB,      \
  1,    2,    3,              \
  FN1,      DOT,    FN2 ),
/* layer 1 */
KEYMAP(
  TRNS,  TRNS,  TRNS,  TRNS,     \
  MUTE,  VOLD,  VOLU,    NO,     \
  MPRV,  MPLY,  MNXT,    NO,     \
  HOME,    UP,   END,    NO,     \
  LEFT,  DOWN,  RIGHT,           \
  TRNS,         NO,    TRNS  ),
  /* layer 2 */
KEYMAP(
  TRNS,  TRNS,  TRNS,  TRNS,     \
  NO,    NO,    NO,    NO,       \
  NO,    NO,    NO,    NO,       \
  FN16,  FN15,FN19,    NO,      \
  FN18,  FN17,FN14,              \
  TRNS,         NO,    TRNS  ),
/* layer 3 */
KEYMAP(
  TRNS,  TRNS,  TRNS,  TRNS,     \
  F10,   F11,   F12,    NO,       \
  F7,    F8,    F9,    NO,       \
  F4,    F5,    F6,    NO,       \
  F1,    F2,    F3,              \
  NO,           NO,    NO  ),
};

Final product

Keycaps are DSA blanks that I had lying around. Top row has some of my artisans: Fugu, Slow Fi, Entling, and a Purrkey.

I see great possibilities with this numpad. The biggest reason why I prefer programmable boards vs standard boards is to get a certain set of keys - media controls and arrows. I largely see myself using the numpad at work when I’m using a 60% board. I can see myself using standard non-programmable boards now because all the critical keys I want/need are integrated into the numpad.

This small impromtu project has also boosted my confidence about hand wired keyboards. More than anything else it has allowed me to see that hand wired isn’t so difficult after all. I’m excited for what I might do next. I’ve had an Apple M0110 for a time, I think I’ll hand wire it and convert it soon.


Typed on Clueboard

South Carolina Ransomware


A bill pre-filed this month by state Rep. Bill Chumley would require sellers to install digital blocking capabilities on computers and other devices that access the internet to prevent the viewing of obscene content.


The proposal also would prohibit access to any online hub that facilities prostitution and would require manufacturers or sellers to block any websites that facilitate trafficking.

Both sellers and buyers could get around the limitation, for a fee. The bill would fine manufacturers that sell a device without the blocking system, but they could opt out by paying $20 per device sold. Buyers could also verify their age and pay $20 to remove the filter.

[via The Charlotte Observer]

Government sanctioned and mandated ransomware, great. I can understand where Chumley is coming from, but I think that citizens of this country are intelligent enough to make their own decisions about which content they do and don’t want to view on their own computers.

Bills like this one seek only to limit our technological freedom. What’s funny of course is that sophisticated users will find ways around this (or turn to FLOSS), whereas the common user will be stuck under Chumley’s thumb.


Typed on ErgoDox Test Board