Tiny Pinball Machine Also Runs X86 Code

As arcades become more and more rare, plenty of pinball enthusiasts are moving these intricate machines to their home collections in basements, garages, and guest rooms. But if you’re not fortunate enough to live in a home that can support a space-intensive hobby like pinball machines, there are some solutions to that problem. This one, for example, fits on the palm of your hand and also happens to run some impressive software for its size.

The machine isn’t a mechanical pinball machine like its larger cousins, though. Its essentially a 3D printed case made to look like a pinball machine with two screens attached. It does have a working plunger for launching the ball and two buttons on the sides for the approximation of authenticity, but it’s actually running Pinball Fantasies — a pinball simulator designed to run on x86 hardware from the 90s. This sports an ESP32 on the inside, which has just enough computing capability to run an x86 emulator that can load these games in DOS.

The game includes haptic feedback and zips along at 60 frames per second, which really brings the pinball experience to its maximum level given the game’s minuscule size. It’s impressive for fitting a lot into a small space, both from physical and software points-of-view. For more full-sized digital pinball builds, take a look at this one which comes exceptionally close to replicating the real thing.

Continue reading “Tiny Pinball Machine Also Runs X86 Code”

It’s Linux. On An ESP32

By today’s standards, the necessities for running a Linux-based operating system are surprisingly meagre in terms of RAM and processor power. Back in the day we ran earlier Linux versions on Intel 386 and 486 machines with tiny quantities of memory compared to the multi-gigabyte many-core powerhouses we do today.

So it stands to reason that many of the more powerful microcontrollers should also run Linux, but of course they are often unable because the lack a memory management unit. The original ESP32 is just such a candidate, plenty of power but unable to run Linux. Not so fast, because [Dror Gluska] has managed to boot a Linux kernel on Espressif’s dual-core chip. How on earth? By emulating a RISC-V processor on it and booting a RISC-V version of the kernel.

The emulator in question is [Fabrice Belard]’s TinyEMU, a piece of software that brings both RISC-V and x86 to limited-spec platforms, and the write-up describes the extensive optimization and tracing of ESP32 bottlenecks which was finally able to get a Linux kernel booting in 1 minute and 35 seconds. Of course it’s simply an exercise to prove it can be done and we won’t be seeing Linux-based ESP projects any time soon, but it’s still an impressive piece of work.

This isn’t the lowest-spec microcontroller we’ve seen run Linux, back in 2012 we saw it on emulated ARM running on an 8-bit AVR.

GCore: Make Portable Devices With Less Frustration

[Dan Julio]’s gCore (short for Gadget Core) is aimed at making GUI-based portable and rechargeable gadgets much easier to develop. gCore is the result of [Dan]’s own need for a less tiresome way to develop such hardware.

A touchscreen is great, but high-quality power control and charging features are what really make a portable device sing.

[Dan] found that he seemed to always be hacking a lot of extra circuitry into development boards just to get decent power management and charge control. To solve this, he designed his own common hardware platform for portable gadgets and the gCore was born.

While the color touchscreen is an eye-catching and useful addition, the real star of his design is the power management and charging features. Unlike most development hardware, the gCore intelligently shares load power with charging power. Power on and power off are also all under software control.

Sound intriguing? That’s not all the gCore has to offer, and you can learn more from the project page at hackaday.io (which has a more in-depth discussion of the design decisions and concept.) There are also some additional photos and details on [Dan]’s website.

[Dan] is no stranger to developing hardware. The tcam-mini thermal imager (and much more) is his work, and we have no doubt the gCore’s design and features are informed directly by [Dan]’s actual, practical development needs.

ESP32 Powers Fresh Take On An IoT Geiger Counter

Over the years we’ve covered many projects aimed at detecting elevated radiation levels, and a fair number of them have been Internet connected in some way. But as they are often built around the Soviet-era SBM-20 Geiger–Müller tube, these devices have generally adhered to a fairly conservative design. With the current situation in Europe heightening concerns over potential radiation exposure, [g3gg0] thought it was a good a time as any to revisit the idea of an Internet-connected Geiger counter using more modern components.

Now to be clear, even this modernized approach still makes use of that same SBM-20 tube. There’s such an incredible wealth of information floating around out there about how to work with them that you’d almost put yourself at a disadvantage to chose something else to base your design on. Put simply, it’s hard to go wrong with a classic.

An unfortunate bug was discovered in the HV circuit.

That said, [g3gg0] decided early on that the design would use as many SMD components as possible, a considerable departure from many of the SBM-20 counters we’ve seen. That meant coming up with a new high-voltage power supply capable of providing the tube with the necessary 400 V, which from the sound of things, took a few attempts to complete. The final result is perhaps the smallest and cleanest looking board we’ve ever seen play host to this particular tube.

To run the show, [g3gg0] selected the ESP32-PICO-D4. You certainly don’t need such a powerful microcontroller to read the impulses from the SBM-20 tube and publish them via MQTT, but to be fair, the chip has a number of other duties. It’s handling the WS2812 RGB LEDs that go off in response to detected particles, running the (apparently optional) 2.9 inch WaveShare electronic paper display, and also pulling data from a BME280 environmental sensor as well as a CCS811 VOC sensor — so it’s keeping fairly busy.

As impressive as this build is, we do hate that it had to be built. From certain world leaders dropping casual comments about the strength of their nuclear arsenal to foolhardy attempts to capture the Chernobyl power station, having access to a reliable Geiger counter isn’t an unreasonable precaution right now. For everyone’s sake, let’s hope the fancy RGB LEDs on this particular build remain as dark as possible.

Continue reading “ESP32 Powers Fresh Take On An IoT Geiger Counter”

Farm Data Relay System: Combine LoRa And 2.4 Ghz Networks Without WiFi Routers And Cloud Dependence

Setting up a wireless sensor network over a wide area can quickly become costly, and making everything communicate smoothly can be a massive headache, especially when you’re combining short range Wi-Fi with long range LoRa. To simplify this, [Timm Bogner] created Farm Data Relay System which simplifies the process of combining LoRa, 2.4Ghz modules and serial communications in various topologies over wide areas.

The FDRS uses a combination of ESP32/8266 sensor nodes for short range, and LoRa nodes for long range. The ESP nodes use Espressif’s connectionless ESP-NOW peer-to-peer protocol on which allow multiple ESP boards to communicate directly without the need for a Wi-Fi router. The ESP modules can have one of 3 roles, nodes, repeaters or gateways, and gateways and repeaters share the same code. Nodes take sensor inputs, and are configured to each have a unique READING_ID.

Relays just retransmit ESP-NOW packets to extend the network range, while gateways convert packets between ESP-NOW, MQTT over Wi-Fi, LoRa or serial messages as required. Repeaters and gateways each have a unique UNIT_MAC for addressing. The code that handles communication for the ESP devices is simple and well documented, so you only need to set a few configuration values, and then can focus your efforts on the code required for your specific application.

The hub of the system is a Raspberry Pi running Node-RED which acts as the final MQTT gateway and connects to the ESP MQTT gateways. This means that all the action happens in the local network, without being dependent on an internet connection and cloud service. However, it can still send and receive data over the internet using MQTT or any other protocol as required. Node-RED makes it particularly easy to build custom automations and interfaces.

In the video after the break, Andreas Spiess, the man with the Swiss accent, who also has a hand in the project, goes over all the features, setup and caveats.

Continue reading “Farm Data Relay System: Combine LoRa And 2.4 Ghz Networks Without WiFi Routers And Cloud Dependence”

ESP32 Camera Slider Build Keeps Things In Perspective

We’ve seen a lot of camera slider builds here at Hackaday, and for good reason: having one really lets you take your project documentation, especially videos, to the next level. It’s one of those force multiplier builds — after you’ve completed it, it can help you make all your future projects just that much better. But we’re also no strangers to seeing these projects become overly complex, which can often make it difficult for others to replicate.

But that’s not the case here. The motorized camera slider that [Sasa Karanovic] recently sent our way does exactly what you’d expect, and little else. That’s not meant as a dig — sometimes the best approach is to keep it simple. Unless you’re a professional photographer or videographer, it’s unlikely you need a complicated motion rig. This design is perfect for the hacker or maker who wants to spruce up their project videos, but doesn’t want to spend months fiddling with the design. Continue reading “ESP32 Camera Slider Build Keeps Things In Perspective”

Raspberry Pi Pico W Adds Wireless

News just in from the folks at Raspberry Pi: the newest version of their Pico has WiFi and is called, obviously, the Pico W. We were going to get our hands on a sample unit and kick its tires, but it’s stuck in customs. Boo! So until it shows up, here’s what we can glean from the press releases and documentation.

The Pico is, of course, the Raspberry Pi microcontroller dev board based on their RP2040 microcontroller. This in turn has two Cortex M0+ cores and a good chunk of onboard RAM, which has made it a popular target for MicroPython. They had some extra real estate on the PCB, so they’ve added an Infineon CYW43439 WiFi chip, and voila: Pico W.

As of now, the WiFi is supported in both the C SDK and the pre-baked MicroPython image. It looks trivially easy to get it working, and it’s based on the time-tested lwIP stack, a classic in the embedded world. The CYW43439 is also Bluetooth capable, but there’s no firmware support for that yet, but we wouldn’t be surprised if it showed up soon.

The price? $6 for the whole shooting match. You can view this two ways: a small $2 premium over the old Pico, or a price increase of 50%. How you see things probably depends on your order quantity. Either way, it’s firmly in the ESP32 module price range, so you’ve got some comparison shopping to do if your project needs a microcontroller and WiFi. And in these days of silicon shortages, it’s nice to have a couple of options.