PIC32 DMA Is A Weird Machine

Direct memory access (DMA) systems in computers are more powerful than you might think, and [Bruce Land] and [Joseph Primmer] have done some clever hacking to take full advantage of this on the PIC32 microcontrollers. This is a cool proof-of-concept hack — you can do general computing in the DMA subsystem without using the CPU at all if you don’t mind taking your time — but they also include two useful examples: a direct digital synthesis machine and a random number generator. Both of these run using exactly 0% CPU time.

How do they do it? DMA is a mechanism for shuttling data around in memory or between hardware peripherals without involving the CPU. Say you want to take a large block of memory containing music, and spit it out slowly to an I2S audio converter. A DMA subsystem could be configured to take an interrupt from the sound chip, pass it a chunk of data, increment the data pointer, and wait for the next interrupt.

The gimmick, which goes back at least to [Rushanan] and [Checkoway]’s “Run DMA” paper, is that you can modify the memory source and destination addresses of one DMA service from another DMA service, and that some registers automatically perform mathematical operations on whatever data is put into them. Combine these together, and you’ve got transport-triggered programming.

(An awesome side-note: our own [Al Williams] developed a one-instruction transport-triggered CPU way back in the day: the One Instruction Wonder.)

What is this good for? Writing simple helper applications that run independent of the CPU on a PIC32 microcontroller. [Land] and [Primmer]’s direct-digital synthesis example is a great one. But there are a lot of cases where you simply want to take in some new data and pre-process it a little bit before it enters the main program flow. While creating weird machines in the DMA engine might be a slower way to get it done, it keeps the CPU free for doing other stuff. We’re sure you’ll come up with something.

Automatic Cat Weighing Machine Knows Which Pet It Is Feeding

Have you ever tried to weigh a cat? For that matter, have you ever tried to get a cat to do anything they don’t want to do? The wilful independence of our feline companions is a large part of what endears them to us, and must have done ever since the ancient Egyptians first had a hybrid wildcat that became domesticated

No wonder it’s so hard to care for multiple cats with different dietary needs. But the mere act of weighing the cats just might be the key to automating their diets while giving them the choice of when they want to eat. It’s a task that [Psy0rz] has cracked with the Meowton, a weighing machine/feeder combo designed to regulate the diets of his various moggies.

Cat scale uses a load sensor under each corner of the platform

The multi-faceted system involving a scale to weight the cat, a food hopper with dispenser, and a scale for the food bowl. The cat has to stand on the scale to eat, and the dispenser doles out some food when it detects this. It identifies each cat by weight, and controls the quantity dispensed accordingly to spread that cat’s allotted diet over the course of the day.

Behind it all is an ESP32, which delivers the stats to a web interface and makes them available for import to a database. He’s identified a flaw in the system, that two cats of the same weight could cause misidentification. To that end he has an RFID reader under way, but it’s still a work in progress. There is even a live stream of the unit in action.

We’re suckers for cats here, and while the various Hackaday Cats provide plenty of companionship and entertainment we’re always up for more. Over the years we’ve featured plenty of cat feeders, but only one cat elevator.

Tensile Testing Machine Takes 3D Printed Parts To The Breaking Point

If you’re serious about engineering the things you build, you need to know the limits of the materials you’re working with. One important way to characterize materials is to test the tensile strength — how much force it takes to pull a sample to the breaking point. Thankfully, with the right hardware, this is easy to measure and  [CrazyBlackStone] has built a rig to do just that.

Built on a frame of aluminium extrusion, a set of 3D printed parts to hold everything in place. To apply the load, a stepper motor is used to slowly turn a leadscrew, pulling on the article under test. Tensile forces are measured with a load cell hooked up to an Arduino, which reports the data back to a PC over its USB serial connection.

It’s a straightforward way to build your first tensile tester, and would be perfect for testing 3D printed parts for strength. The STEP files (13.4 MB direct download) for this project are available, but [CrazyBlackStone] recommends waiting for version two which will be published this fall on Thingiverse although we didn’t find a link to that user profile.

Now we’ll be able to measure tensile strength, but the stiffness of parts is also important. You might consider building a rig to test that as well. Video after the break.

Continue reading “Tensile Testing Machine Takes 3D Printed Parts To The Breaking Point”

Gaze Inside The Valve Index VR Headset In Detailed Teardown

Valve’s unique multilayer lenses are far thinner than one might expect.

Want to see what exactly is inside the $500 (headset only price) Valve Index VR headset that was released last summer? Take a look at this teardown by [Ilja Zegars]. Not only does [Ilja] pull the device apart, but he identifies each IC and takes care to point out some of the more unique hardware aspects like the fancy diffuser on the displays, and the unique multilayered lenses (which are much thinner than one might expect.)

[Ilja] is no stranger to headset hardware design, and in addition to all the eye candy of high-res photographs, provides some insightful commentary to help make sense of them. The “tracking webs” pulled from the headset are an interesting bit, each is a long run of flexible PCB that connects four tracking sensors for each side of the head-mounted display back to the main PCB. These sensors are basically IR photodiodes, and detect the regular laser sweeps emitted by the base stations of Valve’s lighthouse tracking technology. [Ilja] also gives us a good look at the rod and spring mechanisms seen above that adjust distance between the two screens.

Want more? [Ilja] also has a gallery of high-resolution images available for those you who fancy a closer look. Also, if you missed it, we covered an examination of the Index’s optical design as part of everything you probably didn’t know about field of view in head-mounted displays.

[via Twitter]

A High Torque Gearbox You Can Print At Home

Typically, when we think of 3D printed parts, we think of unique parts with complex geometries that would be hard to fabricate with other techniques. Strength is rarely the first thing that comes to mind, due to the limitations of thermoplastics and the problem of delamination between layers. However, with smart design, it’s possible to print parts capable of great feats, just as [Brian]’s high-torque gearbox demonstrates.

Pulling a car is a great way to show off the strength of your build.

The gearbox consists of entirely 3D-printed gears, along with the enclosure, with the only metal parts being a few bearings and shafts. Capable of being produced out of PLA on a regular FDM printer, [Brian] has successfully tested the gearbox up to 132 kg∗cm. The suspicion is that there may be more left in it, but some slippage was noticed in the gear train when trying to tow a Ford Focus with the handbrake still on.

Even better, with the addition of a potentiometer, the gearbox can be used as an incredibly tough servo. [Brian] demonstrates this by lifting 22 kg at a distance of 6 cm from the center of the output shaft. The servo does it with ease, though eventually falls off the bench due to not being held down properly.

It’s a build that shows it’s possible to use 3D-printed parts to do some decently heavy work in the real world, as long as you design appropriately. [Brian] does a great job of explaining what’s involved, discussing gear profile selection and other design choices that affect the final performance. We’ve seen similar work from others before, too. Video after the break.

Continue reading “A High Torque Gearbox You Can Print At Home”

A Tetraquark For Muster Mark!

The holy grail of every particle physics experiment is the discovery of a new particle. Finding a new constituent of matter may earn you eternal glory within the history of physics. Unfortunately, since the last missing piece of the Standard Model, the Higgs boson, was discovered in 2012, and with still no clue about the nature of dark matter and dark energy, there is not much hope to stumble upon a new fundamental building block of matter any time soon.

Luckily, this is not true for composite particles, especially the strange world of quark matter still yields some potential for new discoveries. The latest of such was the observation of a new tetraquark by the LHCb experiment. But what the hell is a quark anyway and why is it named after a German dairy product? Continue reading “A Tetraquark For Muster Mark!”

Six New HackadayU Courses Announced For Fall 2020

The fall lineup of HackadayU courses was just announced, get your tickets now!

Each course is led by expert instructors who have refined their topics into a set of four live, interactive classes plus one Q&A session we like to call Office Hours. Topics range from leveling up your Linux skills and learning about serial buses to building interactive art and getting into first-person view (FPV) drone flight.

Checkout the course titles, instructors, and details listed below. If you’d like to hear about each class from the instructors themselves, their teaser videos are embedded after the break.

  • Interactive Media Art with Light and Sensors
    • Instructor: Mirabelle Jones
    • Course overview: This course will cover how to develop interactive artworks, installations, and experiences based on sensor input.
  • Introduction to FPV Drones
    • Instructor: Ayan Pahwa
    • Course overview: We’ll get familiar with the multi-rotor category of Unmanned Aerial Vehicles (UAVs) including physics, aerodynamics, electronics, digital signal processing (DSP), and writing software that is involved.
  • Intro to LEDs Using Arduino and FastLED
    • Instructors: Cathy Laughlin & Mirabelle Jones
    • Course overview: Students will learn all about how LEDs work as well as how to program LED patterns using the Arduino IDE.
  • Linux + Electronics: A Raspberry Pi Course
    • Instructor: Pablo Oyarzo
    • Course overview: This course is for those who had wanted to go from Arduino to a Linux computer small enough to fit the project but greatly more powerful to full fill the project’s needs and don’t know where to start.
  • Embedded Serial Buses (Part 1)
    • Instructor: Alexander Rowsell
    • Course overview: This course will cover the I2C and 1-Wire serial buses. We will look at the hardware layer, the protocol layer, and the software/application layer for both bus types.
  • Art + Code
    • Instructor: Casey Hunt
    • Course overview: Students will grow their technical skills through mastery of the P5.js JavaScript library, and will also learn about aesthetics and art history in the digital space.

HackadayU courses are “pay-as-you-wish”. To help ensure the live seats don’t go to waste, the minimum donation for each class is $1. Proceeds go to charity and we’re happy to report a donation of $4,200 going to Steam Coders from the summer session of HackadayU. A new charity will be chosen for the fall classes, details to follow.

Each class will be recorded and made available once they’ve been edited. You can take a look at the excellent Reverse Engineering with Ghidra series right now. Videos of the Quantum Computing and KiCad + FreeCAD courses are coming soon.

Continue reading “Six New HackadayU Courses Announced For Fall 2020”