Software Development On The Nintendo Famicom In Family BASIC

Back in the 1980s, your options for writing your own code and games were rather more limited than today. This also mostly depended on what home computer you could get your hands on, which was a market that — at least in Japan — Nintendo was very happy to slide into with their ‘Nintendo Family Computer’, or ‘Famicom’ for short. With the available peripherals, including a tape deck and keyboard, you could actually create a fairly decent home computer, as demonstrated by [Throaty Mumbo] in a recent video.

Continue reading “Software Development On The Nintendo Famicom In Family BASIC”

Can A Scan Tool Kill A Car?

It’s no real secret that modern-day cars are basically a collection of computers on wheels, which also means that we get all the joys of debugging complex computer systems and software with cars these days. Rather than a quick poke under the hood to rebuild a carburetor and adjust the engine timing by hand, you’ll be pulling out a scan tool to gain access to the computer and figure out why the darn thing won’t start after someone else used a scan tool on it, as happened to [DiagnoseDan].

The question was whether the third-party scan tool that was used by the owner had done something to the software settings that would prevent the engine of this 2012 Renault Megane RS from starting, such as erasing keys, or if it was something more subtle. With no stored fault codes and the engine having healthy fuel, spark, and cam sensor readings, the conclusion was that the ECU was not doing its fuel injector things for some reason.

Ultimately, the root cause was that the ECU had been modded, with a re-mapping performed in 2020, meaning that the scan tool that [Dan] was using couldn’t properly interact with the ECU. Reflashing the ECU with the original manufacturer’s firmware was thus the next step, which is pretty involved in itself.

Reinstalling the OS on the car proved to be the solution. Likely, the modded firmware had stored some fault codes, as the ECU normally doesn’t start the engine if there are active codes stored. The third-party scan tool was thus likely blameless, but the inability to just clear fault codes was the real issue.

Continue reading “Can A Scan Tool Kill A Car?”

Real-Time 3D Room Mapping With ESP32, VL53L5CX Sensor And IMU

ST’s VL53L5CX is a very small 8×8 grid ranging sensor that can perform distance measurements at a distance of up to 4 meters.  [Henrique Ferrolho] demonstrated that this little sensor can also be used to perform a 3D scan of a room. The sensor data can be combined with an IMU to add orientation information to the scan data. These data streams are then combined by an ESP32 MCU that streams the data as JSON to a connected computer.

Of course, that’s just the heavily abbreviated version, with the video covering the many implementation details that crop up when implementing the system, including noise filtering, orientation tracking using the IMU and a variety of plane fitting algorithms to consider.

Note that ST produces a range of these Time-of-Flight sensors that are more basic, such as the VL53VL0X, which is a simple distance meter limited to 2 meters. The VL53L5CX features the multizone array, 4-meter distance range, and 60 Hz sampling speed features that make it significantly more useful for this 3D scanning purpose.

 

Continue reading “Real-Time 3D Room Mapping With ESP32, VL53L5CX Sensor And IMU”

Windows 98 On A 2020 ThinkPad P14s Gen 1 Laptop

The lovely thing about the x86 architecture is its decades of backwards compatibility, which makes it possible to run 1990s operating systems on modern-day hardware, with relatively few obstacles in the way. Recently [Yeo Kheng Meng] did just that with Windows 98 SE on a 2020 ThinkPad P12s Gen 1, booting it alongside Windows 11 and Linux from the same NVMe drive.

Naturally, after previously getting MS-DOS 6.22 from 1994 running on a 2020 ThinkPad X13, the step to doing the same with Windows 98 SE wasn’t that large. The main obstacles that you face come in the form of UEFI and hardware driver support.

Both ThinkPad laptops have in common that they support UEFI-CSM mode, also known as ‘classical BIOS’, as UEFI boot wasn’t even a glimmer yet in some drunk engineer’s eye when Win98 was released. After this everything is about getting as many hardware drivers scrounged together as possible.

[Yeo] ended up having to bodge on a USB 2.0 expansion card via a Thunderbolt dock as Win98 doesn’t have xHCI (USB 3.0) support. With that issue successfully bodged around using a veritable tower of adapters, installing Windows 98 was as easy as nuking Secure Boot in the BIOS, enabling UEFI-CSM along with Thunderbolt BIOS assist mode and disable Kernel DMA protection.

Because UEFI-CSM implementations tend to be buggy, the CREGFIX DOS driver was used to smooth things over. Another issue is the same that we chuckled about back in the day, as Windows 98 cannot address more than 512 MB of RAM by default. Fortunately patches by [Rudolph Loew] helped to fix this and some other smaller issues.

Unfortunately neither Intel nor NVIDIA have released Win98 drivers for quite some time, so there’s no graphics acceleration beyond basic VESA support and the SoftGPU driver. Disk access goes via the BIOS too rather than using an NVMe driver, so it’s not as zippy as it could be, but for Win9x it’s quite usable.

Finally ACPI wasn’t recognized by Win98, but it’s only fair to blame that on the complete flaming train wreck that is ACPI rather than anything to do with Windows. This particular issue was worked around by configuring the BIOS to support S3 power state and with that making Win98 happy again.

It’s honestly quite a shame that UEFI-CSM is largely ignored by new systems, as it makes installing even Windows 7 basically impossible, and thus creating probably the largest split within the x86 ecosystem since the arrival of AMD64/x86_64.

Building The Most Simple Motor In Mostly LEGO

Although [Jamie’s Brick Jams] has made many far more complicated motor design in the past, it’s nice to go back to the basics and make a motor that uses as few parts as possible. This particular design starts off with a driver coil and a magnetic rotor that uses two neodymium magnets. By balancing these magnets on both sides of an axis just right it should spin smoothly.

The circuit for the simple motor. (Credit: Jamie's Brick Jams, YouTube)
The circuit for the simple motor. (Credit: Jamie’s Brick Jams, YouTube)

First this driver coil is energized with a 9 V battery to confirm that it does in fact spin when briefly applying power, though this means that you need to constantly apply pulses of power to make it keep spinning. To this end a second coil is added, which senses when a magnet passes by.

This sense coil is connected to a small circuit containing a TIP31C NPN power transistor and a LED. While the transistor is probably overkill here, it’ll definitely work. The circuit is shown in the image, with the transistor pins from left to right being Base-Collector-Emitter. This means that the sensor coil being triggered by a passing magnet turns the transistor on for a brief moment, which sends a surge of power through the driver coil, thus pushing the rotor in a typical kicker configuration.

Obviously, the polarity matters here, so switching the leads of one of the coils may be needed if it doesn’t want to spin. The LED is technically optional as well, but it provides an indicator of activity. From this basic design a larger LEGO motor is also built that contains many more magnets in a disc along with two circular coils, but even the first version turns out to be more than powerful enough to drive a little car around.

Continue reading “Building The Most Simple Motor In Mostly LEGO”

Lab-grown diamonds in 'cake' form -- before they are processed and polished.

Why Diamond Transistors Are So Hard To Make

Many things about diamonds seem eternal, including the many engineering problems related to making them work as a silicon replacement in semiconductor technology. Yet much like a diamond exposed to a stream of oxygen-rich air and a roughly 750°C heat source, time will eventually erase all of them. As detailed in a recent [Asianometry] video, over the decades the challenges with creating diamond wafers and finding the right way to dope pure diamond have been slowly solved, even if some challenges still remain today.

Diamond is basically the exact opposite as silicon when it comes to suitability as a semiconductor material, with a large bandgap (5.5 eV vs the 1.2 of silicon), and excellent thermal conductivity characteristics. This means that diamond transistors are very reliable, albeit harder to switch, and heat produced during switching is rapidly carried away instead of risking a meltdown as with silicon semiconductors.

Unlike silicon, however, diamond is much harder to turn into wafers as you cannot simply melt graphite and draw perfectly crystallized diamond out of said molten puddle. The journey of getting to the state-of-the art soon-to-be-4″ wafers grown on iridium alongside the current mosaic method is a good indication of the complete pain in the neck that just this challenge already is.

Continue reading “Why Diamond Transistors Are So Hard To Make”

MyMiniFactory Has Acquired Thingiverse Bringing Anti-AI Focus

One of the best parts of 3D printing is that you can freely download the plans for countless models from sites like Thingiverse, Printables, and others. Yet with the veritable flood of models on these sites you also want to have some level of quality. Here recent news pertaining to Thingiverse is probably rather joyful, as with the acquisition of Thingiverse by MyMiniFactory, it should remain one of the most friendly sites for sharing 3D printing models.

Although Thingiverse as a concept probably doesn’t need much introduction, it’s important here to acknowledge the tumultuous times that it has gone through since its launch in 2008 as part of MakerBot. Both were acquired by Stratasys in 2013, and this has led to ups and downs in the relationship with Thingiverse’s user base.

MyMiniFactory was launched in 2013 as a similar kind of 3D printing object-sharing platform as Thingiverse, while also offering crowdsourcing and paid model options. In the MyMiniFactory blog post it’s stated that these features will not be added to Thingiverse, and that nothing should change for Thingiverse users in this regard.

What does change is its joining of the ‘SoulCrafted‘ initiative, which is an initiative against machine-generated content, including so-called ‘AI slop’. There will be a live Q & A on February 17th during which the community can pitch their questions and ideas, along with a dedicated Thingiverse group.