It’s been over a year since the original PinePhone, also known as the “Braveheart” edition was made available. When I reviewed it, it showed a lot of promise, despite being intended for developers. While the software has been incredibly improved since then, it failed to replace my Android phone.

The problem revealed itself when I tried to sort out why I couldn’t use a USB hub with the device. I tried every one in the house, and then even a few more, and none worked. More research landed me on the PinePhone Wiki, where I found a page listing various hardware issues discovered in the Braveheart.

A possible fix was to remove several tiny components on the board to correct the USB issue. This, however, would only fix one of several problems I was having. The worst of which was it didn’t have enough memory. The newer Community Edition PinePhones have 3GB of memory in addition to other hardware fixes.

Instead of buying a new PinePhone outright, I decided instead to do something I never attempted before:

Replace a phone’s mainboard.

Read More

21 mechanical keys configured as a numerical keypad plus 4 programmable macro keys.

I became interested in high precision GPS time after listening to a podcast about network clock synchronization on Signals & Threads. My original goal was to setup a local NTP time server that I could sync all my devices to. However, I got sidetracked along the way – and this is the story of my Raspberry Pi home dashboard.

The Apple M1 available in the MacBook Air, MacBook Pro 13”, and Mac Mini has been the focus of a ton of benchmarking writeups and blog posts about the new chip. The performance overall, and especially performance/watt, that Apple has achieved with the chip is very impressive. As a ray tracing person, what caught my eye the most was the performance AnandTech reported in their CineBench benchmarks. These scores were 1.6x higher than I got on my old Haswell desktop and 2x higher than my new Tiger Lake laptop! I had also been interested in trying out the new ray tracing API for Metal that was announced at WWDC this year, which bears some resemblance to the DirectX, Vulkan, and OptiX GPU ray tracing APIs. So, I decided to pick up a Mac Mini to do some testing on my own interactive path tracing project, ChameleonRT, and to get it running on the new Metal ray tracing API. In this post, we’ll take a look at the new Metal ray tracing API to see how it lines up with DirectX, Vulkan, OptiX and Embree, then we’ll make some fair (and some extremely unfair) ray tracing performance comparisons against the M1.

Read More

Given the scarcity of combo organ top octave generator ICs, what’s a hack supposed to do? Emulate!

I posed a “bar bet” against myself — can I emulate a top octave generator chip with an Arduino? The Arduino is a bit slow and I wasn’t sure if it would be fast enough for the task. Good thing I didn’t best against it…

If you browse the Web, you’ll find other solutions. I chose Arduino UNO out of laziness — the IDE is already set-up on my PC and the hardware and software are easy to use. Plus, I have UNOs to spare. Ultimately, one can always cobble together a barebones solution consisting of an ATMEGA328P, a 16MHz crystal and a few discrete components, if small size is an issue.

Read More

There is nothing I find more liberating than to spend a Saturday afternoon coding on some toy project.

There is no expectation or obligation to ever become more. It is just for fun, learning, and curiousity. I can add whatever features I want. I can use whatever technologies I want. I can throw it all away if I want. These are the projects I yearn for and look forward to when I’m busy with work.

Perhaps George Bernard Shaw was on to something: “We don’t stop playing because we grow old; we grow old because we stop playing.”

Funny enough, Titus Barik published a paper that contributes a qualitative analysis on the sentiment of programming and play on Hacker News. The themes he found include play as artistry, catalyst, fun, playgrounds, spontaneity, tinkering, and anti-work. There is a quote that I particularly like, “The joy of programming for programming’s sake is something you do in your own time.”

Read More

This is not a transistor computer. In fact, it is a computer with a CPU made up of discrete transistors, and the CPU instructions are composed by microcode stored in the same memory that also contains the application program.

This computer consists of 1897 transistors for the CPU, 598 transistors for the four 8-bit I/O-ports and additional 124 transistors for the LCD I/O board. Furthermore, three integrated memory chips were used. Of course it would be possible to build the SRAM chip with transistors and the ROM chip with transistors and diodes as well, but this would have required much more transistors.

The complexity of my design is somewhere between the Intel i4004 CPU (2250 transistors) and the 6502 (3218 transistors). The i8080 already has 4500 transistors and the Zilog Z80 even has 8500 transistors, so you get an idea how small my design still is. The most complex component that I use in the computer is the EEPROM memory chip. And even the LCD is also more complex than the TraNOR CPU.

My design goal was to build a transistorized computer that is 100% compatible with MyNOR. I have reached this goal, software written for MyNOR runs on TraNOR with the same speed. And TraNOR doesn’t need a special EPROM image either, it also works with MyNOR ROM v1.0 and later versions.

Read More

Bit banger is built around an ATtiny15 microcontroller, which runs at 1.6 MHz and has 1 kB of flash ROM and a claustrophobic 32 bytes of RAM. In fact, those 32 bytes are the CPU registers. Only the most basic AVR instructions are supported; they occupy at least two bytes each, and can obviously not be compressed since they are executing from ROM, so a maximum of 512 instructions will fit inside the chip (fewer if static data is needed).

The microcontroller supports interrupts, but they would have been too costly to use. Instead, the entire demo is cycle counted.

At a clock rate of 1.6 MHz, the visible part of each line of the VGA signal swooshes by in exactly 36 clock cycles. The entire line, including horizontal blanking, is 51 clock cycles wide. During this time, both graphics and sound must be generated.

I quickly arrived at the following overall design: Three registers make up a 24-bit frame buffer, organized as a 3x8 grid. Every 60 raster lines, these registers are rotated one bit, to prepare for the next row of the grid. At three different positions along the visible part of the line, the MSB of the corresponding frame buffer register is interpreted as an instruction to either keep or invert the current colour; the resulting colour is then transmitted onto an output pin. At the end of the visible line, black is selected.

In the gaps between these four positions and the two places where the horizontal sync signal is flipped, sound must be generated and emitted. The ATtiny15 luckily has a PWM output that runs on a separate peripheral clock at a staggering 25.6 MHz, which is high enough for 8-bit audio output. Writing a sample to the PWM output is a simple one-cycle instruction; the challenge is to calculate the value of the sample during the remaining clock cycles.

Read More

Many consumer personal tracking devices seem to have a shelf life of only a couple of years. So if you’re interested in keeping a long-term history of your progress, you have to figure out how to work around their apps to get your own data back from their servers. Otherwise, the day their app or servers stop working, your data will simply disappear.

I’ve used two tracking devices where data was not easily exportable, the Microsoft Band (shut down May 2019), and the Hello Sense (shut down June 2017, and never sent the data export instructions that they said was forthcoming), so I’m documenting the process I went through to retrieve my own data in hopes it may be useful for others trying to do the same for other devices.

Read More

As part of my work on reverse-engineering eInk price tags I ran into an interesting problem. One particular company (Samsung Electro Mechanics/SoluM) switched from a third party chip I had figured out (Marvell 88MZ100) to a new chip in their next generation tags. This chip seemed to be made by them, custom, for this purpose. This never bodes well for reverse-engineering. A friend provided me with a few tags containing this chip to play with. There were two types that had a segment-based e-Ink display and one that had a normal graphical eInk display. They had the same main chip on them, so I started with the segment-based device, since it is easier to understand a simpler unknown system. It was not quite clear where to start, but, of course, that kind of puzzle is always the most interesting!

Read More

Among security professionals, a “drop box” is a device that can be covertly installed at a target location and phone home over the Internet, providing a back door into what might be an otherwise secure network. We’ve seen both commercial and DIY versions of this concept, and as you might expect, one of the main goals is to make the device look as inconspicuous as possible. Which is why [Walker] is hoping to build one into a standard USB wall charger.

This project is still in the early stages, but we like what we see so far. [Walker] aims to make this a 100% free and open source device, starting from the tools he’s using to produce the CAD files all the way up to the firmware the final hardware will run. With none of the currently available single-board computers (SBCs) meeting his list of requirements, the first step is to build a miniature Linux machine that’s got enough processing power to run useful security tools locally. Obviously such a board would be of great interest to the larger hacker and maker community.

Read More

This project is designed to create a desktop clock which provides weather and astronomical information. While primarily designed to run on a Raspberry Pi, the code generates a Node.js server and client web app which can be run on other computers and operating systems, albeit without the Raspberry Pi’s hardware-level support for wired and wireless temperature/humidity sensors. GPS support is also primarily aimed at the Raspberry Pi, but might work on other Linux variants if similarly configured.

I’ve started work on the next in my 1-bit Woodblocks series: “Tekagami” (Ito Shinsui’s “Hand Mirror”). So it’s a good time to talk about how I turned an iPad Pro into the ultimate Classic Macintosh.

Living in a Scandinavian city has its perks. Like finding two perfectly fine speaker boxes on the street. Unfortunately, the amplifier was already gone. No problem, I’d just order a $10 bluetooth amp from aliexpress and have a nice stereo at home. I thought. Well, turns out there is a couple of ways they can suck

Buying a set of stylish bookshelf speakers is a perfectly reasonable thing to do, and remains legal in most free countries around the world. However, if you really want to impress with a pretty pair to crank out your tunes, you might consider designing and printing your own. [EH_Design] did just that with a stylish 2.1 Bluetooth audio system.

The 2.1 designation refers to the use of two stereo channels plus a subwoofer. It’s a popular setup as human perception means it’s not as necessary to have stereo imaging for low frequency content. The build uses a Texas Instruments TPA3116D2 Class D amplifier with a Bluetooth input, with the efficient design allowing the build to be more compact without the need for as much heat sinking. A 24 V supply delivering up to 3 A is specified, providing plenty of volume when needed. The speakers themselves consist of 3″ drivers mounted in attractive 3D-printed shells, with the “subwoofer” consisting of a pair of 5″ woofers paired up in a special isobaric enclosure that enables a smaller volume to acoustically act like one double the size.

The result is a futuristic-looking set of bookshelf speakers that remind us of some of the fancier high-end sets often seen in hi-fi magazines. Of course, if 3D printing enclosures isn’t enough for you, you could always consider 3D printing the actual speaker driver itself. When you do, let us know how it goes!

Read More

HP came out with a fun Windows laptop in 2015 called the Star Wars Special Edition laptop. I wish more manufacturers would create themed laptops, because let’s face it, computers, especially consumer computers, should be fun! I would like to own HP’s Star Wars laptop, but more than five years after it came out, it is still selling for a minimum of $300 on Ebay ($700 original price). I had no intention of paying that kind of money for a more-than-five-year-old, otherwise mediocre laptop, so I created my own Linux version. In this article, I will show you how. Readers will need a basic familiarity with the Linux command line to get the most out of this article.

Although the Star Wars theme is cool, a couple of things about HP’s laptop don’t appeal to me. It is dark gray and painted to look old and scratched. I understand that HP was just trying to match the weathered and war-battered look of the rebel alliance machines in the Star Wars movies, but when I buy a laptop, I want it to look new. The laptop’s plastic case also looks rather flimsy to me. HP’s laptop does, however, have a red-backlit keyboard that enhances its appeal. Unfortunately, I cannot duplicate that with my laptop.

I decided to install my Star Wars theme on my twelve-year-old Dell Latitude E6500 laptop. One reason the E6500 seemed right for this is that its blackness matches Darth Vader’s helmet, so I felt it would look great with a red-and-black Star Wars desktop background. To create my Star Wars theme, I added new desktop background images, sounds, icons, and some other touches. I did not add a Star-Wars-themed skin to the lid or a sticker to the palm rest, but readers who decide to create Star Wars themed laptops of their own may want to decorate the surfaces of their laptops as they see fit. I call my creation “the Cheapskate’s Star Wars Special-Edition laptop”.

Read More

Pine64 PinePhone is a popular Linux smartphone among the developers and Linux enthusiasts’ communities and some of the most popular Linux operating systems support by the phone include KDE Plasma Mobile, PostMarket OS, Manjaro, and UBports for an Ubuntu Touch like interface.

But soon, you’ll be able to use your PinePhone like a portable Linux computer, a 5.95-inch mini laptop of sorts, that’s similar to the 2-in-1 Cosmo Communicator device, but at a much lower price, albeit with lower performance, thanks to PinePhone Keyboard accessory.

Read More

Like vinyl and cassette tapes, cathode ray tubes are experiencing a comeback in some circles. Retrogamers want to experience old titles on the fuzzy displays they were designed for. And makers have been deconstructing them for all kinds of projects: In January of 2020, we featured a vector graphics clock based on a CRT originally made for an oscilloscope. But oscilloscope CRTs are relatively rare, while old analog television sets can literally be found littering sidewalks. So when I came across a cheap listing on eBay for a portable black-and-white television with a 5-inch-screen that looked in almost mint condition, I thought I’d take on the challenge of tackling this old technology.

Read More

Share and discuss cool hack projects.

Created on Sep 11, 2020
By @gurlic