chadaustin's sculpt keyboard test pads wired to protonC

Tether Tames Temperamental Typing

[chadaustin] has a favorite keyboard with a great ergonomic shape, key travel distance, and size, but after switching to Windows 10, the wireless connection introduced a terrible delay. Worse yet, the receiver is notoriously susceptible to interference from USB 3.0 hubs. To provide 128-bit AES encryption, the receiver is paired with the keyboard at the factory and cannot be replaced. If you lose that, you gain a highly ergonomic paper-weight. The solution for [chadaustin] was tethering the keyboard and receive several crash-courses in hardware hacking along the way. As evidenced by the responses to this project on ycombinator, many long-time fans of the Microsoft Sculpt Ergonomic Keyboard, introduced in 2013, suffer similar issues.

chadaustin's sculpt keyboard USB board layout
KiCad USB controller board layout

We really appreciate that [chadaustin] took an incremental approach, tackling one problem at a time and getting help from others along the way for first attempts at many complex steps. The proof-of-concept involved hand-soldering each lead from the keyboard matrix’s test pads to a QMK Proton C, which worked but couldn’t fit inside the keyboard’s case. For a more permanent and tidy solution, [chadaustin] tried a ribbon-cable breakout board and other microcontrollers, but none of those were compact enough to fit inside the case either. This required a custom PCB, another first for [chadaustin].

After a one-day intro to KiCad, [chadaustin] dug into the datasheets, completed a schematic for the board, and generously shared the process of choosing components and creating the layout. [chadaustin] ordered a board and found the mounting holes’ placement needed to be shifted.

With the full matrix mapped by [johnmilkspill], flashing QMK onto the AT90USB1286 controller went fairly smoothly. [chadaustin] chose to map both sides of the split spacebar back to the space key but did add a feature by repurposing the battery indicator LED to Caps Lock. And the results?

chadaustin's sculpt keyboard USB controller fit into case
USB controller fits into the plastic case, wires added to ISP for bootloader button

According to testing done with Is It Snappy?, the latency dropped from the wireless 78 ms down to 65 ms over USB. More importantly, this latency is now consistent, unaffected by USB hubs, and there is no receiver to lose. Of course, [chadaustin] has ideas for future improvement, including regaining the multimedia function keys, as these kinds of hacks are never really done; they are just in the current revision. No word on the fate of the detached number pad, but that likely needs its own tether and is a project for another day.

Thanks for the tip [Linus Söderlind]

A Breadboard Block For 8-Bit CPUs

Breadboard CPUs are a fantastic learning experience and require serious dedication and patience. Occasionally, CPU builders eschew their breadboards and fab their design onto a PCB. But this takes away the flexibility and some of the opportunity for learning that breadboard CPUs offer. [c0pperdragon] was doing the same sort of repetitive wiring from project to project as most 8-bit breadboard CPUs use memory, a bus, an IO controller, ROM, and a few other passive components.

Taking a compromise approach, [c0pperdragon] built a PCB that can be used as a building block in his custom CPUs which they have titled “ByteMachine”. A single row of 34 pins offer power, clock, reset, 19 address bus lines, 8 data bus lines, and a ROM selector. This means that the CPUs can fit on a single breadboard and can run faster as the impedance of the breadboard has less effect on the circuit. With 512 KB of RAM and 512 KB of ROM, in a ZIF socket for easy reprogramming, ByteMachine has plenty of space.

One drawback is the lack of IO. There is no dedicated address space as this would require decoding logic between the RAM and the CPU. [C0pperdragon] added a simple 8-bit output register provided by a 74-series logic IC. The data is displayed on 8 red LEDs and can be accessed via pins. Input is accomplished in a similar way with just 8 bits of digital input provided.

[C0pperdragon] has built the 65C02, 65C816Z84C00, and the i8088 with the ByteMachine. Each was documented with incredible schematics, pictures, and test programs on GitHub. Next time you’re looking to build a CPU on a breadboard, maybe start with a ByteMachine. In some ways, it might improve your learning experience as it makes the incredible mass of wires we’ve seen on other projects a tad more manageable.

Thanks [Reinhard Grafl] for sending this one in!

Casio Computer Rebuild Puts New Wine In An Old Bottle

With a glut of vintage consumer electronics available from eBay it should be easy to relive your glory days, right? Unfortunately the march of time means that finding gear is easy but finding gear that works is not. So was the case when [Amen] acquired not one, but two used calculator/computer units hoping to end up with one working device. Instead, he went down the rabbit hole of redesigning his own electronics to drive the Casio QT-1 seen here.

Especially interesting is the prototyping process for the replacement board. [Amen] used a “BluePill” STM32 microcontroller board at its heart, and used point-to-point soldering for the rest of the circuitry on a rectangle of protoyping board. That circuit is non-trivial, needing a 23 V source to drive the original VFD from the computer, a battery-backed real-time-clock (MCP7940), and a GPIO expander to scan the keys on the keypad.

It worked great, but couldn’t be cut down to fit in the case. The solution was a PCB designed to fit the footprint of the original. The modern guts still need more firmware work and a couple of tweaks like nudging that 23 V rail a bit higher to 26 V for better brightness, but the work already warrants a maniacal cry of “It’s Alive!”.

This isn’t [Amen’s] first rodeo. Back in March we looked in on another vintage Casio refurb that sniffed out the display protocol.

Transform Kicad Design To Patchwork For Isolation Routing

Tuning a desktop router and your board designs for isolation routing can be a bit tricky, with thin traces usually being the first victim. For simple prototype boards you usually don’t need tightly packed traces, you just want to isolate the nets. To do this with a minimum amount of routing, [Michael Schembri] created kicad-laser-min, a command-line utility that takes a Kicad PCB design and expands all the tracks and pads to their maximum possible width.

Laser scribed PCB with maximum track widths

The software takes one layer of the PCB layout, converts it to black and white, and then runs a C++ Voronoi algorithm on it to dilate each track and pad until it meets another expanding region. Each region is colourised, and OpenCV edge detection is used to produce the contours that need to be milled or etched. A contour following algorithm is then used to create the G-code. The header image shows the output of each step.

Full source code is available on GitHub. [Michael] has had good results with his own boards, which are scribed using a laser cutter before etching, but welcomes testing and feedback from other users. He has found that OpenCV doesn’t always completely close all the contours, but the gaps are usually smaller than the engraving width of his laser, so no shorts are created.

This is basically “Scribble style” prototyping with CAD and CNC tools. If you prefer scribe and etch, you might consider building a simple PCB shaker for faster etching. If you have a router but want to avoid the dust, you can use a carbide scribe to scratch out the tracks without needing to etch.

A Commmand Center For Children With Sensory Needs

Toys for children are meant to be fun and interactive, but they’re even better if they’re educational as well. For [carrola1], a parent of a 4-year-old suffering from from medical disabilities, sensory needs, and autism, a more personalized approach seemed best. The electrical engineer built a wall-mounted command center with plenty of switches, buttons, and knobs to trigger to keep any child happy.

Apart from basic inputs, the device also has a color sensor – the command center can ask the child for an object of a particular color and congratulate them with a song when they’ve successfully acquired one.

The software for the audio and light controls was written in C for a STM32L0 series MCU, with CMSIS as the hardware abstraction layer and STM32CubeIDE as the IDE. The design uses SPI and I2C for serial communication and I2S for communicating between the digital audio devices. Physical inputs include toggle switches, rotary switches, and key switches to provide variety, with all physical hardware connected to the MCU on a custom PCB.

The audio output, sourced from a library of wav files, seems like the most challenging part of the build: the amps needed to be changed from left channel mono configuration to stereo, the output had to be LC filtered, and the code for had to be optimized for size to allow the audio files to play.

You can check out a video of the command center in action on the Reddit post.

 

A Scratch Built VFD Clock With Inner Beauty

Vacuum fluorescent displays (VFDs) are one of those beautiful pieces of bygone technology that you just don’t see much of anymore. At one time they were a mainstay of consumer electronics, but today they’ve largely been replaced with cheaper and more energy efficient displays such as LEDs and LCDs. While they might be objectively better displays, we can’t help but feel a pang of regret seeing a modern kitchen bereft of that unmistakable pale green glow.

If his impressive VFD clock is any indication [Simón Berraud] feels the same way. Not only does the clock’s display instantly trigger waves of nostalgia, but the custom PCB has that mistakable look of consumer electronics circa 1985. If we didn’t know better, we’d think this thing fell through a time warp.

Well, if it wasn’t for the SMD ATmega328 on the flip side of the board, anyway. In addition to the MCU, the clock features four ULN2003AN Darlington transistor arrays to drive the VFD, and a M48T08 Real Time Clock to keep the whole thing ticking.

The careful observer might notice a distinct lack of buttons or switches on the clock, and wonder how this retro wonder is set. In a particularly radical hack, [Simón] sets the time with a hard coded variable in the source code; you just need to set it far enough into the future so that you have enough time to power it up at the appropriate moment.

[Simón] has put the Arduino-flavored source code for the ATmega328 as well as the schematics and board files in his GitHub repository for anyone else who might want to take a walk down memory lane. While you’re at it, you may want to look at these tips for getting unknown VFDs up and running, as well as this interesting explanation of how they can be used as amplifiers if you’re really looking for style points.

Making PCBs With A Cutting Plotter

[LudwigLabs] is creating PCBs using copper foil and a cutting plotter (vinyl cutter). In this approach, it’s an additive process where instead of removing copper from a copper-clad board, the traces are cut out of copper foil and transferred to a solid backing surface (cardboard, fiberglass, etc.).

While similar to the use of copper tape laid out by hand, as covered by us last year, the big advantage of using a cutting plotter is that it allows one to create much more complicated traces similar to those you would expect to see on a factory-made PCB. Since cutting plotters translate a 2D design into very precise movements of the cutting blade, this allows for sharp angles and significantly thinner traces, allows designs from EDA software like KiCad or Altium to be quickly translated to physical boards.

Enterprising hackers might consider the possibility of using this approach to make two-sided, and even multi-layered boards. The copper is produced separately from the substrate which opens up the potential for using uncommon materials like glass or paper to host the circuits. The main limitations are the transferring of (very delicate) copper structures and creating vias without damaging the traces.

As a comparison with traditional PCB fab processes, the photo exposure and etching (or laser exposure and etching) process requires the creation of masks, UV exposing a board, etching, cleaning and so on. The simplicity of copper foil traces has led to many experimenting with this approach. Would you want to use this additive process, or are there refinements or alterations you would make?