2019. július 26., péntek

What arrived?

I continuously ordering things from various places, but frequently I don't write about.
Here are three things what I think can be interesting in some ways.
Recently I started to work on integrating my measurement equipment with my lab PC. It is getting important as I have a few measurement in my head, what requires such kind of integration.
The instruments in question have various interfaces: USB, RS232, GP-IB, Ethernet. Talking about the first three, at the end of the day the connection for the PC will require USB ports. Lots of USB ports.
So I ordered a USB hub on AliExpress.
I hope 16 ports will be enough:

Keep talking about instruments. As I see, it is handled as a fact that for measurement process control the used application is NI LabView. This software used for many things. Even the Lego is using it for controlling the Mindstorms kits. For a long time now, I'm using mainly free or open source software, if it is not available, I'm buying it.
The LabView as such is a software with horrible price tag. It is just came to my attention (you may already know it), that NI made available a Home Bundle version. Yes, it is not the latest, yes it is just for not profit home use. But, it cost $50, what can be payed by a serious hobbyist. So I have it now:

I hope, it will help me to automate my measurements.
There are running a promotion/contest by Microsoft and Avnet (https://www.element14.com/community/docs/DOC-92683/l/sensing-the-world-challenge). It is about connecting to Azure IoT.
I even have a MAPS subscription, so I have $100/month allowance for Azure.
I become an AWS guy in the last 6+ years. I feel this contest a good opportunity to widen my perspective and learn a bit more about Azure.
So, I ordered the kit for free, and it arrived yesterday:

Even, I have an idea, what to build from it.

2019. július 14., vasárnap

GP-IB 3.

More than two month elapsed since I wrote about my GP-IB adapter project.
In this two month many things happened:
Redesigned the board a bit (v1.1). The new version is a bit tricky. Originally I used female gender connector, what is not ideal, as it cannot be connected to the instruments directly, just through a cable. The reason: I didn't find male connector on the market on first trial for affordable price.
I had a second attempt, and now I have male connectors. I didn't wanted to put to much effort in the redesign, so just added an option to swap the USB connector to the back side of the board.
So if you populate the board with female GP-IB connector, both the connectors goes to the front side, if you use male connector, both of the connectors are goes to the back side.
This board is not ordered yet, because I want to combine it with other projects of mine.
The repository has been reorganized. I have public and private repos. Public for sharing the project, private for working on it. Now the public repo only contain the hardware design (more to come). The design packaged with my shiny new KiCAD packager. At least it makes the schematic readable to anybody. Location: https://gitlab.com/suf/suf-electronics-gpib
The software side become a bit messy.
I had problems with the original source code:
1. The original license, what makes the software "incompatible" with my design
2. As much I read this source code, more and more dislike it. Using a single .ino file, for a growing size project become unreadable, unmaintainable to me.
3. Many thing is missing from the implementation.
I started to write a completely new software based on my problems. I wasn't carefully looked around for the software implementation. My software was 50+ percent ready (mostly working already) when Szabolcs Szigeti in the comments on my post here https://www.facebook.com/groups/muszerek/permalink/2481846092072731/ pointed out (sorry, it is in Hungarian), that a different implementation also exists https://github.com/Twilight-Logic/AR488
I didn't tested it yet, but looks like solving most of my problems:
- The author by coincidence has chosen the same pins for the ones was missing from the original implementation as me (REN, SRQ). This means, this software should run without modification on my hardware
- Implemented most of the missing functions
I still have my feelings with the code structure (it become more than 3000 lines in a single file)
I had no time to test it yet, but if I can use it for the purpose I wanted, I'll probably drop (or postpone) my implementation (maybe just finishing the inevitably necessary things and release it).
- Try the things I currently have
- Order and build the upgraded design
- Decide the future of this project

2019. július 13., szombat

KiCAD packager

As I mentioned previously here: http://pakahuszar.blogspot.com/2019/07/chain-of-events.html
I started to write a program for KiCAD ot package the projects and overcome the problems when I share my designs.
Released a working (but probably buggy, and incomplete code) here: https://gitlab.com/suf/packagekicad. Please use the 0.2Beta tag
It is able to build a new symbol library (others come later) from the current environment with all of the used components in the current design, replace them in the schematic file. So when you move the project trough source control or other way, anybody can open it without missing components. Yes, the rescue lib can handle this, but asks questions, and the original KiCAD gitignore remove the cache used for rescue lib. Also doesn't handle the unintentional library upgrades.
The documentation is not yet exists. So I just write the usage here:

dotnet PackageKiCAD.dll <project name/directory>
-R Recursive
-cl Clear local symbol table. Keep only the packaged library on the list.

I'm using TortoiseGIT for my projects. It allows to automate the packaging. So the project gets packaged before every commit, if configured.
This is what I've done:
Opened the TortoiseGIT interface and selected Hook Scripts

Added a new script:

The "Run when working tree path is under" should point to the repository root in question. That's it.
Further development is coming.

2019. július 7., vasárnap

Chain of events

I always think, why I start more projects than I finish.
One cause is the chan of events. I start something, than something is missing is missing from it, what forms an other project, than I miss something from it - other project and the chain of events formed. Have several open things, nothing finished.
Check the current one:
I wanted to recreate my music listening environment. The first path is from vinyl.
1. Repaired the crossovers in my Mission 705 loudspeakers (replaced a few ancient Tesla caps)
2. Repaired my NAD 5120 turntable (removed the original built in cable, added a few RCA connectors, replaced the belt, adjusted the arm lift)
3. Wanted to build a new RIAA corrector. It is based on the award winning design from the '80s. Created by a local HiFi Magazine here in Hungary named HFM-I. Actually built it, but just wrote about it on my Hungarian language blog (http://it-pro-hu.blogspot.com/2019/02/hfm-i-ujragondolva.htmlhttp://it-pro-hu.blogspot.com/2019/03/hfm-i-2.htmlhttp://it-pro-hu.blogspot.com/2019/04/hfm-i-3.html
4. And here is the place where my "chain of events" starts. It came into my mind, that I'd like to measure what I built before put it into my system. Bought an HP 8903B Audio Analyzer (not just for this project, it was in my plans for a while already).
5. U1. I have a good set of instruments, but it wasn't a requirement to connect them to a PC until now (I was thinking, I'll do that once upon a time). For generating a graph from the 8903B it become absolutely necessary. Unfortunately didn't find a GP-IB interface what I like, so the first unplanned project born. Found an Arduino based interface, but absolutely hated the hardware, so designed a new one (http://pakahuszar.blogspot.com/2019/04/gp-ib.htmlhttp://pakahuszar.blogspot.com/2019/04/gp-ib-2.html)
U2. Didn't like the software of the interface, neither the license, nor the implementation. Started to write a completely new code from scratch (still unfinished, it will be testable soon, if it doesn't end as unfinished project as many before).
U3. Somebody asked upon my posts, if I want to sell the GPIB interface boards I created. Started to think - why not?
If I sell it, I want to organize the hardware designs and the software correctly. Don't want to publish unfinished design, or software, so I built up a git branching model for myself to achieve this. Here surfaced my old problem again. The library handling of the KiCAD is horrible. I want to publish the hardware design without external dependency (I mean, if somebody opens the schematic, get real components instead of boxes with question marks). Tried to use KiCADs archive plugin. Unsuccessfully. Registered, but it not even started. After few days of searching, asking, got no solution.
So, the Unplanned-3 project born. Create an application (not a KiCAD plugin) what automatically manage this mess on my hardware projects (I started it in .Net Core 2.1, got some progress, but this is a topic for a further post)
Let see! This is one way how my unfinished projects are born.