The 8-bit Web Server

Even [maurycyz] doesn’t think it is a good idea, but it is possible to use an AVR 8-bit CPU to serve web pages. Of course, it is a vastly simplified web server, but it does serve pages — OK, technically just one page — to the public Internet.

Working backward, it is fairly easy to get the microcontroller to note an HTTP request and then simply spit out a prerecorded HTTP response to provide the page. The hard part is connecting the little processor to the network. The server is dead simple, just a CPU and a scant number of components like filter caps and LEDs. The trick is to use SLIP, an ancient protocol used to connect dial-up modem terminals to the network.

Linux supports SLIP, so the MCU connects to a Linux computer via SLIP. Then the Linux computer uses WireGuard to network with the remote web server that serves [maurycyz’s] site. The SLIP implementation assumes that IP packets aren’t fragmented, which is normally true these days. TCP was a bit more complicated since you have to track the connection state and possibly re-transmit lost packets. Still, nothing the AVR with 8 K of RAM and 64 K of flash can’t handle.

Practical? No. Cool? Sort of. Funny that a disposable vape has more CPU power. Of course, something like an ESP32 is an obvious choice.

Small Engine Gets DIY EFI Upgrade

Small internal combustion engines usually keep things simple, relying on carburetors to handle metering the correct amount of fuel and air. Recently, [Carlos Takeshita] decided his small engine could use an upgrade in the form of electronic fuel injection (EFI).

The build began with a Predator 212, a popular gasoline engine from Harbor Freight. [Carlos] set about kitting it out with a missing tooth trigger wheel to measure the crankshaft position with a hall effect sensor. The engine also scored a custom-built aluminium fuel cell, complete with a high-pressure fuel pump and regulator suitable for driving the solitary fuel injector installed in the custom intake manifold. A Teensy 4.0 is charged with monitoring a manifold air pressure (MAP) sensor and the crank position, and choosing when and how long to fire the injector to dose the engine with the correct amount of fuel. Files are on GitHub for those eager to dive deeper.

It can be quite a job to convert an engine to run with electronic fuel injection, but you’re certain to learn a lot during the install and tuning process. We’ve featured similar builds many times over the years.

Continue reading “Small Engine Gets DIY EFI Upgrade”

Qualcomm’s New QCC74x Appears To Target The ESP32 MCUs

These days wireless microcontrollers featuring built-in WiFi and Bluetooth are all the rage, with Espressif’s range of ESP32 MCUs being the default option for commercial and hobbyist projects alike. This makes Qualcomm’s recently released QCC74x MCU rather interesting, as specification-wise it would seem to be placed firmly in ESP32 territory.

On the radio side you get 1×1 WiFi 6, Bluetooth 5.4, and IEEE 802.15.4 (e.g. Thread and Zigbee), coupled with a single-core 352 MHz RISC-V CPU with FPU and DSP features and 484 kB of SRAM. The SDK for this MCU is hosted on Codelinaro, featuring the typical FreeRTOS-based stack, though confusingly Bluetooth and Zigbee support are currently marked as ‘not supported’. This might still be in progress.

Where the competition with Espressif feels clear is in the pricing, with the highest-performance evaluation board (QCC748M EVK, pictured above) listed for $13 (before taxes/tariffs). This gets you 8 MB of PSRAM built-in with unspecified link speed, but likely the same QSPI as used for the NOR Flash. USB support is available on this higher-end tier, while absent on the QCC743. Development documentation is also available, and looks fairly complete based on first glance.

Overall the QCC74x looks to be an upgrade to the older and significantly less powerful QCC730 MCU. Depending on software support and final pricing it could make for an interesting competitor to some of Espressif’s modules like its ESP32-C series or ESP32-S2, though the upcoming ESP32-S31 would seem to have it matched or beat on all metrics.

Win95-Tracker-CYD Is A Cheap Yellow Mod Tracker With I2S

The Cheap Yellow Display is a great little module to start a project with, but it wouldn’t necessarily be our first choice for an audio device. That’s because the PWM on the ESP32 isn’t exactly going to put out hi-fi, and the I2C pins needed for the I2S audio protocol aren’t broken out on the CYD board. That didn’t stop [ivans805] AKA [Ill-Town-5623]– he wanted a mod tracker, he had a CYD board, and necessity is the mother of invention.

It isn’t exactly a ground-breaking hack: he’s just tossed a bodge wire to the pin he needs on the ESP32, and run it to the I2S sound module. Still, in this era of endless modules it’s nice to see someone hacking what they have rather than running to AliExpress or somewhere else for a part that has everything the project needs built in.

The bodge wire is how you know it’s a hack.

What really caught our eye when we saw this project on the ESP32 subreddit was the aesthetics. It might be called “Win95-Tracker-CYD” but that interface just screams “Amiga” to us– look at that Boing Ball! Given where MOD files come from, that’s perfect. The UI was made with Lopaka.app, which we haven’t seen before but appears to be a sort of WYSIWYG editor for embedded device interfaces.

While you don’t need an ESP32 to play mod files– the diminutive CH32 can manage the task— there’s no arguing the CYD could make a nice little player. If you actually wanted to push its limits, you might try a 3D engine instead,

The ESP8266 Gets An OS, And It’s Familiar

A couple weeks back we brought you news of KernelUNO, a command line shell and very simple operating system for the Arduino Uno. It’s a neat idea, so it’s hardly surprising to see someone port it to another microcontroller and add more features.

Here’s [hery-torrado], with KernelESP for the ESP8266, which takes the original idea and adds a web console, scheduled jobs, sensor rules, scripting, NTP, and a JSON API. The networking using the ESP’s built-in WiFi takes the original and makes it significantly more useful.

It’s worth suggesting that the ability to call URLs with GET data to pass things to APIs would be useful on a networked processor too, but this is already so well featured it seems rude to ask for more. Yet again though, this project has given a new life to an old chip, and we think it has a way further to go. Perhaps a port to the ESP32 would allow it to reach its full potential, or maybe for a ridiculously cheap and powerful platform, the CH32 series of chips. We look forward to see what more will come from KernelUNO.

Our original coverage can be read here.

Rust Helps Make A $1 Handheld Console

These days, even an old Game Boy will set you back $100 or more, and a new handheld console will be many multiples of that. However, you can build a really cheap handheld gaming toy if you follow [Chris Dell’s] example.

In [Chris]’s own words, he used Rust to build a $1 handheld gaming console. How is that possible? Well, it all comes down to the CH32V003—a microcontroller cheaper than just about anything else out there. It sells for just 9 cents in bulk, and it’s no slouch either. The RISC-V device is a fully-fledged 32-bit chip running at 48 MHz, though with only 2 KB of RAM and 16 KB of flash. Still, that’s more than enough to make some little games. To this end, [Chris] paired the CH32V003 with an SSD1306 OLED display, and three tactile pushbuttons. He then whipped up some code in Rust with the aid of the ch32-hal project, implementing a neat platform game that ran at a healthy 25 fps.

The CH32V003 probably won’t be starring in a new handheld gaming revolution anytime soon. Still, it’s always interesting to see just what can be achieved with one of the cheapest microcontrollers on the market.

[Thanks to Kian Ryan for the tip!]

Wipeout Clone Runs Native On ESP32-S3

Psygnosis’s 1995 game Wipeout is remembered for two things: being one of the greatest games of all time, and taking advantage of the then-new PlayStation’s capacity for 3D graphics. The ESP32-S3 might not be your first choice to replace Sony’s iconic console, but [Michael Biggins] a.k.a. [PhonicUK] is working on doing just that, with his own clone of Wipeout on the Expressif MCU. 

It’s actually not that crazy when you think about it. The PlayStation had a 32-bit RISC processor, and the ESP32-S3 is a 32-bit RISC processor. The PlayStation’s was only good for about 30 Million Instructions Per Second (MIPS) but it had a graphics co-processor to help out with the polygons — the ESP32-S3 has two cores that can help each other, which combine to about 300 MIPS. In terms of RAM, the board in use has 8 MB of PSRAM, while the faster 512 kB on the chip is used, in effect, as video ram.

The demo is very impressive, especially considering he’s fit in three computer players. He’s also got it blasting out 60 frames per second, which is probably double what the original Wipeout ran on the PS1. Part of that is the two cores in action: he’s got them working together on the interlaced video output, one sending while the other finishes the second half of the frame. Each half of the video gets dedicated space in the internal memory. Using a 480×320 pixel display doesn’t hurt for speed, either. Sure, it’s paltry by modern standards, but the original Wipeout got by with even fewer pixels — and it didn’t run on a microcontroller. Granted it’s a beefy micro, but we really love how [Michael] is pushing its limits here.

Right now there’s just the Reddit thread and the demo video below. [Michael] is considering sharing the source code for his underlying 3D engine under an open license. We do hope he shares the code, as there are surely tricks in there some of us here could learn from. If it’s all old hat to you, perhaps you’d rather spend a weekend learning raytracing.

Continue reading Wipeout Clone Runs Native On ESP32-S3″