Join us on Wednesday, April 21 at noon Pacific for the AVR Reverse Engineering Hack Chat with Uri Shaked!
We’ve all become familiar with the Arduino ecosystem by now, to the point where it’s almost trivially easy to whip up a quick project that implements almost every aspect of its functionality strictly in code. It’s incredibly useful, but we tend to lose sight of the fact that our Arduino sketches represent a virtual world where the IDE and a vast selection of libraries abstract away a lot of the complexity of what’s going on inside the AVR microcontroller.
While it’s certainly handy to have an environment that lets you stand up a system in a matter of minutes, it’s hardly the end of the story. There’s a lot to be gained by tapping into the power of assembly programming on the AVR, and learning how to read the datasheet and really run the thing. That was the focus of Uri Shaked’s recent well-received HackadayU course on AVR internals, and it’ll form the basis of this Hack Chat. Then again, since Uri is also leading a Raspberry Pi Pico and RP2040 course on HackadayU in a couple of weeks, we may end up talking about that too. Or we may end up chatting about something else entirely! It’s really hard to where this Hack Chat will go, given Uri’s breadth of interests and expertise, but we’re pretty sure of one thing: it won’t be boring. Make sure you log in and join the chat — where it goes is largely up to you.
Our Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, April 21 at 12:00 PM Pacific time. If time zones have you tied up, we have a handy time zone converter.
Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.
Continue reading “AVR Reverse Engineering Hack Chat”
High-level programming languages do a great job of making a programmer’s job easier, but these languages often leave a lot of efficiency on the table as a compromise. While a common thought is to move into a lower-level language like assembly to improve on a program’s speed or memory use, there’s often a lot that can be done at the high level before resorting to such extremes. This, of course, is true of the Arduino platform as well, as [NerdRalph] demonstrates by shrinking the size of the Arduino core itself.
[NerdRalph] had noticed that the “blink” example program actually includes over 1 kB of extraneous code, and that more complicated programs include even more cruft. To combat this issue, he created ArduinoShrink, which seeks to make included libraries more modular and self-contained. It modifies some of the default registers and counters to use less memory and improve speed, and is also designed to improve interrupt latency as well by changing when the Arduino would otherwise disable interrupts.
While there are some limits to ArduinoShrink, such as needing to know specifics about the pins at compile time, for anyone writing programs for Arduinos that are memory-intensive or need improvements in timing, this could be a powerful new tool. If you’d prefer to go in the opposite direction to avoid ever having to learn C or assembly, though, you can always stick with running Python on your embedded devices.
While early scientists and inventors famously underestimated the value of radar, through the lens of history we can see how useful it became. Even though radar uses electromagnetic waves to detect objects, the same principle has been used with other propagating waves, most often sound waves. While a well-known use of this is sonar, ultrasonic sensors can also be put to use to make a radar-like system.
This ultrasonic radar project is from [mircemk] who uses a small ultrasonic distance sensor attached to a rotating platform. A motor rotates it around a 180-degree field-of-view and an Arduino takes and records measurements during its trip. It interfaces with an application running on a computer which shows the data in real-time and maps out the location of all of the objects around the sensor. With some upgrades to the code, [mircemk] is also able to extrapolate objects hidden behind other objects as well.
While the ultrasonic sensor used in this project has a range of about a meter, there’s no reason that this principle couldn’t be used for other range-finding devices to extend its working distance. The project is similar to others we’ve seen occasionally before, but the upgrade to the software to allow it to “see” around solid objects is an equally solid upgrade.
The trick to a fun escape room is layers. For [doktorinjh]’s Spacecase, you start with an enigmatic aluminum briefcase and a NASA drawstring backpack. A gamemaster reads the intro speech to set the mood, and you’re ready to start your escape from the planet. The first layer is the backpack with puzzles you need to solve to get into the briefcase. In there, you discover a hidden compartment and enough sci-fi references to put goofy smiles on our faces. We love to see tools reused as they are in one early puzzle, you use a UV LED to reveal a hidden message, but that light also illuminates puzzle clues later.
All the tech in Spacecase makes it a wonder of mixed media. The physical layer has laser engraved wood featuring the font from the 1975 NASA logo, buttons, knobs, LEDs, toggle switches, and a servo. Beneath the visible faceplate is an RGB sensor, audio player, speaker, and at the center is an Arduino MEGA. We’d love to get our hands on Spacecase for a game, and we’re inspired to pull out all the stops and build games with our personal touches. Maybe something with a mousetrap.
This isn’t the first escape room hardware we’ve seen and [doktorinjh] similarly made a bomb
diffusing defusing game.
Continue reading “Planetary Escape (-Room In A Box)”
While modern cars have been getting all kinds of fancy features like touch screens, Bluetooth, crumple zones, and steering wheel controls, plenty of motorcycles have remained firmly in the past. Some might have extra options like a fuel gauge or even ABS if you’re willing to spend extra, but a good percentage of them have the bare minimum equipment required by law. That equipment is outdated and ripe for some improvements too, like this ergonomic custom turn signal switch built with custom latching switches.
Since motorcycle turn signals don’t self-cancel like car signals the rider has to cancel it themselves, usually by pushing an inconveniently tiny button. This assembly consists of four separate switches, two of which control the left and right turn signals. Since both can’t be on at the same time, they include circuitry that can detect their position and a small motor that can physically de-latch them if the other one is pressed. The entire assembly is 3D printed, including the latching mechanism, and they are tied together with a small microcontroller for the controls.
The truly impressive part of this build is the miniaturization, since all four buttons have to be reached with the thumb without removing the hand from the handlebar. The tiny circuitry and mechanical cam for latching are impressive and worth watching the video for. And, if you need more ergonomic improvements for your motorcycle there are also some options for cruise control as well, another feature often lacking in motorcycles.
Continue reading “Motorcycle Needs Custom Latching Switches For Turn Signals”
For most of us, getting weather information is as trivial as unlocking a smartphone or turning on a computer and pointing an app or browser at one’s weather site of choice. This is all well and good, but it lacks a certain panache that old weather stations had with their analog dials and stained wood cases. The weather station that [BuildComics] created marries both this antique aesthetic with modern weather data availability, and then dials it up a notch for this enormous analog weather station build.
The weather station uses 16 discrete dials, each modified with a different label for the specific type of data displayed. Some of them needed new glass, and others also needed coils to be modified to be driven with a lower current than they were designed as well, since each would be driven by one of two Arduinos in this project. Each are tied to a microcontroller output via a potentiometer which controls the needle’s position for the wildly different designs of meter. The microcontrollers themselves get weather information from a combination of real-world sensors outside the home of [BuildComics] and from the internet, which allows for about as up-to-date information about the weather as one could gather first-hand.
The amount of customization of these old meters is impressive, and what’s even more impressive is the project’s final weight. [BuildComics] reports that it took two people just to lift it onto the wall mount, which is not surprising given the amount of iron in some of these old analog meters. And, although not as common in the real world anymore, these old antique meters have plenty of repurposed uses beyond weather stations as well.
Continue reading “Supersized Weather Station Uses Antique Analog Meters”
Under normal circumstances, if an electronic gadget in your pocket suddenly became hot to the touch, it would be cause for alarm. But not so with the Go Warmer. This lozenge shaped device is not only a USB power bank that can keep your mobile devices topped up, but is also doubles as a miniature heater that the manufacturer claims can bring its surface temperature up to 48 °C (120 °F) for several hours. You can hold in in your hand, put it in your pocket, maybe even sit on it if you’re particularly daring. The possibilities are endless, at least until the 4,000 mAh battery runs down.
For $14.99 USD, the Go Warmer certainly isn’t much of a deal when compared to other battery packs. Even if it does come with a swanky velveteen carrying pouch. But is it a good deal for one that can heat itself up without exploding? Let’s crack this metallic egg and find out.
Continue reading “Teardown: Go Warmer USB Rechargeable Hand Heater”