2023. február 26., vasárnap

VFD Mania 2. - Inverting boost converter

For the -27V supply I mentioned in the first part of the series (https://pakahuszar.blogspot.com/2023/02/vfd-mania-1-preface.html), I wanted to have something cheap, and from easily available parts.
Yes I know, that the MC34063 is old, not to effective, but still widely available, has calculator, tons of circuit configuration in the datasheet, and extremely cheap.
As I wanted to create -27V from the 5V supply (I want to run the module on the way, to have only a single supply input), I decided to have an additional external transistor, as even with 100mA output, the switching current on the internal transistor would be over 1.5A, what is the maximum of it.
The required circuit configuration is on the datasheet (choose the NPN external switch version), so I just used it in my design.





Ordered the panel, arrived, and built it.

PIC

On first switch on, no output, just some smoke. 😕
It happened, let say 6 month ago. I put the whole project aside as I had many more things to do.

A few days ago it started "itching", to do something with it.
Actually, I looked for other possible solutions than the MC34063 (found some, but the component availability is still an issue)
Then I revisited the datasheet, and the original schematic, to figure out, what is the problem.
Redrawn it a bit different form, and realized something.
The R4 in the schematic above (according to my understanding) has the role, to switch of the transistor, compensate the base capacitance (it is low, but still exists). Then I realized, it will not fulfill its role. When the inductor voltage fall below -0.6-0.7V, it switch the transistor back on. The R4 should be between the base and emitter instead of the base and the ground if even needed.
I just removed it, and the circuit started to work perfectly.




It draw ~200mA from the 5V supply without load. Not good, but acceptable:


Checked, in the datasheet, if I was the idiot, when designed it.


It looks like not. The design flaw is coming from the datasheet.

Finally, I wanted to see the supply noise. I seen some weird waveforms, at ~22.5kHz, what is not the expected switching frequency. (First real use of my shiny new Rigol MSO5074 oscilloscope)


Then it pop into my mind, what is the input the supply gets.


Oh, my! The yellow is the output of the newly built converter, the blue is the output of the used Axiomet bench PSU. Ok, I realized, why to use linear bench PSU (or maybe a good trusted switching one) when it come to noise measurement.
I'm planning to do that measurement later on.

Next part is planned on the filament supply.

To be continue...



VFD Mania 1. - Preface

I'm kind of maniac, if it comes to the VFD displays. I've several instruments in my lab with VFD.

Even I collected many various versions with the thought, once I'll build something from it. Actually my first acquisitions were VFD modules, what already have all of the power supplies, so I not need to know, how to power, how to drive them.

On the other side, I always wanted to know, how VFD displays are working, how they need to be driven.

This story begins 8 month ago, just the half written article was put asside.

Then I seen this nice bare VFD so cheep, I couldn't resist. Bought them and my learning journey begins.


Now, I already know, it works like the vacuum tube.
It needs some heating voltage for the cathode, need anode voltage, and it have a grid to control the electron flow from the cathode to the anode.
In addition it has direct heating, so the cathode and the heating connected together (here it called filament supply). It is somewhere around 2.5V and recommended to use AC voltage (few 10th of kHz) to achieve even light distribution from one end to the other (the heater strings are connected to the two end of the VFD tube). For the anode/grid you need a voltage around 30V (it can change from tube to tube). With this one I was fortunate to figure out the original equipment this VFD was installed, got a service manual. It looks like it needed 32V.
On the side of the power supplies I need some IC, designed for driving VFD.
I choose PT6324 from Princeton Technology.
It is cheap and easily available from the eBay. Also it able to drive all of the segments of this display.
There is not uncommon, but for first sight it could be felt weird, that the IC need high negative supply voltage instead of positive. So in my case it need 5V logic supply, -27V VFD supply and a 2.5V AC filament supply superimposed to the -27V supply.
I actually designed the whole module...





...but I had a feeling, I may did something wrong, so I broke the design into pieces, ordered the power supply boards separately, so I can test it, before send the whole module to manufacturing.

The git repo of the design is here:

 https://gitlab.com/suf/suf-electronics-vfd-futaba-15mt67gnk

To be continue..

2023. január 16., hétfő

New Arrival 9.

2023.01.05: It is kind of funny (or annoying you can judge).
My resin printer was ordered at the beginning of December in one single order.
Before Christmas arrived:
Shipment 1. - The printer itself
Shipment 2. - The wash & cure machine
Shipment 3. - 1l resin + air pure units
Yesterday arrived one single extra wash container (Shipment 4.). And still things are remaining. I don't know, how much this cost to AnyCubic.


2023.01.06: I was working a project previously. It is a replacement of the TCA530 IC what can be found in many FM radios before the era of the digital synthesis (PLL). It is a precision power supply for varicap diodes and AFC circuit. As it has an internal heated reference, but reside in a PDIP package, it intend to die after 30-40 years.
So I found a schematic for the replacement. I made some minimal adjustment on it, and shrink to fit two small PCBs, make it a pop in replacement (it is just higher than the original IC, but most of the cases it is not an issue).


This unit has some issues (questionable AFC performance, different reference voltage), so I intend to develop a v2 version, but now, from my own ideas and not a publicly available circuit diagram.
For this I was eagerly needing a working original IC.
I ordered two, it wasn't cheep. Arrived. One of my family members took the package.
It was put somewhere in the flat, so disappeared forever.
Ok, so ordered second time, now it is here


No, please don't even ask. It is not for sale. At least until, the v2 replacement is ready.
2023.01.09: The local government operated post are mostly a bunch of idiots. A package arrived for me to a post office, what is not the close one to the delivery address and not the central distribution center. They just put there (I guess) randomly.
Anyway. Picked it up:


Finally: spare screen protector, vats, fep foils arrived. With this my Anycubic order is complete. Five separate shipments of one single order. I think it is neither economical nor environment friendly. 😕
Anyway, I can start my resin experiments as soon I get there, to have time for it.
Same day. Currier came:


Big ass ESP32 board. Ordered it for some USB/Bluetooth HID experiments. I've an idea in my mind, so, we will see (as soon the current projects ready)
Same shipment:


Four different microphone module. I need it for my current project. I'll write about later. It has a same secrecy as my Melodyn project was - it can be presented when the surprise factor is over. In mid March.
2023.01.14: I was on the monthly HAM flea market as usual in the last few month.
As previously this time also picked up some interesting things.


AC milivoltmeter. Yes I know it is East-German, it is not the best quality. But it look clean, and I guess for $15 still worth it. I wanted to have an analog AC millivolt meter, but two channel dual needle configuration, but for a while, I can use this if needed.
A bonus thing (unfortunately, not mine):



It is a Bizerba weight scale large VFD display. Got it from a friend on the flea market, to do the hard work of reverse engineering, additional hardware design and driver writing for Arduino.


2023. január 9., hétfő

AS/400 and me

A friend of my contacted me a few days ago for some casual conversation what I really appreciate. Doesn't happen too frequently these days.
He was mentioning, that currently he is working on rewriting some old IBM AS/400 based software to modern Web 2.0 application. This reminded me a funny story regarding AS/400 from my rookie past, what I'd like to share here.
Alcoa has a facility in Hungary. Back that days they had a wide operation here. Manufacturing plastic bottles, operating aluminum smelter, building aluminum boxes for truck bases (like Coca-Cola trucks), and so on.
I was working for Hewlett-Packard that time. We had a worldwide  project at Alcoa for desktop PC provisioning. Sophisticated desktop management platforms (like SCCM) didn't exists that days.
So HP wrote some scripted MS Test based scripted platform for this, what, I can tell you, wasn't the best.
Actually the local Alcoa had some weird network configuration, mad this provisioning continuously fail.
So, my colleagues called me, to go onsite and try to resolve the issue.
I was sitting in the server room with a PC, for long time, and trying to figure out the issue.
It was a thick PC size black box under the table I was working on. 
Just illustration, not the exact unit

So I put my feet on the top of it.
A guy came into the room. When he seen what I'm doing, his face become white.
He said slowly: Please remove your feet from the AS/400. That unit controls the aluminum smelter. If you eventually switch it of, the smelter will cool down and can't be heated once more.

EPROM burning 21/25V 3. - Closing

The first two parts of this post:
Back in 2021 I was starting this project based on this ground:
  • The TL866II is unable to handle any device programable above 18V
  • My HP 8903B has 21V EPROMs and I wanted to refresh them
  • The T56 programmers cost are way above the amount I would pay for this
Since then a few things happened. First I lost the ordered boards of this project. During the moving to my new lab, I was unable to find, where are those. Actually just 2-3 month ago showed up from one of my boxes. I was ordering the parts needed to build it, but had other projects to work on, so put it aside second time.
Bit later I realized that the XGECU (the manufacturer of the TL866II and T56) come out with a new programmer model the T48. It has reasonable price and the plugin modules I already bought for the TL866II are compatible with it.



Ordered it, programmed the EPROMs for my HP 8903B. So the story ends here from my perspective.
This project shelved, I not intend to build it. Maybe once, I'll try. Actually, I not even now if it id work. Anybody want to experiment with it, welcome. I can give a board for this.
Also my original TL866II will be on sale soon.


On the side of it, I planed to build a proper EPROM eraser. I ordered one, with the T48. It has mechanical timer, and not something, what I really like, but it does its job, so the EPROM eraser project also canceled.

2023. január 3., kedd

Azure, AKS, Terraform, proxy


Happy New Year to everybody!

It maybe unexpected, but I start the year with some professional content and not my hobbies.

When you try to deploy an Azure Kubernetes Cluster from Terraform, and the cluster has proxy configuration, on any terraform apply on the cluster will cause redeployment, what is not what you expect.

The reason is that the Azure mechanism add a few addresses to the no_proxy list in addition to the ones you set. Changing the no_proxy list will force recreation. The list stored in the state will always be different from the list on the AKS resource itself.

First let check, what are those addresses:

The values above, can be known before the cluster creation, except the last one. This is created during the deployment of the cluster, so adding all of the items to your no_proxy list before the cluster creation will not help, if you have a private cluster.

What you can do:

Add lifecycle management to the cluster. It will look like this:

resource "azurerm_kubernetes_cluster" "aks" {
  lifecycle {
    ignore_changes = [http_proxy_config.no_proxy]
  }
    .
    .
    .

This would work, but you just half way to the solution.

When you reapply your plan, it will not recreate the AKS cluster. But what if you willingly change the no_proxy parameters? In this case this will still ignored and the AKS doesn't recreate, what is not the expected behavior.

Lets assume, you heave the user provided no_proxy parameters in a no_proxy variable:

variable "no_proxy" {
    type = list
    default = []
}

The lifecycle management is able to trigger recreation of the resource with replace_triggered_by property. The problem with it, that the variable above, can't be the source of the trigger. But for example a resource can.

Here comes a dirty trick. How convert a variable list into a resource?

Hashicorp has a Terraform provider named tfcoremock (https://registry.terraform.io/providers/hashicorp/tfcoremock/latest/docs). I'll use it here.

First add it to the providers list:

provider "tfcoremock" {
  use_only_state     = true
}

Now, we can store the list above into the state:

resource "tfcoremock_simple_resource" "user-noproxy" {
  count = var.no_proxy
  string = var.no_proxy[count.index]
}

Now, we can reference it from the replace_triggered_by:

resource "azurerm_kubernetes_cluster" "aks" {
  lifecycle {
    replace_triggered_by = [tfcoremock_simple_resource.user-noproxy]
    ignore_changes = [http_proxy_config.no_proxy]
  }
  http_proxy_config {
    http_proxy = var.http_proxy
    https_proxy = var.http_proxy
    no_proxy = var.no_proxy
  }
    .
    .
    .

}

This is almost perfect, but not completely.

When you change any element in the no_proxy variable list, it will trigger the replacement, but if you add, or remove element from the list, it will ignore it.

One last step. Make the length of the list into work:

resource "tfcoremock_simple_resource" "user-noproxy" {
  count = length(var.no_proxy)
  string = var.no_proxy[count.index]
}

resource "tfcoremock_simple_resource" "user-noproxy-count" {
  number = length(var.no_proxy)
}

resource "azurerm_kubernetes_cluster" "aks" {
  lifecycle {
    replace_triggered_by = [tfcoremock_simple_resource.user-noproxy,
tfcoremock_simple_resource.user-noproxy-count]
    ignore_changes = [http_proxy_config[0].no_proxy]
  }
  http_proxy_config {
    http_proxy = var.http_proxy
    https_proxy = var.http_proxy
    no_proxy = var.no_proxy
  }
    .
    .
    .

}

Now, it is replace the AKS on any change in the no_proxy variable list, but keep it intact otherwise.

2022. december 31., szombat

End of 2022

This is some valuation of the year from this blogs perspective.

At the beginning of the year I was planning to write at least one post weekly. This would be 52 posts. Actually done 31.

Although, I'm not satisfied with the result, I is better than the previous years. The last year I was writing more, was 2018. I intend to achieve this as a goal for 2023.

Some highlights of 2022, also from my hobby perspective:

  • My new lab is still not finished, but I can tell, I moved in. Now I feel comfortable and spend more and more time in it
  • Finished the Videoton Melodyn project. I'm very proud of it. It was ready in time and functioning flawlessly
  • I closed my Hungarian language blog, what was running in parallel with this one. The decision come from anger at the first place, but today I feel, not writing (or translating) in to languages spare some time to me. So I keep it that way.
  • Started a few projects, what looks like shelved to me, also have a few revisited, but put back to the shelve:
    • E1300A Front connectors
    • Measurement control
    • CNC Router
    • Pan & Tilt gimbal
    • TL866II EPROM programmer update
    • PM3082 repair
    • Rackmount power amplifier
    • Function generator power amplifier
    • Contract project involving 4-20mA current loop and infra gates (not to discuss here deeper)
    • VFD display driver (even the first post of it kept in draft)

In 2023, I plan to work on my projects on a more organized way. Not to do many projects in parallel, focus on one, and finish it.

Also in 2020, I started to work on "project of the month", to force myself, to finish things in timely manner. This was washed by the COVID right at the beginning. I want to bring this back to life, to trigger myself.

Here I announce my January project (I really like to continue with more in February and further):

Fully working 3D printing

I've three 3D printers now. Actually only one of it working, and that one even kept in my old lab. Namely Anet A8, Geeetech i3 Pro, Anycubic Photon Mono 4k.
The goal, to have those fully working by end of January.

Those were my random thoughts for the end of 2022. I say good bye to 2022 with my current lab photos, and whish a

HAPPY NEW YEAR!