Baremetal Rust On the Horizon

Rust Programming Langauge has grown by leaps and bounds since it was announced in 2010 by Mozilla. It has since become a very popular language owing to features such as memory safety and its ownership system. And now, news has arrived of an Embedded Devices Working Group for Rust aiming at improving support for microcontrollers.

Rust is quite similar to C++ in terms of syntax, however Rust does not allow for null or dangling pointers which makes for more reliable code in the hands of a newbie. With this new initiative, embedded development across different microcontroller architectures could see a more consistent and standardized experience which will result in code portability out of the box. The proposed improvements include IDE and CLI tools for development and setup code generation. There is also talk of RTOS implementations and protocol stack integration which would take community involvement to a whole new level.

This is something to be really excited about because Rust has the potential to be an alternative to C++ for embedded development as rust code runs with a very minimal runtime. Before Arduino many were afraid of the outcome of a simple piece of code but with rust, it would be possible to write memory-safe code without a significant performance hit. With a little community support, Rust could be a more efficient alternative. We have seen some Rust based efforts on ARM controllers and have covered the basics of Rust programming in the past if you want to get started. Good times ahead for hardware hackers.

Tiny Function Generator on the ATtiny85, Complete with OLED

It’s easy to have a soft spot for “mini” yet perfectly functional versions of electronic workbench tools, like [David Johnson-Davies]’s Tiny Function Generator which uses an ATtiny85 to generate different waveforms at up to 5 kHz. It’s complete with a small OLED display to show the waveform and frequency selected. One of the reasons projects like this are great is not only because they tend to show off some software, but because they are great examples of the kind of fantastic possibilities that are open to anyone who wants to develop an idea. For example, it wasn’t all that long ago that OLEDs were exotic beasts. Today, they’re available off the shelf with simple interfaces and sample code.

The Tiny Function Generator uses a method called DDS (Direct Digital Synthesis) on an ATtiny85 microcontroller, which [David] wrote up in an earlier post of his about waveform generation on an ATtiny85. With a few extra components like a rotary encoder and OLED display, the Tiny Function Generator fits on a small breadboard. He goes into detail regarding the waveform generation as well as making big text on the small OLED and reading the rotary encoder reliably. His schematic and source code are both available from his site.

Small but functional microcontroller-based electronic equipment are nifty projects, and other examples include the xprotolab and the AVR-based Transistor Tester (which as a project has evolved into a general purpose part identifier.)

Laser Galvo Control via Microcontroller’s DAC

Mirror galvanometers (‘galvos’ for short) are the worky bits in a laser projector; they are capable of twisting a mirror extremely quickly and accurately. With two of them, a laser beam may be steered in X and Y to form patterns. [bdring] had purchased some laser galvos and decided to roll his own control system with the goal of driving the galvos with the DAC (digital to analog) output of a microcontroller. After that, all that was needed to make it draw some shapes was a laser and a 3D printed fixture to hold everything in the right alignment.

The galvos came with drivers to take care of the low-level interfacing, and [bdring]’s job was to make an interface to translate the 0 V – 5 V output range of his microcontroller’s DAC into the 10 V differential range the driver expects. He succeeded, and a brief video of some test patterns is embedded below.

Continue reading “Laser Galvo Control via Microcontroller’s DAC”

ATtiny Chip Abused in RFID Application

One of Atmel’s smallest microcontrollers, the ATtiny, is among the most inexpensive and reliable chips around for small applications. It’s also one of the most popular. If you don’t need more than a few inputs or outputs, there’s nothing better. As a show of its ability to thrive under adverse conditions, [Trammell Hudson] was able to shoehorn an ATtiny into an RFID circuit in a way that tests the limits of the chip design.

The RFID circuit only uses two of the ATtiny’s pins and neither of which is the ground or power pin. The ATtiny is equipped with protective diodes on its input pins, and if you apply an AC waveform to the input pins, the chip is able to use the leakage current to power itself. Once that little hurdle is crossed, the ATtiny can do the rest of its job handling the RFID circuitry.

This project takes a deep dive into the internals of the ATtiny. If you’ve ever wondered what was going on inside of everyone’s favorite tiny microcontroller, or if you’re looking for an RFID circuit that keeps parts counts to an absolute minimum, this is the project for you.  The ATtiny is more than just a rugged, well-designed chip, though. It’s capable of a lot more than such a small chip should be able to.

Thanks to [adnidor] for the tip!

Balance like a Mountain Goat on this Simple Stewart Platform

No goats were harmed in the making of this 3-DOF Stewart platform for [Bruce Land]’s microcontrollers course at Cornell.

If the name “Stewart platform” doesn’t ring a bell, the video below will help you out. [Team Microgoats] built a small version of the mechanical system commonly seen in flight simulators, opting for 3 DOF  to simplify the design. Their PIC32-controlled steppers can wobble and weave the table in response to inputs from an MPU-6050 six-axis accelerometer embedded in the base of a 3D-printed goat. Said goat appears to serve no other role in the build, but goats are cool, so why not? And if you’ve ever seen a mountain goat frolicking across a sheer vertical rock face like it was walking across a parking lot, you’ll understand the connection to the balance and control offered by a Stewart platform.

[Bruce Land]’s course is always a bonanza of neat projects that pop up in our tipline this time of year, like a POV box fan, a coin cell Rickrolling throwie, and a dynamometer for small electric motors.

Continue reading “Balance like a Mountain Goat on this Simple Stewart Platform”

Small Jet Engine Model From Students Who Think Big

We love to highlight great engineering student projects at Hackaday. We also love environment-sensing microcontrollers, 3D printing, and jet engines. The X-Plorer 1 by JetX Engineering checks all the boxes.

This engineering student exercise took its members through the development process of a jet engine. Starting from a set of requirements to meet, they designed their engine and analyzed it in software before embarking on physical model assembly. An engine monitoring system was developed in parallel and integrated into the model. These embedded sensors gave performance feedback, and armed with data the team iterated though ideas to improve their design. It’s a shame the X-Plorer 1 model had to stop short of actual combustion. The realities of 3D printed plastic meant airflow for the model came from external compressed air and not from burning fuel.

Also worth noting are the people behind this project. JetX Engineering describe themselves as an University of Glasgow student club for jet engine enthusiasts, but they act less like a casual gathering of friends and more like an aerospace engineering firm. The ability of this group to organize and execute on this project, including finding sponsors to fund it, are skills difficult to teach in a classroom and even more difficult to test with an exam.

After X-Plorer 1, the group has launched two new project teams X-Plorer 2 and Kronos. They are also working to expand to other universities with the ambition of launching competitions between student teams. That would be exciting and we wish them success.

Continue reading “Small Jet Engine Model From Students Who Think Big”

Fully-functional Oscilloscope on a PIC

When troubleshooting circuits it’s handy to have an oscilloscope around, but often we aren’t in a lab setting with all of our fancy, expensive tools at our disposal. Luckily the price of some basic oscilloscopes has dropped considerably in the past several years, but if you want to roll out your own solution to the “portable oscilloscope” problem the electrical engineering students at Cornell produced an oscilloscope that only needs a few knobs, a PIC, and a small TV.

[Junpeng] and [Kevin] are taking their design class, and built this prototype to be inexpensive and portable while still maintaining a high sample rate and preserving all of the core functions of a traditional oscilloscope. The scope can function anywhere under 100 kHz, and outputs NTSC at 30 frames per second. The user can control the ground level, the voltage and time scales, and a trigger. The oscilloscope has one channel, but this could be expanded easily enough if it isn’t sufficient for a real field application.

All in all, this is a great demonstration of what you can accomplish with a microcontroller and (almost) an engineering degree. To that end, the students go into an incredible amount of detail about how the oscilloscope works since this is a design class. About twice a year we see a lot of these projects popping up, and it’s always interesting to see the new challenges facing students in these classes.

Continue reading “Fully-functional Oscilloscope on a PIC”