Quick And Dirty Trebuchet Flings Mashed Potato

Thanksgiving is just round the corner and [mrak_ripple] was worried about serving food under social distancing conditions. Rather than bother with standard best practice, he chose to take a more exciting route – flinging side dishes with miniature siege weaponry. (Video, embedded below.)

The mashed potato trebuchet is a build in the modern style, relying on 8020 aluminium extrusion to allow for quick and easy assembly. It also takes advantage of what appears to be a heavy duty laser cutter, which creates strong steel brackets to hold everything together. The launcher cup to hold the mash is a 3D printed part, created in resin and held on the end of the arm with duct tape, since appropriate bolts didn’t fall to hand.

In the end, repeatability was a struggle, and we suspect the trebuchet won’t actually do food service on the holiday itself. However, it could certainly make for a fun game after dinner, seeing who can get the most mash onto a willing target. We’d love to see a mash cannon too, so if you’ve built one, drop us a line. Of course, if you’re into weirder, high performance designs, the flywheel trebuchet may be more your speed. Video after the break.

Continue reading “Quick And Dirty Trebuchet Flings Mashed Potato” →

Rotary Plotter Draws On Bottles

A pen plotter is often the first experience many ambitious makers have of the world of Computer Numerical Control, or CNC. While they typically operate on flat stock, with the right build, they can be designed to draw on curved surfaces, too – as [tuenhidiy] demonstrates with this rotary bottle plotter.

The plotter uses shafts salvaged from an old printer to act as the rollers for the bottle to be drawn upon, turned by a pair of stepper motors. X and Z axes are created out of two CD drive mechanisms – a popular way to build two linear axes on the cheap. The hardware is controlled by GRBL, running on an Arduino Uno kitted out with a CNC shield to handle the necessary I/O.

The build is somewhat limited to by the short range of its X axis, which prevents the plotter from easily drawing on a full-size bottle label or can. However, this could easily be fixed with some upgrades and extra steppers if so desired. As a home build, it’s a great way to learn about the CNC techniques required to work with curved surfaces effectively. Video after the break.

Continue reading “Rotary Plotter Draws On Bottles” →

Trying (And Failing) To Use GPUs With The Compute Module 4

The Raspberry Pi platform grows more capable and powerful with each iteration. With that said, they’re still not the go-to for high powered computing, and their external interfaces are limited for reasons of cost and scope. Despite this, people like [Jeff Geerling] strive to push the platform to its limits on a regular basis. Unfortunately, [Jeff’s] recent experiments with GPUs hit a hard stop that he’s as yet unable to overcome.

With the release of the new Compute Module 4, the Raspberry Pi ecosystem now has a device that has a PCI-Express 2.0 1x interface as stock. This lead to many questioning whether or not GPUs could be used with the hardware. [Jeff] was determined to find out, buying a pair of older ATI and NVIDIA GPUs to play with.

Immediate results were underwhelming, with no output whatsoever after plugging the modules in. Of course, [Jeff] didn’t expect things to be plug and play, so dug into the kernel messages to find out where the problems lay. The first problem was the Pi’s limited Base Address Space; GPUs need a significant chunk of memory allocated in the BAR to work. With the CM4’s BAR expanded from 64MB to 1GB, the cards appeared to be properly recognised and ARM drivers were able to be installed.

Alas, the story ends for now without success. Both NVIDIA and ATI drivers failed to properly initialise the cards. The latter driver throws an error due to the Raspberry Pi failing to account for the I/O BAR space, a legacy x86 feature, however others suggest the problem may lay elsewhere. While [Jeff] may not have pulled off the feat yet, he got close, and we suspect with a little more work the community will find a solution. Given ARM drivers exist for these GPUs, we’re sure it’s just a matter of time.

For more of a breakdown on the Compute Module 4, check out our comprehensive article. Video after the break.

Continue reading “Trying (And Failing) To Use GPUs With The Compute Module 4” →

Mini IMac G4 Made With NUC And 3D Printer

Apple’s computers have been well regarded over the years for their sharp design features. Of course, something that’s great can only be cuter and cooler if it’s made even smaller. In just that vein, [Gary Olson] whipped up a 54% scale iMac G4.

The iMac G4 was the futuristic-looking flatscreen model, and the direct successor to the original CRT-based iMac. Unlike other projects that run Raspberry Pis or simply fit iPads inside, [Gary] elected to go for a Hackintosh-based build. The system runs Mac OS X on a Intel NUC kitted out with a Core i3 CPU. While it’s not a genuine PowerPC, using OS X fits the proper G4 aesthetic. The build relies on 3D printed components, with the scale size largely chosen to suit the size of [Gary’s] printer and the Intel NUC motherboard. [Gary] goes into detail explaining what was required to get the paint finish right and how to make the hinges stiff but movable.

We’re always fans of a mini retro builds, even if the fact that iMacs are now retro means we’re showing our age. If you’ve got your own cute micro PC coming together in the ‘shop, be sure to drop us a line!

Getting Over 4Gbps Out Of A Compute Module 4

For the average home gamer, good old fashioned Ethernet at 100 Mbit/s is only just starting to become a bottleneck as things like 4K video streaming begin to demand more bandwidth. As always, though, there are those who wish to push the limits of what is possible. [Jeff Geerling] is one such operator, who set out to maximise the network throughput on the Raspberry Pi Compute Module 4. 

The build began by taking advantage of the PCI-Express 2.0 single lane interface on the new Raspberry Pi Compute Module. Hooked up to an Intel four-port Gigabit Ethernet card, and in combination with the onboard Gigabit-E port, [Jeff] was able to get 3.0 Gbit/s out of the setup without too much fuss. However, he wanted more, and set about finding where he was being held back. It turned out that ksoftirqd, a daemon that handles network packets, can only run on one core on the Raspberry Pi 4, and it was getting maxed out at this data rate. Overclocking the CPU helped, getting the max rate up to 3.4 Gbit/s.

Further analysis showed that the onboard interface was only contributing 200 Mbit/s, with the Intel card maxing out at 3.2 Gbit/s. In the case of the latter, this was due to the limits of the PCI-E interface. In the case of the former, however, [Jeff] knew that more was available. The trick turned out to be recompiling the Linux kernel to allow the internal interface to be able to set to use a higher Maximum Transmission Unit. This allows each network transmission to carry more data without extra CPU load. With the internal interface and the external card all set to an MTU of 9000, the Pi was able to spit out a scorching 4.15 Gbit/second. Details of the hack are available on Github for the curious.

It’s a hack that doesn’t offer a lot to the average user, though [Jeff] states he has some interesting applications in mind. He’s also contemplating what can be achieved with a 10 Gbit card, which we can’t wait to see. If you want to learn more about the Compute Module’s features, including a couple of tips for laying out yor own board, check out our review. Video after the break.

Continue reading “Getting Over 4Gbps Out Of A Compute Module 4” →

Near-Silent Bellows Uses Water Flow And Magnetic Coupling

Fan noise is a contentious issue among the computer community. Some don’t notice it, others rage against it as an annoyance and distraction. Some turn to liquid cooling, while others look to passive solutions to eliminate the scourge. [Matt] of [DIY Perks] may have found a far more oddball solution, however.

The build is essentially a giant bellows, but the manner in which it operates is unlike anything we’ve seen previously. To shift the large pusher plate inside back and forth, [Matt] initially experimented with building his own linear motor out of coils and magnets. After that failed, he began to tinker with a system of moving a magnet back and forth through a tube with water pressure from a pump, which would then drive the pusher plate through magnetic coupling. This looked promising, but reversing the flow proved difficult. After building his own set of water valves to change the flow direction, the bellows began to work slowly, but with limited performance. Realizing the valves weren’t up to scratch, [Matt] rebuilt the system with 10 pumps, set up in two banks of 5. With the pumps hooked up in series, they supplied plenty of pressure to force the bellows back and forth. Reed switches were used to reverse the flow at either end to make the bellows run continuously.

In testing, the bellows compared well with a bank of four large case fans, though at 20 times the size. Suffice to say this is not exactly a compact solution. We look forward to seeing [Matt] do more with the bellows, with his intention being to use it as the primary cooling system for a computer. Of course, if this looks too complex, you could always consider a mineral oil setup instead. Video after the break.

Continue reading “Near-Silent Bellows Uses Water Flow And Magnetic Coupling” →

Training A Neural Network To Play A Driving Game

Often, when we think of getting a computer to complete a task, we contemplate creating complex algorithms that take in the relevant inputs and produce the desired behaviour. For some tasks, like navigating a car down a road, the sheer multitude of input data and its relationship to the desired output is so complex that it becomes near-impossible to code a solution. In these cases, it can make more sense to create a neural network and train the computer to do the job, as one would a human. On a more basic level, [Gigante] did just that, teaching a neural network to play a basic driving game with a genetic algorithm.

The game consists of a basic top-down 2D driving game. The AI is given the distance to the edge of the track along five lines at different angles projected from the front of the vehicle. The AI also knows its speed and direction. Given these 7 numbers, it calculates the outputs for steering, braking and acceleration to drive the car.

To train the AI, [Gigante] started with 650 AIs, and picked the best performer, which just barely managed to navigate the first two corners. Marking this AI as the parent of the next generation, the AIs were iterated with random mutations. Each generation showed some improvement, with [Gigante] picking the best performers each time to parent the next generation. Within just four iterations, some of the cars are able to complete a full lap. With enough training, the cars are able to complete the course at great speed without hitting the walls at all.

It’s a great example of machine learning and the use of genetic algorithms to improve fitness over time. [Gigante] points out that there’s no need for a human in the loop either, if the software is coded to self-measure the fitness of each generation. We’ve seen similar techniques used to play Mario, too. Video after the break.

Continue reading “Training A Neural Network To Play A Driving Game” →