Most parents have heard a familiar story. Their lovely child comes up, having seen a celebrity rocking out with a funny $20 toy from the 80s, and asks for it. Of course, you reply, it’s just 20 dollars. However, a quick scan through eBay reveals that everyone else’s kid has also been asking for this obscure toy for a school event, which now costs around $700. [Ben] found himself in that exact position and made a crucial off-hand comment, “I bet I could make one of those.” That was how his hectic journey into the world of toy reproduction began.
All [Ben] had for reference when recreating a Sax-A-Boom were pictures and sound clips. Modeling complex sweeping shapes in CAD is difficult, and [Ben] commissioned a 3d model from a professional on Fiverr. [Ben] broke down the model into printable sections and tweaked it to account for buttons. After a concerning amount of putty, wet sanding, and elbow grease, [Ben] had a decently smooth body for an instrument. The device’s guts is an ESP32-based board called Sonatino, built around music generation. The music samples came from a virtual instrument clone on GitHub and loaded onto an SD card.
Time pressure crept in towards the end, and [Ben] had to go for some dirty solution that he would have preferred (popsicle sticks and epoxy for button mounting). Yes, there were some gaps and paint flaws, but ultimately [Ben’s] son rocked the school presentation. It’s a beautiful journey through creating something with a high level of finish on a limited timescale.
TLS, byte by byte performs an unusual and interesting function: it fetches itself over HTTPS, and provides a complete annotation of what’s going on in the process, one byte at a time. Visit the site and give the button a click to watch it happen, it’s neat!
Transport Layer Security (TLS) is what’s responsible for encrypting traffic over the internet, and it’s normally implemented on top of TCP to encrypt an application-layer protocol like HTTP (resulting in HTTPS and the little padlock icon in browsers indicating a connection with a web site is encrypted.) Back in the day, traffic over the internet was commonly unencrypted, but nowadays no communication or hardware is too humble for encryption and methods are easily accessible.
The reports of the death of automotive AM radio may have been greatly exaggerated. Regular readers will recall us harping on the issue of automakers planning to exclude AM from the infotainment systems in their latest offerings, which doesn’t seem to make a lot of sense given the reach of AM radio and its importance in public emergencies. US lawmakers apparently agree with that position, having now introduced a bipartisan bill to require AM radios in cars. The “AM for Every Vehicle Act” will direct the National Highway Transportation Safety Administration to draw up regulations requiring every vehicle operating on US highways to be able to receive AM broadcasts without additional fees or subscriptions. That last bit is clever, since it prevents automakers from charging monthly fees as they do for heated seats and other niceties. It’s just a bill now, of course, and stands about as much chance of becoming law as anything else that makes sense does, so we’re not holding our breath on this one. But at least someone recognizes that AM radio still has a valid use case.
When forgetting to take medication on time can lead to a bad day or night, having a helper to keep you on track can greatly improve your life. [M. Bindhammer] faces this scenario every day, so he built his own robotic pill dispenser.
The core of the project is a 3D printed dispensing drum with individual pockets for morning and evening medication. It is mounted directly to a 360° winch servo, normally used for RC sailboats, while a second conventional servo opens a small sliding door to drop the pills onto the dispensing tray. The tray integrates a sensitive touch sensor which can detect when [M] picks up the pills, without being triggered by the pills themselves.
[M. Bindhammer] also included a small but loud speaker, connected to a speech synthesis module for audio reminders. The main controller is a Arduino Due with a custom breakout shield that also integrates a DS3231 real time clock. All the electronics are enclosed in a 80’s style humanoid robot-shaped body, with dispensing drum on its chest, and an OLED screen as it’s face.
The end result is a very polished build, which should make [M. Bindhammer]’s life with bipolar disorder a little bit easier, and he hopes it might help others as well.
Robots are cool. Everyone knows it, and [Eater NY] highlights a coffee shop with a robotic server opening in Brooklyn. While robots able to prepare and serve drinks or food is not new, it isn’t every day a brick-and-mortar café with a robot behind the counter opens up. But expensive automation isn’t the only puzzle piece needed to make a location work.
There are also many tasks involved in running even a modest establishment — loading, cleaning, and maintaining for example — that can’t be realistically taken care of by an immobile robot barista. It’s unclear to what extent the robotic coffee shop will employ human staff, but it’s clear that human involvement is something that isn’t going be eliminated any time soon.
Some of you may remember the robotic burger joint that our own Brian Benchoff managed to check out, and many of his same observations come to mind. The robot burger was perhaps ahead of its time (its single location is listed as closed on Google maps with no recent activity) but maybe the robot coffee place can make it work. Still, expensive automation is only one piece of a system, and the ability to crank out a drink per minute 24/7 might not actually be the missing link.
In a move that has a significant part of the internet flashing back to the innocent days of 2001 when Intel launched its Itanium architecture as a replacement for the then 32-bit only x86 architecture – before it getting bludgeoned by AMD’s competing x86_64 architecture – Intel has now released a whitepaper with associated X86-S specification that seeks to probe the community’s thoughts on it essentially removing all pre-x86_64 features out of x86 CPUs.
While today you can essentially still install your copy of MSDOS 6.11 on a brand-new Intel Core i7 system, with some caveats, it’s undeniable that to most users of PCs the removal of 16 and 32-bit mode would likely go by unnoticed, as well as the suggested removal of rings 1 and 2, as well as range of other low-level (I/O) features. Rather than the boot process going from real-mode 16-bit to protected mode, and from 32- to 64-bit mode, the system would boot straight into the 64-bit mode which Intel figures is what everyone uses anyway.
Where things get a bit hazy is that on this theoretical X86-S you cannot just install and boot your current 64-bit operating systems, as they have no concept of this new boot procedure, or the other low-level features that got dropped. This is where the Itanium comparison seems most apt, as it was Intel’s attempt at a clean cut with its x86 legacy, only for literally everything about the concept (VLIW) and ‘legacy software’ support to go horribly wrong.
Although X86-S seems much less ambitious than Itanium, it would nevertheless be interesting to hear AMD’s thoughts on the matter.
Believe it or not, building a tiny compiler from scratch can be as fun as it is accessible. [James Smith] demonstrates by making a tiny compiler for an extremely simple programming language, and showing off a hello world.
Here’s what happens with a compiler: human-written code gets compiled into low-level machine code, creating a natively-executable result for a particular processor. [James]’ compiler — created from scratch — makes native x64 Linux ELF binary executables with no dependencies, an experience [James] found both educational and enjoyable. The GitHub repository linked below has everything one needs, but [James] also wrote a book, From Source Code to Machine Code, which he offers for sale to anyone who wants to step through the nitty-gritty.
The (very tiny) compiler is on GitHub as The Pretty Laughable Programming Language. It’s tiny, the only data types are integers and pointers, and all it can do is make Linux syscalls — but it’s sufficient to make a program with. Here’s what the code for “Hello world!” looks like before being fed into the compiler: