Install Home Assistant Core on Orange Pi Zero 3 (part two)

 Posted by:   Posted on:    2 comments

Some time ago I decided to get Home Assistant (HASS) running on a single board computer (SBC) without knowing too much about this software. As I soon found, Home Assistant is complex software and there are multiple installation methods, more or less available depending on target hardware. In short, I got an Orange Pi Zero 3 SBC with 2 GB of RAM which I intend to use as a local home automation server.

Although the SBC has sufficient processing power for Home Assistant, I shouldn't expect too much from the limited SD card storage. I decided to give it a try anyway since I really like the small form factor of Orange Pi Zero 3 (it can directly replace the old Pi Zero with only 256 MB of RAM I am currently using for hosting a local MQTT broker). Although this guide is targeted at this specific SBC, it is very probable that you can install HASS on similar Linux platforms using the same commands.

Install Home Assistant Core on Orange Pi Zero 3

Receive weather station data with Arduino

 Posted by:   Posted on:    2 comments

A while ago (to be more specific two years ago) I used software defined radio to capture and decode RF signal from the outdoor unit of a weather station. This allowed me to emulate the protocol with an Arduino and a cheap 433.92 MHz transmitter and send my own data to the indoor station. I can make my own units if the original outdoor unit fails. The outdoor unit uses on-off-keying (OOK) and sends pulse distance modulated bits, explained in detail in the linked post.

But what about receiving data from outdoor unit(s) with an Arduino? One can add an ESP8266 to capture temperature and humidity and publish data to MQTT, Home Assistant or other IoT servers. Capturing and analyzing pulse timings of a signal was a daunting task for me. However it turned out to be easier than I thought, using an interrupt routine. In this post, I'll explain all the steps required to make a pulse distance modulation (PDM) decoder.

How to use the EZP2023+ USB Programmer

 Posted by:   Posted on:    3 comments

Previously I analyzed the hardware of EZP2023+ USB Programmer to find it is a rather simple device, based on CH552G microcontroller which allows for SPI, I2C and MicroWire capabilities. If you didn't know this is a serial memory programmer, which can be used to read and write a variety of memory chips, including EEPROMs and BIOS ICs commonly found in computers and other electronic devices. After I traced the schematic, I realized EZP2023+ also comes with mixed voltage levels (meaning it powers the memory to program with 3.3 V while the data bus uses 5 V for I/O) and this is a big issue since it can destroy whatever you are trying to read or program. 

In this post I will share my experience with the programmer and discover some flaws of its programming software. You should get the programming utility on a CD which is in the product box. Since recent computers and notebooks no longer have an optical drive, this is already an issue. Getting past that, on the CD you will find the user manual and accompanying software, with driver. Let's see how you get everything ready to program memory chips.

How to use EZP2023+ USB Programmer

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:    1 comment

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