Українською
  In English
Open Electronics
ThinkNode M9: LoRa mesh terminal without a smartphone
The ThinkNode M9 from Elecrow is a fully autonomous LoRa mesh communication terminal. You don’t need a smartphone to write messages: the physical QWERTY keyboard and color TFT display are enough. The MeshCore firmware manages the mesh network between devices, so messages travel from node to node without any infrastructure. It’s designed for emergencies, hiking, and outdoor activities where cell coverage is unavailable.
At the heart of the device is an ESP32-S3R8 with a 240 MHz processor, 512KB SRAM, 8MB PSRAM, and 16MB of flash. The Semtech LR1110 LoRa module handles radio transmission in the EU868 and US915 bands. The built-in GPS supports GPS, GLONASS, Galileo, and BeiDou. A 2,300 mAh Li-Po battery powers everything, with an estimated standby time of 2-3 days.
How the LoRa mesh terminal worksThe MeshCore firmware coordinates mesh communication between terminals. Each message can be forwarded by other nodes until it reaches its destination. The 37-key QWERTY keyboard sends key press events via I2C. The firmware polls the keyboard in the main loop, so response is immediate. The 2.4-inch TFT display with 320×240 resolution shows the user interface, including messages, network status, and GPS position.
The LR1110 module also includes advanced geolocation features, but the external GPS remains the primary reference for position. Wi-Fi and Bluetooth add connectivity for initial configuration and debugging. The firmware can be updated via USB-C, which also serves for battery charging. The device measures 126 x 67 x 10.3 mm and weighs 123 grams, so it fits in a pocket without any trouble.
The build is solid and compact. Operating temperature ranges from -10°C to 60°C, while storage goes down to -20°C. The price of $74.90 makes it accessible for anyone wanting to experiment with mesh messaging without spending ham-radio money. For those who want to approach the LoRa world starting from a single board, a TTGO LoRa 868 MHz with ESP32 and OLED display does the same job as the ThinkNode: same European band, same microcontroller, onboard display.
Software and customizationThe MeshCore firmware is open source and can be compiled with ESP-IDF. Those who prefer simpler environments can use Arduino IDE or MicroPython. The display is managed with LVGL, a lightweight graphics library suitable for small screens. The documentation includes instructions for modifying the interface and adding custom functions.
The QWERTY keyboard is the strong point compared to other LoRa terminals. Many devices require a smartphone to type, but here everything happens on the board. Additionally, multi-constellation GPS support makes positioning reliable even in remote areas. The firmware automatically handles mesh routing, so the user doesn’t need to configure anything complex.
- Off-grid text messaging without a smartphone
- Multi-constellation GPS for accurate positioning
- EU868 and US915 bands selectable via firmware
- Wi-Fi and Bluetooth for configuration and debug
- Rechargeable Li-Po battery with 2-3 days of autonomy
In emergency situations, cellular networks can fail. A LoRa mesh terminal creates an alternative network among participants. Range depends on the environment: in open field you exceed one kilometer, in the city it decreases but the mesh extends coverage. The ThinkNode M9 is designed for this scenario, with robustness suited to outdoor use.
The physical keyboard avoids the typing errors of touchscreens, especially with gloves. The color display at 200 cd/m² is readable even in sunlight. For those who want to build a similar device from scratch, you’ll need a 2.8-inch TFT touch display and a UBLOX NEO-6M GPS module; the QWERTY keyboard, however, remains the hard part to source. The ThinkNode M9 remains a complete, ready-to-use product.
The project board on GitHub includes schematics, firmware, and assembly instructions. The community around MeshCore is active and releases regular updates. Support for ESP-IDF and Arduino IDE makes the device suitable for both beginners and experts. Finally, the competitive price and compact size make it an ideal companion for those who live outdoors.
Source: https://github.com/meshcore-dev/MeshCore/pull/2942
Related productsThe post ThinkNode M9: LoRa mesh terminal without a smartphone appeared first on Open Electronics.
Asynchronous Web Server on Raspberry Pi Pico W
A Raspberry Pi Pico W can become an asynchronous web server to control a LED from any browser. The project, by Rui Santos and Sara Santos, uses Arduino IDE and three specific libraries. The result is a web page with two buttons that turn the component connected to GPIO 2 on and off.
The expansion board for Raspberry Pi Pico simplifies the wiring, but a breadboard and jumper wires are enough. The circuit requires a LED and a 220 Ohm resistor in series. The code works with few components and can be adapted to more complex projects.
How the asynchronous web server worksThe Pico W is configured as a Wi-Fi access point and creates a server on port 80. The libraries WiFi.h, RPAsyncTCP.h, and ESPAsyncWebServer.h handle connections in a non-blocking way. This means the microcontroller responds to requests without stopping program execution.
The web page comes from an HTML template that includes the current LED state. When you click a button, the browser sends a GET request to ‘/lighton’ or ‘/lightoff’. The server intercepts the request, changes the GPIO state, and responds with the updated page.
The processor function replaces the %STATE% placeholder in the template with the current state. This way the page always shows whether the LED is on or off. The request-response cycle is fast and does not require manual refreshes.
An asynchronous server handles multiple requests at the same time without blocking the microcontroller. Synchronous servers, on the other hand, stop everything while processing a connection. This difference makes the Pico W more responsive and suitable for controlling outputs in real time.
In addition, asynchronous handling reduces resource usage and improves network stability. The project demonstrates an efficient approach for home automation and remote device control. You can extend the code to other GPIOs or to sensors connected to the board.
- Wi-Fi as access point
- Port 80 for HTTP requests
- GPIO 2 for the LED
- 220 Ohm resistor
- HTML template with dynamic state
To replicate the project you need few components. Both the Raspberry Pi Pico W and the Pico 2W work with the same code. The plug-and-play kit for Pico also includes everything needed to get started right away.
Programming with Arduino IDEArduino IDE simplifies the configuration of the Pico W. You need to install the board support and then add the libraries from the Library Manager. The code is compact and well commented, so it is suitable even for those taking their first steps with web servers.
The project page explains the procedure step by step. Once the firmware is uploaded, the Pico creates a Wi-Fi network with a default name. Connect to the network from your phone or PC and open the IP address shown in the code.
Finally, the project is a great starting point for more ambitious experiments. You can add more LEDs, sensors, or a richer user interface. The asynchronous server remains the heart of the system and handles everything smoothly.
Source: https://randomnerdtutorials.com/raspberry-pi-pico-web-server-outputs-arduino/
The post Asynchronous Web Server on Raspberry Pi Pico W appeared first on Open Electronics.
Asynchronous Web Server on Raspberry Pi Pico W
A Raspberry Pi Pico W can become an asynchronous web server to control a LED from any browser. The project, by Rui Santos and Sara Santos, uses Arduino IDE and three specific libraries. The result is a web page with two buttons that turn the component connected to GPIO 2 on and off.
The expansion board for Raspberry Pi Pico simplifies the wiring, but a breadboard and jumper wires are enough. The circuit requires a LED and a 220 Ohm resistor in series. The code works with few components and can be adapted to more complex projects.
How the asynchronous web server worksThe Pico W is configured as a Wi-Fi access point and creates a server on port 80. The libraries WiFi.h, RPAsyncTCP.h, and ESPAsyncWebServer.h handle connections in a non-blocking way. This means the microcontroller responds to requests without stopping program execution.
The web page comes from an HTML template that includes the current LED state. When you click a button, the browser sends a GET request to ‘/lighton’ or ‘/lightoff’. The server intercepts the request, changes the GPIO state, and responds with the updated page.
The processor function replaces the %STATE% placeholder in the template with the current state. This way the page always shows whether the LED is on or off. The request-response cycle is fast and does not require manual refreshes.
An asynchronous server handles multiple requests at the same time without blocking the microcontroller. Synchronous servers, on the other hand, stop everything while processing a connection. This difference makes the Pico W more responsive and suitable for controlling outputs in real time.
In addition, asynchronous handling reduces resource usage and improves network stability. The project demonstrates an efficient approach for home automation and remote device control. You can extend the code to other GPIOs or to sensors connected to the board.
- Wi-Fi as access point
- Port 80 for HTTP requests
- GPIO 2 for the LED
- 220 Ohm resistor
- HTML template with dynamic state
To replicate the project you need few components. Both the Raspberry Pi Pico W and the Pico 2W work with the same code. The plug-and-play kit for Pico also includes everything needed to get started right away.
Programming with Arduino IDEArduino IDE simplifies the configuration of the Pico W. You need to install the board support and then add the libraries from the Library Manager. The code is compact and well commented, so it is suitable even for those taking their first steps with web servers.
The project page explains the procedure step by step. Once the firmware is uploaded, the Pico creates a Wi-Fi network with a default name. Connect to the network from your phone or PC and open the IP address shown in the code.
Finally, the project is a great starting point for more ambitious experiments. You can add more LEDs, sensors, or a richer user interface. The asynchronous server remains the heart of the system and handles everything smoothly.
Source: https://randomnerdtutorials.com/raspberry-pi-pico-web-server-outputs-arduino/
The post Asynchronous Web Server on Raspberry Pi Pico W appeared first on Open Electronics.
Upline: a minimal serial protocol for 8-bit IoT
Upline is a minimal serial protocol that turns any microcontroller into an IoT device. The project sheet describes a system based on newline-delimited ASCII records, with a complete Arduino implementation in a single header. The project, by smlcrft, targets 8-bit chips with very limited resources.
The operation is simple. The byte stream is split into lines using LF or CR terminators, ignoring empty lines and those that do not start with the ‘^’ character. Each line is a list of independent entries, delimited by the same ‘^’ character. Each entry represents an operation on a specific key.
How the Upline protocol worksEntries are only processed if fully delimited by two carets. This way partial data is never applied, and an interrupted communication does not leave the device in an inconsistent state. Writes are confirmed via an echo of the value actually in use: this distinguishes a rejection from a loss of communication.
A periodic heartbeat demonstrates that the device is alive and speaks the Upline protocol. This limits the receiver’s wait time, which immediately knows if the node is operational. The protocol also supports escaping special characters with six symbolic sequences, and does not require floating-point numbers: it uses the fixN format for decimals.
- 4,060 bytes of flash on ATmega328P, 358 bytes of SRAM
- 3,168 bytes of flash on ATtiny85, 253 bytes of SRAM
- 2,100 bytes of flash on ATtiny85 in transmit-only mode
- 98 bytes for a universal line reader on ATmega328P
The numbers are remarkable for a complete protocol. On ATmega328P, 4,060 bytes of flash and 358 bytes of SRAM are needed. On ATtiny85, consumption drops to 3,168 bytes, and in transmit-only mode to 2,100 bytes. The project sheet also reports 98 bytes for a universal line reader on ATmega328P.
Why Upline matters to makersUpline lets you turn any microcontroller into an IoT device with a minimal, efficient, and robust protocol. The philosophy is the opposite of heavy frameworks: here everything fits in one header and runs even on 8-bit chips with only a few hundred free bytes. An Arduino Nano ESP32 board can use the same protocol as an ATtiny85, simplifying communication between heterogeneous nodes.
The protocol is particularly suited to those building distributed sensors, remote actuators, or small monitoring nodes. Moreover, the echo confirmation makes the system reliable even over noisy radio links. To connect a node to a PC and read the record stream, just use a 3.3 V / 5 V USB-serial converter: Upline speaks over any UART.
Getting started with UplineTo start, simply download the upline-arduino header and include it in an Arduino project. The fact sheet lists support for ATmega328P, ATtiny85, SAMD21, ESP32, and RP2040, among others. An Uno R3 with an ATmega328 is a great test bench to learn the protocol without soldering anything: those are the 4,060 bytes of flash measured by the author.
The source code is a single header file, so integration is immediate. No external libraries or complex build tools are needed. A USB ATtiny85 board is instead the project’s edge case: 3,168 bytes of flash and 253 of SRAM, and the protocol fits entirely inside.
Finally, the project documentation reports precise numbers for each configuration. This helps choose the right microcontroller based on flash and SRAM budget. For the smallest projects, transmit-only mode on ATtiny85 requires just 112 bytes of SRAM.
Source: https://github.com/smlcrft/upline-serial-protocol
Related productsThe post Upline: a minimal serial protocol for 8-bit IoT appeared first on Open Electronics.
Upline: a minimal serial protocol for 8-bit IoT
Upline is a minimal serial protocol that turns any microcontroller into an IoT device. The project sheet describes a system based on newline-delimited ASCII records, with a complete Arduino implementation in a single header. The project, by smlcrft, targets 8-bit chips with very limited resources.
The operation is simple. The byte stream is split into lines using LF or CR terminators, ignoring empty lines and those that do not start with the ‘^’ character. Each line is a list of independent entries, delimited by the same ‘^’ character. Each entry represents an operation on a specific key.
How the Upline protocol worksEntries are only processed if fully delimited by two carets. This way partial data is never applied, and an interrupted communication does not leave the device in an inconsistent state. Writes are confirmed via an echo of the value actually in use: this distinguishes a rejection from a loss of communication.
A periodic heartbeat demonstrates that the device is alive and speaks the Upline protocol. This limits the receiver’s wait time, which immediately knows if the node is operational. The protocol also supports escaping special characters with six symbolic sequences, and does not require floating-point numbers: it uses the fixN format for decimals.
- 4,060 bytes of flash on ATmega328P, 358 bytes of SRAM
- 3,168 bytes of flash on ATtiny85, 253 bytes of SRAM
- 2,100 bytes of flash on ATtiny85 in transmit-only mode
- 98 bytes for a universal line reader on ATmega328P
The numbers are remarkable for a complete protocol. On ATmega328P, 4,060 bytes of flash and 358 bytes of SRAM are needed. On ATtiny85, consumption drops to 3,168 bytes, and in transmit-only mode to 2,100 bytes. The project sheet also reports 98 bytes for a universal line reader on ATmega328P.
Why Upline matters to makersUpline lets you turn any microcontroller into an IoT device with a minimal, efficient, and robust protocol. The philosophy is the opposite of heavy frameworks: here everything fits in one header and runs even on 8-bit chips with only a few hundred free bytes. An Arduino Nano ESP32 board can use the same protocol as an ATtiny85, simplifying communication between heterogeneous nodes.
The protocol is particularly suited to those building distributed sensors, remote actuators, or small monitoring nodes. Moreover, the echo confirmation makes the system reliable even over noisy radio links. To connect a node to a PC and read the record stream, just use a 3.3 V / 5 V USB-serial converter: Upline speaks over any UART.
Getting started with UplineTo start, simply download the upline-arduino header and include it in an Arduino project. The fact sheet lists support for ATmega328P, ATtiny85, SAMD21, ESP32, and RP2040, among others. An Uno R3 with an ATmega328 is a great test bench to learn the protocol without soldering anything: those are the 4,060 bytes of flash measured by the author.
The source code is a single header file, so integration is immediate. No external libraries or complex build tools are needed. A USB ATtiny85 board is instead the project’s edge case: 3,168 bytes of flash and 253 of SRAM, and the protocol fits entirely inside.
Finally, the project documentation reports precise numbers for each configuration. This helps choose the right microcontroller based on flash and SRAM budget. For the smallest projects, transmit-only mode on ATtiny85 requires just 112 bytes of SRAM.
Source: https://github.com/smlcrft/upline-serial-protocol
Related productsThe post Upline: a minimal serial protocol for 8-bit IoT appeared first on Open Electronics.
Y2K Wrist Sequencer: Retro Music with ESP32
The Y2K wrist sequencer is a musical device worn like a watch. It composes music by selecting sounds for each step and playing them back in sequence. The transparent 3D-printed case and snap-band bracelet make it a fashion accessory as well as an instrument. The project comes from 3DSage, who chose simple components and a retro aesthetic that hits the mark.
The heart of the system is an ESP32, which handles the sequencer logic and sound generation. A rotary encoder enables the standard sequencer workflows: scroll through steps, select a sound, and store it in the desired position. The LCD display shows the state of the composition, while the speaker plays the tones. There is also a headphone jack for private listening.
How the Y2K wrist sequencer worksThe operation is simple and straightforward. For each step, the user selects a sound to store in that position, such as a square-wave A note at 440Hz. The rotary encoder allows navigating between options and confirming choices. The touch pins, made from brass bar, cover an octave and make the device work more like a Stylophone synthesizer. The sequential playback lets you hear all stored sounds, creating a rhythmic melody.
The ESP32 can produce more complex waveforms, but the basic square-wave tones chosen for the default sounds fit the aesthetic perfectly. This approach keeps the project simple and true to the Y2K spirit. Additionally, the choice of a rechargeable AA battery makes the device portable and easy to recharge. The transparent PETG case adds a visual touch that recalls late-1990s gadgets.
Why this project is interestingIt is a simple and stylish way to make music, with a retro Y2K aesthetic that hits the nostalgia sweet spot. You don’t need to be a synthesis expert to use it: the controls are immediate and the visual feedback on the display guides you step by step. Moreover, the project is fully reproducible with easily available components. To get started you need only a few parts: an ESP32 board with 32 GPIOs, a 12mm rotary encoder with knob, and a 0.25-watt speaker. The transparent case is printed in PETG, the same material chosen by 3DSage.
The choice of the rotary encoder is spot-on for physical interaction: rotation and pressure give tactile feedback that recalls old synthesizers. The brass pins, on the other hand, add a live performance element. The result is a device that can be used both for planned composition and for improvisation. Thanks to the transparent case, you can see the internal circuit, a detail makers will appreciate.
How to remake the projectTo build the Y2K wrist sequencer you need few components. Besides the ESP32, you need a rotary encoder, an LCD display, a speaker, and a rechargeable AA battery. The touch pins are made from a brass bar, while the case is 3D-printed in transparent PETG. The snap-band bracelet completes the wearable design.
- ESP32 for logic and sound generation
- Rotary encoder for navigation and selection
- LCD display for visual feedback
- Speaker and headphone jack for audio output
- Rechargeable AA battery for power
- Brass bar for touch pins
- Transparent PETG for the 3D-printed case
Assembly requires some soldering and 3D printing of the case. Once assembled, the device is worn on the wrist and you can start composing. The sequential playback makes everything immediate: press the pins, select sounds, and listen to the result. The 3DSage video shows the step-by-step build, from printing the case to mounting the brass pins.
For power, a rechargeable AA battery is sufficient thanks to the ESP32’s low consumption. If you want to experiment with other boards in the ESP32 family, you can easily adapt the code. The project is a great starting point for anyone wanting to explore music synthesis with open-source hardware. Finally, the transparent case is customizable: you can change the color or add decorations.
Source: https://youtu.be/RrWw1gm3UEo?si=SbXtYVeqWxJHxh0B
Related productsThe post Y2K Wrist Sequencer: Retro Music with ESP32 appeared first on Open Electronics.
Y2K Wrist Sequencer: Retro Music with ESP32
The Y2K wrist sequencer is a musical device worn like a watch. It composes music by selecting sounds for each step and playing them back in sequence. The transparent 3D-printed case and snap-band bracelet make it a fashion accessory as well as an instrument. The project comes from 3DSage, who chose simple components and a retro aesthetic that hits the mark.
The heart of the system is an ESP32, which handles the sequencer logic and sound generation. A rotary encoder enables the standard sequencer workflows: scroll through steps, select a sound, and store it in the desired position. The LCD display shows the state of the composition, while the speaker plays the tones. There is also a headphone jack for private listening.
How the Y2K wrist sequencer worksThe operation is simple and straightforward. For each step, the user selects a sound to store in that position, such as a square-wave A note at 440Hz. The rotary encoder allows navigating between options and confirming choices. The touch pins, made from brass bar, cover an octave and make the device work more like a Stylophone synthesizer. The sequential playback lets you hear all stored sounds, creating a rhythmic melody.
The ESP32 can produce more complex waveforms, but the basic square-wave tones chosen for the default sounds fit the aesthetic perfectly. This approach keeps the project simple and true to the Y2K spirit. Additionally, the choice of a rechargeable AA battery makes the device portable and easy to recharge. The transparent PETG case adds a visual touch that recalls late-1990s gadgets.
Why this project is interestingIt is a simple and stylish way to make music, with a retro Y2K aesthetic that hits the nostalgia sweet spot. You don’t need to be a synthesis expert to use it: the controls are immediate and the visual feedback on the display guides you step by step. Moreover, the project is fully reproducible with easily available components. To get started you need only a few parts: an ESP32 board with 32 GPIOs, a 12mm rotary encoder with knob, and a 0.25-watt speaker. The transparent case is printed in PETG, the same material chosen by 3DSage.
The choice of the rotary encoder is spot-on for physical interaction: rotation and pressure give tactile feedback that recalls old synthesizers. The brass pins, on the other hand, add a live performance element. The result is a device that can be used both for planned composition and for improvisation. Thanks to the transparent case, you can see the internal circuit, a detail makers will appreciate.
How to remake the projectTo build the Y2K wrist sequencer you need few components. Besides the ESP32, you need a rotary encoder, an LCD display, a speaker, and a rechargeable AA battery. The touch pins are made from a brass bar, while the case is 3D-printed in transparent PETG. The snap-band bracelet completes the wearable design.
- ESP32 for logic and sound generation
- Rotary encoder for navigation and selection
- LCD display for visual feedback
- Speaker and headphone jack for audio output
- Rechargeable AA battery for power
- Brass bar for touch pins
- Transparent PETG for the 3D-printed case
Assembly requires some soldering and 3D printing of the case. Once assembled, the device is worn on the wrist and you can start composing. The sequential playback makes everything immediate: press the pins, select sounds, and listen to the result. The 3DSage video shows the step-by-step build, from printing the case to mounting the brass pins.
For power, a rechargeable AA battery is sufficient thanks to the ESP32’s low consumption. If you want to experiment with other boards in the ESP32 family, you can easily adapt the code. The project is a great starting point for anyone wanting to explore music synthesis with open-source hardware. Finally, the transparent case is customizable: you can change the color or add decorations.
Source: https://youtu.be/RrWw1gm3UEo?si=SbXtYVeqWxJHxh0B
Related productsThe post Y2K Wrist Sequencer: Retro Music with ESP32 appeared first on Open Electronics.
Motorized welding turntable with Arduino UNO
Building a motorized welding turntable solves a common problem: welding around circular or cylindrical objects without walking around the workpiece. Greenhill Forge’s project creates a large motorized lazy Susan with adjustable speed and a modest budget. The table rotates the piece under the torch, so the welder stays still and both hands are free to guide the arc.
The heart of the system is a stepper motor mounted under the table surface. Rotation passes through a gear reducer and a standard spider coupling, which transmits motion to the top plate. The reducer increases torque and lowers speed, so the table moves smoothly even with heavy parts. Everything is controlled by an Arduino UNO Rev3 board, which drives the motor and reads user commands.
Speed control and user interfaceThe user adjusts rotation speed with a rotary encoder. The knob is comfortable to use even with welding gloves. A small OLED screen shows the set speed, so control is immediate and precise. The firmware on the Arduino UNO reads the encoder, updates the display, and drives the stepper motor with the correct pulse frequency.
For those who want to replicate the project, choosing components is straightforward. A Uno R3 with ATmega328 is the same board used in the original project. A NEMA 17 stepper motor rated at 1.2 A has the right torque for a table of this size, which rotates through a reducer anyway. A 12 mm rotary encoder with knob connects directly to digital pins and can be turned even with welding gloves. Finally, a 128×64 OLED display shows parameters clearly.
- Stepper motor with gear reducer for torque
- Spider coupling to connect shaft and table
- Lazy Susan bearing for rotating support
- Rotary encoder for adjustment
- OLED display for visual feedback
An important detail is grounding management. In welding, current must return to the generator through the workpiece. If the turntable is not grounded, current passes through the lazy Susan bearings, causing arcs that damage them quickly. Greenhill Forge solves the problem with a ground strap that runs through the motor shaft.
The strap maintains conductivity between the table surface and the workpiece. This way, welding current has a dedicated path and the bearings stay protected. The strap is a wear item, but with normal use it should last a long time. Also, replacement cost is minimal, so maintenance stays economical.
The project is documented in a Greenhill Forge video, which follows the entire process: cutting and welding the frame, mounting the motor under the table, and grounding. At the end, the table is shown in action during a real weld, with speed adjusted on the fly.
Why build a turntableThis project appeals to both beginners and experienced welders. Construction is simple and requires few tools. Moreover, electronic control with Arduino UNO opens the door to future modifications, such as programmed rotation or foot pedal control. The modest cost makes the project accessible to many makers.
The welding turntable is an example of how a stepper motor, an encoder, and an OLED display can turn a simple support into a professional tool. Well-designed grounding protects components and ensures quality welds. Finally, adjustable speed lets you adapt rotation to any type of work.
Source: https://youtu.be/WQSzLMcc9zQ?si=DB7dDrRwHsfXU1OI
Related productsThe post Motorized welding turntable with Arduino UNO appeared first on Open Electronics.
Motorized welding turntable with Arduino UNO
Building a motorized welding turntable solves a common problem: welding around circular or cylindrical objects without walking around the workpiece. Greenhill Forge’s project creates a large motorized lazy Susan with adjustable speed and a modest budget. The table rotates the piece under the torch, so the welder stays still and both hands are free to guide the arc.
The heart of the system is a stepper motor mounted under the table surface. Rotation passes through a gear reducer and a standard spider coupling, which transmits motion to the top plate. The reducer increases torque and lowers speed, so the table moves smoothly even with heavy parts. Everything is controlled by an Arduino UNO Rev3 board, which drives the motor and reads user commands.
Speed control and user interfaceThe user adjusts rotation speed with a rotary encoder. The knob is comfortable to use even with welding gloves. A small OLED screen shows the set speed, so control is immediate and precise. The firmware on the Arduino UNO reads the encoder, updates the display, and drives the stepper motor with the correct pulse frequency.
For those who want to replicate the project, choosing components is straightforward. A Uno R3 with ATmega328 is the same board used in the original project. A NEMA 17 stepper motor rated at 1.2 A has the right torque for a table of this size, which rotates through a reducer anyway. A 12 mm rotary encoder with knob connects directly to digital pins and can be turned even with welding gloves. Finally, a 128×64 OLED display shows parameters clearly.
- Stepper motor with gear reducer for torque
- Spider coupling to connect shaft and table
- Lazy Susan bearing for rotating support
- Rotary encoder for adjustment
- OLED display for visual feedback
An important detail is grounding management. In welding, current must return to the generator through the workpiece. If the turntable is not grounded, current passes through the lazy Susan bearings, causing arcs that damage them quickly. Greenhill Forge solves the problem with a ground strap that runs through the motor shaft.
The strap maintains conductivity between the table surface and the workpiece. This way, welding current has a dedicated path and the bearings stay protected. The strap is a wear item, but with normal use it should last a long time. Also, replacement cost is minimal, so maintenance stays economical.
The project is documented in a Greenhill Forge video, which follows the entire process: cutting and welding the frame, mounting the motor under the table, and grounding. At the end, the table is shown in action during a real weld, with speed adjusted on the fly.
Why build a turntableThis project appeals to both beginners and experienced welders. Construction is simple and requires few tools. Moreover, electronic control with Arduino UNO opens the door to future modifications, such as programmed rotation or foot pedal control. The modest cost makes the project accessible to many makers.
The welding turntable is an example of how a stepper motor, an encoder, and an OLED display can turn a simple support into a professional tool. Well-designed grounding protects components and ensures quality welds. Finally, adjustable speed lets you adapt rotation to any type of work.
Source: https://youtu.be/WQSzLMcc9zQ?si=DB7dDrRwHsfXU1OI
Related productsThe post Motorized welding turntable with Arduino UNO appeared first on Open Electronics.
RFID with RC522: Radio-Frequency Identification with Arduino
Let’s get to know and learn how to use a board for RF tag identification, easily paired with Arduino.
We have covered radio-frequency identification, better known as RFID, several times before; for example, in issue no. 254 we dedicated an in-depth look at it with a thorough theoretical introduction and some usage examples based on the RFID PN522 module, accompanied by the ever-present Arduino board. In this article, we pick up the discussion again by experimenting with another module, the RFID-RC522, based on the MFRC522 chip produced by NXP (the datasheet is available at the web link https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf).
The RFID-RC522 moduleThe MFRC522 is a highly integrated RFID reader/writer for contactless communication at 13.56 MHz, supporting the ISO/IEC14443A/MIFARE and NTAG standards.
The transmitter inside the MFRC522 can drive an antenna designed to communicate with cards and transponders without additional active circuits. The internal receiver can efficiently demodulate and decode signals from cards and transponders compatible with the standards listed above.
The MFRC522 supports the MF1xxS20, MF1xxS70, and MF1xxS50 models. It also supports contactless communication with MIFARE transfer rates up to 848 kB (kiloBaud) in bidirectional mode.
The MFRC522 is compatible with all variants of the MIFARE identification protocols MIFARE Mini, MIFARE 1K, MIFARE 4K, MIFARE Ultralight, MIFARE DESFire EV1, and MIFARE Plus RF, grouped under the generic term MIFARE.
Below we summarize the main technical features of the module:
- analog circuit to demodulate and decode responses;
- buffered drivers for connecting an antenna with a reduced number of external components;
- supports ISO/IEC 14443 A/MIFARE and NTAG;
- typical operating distance in read/write mode up to 50 mm depending on antenna size and tuning;
- supports MF1xxS20, MF1xxS70, and MF1xxS50 encryption in read/write mode;
- supports ISO/IEC 14443 with high transfer rate communication up to 848 kbaud;
- supports MFIN/MFOUT;
- additional internal power supply to the smart card IC connected via MFIN/MFOUT;
- supported host interfaces: SPI up to 10 Mbit/s, I²C-Bus up to 400 kBd in Fast mode, up to 3400 kBd in High-speed mode, serial UART RS232 up to 1,228.8 kB/s, with voltage levels depending on the pin supply voltage;
- the FIFO buffer manages sending and receiving at 64 bytes;
- flexible interrupt modes;
- hard reset with low-power function;
- software power-down;
- programmable timer;
- supply voltage from 2.5 to 3.3 V;
- programmable I/O pins.
The RFID-RC522 module is detailed in Fig. 1, where you can see all the available connections.
Fig. 1 The RFID-RC522 module
Since all current libraries for using the module with Arduino reuse the SPI connection, we will focus only on that; Fig. 2 illustrates the connection to make for the subsequent tests with Arduino UNO.
Fig. 2 RC522_ISP connections
In Table 1 we describe the connections analytically with their signals: on the left are those of the Arduino UNO and on the right the contacts of the RFID-RC522 module with the corresponding wire colors in the diagram in Fig. 2. The IRQ pin of the RFID module should be left unconnected because we do not manage it in this project and do not need it.
Table 1 Connections between the RFID-RC522 module and Arduino
Of course, you must be very careful, because swapping just two wires will cause the module to fail; another important thing is power: the module requires 3.3 V, and the corresponding pin on Arduino is right next to the 5 V one; a moment of distraction would almost certainly damage the module.
The board (the RFID module used in the project) comes with two 8-pin strip headers (one straight and one at 90°) to solder as you prefer into the appropriate signal holes, an RFID Tag Card, and an RFID keychain Tag for initial testing.
Libraries for RC522Using this module is made easier by the availability of specific libraries, of which we have selected two: the one from Velleman and the one written by Miguel Balboa.
Velleman: it is a minimal library consisting of only two files (RFID.h and RFID.cpp). Once downloaded from the link: https://www.velleman.eu/downloads/29/vma405_library.zip, you need to include it by opening a new sketch with an updated version of the IDE (in our case 1.8.12). Run the command Sketch – Include Library – Add .ZIP Library… and select the .zip file (Fig. 3), then close the IDE; it will be available when you reopen it.
Fig. 3 Including the vma405 library
Miguel Balboa: this library, much more powerful and articulated, is recommended by the official Arduino website; it is constantly updated, so it is always best to go to the link https://www.arduino.cc/reference/en/libraries/mfrc522/ or directly to the GitHub https://github.com/miguelbalboa/rfid; at the time of writing, the latest version is 1.4.8.
Its inclusion in the IDE is done in the same way as seen before. This library is quite demanding and requires considerable skills in RFID and programming to exploit it, so we only point it out to more experienced readers, while for the test we will see later we will use the one distributed by Velleman.
Functionality testLet’s start with a test to verify the connections and the correct installation of the vma405 library. We have prepared a sketch named “RFID_TAG_CODE”; open it in the IDE and upload it to the Arduino UNO, then open the Serial Monitor, which will show the message “Avvicina un Tag al Modulo” (Bring a Tag close to the Module); at this point, bring the Tag close to the part of the module where the radio wave symbols are silkscreened (Fig. 4).
Fig. 4 Reading a Tag with the RC522 module
Keep in mind that the module should always be kept away from devices that can generate electric or electromagnetic fields, otherwise it might not work correctly.
The moment the Tag is recognized, the module reads its UID (unique identification code) and displays it on the Serial Monitor, both in decimal and hexadecimal format; in Fig. 5 we can observe the successive reading of two Tags.
Fig. 5 Reading the UID of two Tags
If after the first identification you bring the same Tag close again, nothing will happen because we have not included an alternative action in the sketch; bringing another Tag close instead will give its UID in both formats.
When this test succeeds, you need to decide which Tag will be the “System Administrator” of the circuit we have prepared for experimenting with this module and note the five decimal numbers that make up its UID. For our example, we will use the first group visible in the figure (197, 5, 190, 35, 93).
Access control projectWith the help of a breadboard and very few other components, let’s now build a circuit to simulate an access control system using RFID technology with our RC522 module.
The sketch we have prepared can be downloaded and is called Access_Control.rar; it consists of two tabs, and the folder obtained from decompressing the file must be placed in the sketch folder of your IDE; the vma405_library must have been installed beforehand.
The idea is a hypothetical access control system, where the acceptance of a Tag is indicated by the alternating on/off of a blue LED, while rejection is represented by a red LED turning on for about 3 seconds.
Authorized Tags are pre-stored in the EEPROM of the Arduino microcontroller; our sketch supports up to three, but they can be increased up to the availability of the EEPROM. Storage only happens with prior authorization from the “System Administrator,” who has an RFID CARD Tag whose UID must be manually entered in the sketch and which, once read by the module, allows other Tags to be brought close to accredit them and store them in the EEPROM.
From this point on, when you bring an authorized tag near the module, the blue LED will turn on or off with each pass, toggling its state. The red LED, on the other hand, will light up for three seconds when someone tries to gain access with an unregistered tag, effectively denying authorization, and then it will turn off.
Before uploading the sketch to the Arduino, you need to open it and assign the corresponding decimal values of the chosen tag’s UID to the five variables dec_code0 through dec_code4 (Fig. 6), replacing the pre-stored values you will find there.
Fig. 6 Entering the administrator UID in the sketch
At this point you can upload the sketch to the Arduino and then disconnect the USB cable to remove power. Next, move on to building the practical layout shown in Fig. 7, which explains how to connect all the required components.
Fig. 7 Wiring diagram of the access control
The materials needed to build the project are:
- RFID-RC522 module
- Arduino UNO
- Breadboard with side power rails (red and black, or red and blue)
- 6×6 mm push button
- Red LED
- Blue LED (or another color of your choice)
- 2 resistors of 220 Ohm
- 1 resistor of 10 kOhm
- 5 M-M jumper wires
- 7 M-F jumper wires
- 1 jumper bridge, 3-pin
- 1 jumper bridge, 5-pin
- 1 jumper bridge, 19-pin
- 4 tags, one of which marked as administrator
Note that regarding jumper wires and bridges, we provided the list to replicate our exact practical layout; of course you can make any variation, as long as you correctly make the proposed connections, otherwise the circuit will not work. Above all, be extremely careful not to reverse the power supply (3.3V and GND), otherwise you risk burning the module!
A special note about the breadboard: during our tests we came across a model with the power rails interrupted in the middle section. This was actually clearly indicated by the break in the red and blue silkscreen lines, but since it is unusual, we initially did not notice it. As a result, the RC522 module’s LED still turned on (due to current carried by the signals), but tag reading did not work. We therefore had to add two jumper wires to connect the two rails along their entire length (Fig. 8), i.e., to bridge them.
Fig. 8 Detail of the connection of the breadboard power rails
Once the circuit is complete on the breadboard and the connections are checked, to begin simply reconnect the USB cable from the PC to the Arduino UNO board. You will see the RC522 module’s red LED light up (but as explained earlier, this does not indicate correct power supply), while the two red and blue LEDs on the breadboard remain off.
Now open the Serial Monitor of the Arduino IDE, and the message “Controllo accessi attivo” will appear. The first operation to perform is to bring the Administrator tag near the module. If everything is in order, the two LEDs will blink simultaneously three times and remain on; the Serial Monitor will also show the message visible in Fig. 9, indicating that Administrator mode is active.
Fig. 9 Administrator mode
If at first power-up a number other than 0 appears (usually it will be 255), you need to reset the EEPROM. Simply press the push button mounted on the breadboard to achieve the desired result (Fig. 10).
Fig. 10 EEPROM reset
After the reset, you will exit Administrator mode and the LEDs will turn off. You must pass the Administrator tag again to re-enter, then simply bring the tag you want to authorize near the module to store its UID (Fig. 11).
Fig. 11 Storing an authorized tag
This operation can be performed for a maximum of three tags; after that, no more can be stored unless you modify the sketch accordingly.
Daily use of the systemAt this point we can observe the circuit’s behavior depending on the type of tag we bring near the RFID reader; there are two possibilities.
Unregistered tag: the red LED turns on for about three seconds, then turns off; authorization is denied.
Registered tag: if the blue LED is off, it turns on, indicating that authorization has been granted; the LED stays on until you pass the same tag or another registered tag, at which point it turns off.
One last curiosity: if you lack other tags to simulate unauthorized access, you can use your own smartphone. If you have a phone with an NFC chip running Android 5.0 or later, simply enable NFC in the settings and then use the smartphone as if it were a tag.
In fact, when you bring it near the module with the chip side facing it, it will be recognized as a tag, but with a peculiarity that prevents its use as an authorized tag: with each new read, the UID turns out to be different from the previous read. This is easily verifiable with the “RFID_TAG_CODE” sketch. So even if you store the chip as authorized, it will not be recognized on subsequent reads.
In some rare cases, the smartphone may need a specific app to function as a tag. Simply download “NFC Tools” from the Play Store and leave it active, without doing anything else.
ConclusionsWe end this article with a suggestion: as you can easily imagine, this project can be expanded by adding, for example, a relay driven by the same pin as the blue LED, which would allow you to activate an actuator such as an electric lock. The only limits are those of your imagination.
Naturally, the greater the complexity of the expansion, the more variations and implementations you will need to make to the sketch, but it will all be a useful programming exercise that will increase your skills and give you great satisfaction.
The post RFID with RC522: Radio-Frequency Identification with Arduino appeared first on Open Electronics.
RFID with RC522: Radio-Frequency Identification with Arduino
Let’s get to know and learn how to use a board for RF tag identification, easily paired with Arduino.
We have covered radio-frequency identification, better known as RFID, several times before; for example, in issue no. 254 we dedicated an in-depth look at it with a thorough theoretical introduction and some usage examples based on the RFID PN522 module, accompanied by the ever-present Arduino board. In this article, we pick up the discussion again by experimenting with another module, the RFID-RC522, based on the MFRC522 chip produced by NXP (the datasheet is available at the web link https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf).
The RFID-RC522 moduleThe MFRC522 is a highly integrated RFID reader/writer for contactless communication at 13.56 MHz, supporting the ISO/IEC14443A/MIFARE and NTAG standards.
The transmitter inside the MFRC522 can drive an antenna designed to communicate with cards and transponders without additional active circuits. The internal receiver can efficiently demodulate and decode signals from cards and transponders compatible with the standards listed above.
The MFRC522 supports the MF1xxS20, MF1xxS70, and MF1xxS50 models. It also supports contactless communication with MIFARE transfer rates up to 848 kB (kiloBaud) in bidirectional mode.
The MFRC522 is compatible with all variants of the MIFARE identification protocols MIFARE Mini, MIFARE 1K, MIFARE 4K, MIFARE Ultralight, MIFARE DESFire EV1, and MIFARE Plus RF, grouped under the generic term MIFARE.
Below we summarize the main technical features of the module:
- analog circuit to demodulate and decode responses;
- buffered drivers for connecting an antenna with a reduced number of external components;
- supports ISO/IEC 14443 A/MIFARE and NTAG;
- typical operating distance in read/write mode up to 50 mm depending on antenna size and tuning;
- supports MF1xxS20, MF1xxS70, and MF1xxS50 encryption in read/write mode;
- supports ISO/IEC 14443 with high transfer rate communication up to 848 kbaud;
- supports MFIN/MFOUT;
- additional internal power supply to the smart card IC connected via MFIN/MFOUT;
- supported host interfaces: SPI up to 10 Mbit/s, I²C-Bus up to 400 kBd in Fast mode, up to 3400 kBd in High-speed mode, serial UART RS232 up to 1,228.8 kB/s, with voltage levels depending on the pin supply voltage;
- the FIFO buffer manages sending and receiving at 64 bytes;
- flexible interrupt modes;
- hard reset with low-power function;
- software power-down;
- programmable timer;
- supply voltage from 2.5 to 3.3 V;
- programmable I/O pins.
The RFID-RC522 module is detailed in Fig. 1, where you can see all the available connections.
Fig. 1 The RFID-RC522 module
Since all current libraries for using the module with Arduino reuse the SPI connection, we will focus only on that; Fig. 2 illustrates the connection to make for the subsequent tests with Arduino UNO.
Fig. 2 RC522_ISP connections
In Table 1 we describe the connections analytically with their signals: on the left are those of the Arduino UNO and on the right the contacts of the RFID-RC522 module with the corresponding wire colors in the diagram in Fig. 2. The IRQ pin of the RFID module should be left unconnected because we do not manage it in this project and do not need it.
Table 1 Connections between the RFID-RC522 module and Arduino
Of course, you must be very careful, because swapping just two wires will cause the module to fail; another important thing is power: the module requires 3.3 V, and the corresponding pin on Arduino is right next to the 5 V one; a moment of distraction would almost certainly damage the module.
The board (the RFID module used in the project) comes with two 8-pin strip headers (one straight and one at 90°) to solder as you prefer into the appropriate signal holes, an RFID Tag Card, and an RFID keychain Tag for initial testing.
Libraries for RC522Using this module is made easier by the availability of specific libraries, of which we have selected two: the one from Velleman and the one written by Miguel Balboa.
Velleman: it is a minimal library consisting of only two files (RFID.h and RFID.cpp). Once downloaded from the link: https://www.velleman.eu/downloads/29/vma405_library.zip, you need to include it by opening a new sketch with an updated version of the IDE (in our case 1.8.12). Run the command Sketch – Include Library – Add .ZIP Library… and select the .zip file (Fig. 3), then close the IDE; it will be available when you reopen it.
Fig. 3 Including the vma405 library
Miguel Balboa: this library, much more powerful and articulated, is recommended by the official Arduino website; it is constantly updated, so it is always best to go to the link https://www.arduino.cc/reference/en/libraries/mfrc522/ or directly to the GitHub https://github.com/miguelbalboa/rfid; at the time of writing, the latest version is 1.4.8.
Its inclusion in the IDE is done in the same way as seen before. This library is quite demanding and requires considerable skills in RFID and programming to exploit it, so we only point it out to more experienced readers, while for the test we will see later we will use the one distributed by Velleman.
Functionality testLet’s start with a test to verify the connections and the correct installation of the vma405 library. We have prepared a sketch named “RFID_TAG_CODE”; open it in the IDE and upload it to the Arduino UNO, then open the Serial Monitor, which will show the message “Avvicina un Tag al Modulo” (Bring a Tag close to the Module); at this point, bring the Tag close to the part of the module where the radio wave symbols are silkscreened (Fig. 4).
Fig. 4 Reading a Tag with the RC522 module
Keep in mind that the module should always be kept away from devices that can generate electric or electromagnetic fields, otherwise it might not work correctly.
The moment the Tag is recognized, the module reads its UID (unique identification code) and displays it on the Serial Monitor, both in decimal and hexadecimal format; in Fig. 5 we can observe the successive reading of two Tags.
Fig. 5 Reading the UID of two Tags
If after the first identification you bring the same Tag close again, nothing will happen because we have not included an alternative action in the sketch; bringing another Tag close instead will give its UID in both formats.
When this test succeeds, you need to decide which Tag will be the “System Administrator” of the circuit we have prepared for experimenting with this module and note the five decimal numbers that make up its UID. For our example, we will use the first group visible in the figure (197, 5, 190, 35, 93).
Access control projectWith the help of a breadboard and very few other components, let’s now build a circuit to simulate an access control system using RFID technology with our RC522 module.
The sketch we have prepared can be downloaded and is called Access_Control.rar; it consists of two tabs, and the folder obtained from decompressing the file must be placed in the sketch folder of your IDE; the vma405_library must have been installed beforehand.
The idea is a hypothetical access control system, where the acceptance of a Tag is indicated by the alternating on/off of a blue LED, while rejection is represented by a red LED turning on for about 3 seconds.
Authorized Tags are pre-stored in the EEPROM of the Arduino microcontroller; our sketch supports up to three, but they can be increased up to the availability of the EEPROM. Storage only happens with prior authorization from the “System Administrator,” who has an RFID CARD Tag whose UID must be manually entered in the sketch and which, once read by the module, allows other Tags to be brought close to accredit them and store them in the EEPROM.
From this point on, when you bring an authorized tag near the module, the blue LED will turn on or off with each pass, toggling its state. The red LED, on the other hand, will light up for three seconds when someone tries to gain access with an unregistered tag, effectively denying authorization, and then it will turn off.
Before uploading the sketch to the Arduino, you need to open it and assign the corresponding decimal values of the chosen tag’s UID to the five variables dec_code0 through dec_code4 (Fig. 6), replacing the pre-stored values you will find there.
Fig. 6 Entering the administrator UID in the sketch
At this point you can upload the sketch to the Arduino and then disconnect the USB cable to remove power. Next, move on to building the practical layout shown in Fig. 7, which explains how to connect all the required components.
Fig. 7 Wiring diagram of the access control
The materials needed to build the project are:
- RFID-RC522 module
- Arduino UNO
- Breadboard with side power rails (red and black, or red and blue)
- 6×6 mm push button
- Red LED
- Blue LED (or another color of your choice)
- 2 resistors of 220 Ohm
- 1 resistor of 10 kOhm
- 5 M-M jumper wires
- 7 M-F jumper wires
- 1 jumper bridge, 3-pin
- 1 jumper bridge, 5-pin
- 1 jumper bridge, 19-pin
- 4 tags, one of which marked as administrator
Note that regarding jumper wires and bridges, we provided the list to replicate our exact practical layout; of course you can make any variation, as long as you correctly make the proposed connections, otherwise the circuit will not work. Above all, be extremely careful not to reverse the power supply (3.3V and GND), otherwise you risk burning the module!
A special note about the breadboard: during our tests we came across a model with the power rails interrupted in the middle section. This was actually clearly indicated by the break in the red and blue silkscreen lines, but since it is unusual, we initially did not notice it. As a result, the RC522 module’s LED still turned on (due to current carried by the signals), but tag reading did not work. We therefore had to add two jumper wires to connect the two rails along their entire length (Fig. 8), i.e., to bridge them.
Fig. 8 Detail of the connection of the breadboard power rails
Once the circuit is complete on the breadboard and the connections are checked, to begin simply reconnect the USB cable from the PC to the Arduino UNO board. You will see the RC522 module’s red LED light up (but as explained earlier, this does not indicate correct power supply), while the two red and blue LEDs on the breadboard remain off.
Now open the Serial Monitor of the Arduino IDE, and the message “Controllo accessi attivo” will appear. The first operation to perform is to bring the Administrator tag near the module. If everything is in order, the two LEDs will blink simultaneously three times and remain on; the Serial Monitor will also show the message visible in Fig. 9, indicating that Administrator mode is active.
Fig. 9 Administrator mode
If at first power-up a number other than 0 appears (usually it will be 255), you need to reset the EEPROM. Simply press the push button mounted on the breadboard to achieve the desired result (Fig. 10).
Fig. 10 EEPROM reset
After the reset, you will exit Administrator mode and the LEDs will turn off. You must pass the Administrator tag again to re-enter, then simply bring the tag you want to authorize near the module to store its UID (Fig. 11).
Fig. 11 Storing an authorized tag
This operation can be performed for a maximum of three tags; after that, no more can be stored unless you modify the sketch accordingly.
Daily use of the systemAt this point we can observe the circuit’s behavior depending on the type of tag we bring near the RFID reader; there are two possibilities.
Unregistered tag: the red LED turns on for about three seconds, then turns off; authorization is denied.
Registered tag: if the blue LED is off, it turns on, indicating that authorization has been granted; the LED stays on until you pass the same tag or another registered tag, at which point it turns off.
One last curiosity: if you lack other tags to simulate unauthorized access, you can use your own smartphone. If you have a phone with an NFC chip running Android 5.0 or later, simply enable NFC in the settings and then use the smartphone as if it were a tag.
In fact, when you bring it near the module with the chip side facing it, it will be recognized as a tag, but with a peculiarity that prevents its use as an authorized tag: with each new read, the UID turns out to be different from the previous read. This is easily verifiable with the “RFID_TAG_CODE” sketch. So even if you store the chip as authorized, it will not be recognized on subsequent reads.
In some rare cases, the smartphone may need a specific app to function as a tag. Simply download “NFC Tools” from the Play Store and leave it active, without doing anything else.
ConclusionsWe end this article with a suggestion: as you can easily imagine, this project can be expanded by adding, for example, a relay driven by the same pin as the blue LED, which would allow you to activate an actuator such as an electric lock. The only limits are those of your imagination.
Naturally, the greater the complexity of the expansion, the more variations and implementations you will need to make to the sketch, but it will all be a useful programming exercise that will increase your skills and give you great satisfaction.
The post RFID with RC522: Radio-Frequency Identification with Arduino appeared first on Open Electronics.
Open-Source FOC Driver for BLDC Motors: Sirojudin Munir’s Project
Sirojudin Munir has released an open-source FOC driver for BLDC and PMSM motors. The project includes firmware for STM32, hardware designed in KiCad, Gerber files, a BOM, and a Python GUI for control and monitoring. It is a complete resource for anyone who wants to build or study the vector control of a brushless motor. The permissive MIT license and the stated component cost of $28.58 make it accessible to many makers.
The heart of the system is the STM32F405 microcontroller, which runs the Field-Oriented Control calculations. The ADC reads current, the PWM drives the inverter, and SPI communicates with the magnetic encoder. The DRV8323RH gate driver manages the MOSFETs and also acts as a voltage regulator. The AS5047 encoder detects the rotor position, while the INA240A1 amplifier measures current with precision. All these components work together for efficient and responsive control.
How FOC control worksThe firmware implements the Field-Oriented Control algorithm to manage motor torque and speed. The self-commissioning process measures motor resistance and inductance and calibrates the encoder. This way, the driver adapts to the connected motor without manual intervention. Several control modes are available: current, speed, position, open-loop, and motor disable. This flexibility makes the project suitable for many practical applications.
- Current control to manage torque
- Speed control with encoder feedback
- Position control for precision applications
- Open-loop mode for quick tests
- Full motor disable for safety
The PyQt/PyQtGraph GUI allows real-time data visualization and sending commands to the driver. The Python tools include functions for calibration and monitoring. Additionally, the improved client written by Munir simplifies system tuning. The project is designed to be studied and modified, with clear documentation and well-organized files.
In addition to the redesigned hardware, Munir wrote new firmware and an improved client package for control and calibration.
The schematic and PCB are made in KiCad, with Gerber files ready for production. The board operates with voltages from 6 to 24 V and current up to 1 A. The 3-pin connector with 1.25 mm pitch makes motor connection easy. Those who want to study brushless control starting from something ready-made can look at a brushless motor driver with a Hall sensor: it does not do vector control, but it lets you see the inverter and power MOSFETs in action before making your own board. For testing, you will need a brushless motor.
The DRV8323RH gate driver is a key component: it drives the inverter MOSFETs and integrates a voltage regulator. The AS5047 magnetic encoder offers high resolution for rotor position. The INA240A1 measures current with a dedicated amplifier. These components are chosen to ensure reliable performance and good value for money.
Software tools and commissioningThe firmware compiles with PlatformIO in Visual Studio Code, starting from the STM32CubeMX configuration. The project board includes all the steps for commissioning. Self-commissioning automates the measurement of motor resistance and inductance. Encoder calibration is guided, reducing errors. Finally, the Python GUI lets you test the different control modes in real time.
Munir’s project is an excellent example of open-source technical documentation. It includes demonstration videos and clear instructions for reproduction. For those taking their first steps with brushless motors, this driver offers a solid foundation. Even those with experience can find interesting ideas in the design and firmware.
In summary, this is a complete, well-documented FOC driver with a permissive license. The component cost is low and the build quality is high. For anyone wanting to delve into brushless motor control, this is a project worth studying carefully. The combination of STM32, DRV8323RH, and AS5047 delivers remarkable performance in a compact format.
Source: https://github.com/sirojudinMunir/sf-motion
Related productsThe post Open-Source FOC Driver for BLDC Motors: Sirojudin Munir’s Project appeared first on Open Electronics.
Open-Source FOC Driver for BLDC Motors: Sirojudin Munir’s Project
Sirojudin Munir has released an open-source FOC driver for BLDC and PMSM motors. The project includes firmware for STM32, hardware designed in KiCad, Gerber files, a BOM, and a Python GUI for control and monitoring. It is a complete resource for anyone who wants to build or study the vector control of a brushless motor. The permissive MIT license and the stated component cost of $28.58 make it accessible to many makers.
The heart of the system is the STM32F405 microcontroller, which runs the Field-Oriented Control calculations. The ADC reads current, the PWM drives the inverter, and SPI communicates with the magnetic encoder. The DRV8323RH gate driver manages the MOSFETs and also acts as a voltage regulator. The AS5047 encoder detects the rotor position, while the INA240A1 amplifier measures current with precision. All these components work together for efficient and responsive control.
How FOC control worksThe firmware implements the Field-Oriented Control algorithm to manage motor torque and speed. The self-commissioning process measures motor resistance and inductance and calibrates the encoder. This way, the driver adapts to the connected motor without manual intervention. Several control modes are available: current, speed, position, open-loop, and motor disable. This flexibility makes the project suitable for many practical applications.
- Current control to manage torque
- Speed control with encoder feedback
- Position control for precision applications
- Open-loop mode for quick tests
- Full motor disable for safety
The PyQt/PyQtGraph GUI allows real-time data visualization and sending commands to the driver. The Python tools include functions for calibration and monitoring. Additionally, the improved client written by Munir simplifies system tuning. The project is designed to be studied and modified, with clear documentation and well-organized files.
In addition to the redesigned hardware, Munir wrote new firmware and an improved client package for control and calibration.
The schematic and PCB are made in KiCad, with Gerber files ready for production. The board operates with voltages from 6 to 24 V and current up to 1 A. The 3-pin connector with 1.25 mm pitch makes motor connection easy. Those who want to study brushless control starting from something ready-made can look at a brushless motor driver with a Hall sensor: it does not do vector control, but it lets you see the inverter and power MOSFETs in action before making your own board. For testing, you will need a brushless motor.
The DRV8323RH gate driver is a key component: it drives the inverter MOSFETs and integrates a voltage regulator. The AS5047 magnetic encoder offers high resolution for rotor position. The INA240A1 measures current with a dedicated amplifier. These components are chosen to ensure reliable performance and good value for money.
Software tools and commissioningThe firmware compiles with PlatformIO in Visual Studio Code, starting from the STM32CubeMX configuration. The project board includes all the steps for commissioning. Self-commissioning automates the measurement of motor resistance and inductance. Encoder calibration is guided, reducing errors. Finally, the Python GUI lets you test the different control modes in real time.
Munir’s project is an excellent example of open-source technical documentation. It includes demonstration videos and clear instructions for reproduction. For those taking their first steps with brushless motors, this driver offers a solid foundation. Even those with experience can find interesting ideas in the design and firmware.
In summary, this is a complete, well-documented FOC driver with a permissive license. The component cost is low and the build quality is high. For anyone wanting to delve into brushless motor control, this is a project worth studying carefully. The combination of STM32, DRV8323RH, and AS5047 delivers remarkable performance in a compact format.
Source: https://github.com/sirojudinMunir/sf-motion
Related productsThe post Open-Source FOC Driver for BLDC Motors: Sirojudin Munir’s Project appeared first on Open Electronics.
Mapping Caves with Photogrammetry and Raspberry Pi
Phil Underwood has spent twenty years mapping underground caves. His work has produced a series of open hardware devices that increase the speed and accuracy of surveys. The journey starts with tools based on 8-bit microcontrollers and arrives at a complete photogrammetry system. Each generation solved a specific problem, improving the design incrementally.
The first version, presented in 2008, used an accelerometer and a magnetometer to determine direction and angle. Distance, however, was still measured manually. The heart of the system was a PIC18LF2550, an 8-bit microcontroller. This approach proved that part of the survey could be automated, but human intervention was still needed for linear measurements.
Phil Underwood’s first-generation survey device.
The turning point came in 2020. Phil added a laser rangefinder and a 32-bit microcontroller. This allowed the device to calculate distances autonomously and handle more complex operations. Data collection also became faster and less error-prone. The move from 8 to 32 bits made it possible to process more information directly in the field.
Improved design and communityIn 2023 the project received special attention. The enclosure was 3D-printed, with silicone buttons resistant to water and dust. The firmware moved to CircuitPython, a language that makes community contributions easier. Many makers were able to modify the code without deep electronics knowledge. This accelerated development and made the project more open.
Choosing CircuitPython made the code more readable and easier to maintain. 3D printing also allowed custom enclosures for each environment. The modular design made it simple to replace damaged components. As a result, the device became a reliable tool for cavers.
- 2008: accelerometer, magnetometer, PIC18LF2550 8-bit
- 2020: laser rangefinder and 32-bit microcontroller
- 2023: 3D-printed enclosure and CircuitPython firmware
The latest generation represents a technological leap. The system uses a Raspberry Pi 5 Compute Module and two low-light cameras. The cameras capture images of the cave interior, then the software processes them to create textured 3D models. This approach eliminates the need to measure every point manually. The result is a detailed and realistic map.
For those wanting to experiment with similar sensors, a 9-axis module with accelerometer, gyroscope, and magnetometer combines in one unit the two measurements that supported the 2008 version. For processing, a Raspberry Pi 5 with 4 GB of RAM handles photogrammetry without strain, and a 5-megapixel camera for Raspberry Pi is the cheapest way to try dual capture.
Phil Underwood’s project shows a methodical approach to hardware design. Every choice, from materials to computing power, was guided by the real needs of cavers. The lessons learned apply to any rugged instrumentation. In particular, modularity and ease of maintenance are essential in extreme environments.
Lessons for makersThe story of this project teaches that incremental evolution works. You start with a simple prototype, test it in the field, then improve it. Each generation solved a concrete problem. Moreover, openness to the community accelerated the process. Documentation and code are available for anyone who wants to contribute.
Cave mapping with photogrammetry is just the latest milestone. The complete system, with Raspberry Pi 5 Compute Module, is an example of how open source hardware can tackle complex challenges. The device is called Shetland Attack Pony, and the sixth generation (SAP6) is fully documented: schematics, component list, and CircuitPython code are public.
Source: https://stic.readthedocs.io/
The post Mapping Caves with Photogrammetry and Raspberry Pi appeared first on Open Electronics.
Mapping Caves with Photogrammetry and Raspberry Pi
Phil Underwood has spent twenty years mapping underground caves. His work has produced a series of open hardware devices that increase the speed and accuracy of surveys. The journey starts with tools based on 8-bit microcontrollers and arrives at a complete photogrammetry system. Each generation solved a specific problem, improving the design incrementally.
The first version, presented in 2008, used an accelerometer and a magnetometer to determine direction and angle. Distance, however, was still measured manually. The heart of the system was a PIC18LF2550, an 8-bit microcontroller. This approach proved that part of the survey could be automated, but human intervention was still needed for linear measurements.
Phil Underwood’s first-generation survey device.
The turning point came in 2020. Phil added a laser rangefinder and a 32-bit microcontroller. This allowed the device to calculate distances autonomously and handle more complex operations. Data collection also became faster and less error-prone. The move from 8 to 32 bits made it possible to process more information directly in the field.
Improved design and communityIn 2023 the project received special attention. The enclosure was 3D-printed, with silicone buttons resistant to water and dust. The firmware moved to CircuitPython, a language that makes community contributions easier. Many makers were able to modify the code without deep electronics knowledge. This accelerated development and made the project more open.
Choosing CircuitPython made the code more readable and easier to maintain. 3D printing also allowed custom enclosures for each environment. The modular design made it simple to replace damaged components. As a result, the device became a reliable tool for cavers.
- 2008: accelerometer, magnetometer, PIC18LF2550 8-bit
- 2020: laser rangefinder and 32-bit microcontroller
- 2023: 3D-printed enclosure and CircuitPython firmware
The latest generation represents a technological leap. The system uses a Raspberry Pi 5 Compute Module and two low-light cameras. The cameras capture images of the cave interior, then the software processes them to create textured 3D models. This approach eliminates the need to measure every point manually. The result is a detailed and realistic map.
For those wanting to experiment with similar sensors, a 9-axis module with accelerometer, gyroscope, and magnetometer combines in one unit the two measurements that supported the 2008 version. For processing, a Raspberry Pi 5 with 4 GB of RAM handles photogrammetry without strain, and a 5-megapixel camera for Raspberry Pi is the cheapest way to try dual capture.
Phil Underwood’s project shows a methodical approach to hardware design. Every choice, from materials to computing power, was guided by the real needs of cavers. The lessons learned apply to any rugged instrumentation. In particular, modularity and ease of maintenance are essential in extreme environments.
Lessons for makersThe story of this project teaches that incremental evolution works. You start with a simple prototype, test it in the field, then improve it. Each generation solved a concrete problem. Moreover, openness to the community accelerated the process. Documentation and code are available for anyone who wants to contribute.
Cave mapping with photogrammetry is just the latest milestone. The complete system, with Raspberry Pi 5 Compute Module, is an example of how open source hardware can tackle complex challenges. The device is called Shetland Attack Pony, and the sixth generation (SAP6) is fully documented: schematics, component list, and CircuitPython code are public.
Source: https://stic.readthedocs.io/
The post Mapping Caves with Photogrammetry and Raspberry Pi appeared first on Open Electronics.
Pi-Ener-lite: Compact UPS with Fuel Gauge and RTC for Raspberry Pi Zero
Pi-Ener-lite is a compact UPS power supply designed by ACE design studio for the Raspberry Pi Zero. It connects to the board via 7 spring-loaded pogo pins, which handle both power delivery and data reading. The project integrates an 18650 battery, a CW2015 fuel gauge chip, and a DS1307 RTC chip, offering a complete uninterruptible power supply in a small footprint.
View of the Pi-Ener-lite hardware
Operation is simple and reliable. When external power is lost, the system automatically switches to battery power. It also supports simultaneous charging and discharging, so you can use the Raspberry Pi Zero while the battery recharges. The whole setup is protected against overcharge, over-discharge, overcurrent, and short circuits.
Battery measurement and RTCThe CW2015 fuel gauge chip measures battery voltage and remaining capacity with ±2% accuracy. The DS1307 RTC chip, powered by a CR1220 coin cell, keeps time even when the main battery is removed. This combination makes Pi-Ener-lite a truly complete UPS for applications that require operational continuity.
Fuel gauge and RTC data are read over I2C, so you can access them easily from Python. The project includes Python examples and detailed documentation. An optional open-source 3D-printable case protects the entire system. Total cost is around $35.
Why choose Pi-Ener-litePi-Ener-lite is a compact UPS specifically for the Pi Zero. Unlike other solutions, it leaves the GPIO connector free, so you can attach other modules without issues. It also adds battery measurement and an RTC, two features often missing from DIY UPS builds. The open-source 3D-printable case adds versatility.
The project is designed for those who want a reliable backup power supply without taking up space. The board connects in seconds thanks to the spring-loaded pogo pins. The CW2015 fuel gauge lets you monitor remaining charge precisely, avoiding sudden shutdowns. If you need a professional solution for your Pi Zero, this project fits the bill.
- Connection via 7 spring-loaded pogo pins, no soldering
- 18650 battery with CW2015 fuel gauge for charge monitoring
- DS1307 RTC with CR1220 battery to keep time
- Protection against overcharge, over-discharge, overcurrent, and short circuits
- Open-source 3D-printable case
To build the project, you need an 18650 battery and a CR1220 coin cell. The rest of the components are already mounted on the board. If you want to power the system from a higher voltage, you can use a 12V DC-DC step-up converter to adapt the input. Alternatively, for industrial applications, consider a DC-DC converter with 36-48V input and 24V output.
Getting started with Pi-Ener-liteThe first step is to connect the board to the Raspberry Pi Zero via the pogo pins. Then install the drivers for the CW2015 and DS1307. Finally, write a simple Python script to read voltage and time. The project board includes ready-to-use examples.
If you want a more powerful system, you can pair Pi-Ener-lite with a Raspberry Pi 5. In that case, you must adapt the power supply, because the Pi 5 requires more current. For the Pi Zero, the solution works perfectly as is. The project is designed to be simple, compact, and reliable.
In conclusion, Pi-Ener-lite is a well-designed UPS with quality components and clear documentation. The ability to print a 3D case makes it even more versatile. If you’re looking for a backup power supply for your Raspberry Pi Zero, this project deserves attention.
The post Pi-Ener-lite: Compact UPS with Fuel Gauge and RTC for Raspberry Pi Zero appeared first on Open Electronics.
Pi-Ener-lite: Compact UPS with Fuel Gauge and RTC for Raspberry Pi Zero
Pi-Ener-lite is a compact UPS power supply designed by ACE design studio for the Raspberry Pi Zero. It connects to the board via 7 spring-loaded pogo pins, which handle both power delivery and data reading. The project integrates an 18650 battery, a CW2015 fuel gauge chip, and a DS1307 RTC chip, offering a complete uninterruptible power supply in a small footprint.
View of the Pi-Ener-lite hardware
Operation is simple and reliable. When external power is lost, the system automatically switches to battery power. It also supports simultaneous charging and discharging, so you can use the Raspberry Pi Zero while the battery recharges. The whole setup is protected against overcharge, over-discharge, overcurrent, and short circuits.
Battery measurement and RTCThe CW2015 fuel gauge chip measures battery voltage and remaining capacity with ±2% accuracy. The DS1307 RTC chip, powered by a CR1220 coin cell, keeps time even when the main battery is removed. This combination makes Pi-Ener-lite a truly complete UPS for applications that require operational continuity.
Fuel gauge and RTC data are read over I2C, so you can access them easily from Python. The project includes Python examples and detailed documentation. An optional open-source 3D-printable case protects the entire system. Total cost is around $35.
Why choose Pi-Ener-litePi-Ener-lite is a compact UPS specifically for the Pi Zero. Unlike other solutions, it leaves the GPIO connector free, so you can attach other modules without issues. It also adds battery measurement and an RTC, two features often missing from DIY UPS builds. The open-source 3D-printable case adds versatility.
The project is designed for those who want a reliable backup power supply without taking up space. The board connects in seconds thanks to the spring-loaded pogo pins. The CW2015 fuel gauge lets you monitor remaining charge precisely, avoiding sudden shutdowns. If you need a professional solution for your Pi Zero, this project fits the bill.
- Connection via 7 spring-loaded pogo pins, no soldering
- 18650 battery with CW2015 fuel gauge for charge monitoring
- DS1307 RTC with CR1220 battery to keep time
- Protection against overcharge, over-discharge, overcurrent, and short circuits
- Open-source 3D-printable case
To build the project, you need an 18650 battery and a CR1220 coin cell. The rest of the components are already mounted on the board. If you want to power the system from a higher voltage, you can use a 12V DC-DC step-up converter to adapt the input. Alternatively, for industrial applications, consider a DC-DC converter with 36-48V input and 24V output.
Getting started with Pi-Ener-liteThe first step is to connect the board to the Raspberry Pi Zero via the pogo pins. Then install the drivers for the CW2015 and DS1307. Finally, write a simple Python script to read voltage and time. The project board includes ready-to-use examples.
If you want a more powerful system, you can pair Pi-Ener-lite with a Raspberry Pi 5. In that case, you must adapt the power supply, because the Pi 5 requires more current. For the Pi Zero, the solution works perfectly as is. The project is designed to be simple, compact, and reliable.
In conclusion, Pi-Ener-lite is a well-designed UPS with quality components and clear documentation. The ability to print a 3D case makes it even more versatile. If you’re looking for a backup power supply for your Raspberry Pi Zero, this project deserves attention.
The post Pi-Ener-lite: Compact UPS with Fuel Gauge and RTC for Raspberry Pi Zero appeared first on Open Electronics.



