Three-Axis Camera Slider From 3D Printer Parts

There’s a great reason 3D printers are made with things like extruded aluminum rails and other commodity, off-the-shelf parts. These things are designed not only for ease of construction and prototyping, but they’re also fairly strong especially given how modular they are. And they are excellent platforms for other projects as well. [CNCDan] has been using plenty of on-hand 3D printer parts to build a three-axis camera slider to film parts of his other projects, and this video documents his build and the latest upgrades to this platform.

After sorting out some issues with underpowered motors by improving their gear ratios, he found that many of the sizes and clearances on the existing platform changed enough that he needed to redo other parts of the carrier, including the mounting plate. He cut a new plate from steel and pressed bearings in, and then started putting together the other axes including a quick release mechanism for his camera. With a camera that weighs about 1.4 kg, getting the motors to move the camera smoothly was its own challenge. He re-worked all of his driver code over the course of a few weeks and eventually got his new system working much better than the original version.

With everything said and done, the camera slider can be controlled wirelessly with a GUI on another computer. Everything runs on an ESP32, and the slider can support other cameras besides his heavier one, including smartphones. He notes that this wasn’t the easiest way to build a project like this, but worked for him eventually because he had the parts and tools on hand to make it work. He’s also put the project files up on a GitHub page for anyone interested. Camera sliders like these have some niche uses as well; take a look at this high-speed camera slider for some examples.

Continue reading “Three-Axis Camera Slider From 3D Printer Parts”

PenPal, A Robotic Drawing Assistant

Emergent properties include examples like murmurations of starlings which can’t be predicted from looking at a single bird, weather which can’t be predicted by looking at a few air molecules, and consciousness which can’t be predicted by looking at a neuron. Likewise, when adding a new tool to a workflow, emergent properties can show up as well. A group at Chicago University developed a robotic drawing tool and a few artists developed some unique drawing methods using it.

The robotic pen uses a pair of tendons to extend the working end out a certain amount. From there it uses a set of servos to can be programmed to revolve around in a defined path, making repeating movements while the artist makes larger movements over the paper. Originally meant for shading, small circles or simpler back-and-forth movements were preset, but with full control over the pen’s behavior the artist can shift focus away to other tasks within the creative process. A study with ten participants was done which showed artists coming up with novel ways of using a tool like this, and others reporting that it’s almost like drawing together with another person.

Looking for novel ways that humans can interact with computers and robots can often lead to surprising outcomes like this. Members of this group aren’t new to novel human interface devices either; they’ve also built a squishy dynamic button as well.

Continue reading “PenPal, A Robotic Drawing Assistant”

A UI-Focused Display Library For The ESP32

If you’re building a project on your ESP32, you might want to give it a fancy graphical interface. If so, you might find a display library from [dejwk] to be particularly useful.

Named roo_display for unclear reasons, the library is Arduino-compatible, and suits a wide range of ESP32 boards out in the wild. It’s intended for use with common SPI-attached display controllers, like the ILI9341, SSD1327, ST7789, and more. It’s performance-oriented, without skimping on feature set. It’s got all kinds of fonts in different weights and sizes, and a tool for importing more. It can do all kinds of shapes if you want to manually draw your UI elements, or you can simply have it display JPEGs, PNGs, or raw image data from PROGMEM if you so desire. If you’re hoping to create a touch interface, it can handle that too. There’s even a companion library for doing more complex work under the name roo_windows.

If you’re looking to create a simple and responsive interface, this might be the library for you. Of course, there are others out there too, like the Adafruit GFX library which we’ve featured before. You could even go full VGA if you wanted, and end up with something that looks straight out of Windows 3.1. Meanwhile, if you’re cooking up your own graphics code for the popular microcontroller platform, you should probably let us know on the tipsline!

Thanks to [Daniel] for the tip!

Creating Python GUIs With GIMP

GUI design can be a tedious job, requiring the use of specialist design tools and finding a suitable library that fits your use case. If you’re looking for a lightweight solution, though, you might consider just using a simple image editor with a nifty Python library that [Manish Kathuria] whipped up.

[Manish’s] intention was to create a better-looking user interface solution for Python apps that was also accessible. He’d previously considered other Python GUI options to be unimpressive, requiring a lot of code and delivering undesirable results. His solution enables the use of just about any graphic you can think of as a UI object, creating all kinds of visually-appealing possibilities. He also was eager to make sure his solution would work with irregular-shaped buttons, sliders, and other controls—a limitation popular libraries like Tkinter never quite got around.

The system simply works by using layered image files to create interactive interfaces, with a minimum of code required to define the parameters and performance of the interface. You’re not strictly limited to using the GIMP image editor, either; some of the examples use MS Paint instead. Files are on Github for those eager to try the library for themselves.

We’ve featured some neat GUI tools before, too, like this library for embedded environments. Video after the break.

Continue reading “Creating Python GUIs With GIMP”

ZPUI Could Be Your Tiny Embedded GUI

One of the most frustrating things to me is looking at a freshly-flashed and just powered up single board computer. My goal with them is always getting to a shell – installing packages, driving GPIOs, testing my proof of concept code, adjusting the device tree to load peripheral drivers. Before I can do any of that, I need shell access, and getting there can be a real hassle.

Time after time, I’ve struggled trying to get to a shell on an SBC. For best results, you’d want to get yourself a keyboard, monitor, and an Ethernet cable. Don’t have those, or there’s no space to place them? Maybe a UART connection will work for you – unless it’s broken or misconfigured. Check your pinouts twice. Sure, nowadays you can put WiFi credentials into a text file in /boot/ – but good luck figuring out the IP address, or debugging any mistakes you might make formatting the file. Nowadays, Pi 4 and 5 expose a USB gadget connection on the USB-C port, and that helps… unless you’re already powering the Pi from that port. There’s really no shortage of failure modes here.

If you put a Pi on your network and it goes offline, you generally just don’t know what happened unless you reboot it, which can make debugging into a living hell. I’ve dealt with single-board computers mounted above fiberglass lifted ceilings, fleets of Pi boards at workshops I organized, pocket-carried Pi boards, and at some point, I got tired of it all. A hacker-aimed computer is meant to be accessible, not painful.

Continue reading “ZPUI Could Be Your Tiny Embedded GUI”

Mongoose Wizard new project dialog.

Web Dashboard And OTA Updates For The ESP32

Today we are happy to present a web-based GUI for making a web-based GUI! If you’re a programmer then web front-end development might not be your bag. But a web-based graphical user interface (GUI) for administration and reporting for your microcontroller device can look very professional and be super useful. The Mongoose Wizard can help you develop a device dashboard for your ESP32-based project.

In this article (and associated video) the Mongoose developers run you through how to get started with their technology. They help you get your development environment set up, create your dashboard layout, add a dashboard page, add a device settings page, add an over-the-air (OTA) firmware update page, build and test the firmware, and attach the user-interface controls to the hardware. The generated firmware includes an embedded web server for serving your dashboard and delivering its REST interface, pretty handy.

You will find no end of ESP32-based projects here at Hackaday which you could potentially integrate with Mongoose. We think the OTA support is an excellent feature to have, but of course there are other ways of supporting that functionality.

Continue reading “Web Dashboard And OTA Updates For The ESP32”

FLOSS Weekly Episode 785: Designing GUIs And Building Instruments With EEZ

This week Jonathan Bennett chats with Dennis and Goran about EEZ, the series of projects that started with an Open Source programmable power supply, continued with the BB3 modular test bench tool, and continues with EEZ Studio, a GUI design tool for embedded devices.

Continue reading “FLOSS Weekly Episode 785: Designing GUIs And Building Instruments With EEZ”