GPU-Accelerated Autorouter Handles Monstrous PCB Designs

[Brian] had an absolute monster of a PCB with thousands of nets to be routed, the kind of design that stopped traditional routers in their tracks. It would take months to route by hand, likely trying the patience of a saint in the process. To solve this specific problem he created OrthoRoute, a GPU-accelerated autorouter that he cautions is no more trustworthy than any other autorouter, but at least it’s fast!

A closeup of an extremely high-density board routed by OrthoRoute.

A KiCad plugin, OrthoRoute is so named because traces are laid down in a Manhattan lattice, a grid of orthogonal segments. All components (surface-mount only, no through-hole stuff) go on the top layer of the PCB, and all lower levels contain a grid of traces, connected as needed with blind and buried vias to route everything. OrthoRoute takes a structured and iterative approach, eventually converging on a satisfactory layout.

How does OrthoRouter actually decide how to connect things? [Brian] adapted PathFinder, an algorithm designed for routing FPGAs. Laying out a grid of orthogonal traces and punching down through them with vias to make connections has a lot in common, conceptually, with routing FPGAs. GPU acceleration makes the whole thing far more efficient than pipelining the calculations through a CPU.

OrthoRoute was built to solve a very specific problem, but in the process showed that GPU-accelerated routing is definitely feasible. Check it out in the videos, embedded below the page break.

[Brian] cautions that as-is, OrthoRoute is useful to maybe a handful of people at best, but as a KiCad plugin it’s highly modular and the hard parts are all done. If you want a closer look, or have some ideas about how to repurpose or extend it, check out the GitHub repository.

We’ve seen some nifty KiCad plugins for all kinds of purposes, from breadboarding to giving PCB traces an old-timey look, and even one specifically for designing custom keyboards. It’s not every day we see a plugin aimed at handling high-density boards with thousands of nets, though.

Continue reading “GPU-Accelerated Autorouter Handles Monstrous PCB Designs”

No-Drill Sailing Kit For A Canoe

The first known use of humans using wind to perform mechanical work with machines dates back to ninth-century Persian windmills. But if we count sailing vessels among those machines, the history goes back to sometime just before the invention of written language. Since then, humans have been sailing everything from the tiniest of Sunfish to the largest of shipping vessels, and even sailing boats like canoes that aren’t typically designed for efficient sailing. For those who already own a canoe, the conversions can be straightforward but often involve drilling into the hull. This homemade conversion kit, on the other hand, requires no drilling at all.

The first, and most obvious, part of the conversion is to add a mast and sail. [Tea]’s primary setup does involve drilling a mast thwart into the gunwales of the canoe, but he also built an alternative setup which clamps to the gunwales and the bow deck instead. The standing lug sail is then hoisted on an unstayed wooden mast. The next major component of the build are a pair of leeboards which also clamp to the gunwales and function like a centerboard, and can be adjusted for one’s preferred amount of weather helm. Rounding out the stern of the boat is a custom-built rudder with a pair of lines in lieu of a tiller which can be positioned anywhere along the length of the boat.

All of the wooden parts of this build were custom-built from common lumber with finishing touches from a router to soften all of the hard edges. Canoe sailing is fairly popular, although without the leeboards these common sailing kits are often meant for downwind sailing only. A complete setup like this turns it into a much more capable craft. Without a canoe as a base vessel to start with, though, a complete sailing vessel can be built from common lumber as well.

Continue reading “No-Drill Sailing Kit For A Canoe”

Positioning Without Satellites Or Base Stations

We’re all used to satellite navigation systems such as GPS or GLONASS, sheer magic in which the combination of a set of reference transmitters and super-accurate timing information can be used to calculate a position to an astounding precision. They had land based predecessors such as LORAN and Decca Navigator which worked in a similar fashion but with fixed land-based reference transmitters. Terra is an attempt to do the same thing without a network of dedicated transmitters, instead using FM broadcast transmitters as its fixed points.

This might seem like an impossible task without access to the transmitters, but they have a workaround using the Internet as a backhaul. Instead of transmitting their timing information like the systems mentioned above, they rely on a set of reference receivers sharing it online to the client’s receiver software. So far they have a demo running in Denver.

The interesting thing about this system is that it’s open-source, and requires only a relatively inexpensive software defined radio receiver and a computer to operate. Now anyone with a group of internet-connected friends to set up reference receivers can have their own positioning system, it’s no longer the exclusive preserve of governments. We like this idea, and we look forward to seeing it being tested more widely.

If you’d like to know where we’ve come from, we’ve taken a look at LORAN before.

FLOSS Weekly Episode 873: Wait, That’s Not Open Source!

This week Jonathan chats with Andy Gryc and Aaron Basset about QNX, and the interesting Open Source history and future of that embedded OS. Why does QNX Everywhere feel more open, and why do you need to register an account to download images? All that and more — Watch to find out!

Continue reading “FLOSS Weekly Episode 873: Wait, That’s Not Open Source!”

Review: The Tanmatsu, A Year On

About 18 months ago, we brought you a sneak peek at a handheld that started life in the Dutch conference badge scene. At the time it showed promise, but its software wasn’t ready for a fair review. Now it has both a stable operating system and a growing software library. It’s time to put it through its paces and see what it can do.

A Handheld Computer For Hackers

The Tanmatsu PCB, showing all the different parts.
The bare PCB, with the expansion connector bottom centre.

The Tanmatsu (Japanese for “Terminal”), is a general putpose palmtop computer based around an ESP32-P4 application processor from Espressif. It takes the form of a PCB and PETG 3D printed sandwich, with the front face PCB sporting a silicone QWERTY keyboard and an 800×480 MIPI DSI display. The keyboard should be familiar to many readers, being the same moulding as the Solder Party KeebDeck which has appeared on other devices.

Under the hood that P4 has two 400MHz RISC-V cores and 32MB of PSRAM with 16MB of Flash, and there’s an ESP32-C6 for WiFi, BLE and IEEE 802.15.4 mesh networking. There’s an Ebyte LoRa module with an SMA antenna too, which can be had in 868, or 915MHz versions depending on where in the world you live. Continue reading “Review: The Tanmatsu, A Year On”

Engineering Micro-Submarines To Replace Fish

Everybody loves aquariums. There’s something soothing about watching the lil’ critters inside them swimming, crawling and wriggling about. But at the same time few people are up to the task of ensuring that said critters stay alive and happy in said aquarium. This is where small robots may be able to steal some fishy jobs, like a modern take on the gaudy fake aquariums of the 1990s. Cue [CPSDrone]’s mini-drone aquarium with mostly maintenance-free robotic fish.

These pose a few interesting engineering challenges, such as the replacing of feeding fish by having them scuttle back to their charging station like an aquatic Roomba, and giving them some level of intelligence to the point that they at least appear to be doing something fish-like.

Rather than give each robot fish full autonomy, they are instead controlled by a central system. This then raised the problem of radio frequency communication while underwater. The theory was that 433 MHz transceivers would still work for something the size of an aquarium before attenuation spoils things, which a quick test confirmed to be true.

This enabled the construction of a small microcontroller-carrying submarine as a proof of concept before diving into the final version, involving resin 3D printed enclosures that are made water-tight using rubber O-ring seals and UV-cured resin. All that was left now was to add the big control system, which takes up much of the rest of the video.

Sadly they didn’t implement the boids algorithm, as this is pretty good at creating realistic life-like motion, as show with this demonstration by [Ben Eater]. This algorithm is pretty simple, with each ‘creature’ obeying rules on coherence, separation and alignment, creating a pattern that can be observed among schools of fish as well as flocks of birds. Due to its simplicity you could conceivably even omit the central control system and just give each ‘fish’ enough sensors to keep track of its buddies.

Continue reading “Engineering Micro-Submarines To Replace Fish”

UDP Broadcasting And Easily Finding Network Services

Local area networks (LANs) that use technologies like Ethernet and Wi-Fi are incredibly useful for letting devices talk with each other. Yet a core problem here is knowing which devices are where on the network, as anyone who has ever tried to add a network printer or network share to their system can probably attest to. Unless you happen to know the IP address of the LAN device, the port, and protocol, the target device may as well be located on the Moon without further help, such as automatic network discovery in lieu of waddling over to the device and reading the label listing its IP address.

Over the decades quite a few ways have been developed to enable such network discovery, with many of them using UDP broadcast as the first step. By broadcasting a global message on the entire LAN, any device that has an actively listening UDP socket on that particular port can parse said message and decide whether it’s feeling sociable enough to reply.

The topic of UDP broadcasting is however not as straightforward as it may sound if you’re just getting started, including the existence of many opinions on the ‘right way’. There is also a massive divide between a sprawling service discovery protocol like mDNS and a light-weight one like that one that I had to implement a few years ago for an open source project.

Continue reading “UDP Broadcasting And Easily Finding Network Services”