EZP2023+ USB Programmer Overview and Schematic

 Posted by:   Posted on:    No comments

EZP2023+ is another USB programmer for SPI, I2C and MicroWire memory chips. It is not as cheap as the CH341A however it has some nice features. I got mine from AliExpress with a set of adapters for SMD packages, an SMD clip and LCD panel adapter. It also came with 1.8 V adapter board which is also a nice thing. EZP2023+ is advertised as the fastest programmer, better than previous EZP2019. Soon after I ordered it, I found there is also EZP2025, already available in 2023...

Anyway, the main reason I got myself one is for the set of adapters which can also be used for CH341A MiniProgrammer. In comparison to that, EZP2023+ seems to be a better product, having a proper enclosure. Although I got a CD with this programmer (which contains driver, software and user manual), they forgot to mention how should I place the IC in the programming socket. I had to get a clear understanding of how it should be used properly, so I disassembled the case to have a look at the electronics.

EZP2023+ High Speed Programmer Schematic and Drivers
EZP2023+ USB Programmer

IMSProg and other Linux utilities for CH341A

 Posted by:   Posted on:    No comments

It was July 2017 when I ordered an EEPROM programmer I found on AliExpress for only 2.13 USD with free shipping. It wasn't a surprise it came without any kind of documentation. So I began searching for information since I didn't knew how to use it or what PC software I need to read a memory chip. In fact, I didn't even know how to place a chip in the programming socket. I gathered all information about the programmer hardware in this post. At that time I wasn't expecting this programmer to become so popular, still being used today.

The CH341A MiniProgrammer and other programmers based on this controller are affordable USB programmers used for reading and writing EEPROM chips and flash memory. They are widely used by hobbyists and technicians for tasks like flashing BIOS chips, recovering data from bricked devices, and working with various types of EEPROM and SPI flash memory chips. Yet, with all this popularity, the only (probably) official software for this programmer is Windows-only, hard to get and some of the alternatives come from not very trustful sites. Let's see what is available for Linux (Ubuntu).

Reading SPI Flash with IMSProg
Reading SPI Flash with IMSProg

Review and Tests of Mechanic ET-10 Heating Table

 Posted by:   Posted on:    No comments

I've been looking recently to buy a hot plate for SMD work. I didn't like the big 20 by 20 cm ones since I will not be doing such big PCBs. I also didn't like the Miniware 3 by 3 cm hot plate, because this is too small for my needs (and rather expensive). I decided to buy a 10 by 10 cm heating table, and Mechanic ET-10 caught my eye. More specifically I liked the hot plate itself, which is a 10 x 10 x 1.2 cm thick block of aluminum. It has two holes drilled through the back where two heating elements are inserted.

I eventually bought it and from the outside it seems a solid design. However, just as I turned it on and set its temperature, I heard a relay clicking inside. Well, using a relay for an "Intelligent Digital Constant Temperature" is something that does not look very good. The aluminum heating block has an important volume, therefore a high heat inertia. The best way to get it to a constant temperature is to use PID (proportional-integral-derivative) controller. And I don't think this is how its controller works.

Mechanic ET-10 hot plate
Mechanic ET-10 hot plate

Set up Home Assistant on Orange Pi Zero 3 (part one)

 Posted by:   Posted on:    No comments

The Orange Pi Zero 3 is a powerful Single Board Computer (SBC) that can serve as the heart of your home automation system. With its compact size, low power consumption, and ample processing power, it's an ideal choice for DIY enthusiasts looking to automate their homes. In this guide, we'll walk you through the steps to set up and use the Orange Pi Zero 3 for home automation. I have previously used a less capable SBC and even an old router to run a self hosted MQTT server. It is time for an upgrade.

The main point of this upgrade is to add functionality beyond MQTT, such as database storage, reports and Home Assistant. I really want the latter since I have some ESP8266 relays and sensors I currently use and I think ESPHome could speed up software development while being easy to integrate with Home Assistant. Note that you may use another SBC from the OrangePi family for this purpose. I chose Zero 3 because it is powerful enough while being similar in size with the existing Zero I currently use.

Set up Home Assistant on Orange Pi Zero 3 (part one)

Change default open with application in Ubuntu

 Posted by:   Posted on:    No comments

With the new Ubuntu 23.04 release I found myself struggling to find a valid answer to a very simple task. I own a 3D printer and I design stuff in FreeCAD, then export to STL and load this in Cura to slice it and produce gcode for printer. If in Windows 11 there is a 3D viewer application which opens STL files, Ubuntu doesn't come bundled with a similar app and I hate loading every STL file in Cura just to see the 3D model. However, there is fstl, which I found it to be exactly what I was looking for: it is lightweight and it opens STL files.

I installed it from default repositories with sudo apt install fstl. Although this is a GUI app, it can only be started from command line, having no desktop entry to open it from Apps. I didn't have a problem with this, since I knew I could select any executable to open a file with. However, this is is no longer true. The Open With dialog no longer allows users to choose something else besides installed applications.

Open With dialog in new Ubuntu versions
Open With dialog in new Ubuntu versions

Daisy chaining and bus sharing with shift registers

 Posted by:   Posted on:    No comments

A shift register is a digital circuit that is used to store and manipulate data in a sequential manner. It is composed of a series of flip-flops, which can be viewed as basic memory units able to store binary values. The outputs of each flip-flop are connected to the inputs of the next flip-flop in the sequence, such that the data is shifted from one flip-flop to the next with each clock pulse.

In this post I will use the 74HC595 serial-in-parallel-out shift register and its counterpart, 74HC165 parallel-in-serial-out shift register. Both are commonly employed when a microcontroller with limited available I/O pins has to control a large number of digital outputs or read a similar number of inputs (for example in home automation). What I want to show you in this post is how to daisy chain these ICs and how to make them share some control lines in order to keep the serial interface data lines to a minimum.

Shift registers circuit on breadboard
Shift registers circuit on breadboard