Update GRBL firmware on CNC 3018 Pro

 Posted by:   Posted on:    No comments

CNC 3018 Pro is a low-cost CNC router that should be used mostly with wood and acrylic plastic. It can also be used to mill PCBs and cut soft metals like aluminum with proper settings. The machine uses both metal and plastic parts. Electronics is based on a custom made ATmega328p board with A4988 stepper drivers. Spindle uses a common DC775 motor fitted with ER11 chuck.

I recently bought one from Banggood (I chose the version with offline controller because it allows me to load gcode from SD card and use the CNC without a computer next to it). To my surprise it came with an old version of GRBL firmware (0.9j) so I started gathering information about how I can update it.

Update GRBL firmware on CNC 3018 Pro

Progress indicator with addressable pixel ring

 Posted by:   Posted on:    No comments

Individually addressable pixel rings are WS2812 based RGB LED strips also known as NeoPixel strips. When interfaced with a microcontroller this strip can display any different RGB color on every LED it contains. They are versatile and can be used in a lot of projects. I bought a 24-LED LED ring which I originally intended to use to build a clock but until then I noticed it could make a nice progress indicator.

In the middle of the LED ring, I added a simple 4-digit 7-segment LED display with TM1637 controller. I opted for red display, yet you may use whatever color you like. Both display and LED ring, together with a buzzer are glued on a disc shaped piece of plastic. I could have 3D printed a better stand, yet the plastic disc does the job.

Progress indicator with addressable pixel ring

Set full RGB to HDMI monitor on Ubuntu

 Posted by:   Posted on:    4 comments

Most common monitors nowadays have 1920x1080 resolution, same as HD TVs. When this resolution is available, some video card drivers, on Linux, will output limited RGB pixel ranges, considering the monitor as a TV. Instead of 8-bit per color (0 to 255), the video card outputs a limited range of 16 to 235 which causes washed out colors, with less bright white and less dark black. This may not be obvious at first sight, especially for regular users when switching to a new monitor.

Unfortunately, there is no straight fix for this issue on Ubuntu (or other Linux distributions). There are no options in settings app. More than that, the way of fixing this has changed with the new Ubuntu 21.04 which uses Wayland instead of Xorg display server. In this post I will show you how to address this issue on both display servers and get the expected picture colors on your HDMI monitor with Ubuntu.

Set full RGB to HDMI monitor on Ubuntu

The Global Printed Circuit Board Market (infographic)

 Posted by:   Posted on:    No comments

In 2020, the Printed Circuit Board (PCB) market size was valued at around $60 billion and was projected to grow at a CAGR of more than 3% from 2021-2027.

Component miniaturization has sped off the market growth for miniaturized, lightweight, and high-performing PCBs in electronics like smart wearables, healthcare equipment, and other portable gadgets. Various Original Equipment Manufacturers (OEMs) are venturing into customized circuit board designs to improve miniaturization and obtain sleek shapes. The trend has further influenced the growth of three-dimensional printing to create compact PCBs by mounting parts on the inner layers.

The Global Printed Circuit Board Market (infographic)

PCB Layout Designing: Top 8 Tips on How to Design a PCB Layout for Beginners!

 Posted by:   Posted on:    1 comment

PCB Designing is a crucial step in a PCB Assembly Process. The printed circuit board is the project's final step, and we use it to validate a PCB prototype.

Any electronic enthusiast should have the ability to design PCB layouts if he is a pupil, an expert in the business, or a hobbyist. The construction of a proper PCB layout is an integral part of every PCB manufacturer. In this article, we'll show you the top 8 PCB Layout Design Tips for Total Beginners.

PCB Layout Designing

Volume and media control buttons with Raspberry Pi Pico

 Posted by:   Posted on:    1 comment

A while ago I used STM32 bluepill board to emulate a consumer control device that would allow me to control volume and media playing on PC, over USB. Implementation wasn't very easy, since I had to modify an existing library to add support for consumer control HID class. Nevertheless, I succeeded and the details and my library can be found in this post.

Meanwhile, a new cheap development board appeared. It is the Raspberry Pi Pico which has native USB port. I thought this could be used as well to emulate a keyboard, mouse or consumer control HID. This board can be programmed in C/C++ or MicroPython. Since I wasn't willing to install the C/C++ development kit, I attempted to use MicroPython. Unfortunately, it lacks required modules for USB HID and rotary encoder. Then I found about CircuitPython, which is based on MicroPython and is supported by Adafruit. At its current version, it is bundled with rotary encoder module and, for USB HID, you can use Adafruit HID library.

Volume and media control buttons with Raspberry Pi Pico

Media control device built on breadboard