Falsified Photos: Fooling Adobe’s Cryptographically-Signed Metadata

Last week, we wrote about the Leica M11-P, the world’s first camera with Adobe’s Content Authenticity Initiative (CAI) credentials baked into every shot. Essentially, each file is signed with Leica’s encryption key such that any changes to the image, whether edits to the photo itself or the metadata, are tracked. The goal is to not only prove ownership, but that photos are real — not tampered with or AI-generated. At least, that’s the main selling point.

Although the CAI has been around since 2019, it’s adoption is far from widespread. Only a handful of programs support it, although this list includes Photoshop, and its unlikely anybody outside the professional photography space was aware of it until recently. This isn’t too surprising, as it really isn’t relevant to the casual shooter — when I take a shot to upload to Instagram, I’m rarely thinking about whether or not I’ll need cryptographic proof that the photo wasn’t edited — usually adding #nofilter to the description is enough. Where the CAI is supposed to shine, however, is in the world of photojournalism. The idea is that a photographer can capture an image that is signed at the time of creation and maintains a tamper-proof log of any edits made. When the final image is sold to a news publisher or viewed by a reader online, they are able to view that data.

At this point, there are two thoughts you might have (or, at least, there are two thoughts I had upon learning about the CAI)

  1. Do I care that a photo is cryptographically signed?
  2. This sounds easy to break.

Well, after some messing around with the CAI tools, I have some answers for you.

  1. No, you don’t.
  2. Yes, it is.

Continue reading “Falsified Photos: Fooling Adobe’s Cryptographically-Signed Metadata”

300 Amps Through An Open Source Speed Controller

Sometimes, a little puny matchbox-sized electronic speed controller (ESC) won’t do the job. If you find yourself looking for something heftier, say, in the range of hundreds of amps, you might look towards a design like the MP2 ESC. [owhite] has built an example of the design that can deliver some serious power.

[owhite’s] build has some serious specs: it’s rated to offer up to 300 amps at up to 150 volts, though thus far, it’s only been tested at up to 100 V. Like the original MP2, which hails from the Endless Sphere forums, it’s designed to be compatible with VESC code using the STM32F405 microcontroller. It’s intended for driving high-powered traction motors in applications like e-bikes and electric scooters, as you might have guessed by its potential output power being well into the tens of kilowatts range.

If you’re eager to build your own, you can do so, with the design files on GitHub. Just note that you’ll need some hefty parts to handle the juice, including beefy MOSFETS and juicy capacitors rated at 160 V.

Open source motor controllers abound of late, and we’ve featured a few in recent times. Just remember that astute design and using parts within their means is the key to avoiding letting the smoke out! Continue reading “300 Amps Through An Open Source Speed Controller”

Open Source Spacecraft Avionics With NASA’s Core Flight System

One thing about developing satellites, spacecraft, rovers and kin is that they have a big overlap in terms of functionality. From communication, to handling sensors, propulsion, managing data storage, task scheduling and so on, the teams over at NASA have found over the years that with each project there was a lot of repetition.

Block diagram of a simplified avionics system. (Credit: NASA)
Block diagram of a simplified avionics system. (Credit: NASA)

Either they were either copy-pasting code from old projects, or multiple teams were essentially writing the same code.

To resolve this inefficiency NASA developed the Core Flight System (cFS), a common software framework for spacecraft, based on code and lessons from various space missions. The framework, which the space agency has released under the Apache license, consists of an operating system abstraction layer (OSAL), the underlying OS (VxWorks, FreeRTOS, RTEMS, POSIX, etc.), and the applications that run on top of the OSAL alongside the Core Flight Executive (cFE) component. Here cFS apps can be loaded and unloaded dynamically, along with cFS libraries, as cFS supports both static and dynamic linking.

There are a few sample applications to get started with, and documentation is available, should you wish to use cFS for your own projects. Admittedly, it’s a more complex framework than you’d need for a backyard rover. But who knows? As access to space gets cheaper and cheaper, you might actually get the chance to put together a DIY CubeSat someday — might as well start practicing now.

Gesture-Controlled Robot Arm Is A Nifty Educational Build

Traditionally, robot arms have been controlled either by joysticks, buttons, or very carefully programmed routines. However, for [Narongporn Laosrisin’s] homebrew build, they decided to go with gesture control instead.

The MeArm robotic arm is built using laser cut acrylic parts, and can be had in a kit if so desired. It features four servo motors, charged with rotating the arm’s base, pushing the arm forwards and backwards, up and down, and actuating its gripper. The servos are under the command of a micro:bit microcontroller board, which itself receives signals from a second micro:bit which is strapped to the human wishing to control the arm. The second micro:bit detects gestures with its accelerometer, and then sends the relevant commands to the robotic arm’s micro:bit over its built-in radio link. The arm controller then commands the servos to execute the maneuver.

It may be a small robotic arm that doesn’t have the capacity to lift much, but that’s not the point. This project is a great way to teach students how to program microcontrollers, work with sensor inputs, and just generally how to solve engineering puzzles. To that end, it looks like [Narongporn] has a great project on hand for teaching their students. Video after the break.

Continue reading “Gesture-Controlled Robot Arm Is A Nifty Educational Build”

Crystal structure of Cr2Te3 thin films. (Credit: Hang Chi et al. 2023)

Chromium(III) Telluride As Ferromagnetic Material With Tunable Anomalous Hall Effect

Chromium(III) Telluride (Cr2Te3) is an interesting material for (ferro)magnetic applications, with Yao Wen and colleagues reporting in a 2020 Nano Letters paper that they confirmed it to show spontaneous magnetization at a thickness of less than fifty nanometers, at room temperature. Such a 2D ferromagnet could be very useful for spintronics and other applications. The confirmation of magnetization is performed using a variety of methods, including measuring the Hall Effect (HE) and the Anomalous Hall Effect (AHE), the latter of which is directly dependent on the magnetization of the material, rather than an externally applied field.

More recently, in a June 2023 article by Hang Chi and colleagues in Nature Communications, it is described how such epitaxially obtained Cr2Te3 films show a distinct change in the AHE (in the form of sign reversal) depending on the strain induced by the interface with the various types of substrates (Al2O3, SrTiO3) and the temperature, likely owing to the different thermal expansion rates of the film and substrate. Underlying this change in the observed AHE is the Berry phase and the related curvature. This is a phenomenon that was also noted by Quentin Guillet and colleagues in their 2023 article in Physical  Review Materials, effectively independently confirming the AHE

Using Cr2Te3 in combination with the appropriate substrate might ultimately lead to spintronics-based memory and other devices, even if such applications will still take considerable R&D.

Top image: Crystal structure of Cr2Te3 thin films. (Credit: Hang Chi et al. 2023)

Converting Bluetooth Sensors To Zigbee

With the increase in popularity of Internet of Things (IoT) devices and their need to communicate wirelessly,  there’s been a corresponding explosion of wireless protocols to chose from. Of course there’s Wi-Fi and Bluetooth, but for more specialized applications there are some other options like Z-Wave, LoRa, Sigfox, and Thread. There’s a decent amount of overlap in their capabilities too, so when [SHS] was investigating some low-cost Xiaomi sensors it was discovered that it is possible to convert them from their general purpose Bluetooth protocol over to the more IoT-specialized Zigbee protocol instead.

These combination temperature and humidity sensors have already been explored by [Aaron Christophel] who found that it’s possible to flash these devices with custom firmware. With that background, converting them from Bluetooth to Zigbee is not a huge leap. All that’s needed is the Zigbee firmware from [Ivan Belokobylskiy] aka [devbis] and to follow the steps put together by [SHS] which include a process for flashing the firmware using an over-the-air update and another using UART if the wireless updates go awry. Then it’s just a short process to pair the new Zigbee device to the network and the sensor is back up and running.

Converting from one wireless protocol to another might not seem that necessary, but using Bluetooth as an IoT network often requires proxy nodes as support devices, whereas Zigbee can communicate directly from the sensor to a hub like Home Assistant. Other Zigbee devices themselves can also act as a mesh network of sorts without needing proxy nodes. The only downside of this upgrade is that once the Bluetooth firmware has been replaced, the devices no longer has any Bluetooth functionality.

Thanks to [RoganDawes] for the tip!

Arbitrary Wave Generator For The Raspberry Pi Pico

Once upon a time, if you wanted to generate some waveforms, you needed to buy an expensive off-the-shelf function generator or whip up a big pile of analog electronics. Not so today, when you can grab a fast microcontroller off the shelf and have it squirt out whatever fancy waves you might desire. That’s just what [rgco] did to build this nifty arbitrary wave generator.

The build improves on prior work by [rgco] with the Arduino Uno, with which they built a device that could output at 381 kilosamples per second, with each sample update taking 42 instruction cycles. Thanks to the Pi Pico’s faster clock speed and certain performance optimizations, they were able to up that to a mighty 125 megasamples per second, using the DMA and PIO subsystems to output a new sample every single clock cycle.

The result is a cheap function generator you can build with a Pi Pico and a handful of resistors, which will probably cost you the grand total of $12. It readily outperforms, at least in regards of speed, devices based on the AD9833 function generator chip, which only runs at 25 megasamples. Plus, that chip can only output sines, triangles, and squares!

Even a passable function generator can be a useful tool to have in the workshop, as we’ve seen before. Video after the break.

Continue reading “Arbitrary Wave Generator For The Raspberry Pi Pico”