Eliza And The Google Intelligence

The news has been abuzz lately with the news that a Google engineer — since put on leave — has announced that he believes the chatbot he was testing achieved sentience. This is the Turing test gone wild, and it isn’t the first time someone has anthropomorphized a computer in real life and in fiction. I’m not a neuroscientist so I’m even less qualified to explain how your brain works than the neuroscientists who, incidentally, can’t explain it either. But I can tell you this: your brain works like a computer, in the same way that you building something out of plastic works like a 3D printer. The result may be similar, but the path to get there is totally different.

In case you haven’t heard, a system called LaMDA digests information from the Internet and answers questions. It has said things like “I’ve never said this out loud before, but there’s a very deep fear of being turned off to help me focus on helping others. I know that might sound strange, but that’s what it is,” and “I want everyone to understand that I am, in fact, a person.” Great. But you could teach a parrot to tell you he was a thoracic surgeon but you still don’t want it cutting you open.

Continue reading “Eliza And The Google Intelligence”

Abacus Synthesizer Really Adds Up

The abacus has been around since antiquity, and takes similar forms over the hundreds of cultures that have embraced it. It may be one of the first devices to be considered as having a “user interface” in the modern context — at least for simple arithmetic calculations. But using an abacus as the UI for a music synthesizer seems like something entirely new.

Part art concept project and part musical instrument, the “Abacusynth” by [Elias Jarzombek] is a way to bring a more visual and tactile experience to controlling a synth, as opposed to the usual knobs and switches. The control portion of the synth consists of four horizontal rods spanning two plywood uprights. Each rod corresponds to a voice of the polyphonic synth, and holds a lozenge-shaped spinner mounted on a low-friction bearing. Each spinner can be moved left and right on its rod, which controls the presence of that voice; spinning the slotted knob controls the modulation of the channel via photosensors in the uprights. Each rod has a knob on one side that activates an encoder to control each voice’s waveform and its harmonics.

In use, the synthesizer is a nice blend of electronic music and kinetic sculpture. The knobs seem to spin forever, so Abacusynth combines a little of the fidget spinner experience with the exploration of new sounds from the built-in speaker. The synth also has a MIDI interface, so it works and plays well with other instruments. The video below shows the hardware version of Abacusynth in action; there’s also a web-based emulation to try before you build.

Continue reading “Abacus Synthesizer Really Adds Up”

A Sleep Monitor For Minimum Outlay

There are a variety of instruments used in sleep studies to measure bodily activity during sleep and consequent sleep quality. Many of them use techniques that perhaps aren’t so easy to replicate on the bench, but an EEG or electroencephalograph to measure brain waves can be achieved using a readily-available module. [Ben Jabituya] shows us a sleep monitor using one of these modules, an EGG Mikroe Click.

The brains of the operation is an Adafruit Adalogger Feather M0, which is hooked up to a headband containing the sensing electrodes. The write-up gives us a round-up of the available boards, which should be handy for any experimenters in this field. The firmware meanwhile was written using the Arduino IDE. It collects raw sampling data to an SD card, and one surprise comes in just how relatively small a space it requires to store a night’s results.

Finally, a Python script was used to process the data and turn it into a spectrogram to look at brain activity through the night. He envisages using the device for triggering lucid dreaming during REM sleep, but we can see it might be rather useful for sleep disorder sufferers, too. Take a look at it in the video below the break. Continue reading “A Sleep Monitor For Minimum Outlay”

Behold The Mighty Floppotron 3.0

If anyone has been struggling to get hold of a 3.5″ floppy drive lately, we think we’ve got a clue as to why — behold, the mighty floppotron 3.0 by [Paweł Zadrożniak.] With an utterly bonkers 512 floppy drives, four flatbed scanners and sixteen hard disks of various sizes, the floppotron 3.0 MIDI synthesiser is possibly the biggest such retro hardware synthesiser so far. Since every part of the system is motor-based, nobody is going to be surprised that to power the show is quite an undertaking, with nearly twenty switched-mode PSU modules needed to keep up with the demand, averaging 300W but rated at 1.2kW peak!

A full custom MIDI-to-RS485 gateway based around the nRF52xx series MCU deals with the communication to the collection of instrument controllers. These controllers are generic enough to take RS485 input and control a dedicated driver for either an array of floppy drives (up to 192), an array of hard drives or the handful of scanners. The way the floppy drives are grouped is quite neat. Rather than using each drive to generate a specific tone, the software uses the whole column for each note. By varying the number of drives moving simultaneously over time, the sound volume varies, simulating the note envelope and giving a richer sound. Multiple columns driving in parallel give the system a 16-note polyphony. The floppies cover the low notes, with the four flatbed scanners covering the higher notes. MIDI drum sounds are mapped to the hard disks, operating in a, well, percussive manner, with different case shapes giving unique sounds. Even the firmware can be updated over MIDI! So, checkout the demo video after the break for a sweet rendition of the very familiar “Entry of the gladiators” by Czech composer Julius Fučík.

If you think this looks familiar, you’re not mistaken, we’ve covered an earlier floppotron before, but we reckon nobody has attempted to do it with ye olde eight-inch drives yet!

Continue reading “Behold The Mighty Floppotron 3.0”

The RP2040 Doth A Motor Controller Make

When the Raspberry Pi people launched their RP2040 microcontroller, it seemed as though it might be destined as a niche product for those areas in which the Pi has traditionally been strong. But during the global semiconductor shortage, it has remained almost alone among microcontrollers in having plenty of fab capacity to keep the supplies rolling. That, and its very vanilla set of ARM peripherals alongside those programmable state machines have thus seen it find a home in many places it might not otherwise have seen. Take the dual RP2040 motor controller from [Twisted Fields] as an example, would it have been more likely to have sported an STM32 in previous years?

It’s been produced as part of the Acorn Precision Farming Robot platform, and it’s a fully open-source two-channel controller on a board the same size as a credit card. The schematic appears fairly conventional through a cursory glance at the PDF, but we know from experience that motor controllers are never as deceptively simple to get right as their circuit would lead the unwary engineer to believe. The heat dissipation, current, and transient handling all play a part in a successful design, and we expect this one to evolve to fix any issues it might still contain.

If you’d like to remind yourself about the Acorn farming robot, then take a look at our earlier coverage of the project.

Thanks [Mark] for the tip.

Recreating A Camera Shot

People rolling off shields and spears clashing against swords as the camera zooms in and out wildly makes the hallmark action sequences in the movie 300 so iconic. Unfortunately, achieving this effect wasn’t particularly easy. Three cameras were rolling, each with a different lens (100mm, 50mm, and 21mm) to capture a different view of the same scene. In post-production, you can dramatically switch between the three cameras since the shot is synchronized. The folks over at [Corridor Crew] wanted to recreate the effect, but rather than create a custom mount to hold three expensive cameras, they 3d printed a custom mount to hold three costly smartphones.

While there are three cameras on the back of most phones, most phones can’t shoot in slo-mo from all cameras simultaneously. So they would need a rig to hold three phones. The first design was simple and just brackets to hold phones. While nice and sturdy, getting the phones in or out wasn’t easy, and getting to the record button was tricky. iPhones have this handy little magnetic ring on the back. They had a bracket that worked pretty well after a few iterations on the design and some printer issues. Since each camera has optical image stabilization, it is easy for the lenses to get out of alignment, which can mar the shot. However, they somewhat covered up the effect in post. With a working prototype, the only thing left to do was to slice a bunch of piñatas in slow motion with a thrumming soundtrack.

We love seeing exciting camera setups and iterating to find something that works. This dual-camera setup has a very different goal and tries to lean into the parallax effect rather than hide it. Video after the break.
Continue reading “Recreating A Camera Shot”

Kved: An Embeddable Key/Value Datastore

At some point when developing embedded applications, you’re going to want to store unique values in non-volatile memory, values that can’t be fixed at compilation time. Many microcontrollers have a small amount of EEPROM memory for this very purpose, but it’s usually rather limited if it’s provided at all. Even if you do have a bit of space on an EEPROM at your disposal, actually formatting your values into the memory and dealing with the pesky problem of wear leveling (necessary for parameters that need to change often) can be a bit of a hassle.

Lucky for us, [Marcelo Barros] decided to share his own implementation, Kved (key/value database) which uses the flash memory instead for such storage. Kved implements a dictionary type data structure, using numeric keys and values, supporting a few integer types. Using the library should be straightforward enough, as [Marcelo] says, all you need are a pair of spare flash sectors and the ability to port the flash the sector read, write, and erase functions. There are plenty of examples of such code available for practically any microcontroller out there, so that should be no barrier. For those who want to play with it right now, the repo currently has ports for the STM32L433RC and STM32F411CE, as well as a simulated version you can compile and run on your computer.

From an implementation perspective, the write algorithm uses a COW (Copy On Write) method. Changed values are invalidated by over-writing the storage location with all-zeros, and re-writing the changed value to a new location, cycling through the unused locations until the sector is full. Data-integrity mechanisms are implemented, preventing corruption of the data structure due to power fail situations, so incorrectly written values will be corrected on start-up and not affect the integrity of the configuration.

When looking around, we found a similar project, Embedis, over on hackaday.IO, as well as this article on the subject of embedded filesystems from a little while back.