chester's blog

technology, travel, comics, books, math, web, software and random thoughts

Voice control for a non-smart TV (with Google Home, a Raspberry Pi, LIRC, nginx, Lua and IFTTT)

12 Dec 2017 | Comments

Despite my privacy concerns, I could not resist the low price of the Google Home Mini. It is really convenient to control the ChromeCast with it, but turning my (non-smart) TV on/off, or switching the input between different devices still required reaching the remote…

…until I hacked a bit!

In a nutshell: IFTTT turns Google Home commands into HTTPS requests towards a Raspberry Pi. There, nginx triggers some Lua code that runs LIRC, which generates IR signals into a transistor that amplifies them to two IR LEDs. Complicated, but works!

Atari 2600 CPU running on a breadboard

09 Sep 2017 | Comments

A year ago, Ben Heck hand-soldered an Atari 2600 on a protoboard (and, as usual, turned that into a portable console). The idea of manually re-assembling the console for which I had already hacked together a game and an emulator sounded very exciting (and educational) for me.

The show crew always publishes schematics for his projects, so while I waited for that, I started de-soldering the chips and cartrige conector (and a few extra components, why not?) from an old Atari Jr. board I had lying around. De-soldering is hard, but eventually it was done:

An Atari VCS (Jr.) board, without several components

The schematics, however, never came. That episode’s GitHub repository only includes the original Atari’s block diagram, so I shelved the plan. But more recently I stumbled upon a series of blog posts in which David Barton describes how he built a 6502-based computer (a 65c02, to be precise) on a solder-less breadboard.

Those boards aren’t as sturdy or portable as traditional printed circuit boards, but the freedom to tinker (and make mistakes) sparked my flame once again, so I decided to give the project another shot. I started by reproducing his first two posts, but adapted to the Atari’s 6507 and adding a couple tweaks.

Replacing K-Cup®s with reusable coffee pods

07 Aug 2017 | Comments

This post isn’t about electronics or software hacks, but it touches a very important element in those: coffee! ☕️

Infatuated with the convenience of pod-based coffee machines, I’ve owned a Keurig B40 since 2012. Its K-Cups afford easy comparisons to standards like VHS or Android - in the sense that competing systems may have marginal advantages, but the variety of suppliers is hard to beat.

These days, I only hit a coffee shop when I need socialization or internet. But I still have two issues with pods: cost (a pod is cheaper than, say, Starbucks, but still adds up way faster than ground coffee in packs) and pollution.

The later grew a bit on me - to the point that I even considered returning to the Moka pots that used to fulfill my coffee needs back in Brazil - until I discovered reusable coffee pods.

Unbricking a WNDR3700v3 (NETGEAR N600) wireless router

18 Mar 2017 | Comments

One day I decided to install an alternative firmware on my NETGEAR N600 in order to tweak lower-level settings and try to minimize frequent (and very frustrating) disconnections on Splatoon. But the setup failed, effectively bricking the router.

“No sweat”, I thought, “let me just put it into some sort of recovery mode and flash the original firmware into it”. For this router, the idea would be to transfer the firmware via TFTP - which works by setting up a computer with fixed TCP/IP configs and starting the transfer at the right time during the boot process.

That didn’t work either.

At that point, I realized this fix would require some physical hacking.

Connecting a classic (ADB) Apple keyboard to a modern (USB) PC using a regular Arduino

27 Dec 2016 | Comments

When I saw this person building a Raspberry Pi inside a vintage Apple Keyboard, I thought it could be a comfortable way to play Apple II games on a TV. More important, I happen to have an Apple Extended Keyboard II just waiting for such an experiment…

Keyboard + Arduino

My winter holiday plans did not include going outside, so I wanted to build it with parts I already had. But the hack uses an Arduino Pro Micro (with a little help of the TMK Keyboard Firmware Collection) as a converter between ADB (the interface used by the Apple IIGS and older Macs) and the familiar USB, and I only had a regular Arduino (actually, a Leonardo-compatible clone).

I wasn’t sure that would do the job, so before tearing the keyboard apart, I decided that my first experiment would be an attempt to connect it to my computer.

Building a Pebble app with C, JavaScript and Rails (Toronto Transit Time)

11 Dec 2016 | Comments

Toronto Transit Time splash screen

Earlier this year I was looking for an app that showed predictions for Toronto streetcars/buses on my Pebble smartwatch. To my surprise, I could not find a single one that worked the way I expected it to (or that worked at all, to be honest), so I decided to build my own.

Little did I know that getting fast and reliable predictions on my wrist wasn’t just a matter of writing C code on the watch - it also required code running on the phone and on a server. Totaly worth it: I use Toronto Transit Time almost daily - and I’m not the only one.

This insight of the development process was originally intended to become a presentation for the likes of PebbleTO, but given the uncertain future of Pebble (recently acquired by FitBit), I decided to just publish it here as a supplement to the application’s source code.

Touring Portugal

06 Jun 2016 | Comments

A week in Portugal surely came with a special flavour for Brazilian expats like myself and Vanessa, but it is a trip anyone can enjoy. You get by with English, and also with Romance languages such as Spanish or French. Otherwise, just point the food and enjoy the sights!


Wii U Gamepad (Left) Analog Stick Replacement

07 Feb 2016 | Comments

Our Wii U Gamepad’s analog stick was intermittently failing to register, causing frustration right when I most needed fun and happiness. Recalibration didn’t help, and a new Gamepad would be expensive, so I tested my luck by replacing the analog stick with an aftermarket one.

It isn’t a super complex operation, but the components are quite delicate, requiring gentleness and attention. As usual, here is what I learned (and some tips):

Here is how it looks inside