We were impressed with [moononournation’s] tiny thin client project. It claims to use an Arduino, but as you might guess it is using the Arduino software along with a network-enabled microcontroller like an ESP32. The impressive part is that it is standards-compliant and implements VNC’s RFB protocol.
The original coding for RFB on Arduino is from [Links2004] and armed with that, the thin client is probably easier to create than you would guess. However, this project wanted to use a larger screen and found that it led to certain problems. In particular, the original code had a 320×240 display. This project was to use an 800×480 display, but with the limits on the ESP32, the frame rate possible would be under 7 frames per second. The answer was to combine a 16-bit parallel interface with better compression back to the VNC server.
The little keyboard is probably not very practical, but it is compact. That would be another easy thing to modify. Currently, the keyboard uses I2C, but it would be straightforward to change things up. This would be a worthy base to build a bigger project on top. A 3D printed enclosure would be nice, too.
Anyone who’s done an electronics project knows the most important part of any good design is making sure to keep the magic smoke inside of all of the components. There are a lot of ways to make sure the smoke stays in there, but one of the most important is making sure that the power supply is isolated. If you’re using a USB port on a computer as your power source, though, it can be a little more complicated to isolate it from the computer.
The power supply is based around a small transformer with a set of diodes to act as a rectifier. Of course, while a transformer is great at isolating power supplies, it isn’t much good at DC. That’s what the ATtiny microcontroller is for. It handles the high-speed switching of the MOSFETs, which drive the transformer and handle some power regulation. There are two different power supplies created as part of this project as well — the first generates +5V much like a normal USB plug would have, and the other creates both +5V and -5V. It will be important not to mix these two up, or that tricky blue smoke may escape.
The project page goes into extensive details on the operation of the device, so if electrical theory is of interest, this will definitely be worth a read. Isolating a valuable computer from a prototype circuit is certainly important, but if you’re looking for a way to isolate a complete USB connection, look at this build which includes isolation for a USB to FTDI adapter.
We’ve seen plenty of people 3D printing custom gears over the years, but [Mr Innovative] decided against an additive process for his bespoke component. He ended up using a simple CNC machine that makes use of several components that were either salvaged from a 3D printer or produced on one. Using a small saw blade, the machine cuts gear teeth into some plastic material and — presumably — could cut gears into anything the saw blade was able to slice into, especially if you added a little lubrication, cooling, and dust removal.
If you’ve built a 3D printer, you’ll see a lot of familiar parts. Stepper motors, aluminum extrusion, straight rods, bearing blocks, and rod holders are all used in the build. There’s also a lead screw and the associated components you usually see in a printer’s Z-axis. Naturally, an Arduino drives the whole affair.
The saw blade was custom-made from a washer, grinding an edge and using a 3D printed template to cut teeth in it. We might have been more inclined to use a cut-off wheel from a rotary tool, but this certainly did the trick. An LCD accepts the gear diameter and number of teeth. The stepper rotates the correct number of degrees and another stepper lowers the cutting head which is spinning with a common DC motor.
As impressive as this machine is, the fact remains that a 3D printer can produce more complex designs. For example, a herringbone pattern can help with alignment issues. It has been done many times. You can even use a resin printer, although you might prefer to stick with FDM.
Older hackers will remember that a crystal set radio receiver was often one of the first projects attempted. Times have changed, but there’s still something magical about gathering invisible signals from the air and listening to the radio on a homemade receiver. [mircemk] has brought the idea right up to date by building an FM radio with an OLED display, controlled with a rotary encoder.
The design is fairly straightforward, based as it is on another project that [mircemk] found on a Chinese site, but the build looks very slick and would take pride of place on any hacker’s workbench. An Arduino Due forms the heart of the project, controlling a TEA5767 module, an SH1106 128×64 pixel OLED display and a rotary encoder. The sound signal is passed through an LM4811 headphone amplifier for private listening, and a PAM8403 Class D audio amplifier for the built-in loudspeaker. The enclosure is made from PVC panels, and accented with colored adhesive tape for style.
It’s easier than ever before to quickly put together projects like this by connecting pre-built modules and downloading code from the Internet, but that doesn’t mean it’s not a worthwhile way to improve your skills and make some useful devices like this one. There are so many resources available to us these days and standing on the shoulders of giants has always been a great way to see farther.
Anyone can buy a clock, but building your own lets you express your creative flair along the way. [Edison Science Corner] did just that with this neat sci-fi looking design.
The build relies on an Arduino Pro Mini to run the show, paired with a DS3231 real-time clock module. The latter part is of great importance, as without it, the Arduino would not keep accurate time. The 3D printed enclosure looks nondescript from the outside. However, inside, it’s got a neat triangular structure which allows the time to be displayed in that attractive tessellated triangular fashion. There’s a black plastic separator between all the segments which stop unattractive bleed-through and really help with the final effect. The individual triangles are each lit by a NeoPixel LED, which are both addressable and capable of lighting up in RGB colors. It makes for an attractive and colorful display.
Arduino have released the latest version of their Integrated Development Environment (IDE), Version 2.0 and it is a big step up from the previous release, boasting plenty of new features to help you to develop your code more easily.
As the de-facto way for beginners to get into programming hardware, more experienced users have sometimes complained about what they see as the over-simplistic IDE — even lacking relatively basic features such as autocomplete. The new version provides this, and much more besides.
The press-release from Arduino offers a few clues to the main features, but the real detail is tucked away in a range of new tutorials, designed to get you up to speed with the new look.
The main screen is organised differently, to show off the new capabilities and to make development faster and easier. The new “Remote Sketchbook” has been integrated closely with the Arduino Cloud, to allow for easy switching between computers during development. V2.0 will pick up any Cloud sketches automatically, while computers using the previous versions of the IDE can still access the sketches via the Web Editor as before.
The Serial Plotter can now be used at the same time as the text Serial Monitor, rather than having to choose one or the other. In addition, there is a host of new Debug functionality for those devices that support it. This works with the usual In-Circuit Emulators (such as the Atmel ICE), but also natively with newer Arduino boards like the Arduino Zero without any additional hardware. The debugger gives you access to powerful features like Breakpoints, Step-Into and Step-Over to really understand what your code is doing.
Installation is straightforward, and will automatically pull in any libraries and sketches that you created in previous versions of the Arduino software to ease the transition.
There’s a lot to like in the new IDE, but we expect it will take a little while to discover and use all the new features effectively. Some of them are carry-overs from the “Arduino Pro IDE” that we covered a few years ago, but it’s great to see the software evolve and improve over time.
Have you tried new new IDE yet? What are your thoughts on how it compares to the older version, or other development environments? Let us know in the comments.
Having a 3D printer or a CNC machine available for projects is almost like magic. Designing parts in software and having them appear on the workbench is definitely a luxury. But for a lot of us, these tools aren’t easily available and projects that use them can be out-of-reach. That’s why one of the major design goals of this robotics platform was to use as many off-the-shelf components as possible.
The robot is called the OpenScout and, as its name implies, intends to be a fully open-source robotics platform for a wide range of use cases. It uses readily-available aluminum extrusion as a frame, which bolts together without any other specialized tools like welders. The body of the robot is articulating, helping it navigate uneven terrain outdoors. The specifications also call for using an Arduino to drive the robot, although there is plenty of space in the robot body to house any robotics platform you happen to have on hand.
For anyone looking to get right into the useful work of what robots can do, rather than spending time building up a platform from scratch, this is an excellent project. It’s straightforward and easy to build without many specialized tools. The unique articulating body design should make it effective in plenty of environments. If you do have a 3D printer, though, that opens up a lot of options for robotics platforms.
If there’s one thing we’ve learned over the years, it’s that if it’s got a silicon chip inside, it could be carrying a virus. Research by one group focused on hiding a trojan inside an AVR Arduino bootloader, proving even our little hobbyist microcontrollers aren’t safe.
The specific aim of the research was to hide a trojan inside the bootloader of an AVR chip itself. This would allow the trojan to remain present on something like a 3D printer even if the main firmware itself was reinstalled. The trojan would still be able to have an effect on the printer’s performance from its dastardly hiding place, but would be more difficult to notice and remove.
The target of the work was the ATmega328P, commonly used in 3D printers, in particular those using the Marlin firmware. For the full technical details, you can dive in and read the research paper for yourself. In basic terms, though, the modified bootloader was able to use the chip’s IVSEL register to allow bootloader execution after boot via interrupt. When an interrupt is called, execution passes to the trojan-infected bootloader’s special code, before then returning to the program’s own interrupt to avoid raising suspicion. The trojan can also execute after the program’s interrupt code too, increasing the flexibility of the attack.
Simply reflashing a program to an affected chip won’t flush out the trojan. The chip instead must have its bootloader specifically rewritten a clean version to remove the offending code.
It’s not a super dangerous hack, overall. Typically, flashing a malicious bootloader would require physical access to the chip. Furthermore, there’s not heaps to be gained by sneaking code onto the average 3D printer out there. However, it’s nonetheless a good example of what bootloaders can really do, and a reminder of what we should all be careful of when operating in security-conscious domains. Stay safe out there!
After a long period of development, we’re really happy to pass on the announcement that version 2.0.0 of the Arduino IDE is now available. Not only is it a more usable and practical development environment, there’s also some new features such as seamless cloud integration (which you are not forced to used) which makes moving between machines easy. From the arduino website:
We’re pleased to announce that as of today Arduino IDE 2.0 has moved to stable and is available for download. Since the launch of the Beta version back in Spring 2021, the feedback received from the active Arduino community has enabled us to focus on what’s meaningful to the widest user-base. It carries a modern editor and provides a better overall user experience thanks to a responsive interface and faster compilation time.
Over and above the core features (we’ll get into those in more details later) the IDE 2.0 benefits from a number of enhancements and additional support. The Serial Monitor and Plotter can be used together, enabling users to have two viewports onto their data output. Before you had to choose between text and graphs, whereas now you can have both.
As well as the refreshed User Interface that provides a more intuitive experience whilst using Arduino IDE 2.0, speed is of the essence. An Arduino-optimized code-completion and code-assist within the language server, help you write code quickly and spot errors as you type. The enormous amount of user feedback allowed us to identify the weakest spots such as code assist and completion, serial output, loading and compilation time. We made it all better now.
A special mention goes out to Paul Stoffregen who has provided enormous feedback to the IDE development team and been actively developing the initial support for advanced third-party platforms such as Teensy for IDE 2.0 (currently experimental).
If you haven’t already given the new IDE 2.0 a try, here are just a few of the key features…
Autocomplete during sketch editing
While typing, the editor can suggest the autocompletion of variables and functions according to your code and the libraries you included:
When right-clicking on a variable or a function, a contextual menu will provide navigation shortcuts to jump to the line (and file) where they are declared:
Dark Mode
If your eyes are feeling the strain you can quickly change settings and switch to Dark Mode. Some of you may have used this during the Beta, but our design team has reworked the entire Dark Theme to make it more consistent, beautiful and easy on the eye.
Never lose a sketch keeping them safely at Arduino Cloud
For people who work on multiple computers or want to store their Sketches securely in the Cloud, the Remote Sketchbook integration is a really useful feature.
Easily switch from one computer to another and keep working. If you don’t have Arduino IDE 2.0 installed on all your machines, just open the Arduino Web Editor and you can code from your browser in the online IDE with access to all your sketches and libraries. There’s no need to worry about losing your sketches either, with Remote Sketchbook you only need one click and they will be pushed securely to the Arduino Cloud.
Work offline and sync later, simply bring your sketch down from the Cloud, edit offline and when you are back online click on “Push” and all your changes will be uploaded, meaning all your sketches will always be up-to-date and ready to use.
Serial Plotter
The IDE 2.0 features a richer Serial Plotter that is a versatile tool for tracking different data and variables which are received from your Arduino board. The Serial Plotter is a really useful visual tool that will help you to understand and compare your data points better. It can be used for testing and calibrating sensors, comparing values and other similar scenarios.
In-app updates
Our users have always been accustomed to receiving notifications when new boards’ support or libraries updates were available, and IDE 2.0 is no exception. As a plus, the IDE can now itself be updated when a new version is available, so no need to head to the downloads page anymore: click the button and get the latest and greatest.
The new IDE is based on the Eclipse Theia framework, which is an open source project based on the same architecture as VS Code (language server protocol, extensions, debugger). The front-end is written in TypeScript, while most of the backend is written in Golang.
Click here to download the new IDE for your system now. Time certainly flies along, it feels like yesterday when we switched from the old Arduino IDE to version 1.0. Kudos to everyone at the Arduino team and all the beta testers for the works and effort.
If you’re interested in Arduino and want to get started – please purchase a copy of Arduino Workshop, 2nd Edition – a hands-on introduction to electronics and Arduino with 65 projects. It’s written for the complete beginner – you won’t need any other book or website, and by the end you’ll have the knowledge and skills to turn a wide range of ideas into life.
There’s something about Reverse Polish Notation (RPN) and the calculators that use it. It calls to mind a time when a calculator was a serious tool, and not just a throwaway toy. Created in the legacy of such calculators by HP and Texas Instruments, [Simon Boak] shows off his SB116, sporting an Arduino Nano under the hood. It’s a fully custom design, with a hand-built metal case, a custom PCB for the keyboard, and a tiny OLED display for maximum retro green goodness.
The impetus for this build was to replace a particular calculator, a well-used TI Programmer, that’s useful for working with 6502 assembly. The SB116 supports binary, octal, decimal, and hex; and boasts some downright useful functions — AND, NOT, OR, XOR, and bitshifts. The source code is available, but you’re on your own for the case and keyboard. And for maximized retro faux-nostalgia, [Simon] designed a box that would have looked right at home on an 80s store shelf.