A modified Palm IIIc mainboard

LED Backlight Brings Vibrant Colors To Classic Palm PDAs

Back in the days before the widespread adoption of smartphones, Palm was the market leader in PDAs. If you had one of those you’ll probably remember taking notes by writing those funky “Graffiti” characters and tapping your stylus onto, usually, a green monochrome screen. Some models even came with a battery-hungry backlight, but for the ultimate display experience you had to buy the Palm IIIc that came with a backlit full-colour display.

While revolutionary for its time, it was hampered by the technology available: the CCFL backlight took a second to start up, and even with the screen at full brightness it was rather dim by today’s standards. [TobleMiner] fixed these issues by designing a module to retrofit an LED backlight into your Palm IIIc.

A Palm IIIc showing the main menu on its displayThe new backlight consists of a long, thin PCB designed to fit exactly where the CCFL tube sits. The PCB holds twenty-one white LEDs along with their current-limiting resistors to provide even illumination from top to bottom. A little MOSFET soldered onto the mainboard ensures the new backlight also correctly responds to the device’s “brightness” setting. [TobleMiner] recommends to remove the bulky CCFL transformer from the Palm’s mainboard to disable the corresponding circuitry and save a bit of weight.

The end result is understandably hard to capture on camera, but apparently gives the screen more vibrant colours. In any case, this might be a useful hack for anyone with a Palm IIIc with a broken backlight, though we can’t remember if that was a common issue. If you’re among those who still use original Palm devices, you might like this Palm-compatible Bluetooth keyboard. Don’t have a classic PDA? You can also run PalmOS on modern custom hardware.

Things Are Getting Rusty In Kernel Land

There is gathering momentum around the idea of adding Rust to the Linux kernel. Why exactly is that a big deal, and what does this mean for the rest of us? The Linux kernel has been just C and assembly for its entire lifetime. A big project like the kernel has a great deal of shared tooling around making its languages work, so adding another one is quite an undertaking. There’s also the project culture developed around the language choice. So why exactly are the grey-beards of kernel development even entertaining the idea of adding Rust? To answer in a single line, it’s because C was designed in 1971, to run on the minicomputers at Bell Labs. If you want to shoot yourself in the foot, C will hand you the loaded firearm.

On the other hand, if you want to write a kernel, C is a great language for doing low-level coding. Direct memory access? Yep. Inline assembly? Sure. Runs directly on the metal, with no garbage collection or virtual machines in the way? Absolutely. But all the things that make C great for kernel programming also make C dangerous for kernel programming.

Now I hear your collective keyboards clacking in consternation: “It’s possible to write safe C code!” Yes, yes it is possible. It’s just very easy to mess up, and when you mess up in a kernel, you have security vulnerabilities. There’s also some things that are objectively terrible about C, like undefined behavior. C compilers do their best to do the right thing with cursed code like i++ + i++; or a[i] = i++;. But that’s almost certainly not going to do what you want it to, and even worse, it may sometimes do the right thing.

Rust seems to be gaining popularity. There are some ambitious projects out there, like rewriting coreutils in Rust. Many other standard applications are getting a Rust rewrite. It’s fairly inevitable that the collection of Rust developers started to ask, could we invade the kernel next? This was pitched for a Linux Plumbers Conference, and the mailing list response was cautiously optimistic. If Rust could be added without breaking things, and without losing the very things that makes Rust useful, then yes it would be interesting. Continue reading “Things Are Getting Rusty In Kernel Land”

Transparent Framedeck Is Clearly Capable

When the universe tells you to build a cyberdeck, then build a cyberdeck you must. The lucky [Richard Sutherland] got an email from user-serviceable laptop purveyors Framework about the availability of their main board for use as a single-board computer. They agreed to send him a laptop and some extra modules as long as he promised to build something awesome with it. There was just one fabulous caveat: whatever design he came up with had to be released to the public.

[Richard] took this capable board with four USB ports and built an all-in-one that pays homage to the slab-style computers like the TRS-80 Model 100, which [Richard] really wanted as a kid. It looks lovely in layered acrylic and brass, and even though we pretty much always think that see-through is the best design choice you can make, transparency really works here. Tucked into those layers is a custom 36-key split running on an Elite-C microcontroller with Gazzew Boba U4 Silent-but-tactile switches, and a trackball in between. Be sure to take the build tour and check out all the process pictures.

Acrylic looks great and seems great on paper, but what about actual use? [Richard] put rubbery SKUF feet on the front, and a pair of repositionable feet on the back. Not only will it stay in place on the table, but he’ll be able to see the screen better and type at an angle greater than zero.

As cool as it would be to have Framedeck in the apocalypse, it will be hard to hide and could get looted. You might want to build something a bit more concealed.

Building Petahertz Logic With Lasers And Graphene

There was a time when we thought a 50 MHz 486 was something to get excited about. In comparison, the computer this post was written on clocks in at about 3.8 GHz, which these days, isn’t an especially fast machine. But researchers at the University of Rochester and the  Friedrich-Alexander-Universität Erlangen-Nürnberg want to blow the doors off even the fastest modern CPUs. By using precise lasers and graphene, they are developing logic that can operate at nearly 1 petahertz (that’s 1,000,000 GHz).

These logic gates use a pair of very short-burst lasers to excite electrical current in graphene and gold junctions. Illuminating the junctions very briefly creates charge carriers formed by electrons excited by the laser. These carriers continue to move after the laser pulse is gone. However, there are also virtual charge carriers that appear during the pulse and then disappear after. Together, these carriers induce a current in the graphene. More importantly, altering the laser allows you to control the direction and relative composition of the carriers. That is, they can create a current of one type or the other or a combination of both.

This is the key to creating logic gates. By controlling the real and virtual currents they can be made to add together or cancel each other out. You can imagine that two inputs that cancel each other out would be a sort of NAND gate. Signals that add could be an OR or AND gate depending on the output threshold.

[Ignacio Franco], the lead researcher, started working on this problem in 2007 when he started thinking about generating electrical currents with lasers. It would be 2013 before experiments bore out his plan and now it appears that the technique can be used to make super fast logic gates.

We often pretend our logic circuits don’t have any propagation delays even though they do. If you could measure it in femtoseconds, maybe that’s finally practical. Then again, sometimes delays are useful. You have to wonder how much the scope will cost that can work on this stuff.

Repairing An HDMI Adapter Doesn’t Go So Well

[Adrian] has a lot of retrocomputers, so he uses an RGB to HDMI converter to drive modern monitors. In particular, he has a box that uses a programmable logic chip to read various RGB signals and ships them to a Raspberry Pi Zero to drive the HDMI output. Sounds great until, of course, something goes wrong.

A converter that had worked stopped working due to a bad board with the programmable logic chip on it. Unlike the retrocomputers, this board has little tiny surface mount components. A little analysis suggested that some of the chip pins were not accepting inputs.

Continue reading “Repairing An HDMI Adapter Doesn’t Go So Well”

Can You Hear Me Now? Lunar Edition

Despite what it looks like in the movies, it is hard to communicate with astronauts from Earth. There are delays, and space vehicles don’t usually have a lot of excess power. Plus everything is moving and Doppler shifting and Faraday rotating. Even today, it is tricky. But how did Apollo manage to send back TV, telemetry, and voice back in 1969? [Ken Shirriff] and friends tell us part of the story in a recent post where he looks at the Apollo premodulation processor.

Things like weight and volume are always at a premium in a spacecraft, as is power. When you look at pictures of this solid box that weighs over 14 pounds, you’ll be amazed at how much is crammed into a relatively tiny spot. Remember, if this box was flying in 1969 it had to be built much earlier so there’s no way to expect dense ICs and modern packaging. There’s not even a printed circuit board. The components are attached to metal pegs in a point-to-point fashion. The whole thing lived near the bottom of the Command Module’s lower equipment bay.

Continue reading “Can You Hear Me Now? Lunar Edition”

Network Time Protocol On The ESP32

Network Time Protocol (NTP) is one of the best ways to keep networked computers synchronized to the same time. It’s simple, lightweight, and not only allows computers to maintain a time standard together, but it also allows some computer manufacturers to save some money on hardware costs. The Raspberry Pi is perhaps the most well-known example of a low-cost computer without the extra expense of a real-time clock (RTC). While the Pi sets up NTP essentially automatically, other microcontrollers like the ESP32 don’t, but it is possible to configure them to use this time standard with some work.

For this project the MicroPython implementation for the ESP32 is required. MicroPython is a way of running Python code on microcontrollers or other embedded systems without all of the overhead that Python would normally require. Luckily enough, the NTP libraries are built right in so once MicroPython is running on the ESP32 it’s nearly as easy as calling the library. Of course you will have to make sure there is an internet connection, and then grab the time, sync it to the machine, and then set the timezone.

For a bonus exercise, the project’s creator [Bhavesh] suggests attempting to configure Daylight Savings Time, although this can be a surprisingly difficult problem to solve. In the meantime, there are a few other ways of installing a clock on a microcontroller like this one. An RTC module is an obvious choice, but you can also get incredibly accurate time by using a GPS module as well.