Free Soft­ware Utilities

Here you can down­load some of my uti­li­ties. This site replaces the for­mer down­load page. I will publish any new ver­si­on or new uti­li­ty here. It is just easier to main­tain. Plea­se check the Free­ware Archi­ve for older versions.

Par­Ser:

Par­Ser is a uti­li­ty to cons­truct a non-stan­dard resi­stance or capa­ci­tance value from a set of stan­dard resi­stors or capa­ci­tors. Par­Ser sup­ports dif­fe­rent topo­lo­gies of up to three indi­vi­du­al com­pon­ents. Par­Ser can also cal­cu­la­te vol­ta­ge divi­ders and find a set of sui­ta­ble resi­stors. The mini­mum and maxi­mum shunt cur­rent can be spe­ci­fi­ed as well as the nomi­nal load current.

ParSer_Executables (Ver. 1.04)
(MD5: db6a4d42687d77bbd5b16bc5535885cd)

ParSer_Source (Ver. 1.04)
(MD5: b91cf916b63fe6ff60446dbd9a3bafa1)

Chan­ge histo­ry:
V1.04, Dec 2021: Com­pi­led with Visu­al Stu­dio 2019, fixed some Code Ana­ly­sis com­plaints, no func­tion­al changes

Here is the Par­Ser Online Help.

The name Par­Ser is mis­lea­ding. It stands for parallel/serial con­nec­tion of resi­stors or capa­ci­tors. I’m not very hap­py mys­elf with this name, but now it’s out and I’m not going to chan­ge it.

Bin2C:

Bin2C is a uti­li­ty to con­vert bina­ry files to C source code. It pro­vi­des a simp­le way to include bina­ry files (e.g. images or audio files) in embedded pro­jects, which often do not sup­port any file system.

Here is the Bin2C Online Help.

Bin2C Exe­cuta­bles (Ver. 2.20)
(MD5: 2b15117dbbf2da5538f361995489911c)

Bin2C Source Files (Ver. 2.20)
(MD5: 0b4afb75ef4f1bcd84b694aae88b57e5)

Chan­ge histo­ry:
V2.20, Dec 2021: Com­pi­led with Visu­al Stu­dio 2019, fixed some Code Ana­ly­sis com­plaints, no func­tion­al changes

Draw­Timing­Dia­gram:

During my recent (most­ly Ver­i­log) deve­lo­p­ments, I felt the need for a simp­le timing dia­gram gene­ra­tor with text out­put. Such a thing is very hel­pful to docu­ment the beha­vi­or of modu­les insi­de the source code rather than in a sepa­ra­te file. For this pur­po­se I wro­te Draw­Timing­Dia­gram. Here is the Draw­Timing­Dia­gram Online Help.

Draw­Timing­Dia­gram Exe­cuta­bles (V1.01)
(MD5: 0804e03edbd13f2c3636ca45d665f97d)

Draw­Timing­Dia­gram Source (V1.01)
(MD5: eacfe0247ae02b65f7ac00b8b3b230b9)

Chan­ge histo­ry:
V1.01, Dec 2021: Initi­al release

Water­fall:

Most­ly all modern ama­teur radio trans­cei­vers are soft­ware defi­ned radi­os (SDR). As such, they come with a built-in water­fall dia­gram dis­play, which in turn invi­tes for stu­pid and use­l­ess expe­ri­ments. Sin­ce reti­red, I have time for a litt­le fun and I wro­te a small pro­gram, which con­verts a PNG gra­phics file to a wave file. That wave file can be trans­mit­ted and it gene­ra­tes a water­fall dis­play, which resem­bles the PNG input file. This is strict­ly for fun and shall not be used to annoy anyo­ne, so use it at your own dis­creti­on. Here is a sample:

The result is obvious­ly limi­t­ed by the low fre­quen­cy- and ampli­tu­de-reso­lu­ti­on of the water­fall dia­gram. Any­way, it works.

The­re is no help file, but the ope­ra­ti­on should be self-expl­ana­to­ry. Here is the user dialog:

Waterfall User Dialog
Water­fall User Dialog

Time per row spe­ci­fi­es the trans­mit dura­ti­on of one PNG row. The total trans­mit time is the num­ber of rows mul­ti­pli­ed by this value. The ramp spe­ci­fi­es the dura­ti­on for line­ar­ly fading in and out a sin­gle row. Wit­hout such ramps, the signal will beco­me rather dis­tor­ted due to many harmonics.

Here are the down­load files:

Water­fall Exe­cuta­bles (V0.2)
(MD5: 32da4134da5e065e32fb29a80bce781c)

Water­fall Source (V0.2)
(MD5: 301307cec175a78f445043aa23769e99)

Note that the­re are a num­ber of dif­fe­rent PNG file for­mats and not all of them are sup­port­ed. I did not do exten­si­ve test­ing. If you encoun­ter any pro­blems, plea­se let me know. In such a case, plea­se send me sam­ple file for testing.

Gene­ral Comments:

All uti­li­ties are writ­ten for Win­dows and should run on all cur­rent ver­si­ons. Plea­se let me know if you encoun­ter any pro­blems or if you have any recom­men­da­ti­on for impro­ve­ments. None of the uti­li­ties needs to be instal­led. Just copy the .exe file to your pre­fer­red path and remo­ve the file for unin­stal­ling it.

The uti­li­ties store some para­me­ters in the regi­stry or in an ini-file. See the respec­ti­ve help file for details. Ear­lier ver­si­ons used the key „HKEY_CURRENT_USER\SOFTWARE\Michael Krä­mer Free­ware“ but I recent­ly chan­ged this to „HKEY_CURRENT_USER\SOFTWARE\DK8PP Free­ware\“. I’m sor­ry for any inconvenience.

All files are com­pres­sed with 7‑zip, which ensu­res inte­gri­ty by a built-in CRC32. If the file is cor­rupt­ed by the down­load, 7‑zip should com­plain during unpack­ing. For some addi­tio­nal degree of file authen­ti­ci­ty, I added the MD5 hash codes for the com­pres­sed files. I agree that down­loa­ding and run­ning exe­cuta­bles from unknown sources is gene­ral­ly not a good idea. I’m also reluc­tant to do that mys­elf. Let me the­r­e­fo­re sug­gest the following:

  • Scan the down­loa­ded exe­cuta­ble with a local or online virus scanner.
  • Run the exe­cuta­ble in a vir­tu­al machine.
  • Review the pro­vi­ded source code and com­pi­le it yours­elf.
    I app­re­cia­te if you report any errors that you find and I also value any sug­ge­sti­ons to impro­ve my pro­gramming style.

By the way, feel free to use and modi­fy the source code as you like. I don’t reser­ve any copy­rights. But if you dis­tri­bu­te modi­fi­ed code, say that it is yours, not mine. I sim­ply want to avo­id any lia­bi­li­ty issues. Life is too short to fight with hun­gry lawyers.

Some­ti­mes I recei­ve more or less mild com­plaints for pro­gramming under Win­dows rather than Linux. Well, I had some expe­ri­ence with Linux in the late 90es. I then deci­ded to stay with Win­dows, sim­ply becau­se it works relia­bly. Again, life is too short to lose time with imma­tu­re envi­ron­ments. I’m sure that Linux has impro­ved sin­ce the old days, but I will not chan­ge any more. I don’t use any sophi­sti­ca­ted tools, just the Win32 API and plain C, not even C++. The­r­e­fo­re the exe­cuta­bles should also run under Wine.