How to OCR to searchable PDF in Linux

 Author:   Posted on:   Comments
There are multiple OCR (optical character recognition) engines for Linux, but most have a major drawback. They can only export plain text of the OCR'ed image and do not support embedding text into the PDF in order to make a searchable PDF.

By searchable PDF, we refer to a scanned PDF document that contains invisible OCR'ed text over the scanned image. The text should have the right size in order to be placed over the text portions from image. Every word from the text layer should overlay exactly on the portion of the image that contains that word.

Here are two software solutions that are able to create searchable PDFs. One is a native Linux OCR engine and the other is a free PDF reader with OCR capabilities running in Wine.

How to OCR to searchable PDF in Linux

How to compile and set up Dream DRM on Ubuntu

 Author:   Posted on:   Comments
Dream is an open source software receiver and transmitter for DRM (Digital Radio Mondiale) standard. It is a cross-platform application, yet there are no up-to-date Linux packages for major distros. I tried to install existing packages and failed to launch Dream with a segmentation fault.

So I decided to build from source. Dream needs Qt development kit and some other libraries. For audio decoding and encoding, AAC libraries are needed. These are available in repositories, but most of the time they are compiled without DRM support. I will show you how to compile them with DRM support and make Dream detect them.

Update: Tested and working on Ubuntu 16.04 and 16.10.

The instructions below are based on the official instructions on Dream website. I updated them to work with newer Ubuntu releases and I also added a Desktop entry, so you can launch Dream from Dash. It should be noted that the source compiles on Qt5, yet Dream doesn't work (segmentation fault).

How to compile and set up Dream DRM on Ubuntu

Wine 1.8 is available in Wine Team PPA. Install it now!

 Author:   Posted on:   Comments
Wine 1.8 was released just a few days ago (on December 19th). This release comes with new features and improvements regarding font rendering, Direct2D and Direct3D graphics support, PulseAudio driver and OS reporting (it can report Windows version 8.1 and 10). It also features a Start Menu. See the full release notes on Wine website.

Wine 1.8 has been succesfully built and is now available from the Wine Team PPA (until today, it was only available in wine-builds PPA under a different package name: wine-devel).  To install it, all you have to do is add the PPA to your software sources and install wine1.8 package.
Wine 1.8 is now in Wine Team PPA. Install it now!

3 Ways to remove PPAs on Ubuntu

 Author:   Posted on:   Comments
PPAs (Personal Package Archives) are software repositories used by Ubuntu and some of its derivatives. PPAs provide an easy way for developers to deliver updated software automatically to Linux users by uploading source packages to Launchpad.

Most of the time there's no need to use a PPA, because common software packages are already in the official repositories. But for custom builds, latest versions or simply packages that you can't find in the default repositories you need to use a PPA.

Sometimes, a PPA may not be needed anymore. Maybe the package from PPA has been added or updated also in the default repositories. Or you plan to upgrade the OS to a newer version and the packages for this version weren't yet built in the PPA (to prevent errors in this situation, Ubuntu automatically disables third party PPAs when upgrading). Or the PPA may not be maintained anymore and you get errors when updating apt cache.

3 Ways to remove PPAs on Ubuntu

How to add printer marks and bleeds to PDF documents

 Author:   Posted on:   Comments
In a previous article I showed you how to add headers, footers and/or watermark to PDF documents using free software running on Linux. But that method doesn't work for bleeds and printer marks because these are supposed to be outside the page dimensions. And when overlaying two PDF documents with pdftk, it automatically resizes their pages to match. What is about to follow, is similar to the mentioned article, yet there is one important additional thing to do: increase the page size of the source PDF before adding the bleeds layer over it.

This tutorial has been made on Linux, yet the tools that I'm gonna use are cross-platform and free, so you can try it on other operating systems too. In short, to add printer marks and bleeds to a PDF document, you should generate a marks and bleeds only PDF for the source document page size, then increase pages size of the source document and at last overlay the marks and bleeds document.

How to add printer marks and bleeds to PDF documents

3 Ways to install VirtualBox in Ubuntu

 Author:   Posted on:   Comments
VirtualBox is a free virtualization software developed by Oracle. It runs on and can run all major operating systems. If your host computer has enough resources, VirtualBox can run multiple virtual machines at a time. It can also take screenshots and record screen of virtual machines. Overall it is a great tool for anyone looking to test new operating systems without making any changes to the host computer.

This post will describe three installation procedures for Linux (Ubuntu). You can install VirtualBox from the default repositories, from Oracle repositories or from deb file. Each has its advantages and disadvantages. Of course, the best method is the one that brings you the best results.

VirtualBox main window screenshot
VirtualBox main window

HF & VHF antenna amplifier without coils

 Author:   Posted on:   Comments
The following receiving amplifier can be used for any kind of signal in the HF and VHF bands from about 1 MHz to 400 MHz. It offers quite linear gain across this band width without using any LC tuned circuits. The circuit does not use coils. However, a choke will be required if you will power the amplifier through the feed cable.

The circuit uses five RF transistors with a cut-off frequency of at least 600 MHz. The PCB is designed for the (S)S9018 transistors (EBC pinout), but you can use any kind of low power RF NPN transistors, even the old types like BF200 or BF214 (pay attention to pinout).

The amplifier's input is unbalanced and it can be connected to any kind of antenna (after the balun if it is necessary). Because Q5 is placed in a common base configuration, the input impedance is high, thus the amplifier can be used with whip antennas too (they usually have high impedance at low frequencies). The output is 75 ohms unbalanced. The overall gain of this amplifier is 20 dB.

HF & VHF antenna amplifier without coils

How to install Ubuntu from Minimal CD (with UEFI)

 Author:   Posted on:   Comments
Besides standard disc images, Ubuntu also offers a small image of only ~30...40 MB named Minimal CD. This contains a text-based installer, so you can use it on computers that fail to load the graphical environment of the installer. Only the packages required to run the installer are on the actual image and anything else will be downloaded from a repository that you can choose.

This has advantages and disadvantages. If you have a fast internet connection, this is actually a good way of installing Ubuntu or any of its official derivatives like Kubuntu, Xubuntu, Lubuntu or Ubuntu MATE. You will only get the packages you requested at their available versions from the repositories. This means that once installed, your OS will be updated. The disadvantages are of course related to the internet connection. The minimal ISO cannot boot in EFI mode yet you can make it EFI bootable. Also, the text installer may be a little difficult for inexperienced users.

This tutorial shows how to make an EFI bootable media from Minimal ISO and also how to install Ubuntu from it whether you're in EFI mode or not.

The ISO is less than 40 MB, thus it can be burned even on 80 mm CD or you can make a bootable flash drive. This is the perfect choice for any old, low speed USB flash drive. In order to make the bootable USB drive, you can use Rufus on Windows and dd command on Linux. You can get the Minimal ISO at http://cdimage.ubuntu.com/netboot/.

How to install Ubuntu from Minimal CD (with UEFI)

Set up the serial port in Wine

 Author:   Posted on:   Comments
The serial port is not of much use today, but there are still some things that rely on serial port communication. For example DIY microcontrollers electronics projects or some firmware updaters require connecting devices via serial port.

Another issue is that modern computers no longer have serial ports. But this can be easily solved by using a USB-to-serial adapter when you need a serial port.

Windows detects and names serial ports as COM1, COM2, COM3, etc. It doesn't make the difference between genuine ports or USB adapters. Linux on the other hand names hardware ports as /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, etc. and USB adapter ports as /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2, etc.

Set up the serial port in Wine

[Video] Render 3D images of EAGLE PCB projects

 Author:   Posted on:   Comments
This is a video follow-up of my previous tutorial about EAGLE and POV-Ray. I will outline below the main steps that you will see in the video and I will continue to improve the result at the end of this post.

If you haven't read about this before, EAGLE is a schematic capture and circuit board design software. The circuit boards can be processed with a set of scripts and converted into POV-Ray files. In this way you can render great looking 3D pictures of the circuit boards. All used software is available for all major operating systems. The video presents only Linux Ubuntu installation and configuration.

EAGLE circuit board rendered with POV-Ray HDR lighting

3 Large image viewers for Linux

 Author:   Posted on:   Comments
Recently, I wanted to view some large images of electronic schematics in Linux (Ubuntu). I had two TIFF images, one of 140 MP (24193 x 6489 px) and a smaller one of 44 MP (8772 x 5020 px) both 1-bit monochrome compressed with CCIT G4 algorithm.

So I tried to open them with the default associated program (Eye of GNOME) and before any image was displayed, my 2 GB RAM computer started swapping to make room for eog process. Therefore I needed other image viewers.

Here is a comparison of some free image viewers that run on Linux and can display large images using low RAM. I compared two features: speed of zooming/panning/dragging and memory usage. I used my two images for comparison, thus 44 MP displayed as RGB takes (8772px * 5020px * 24bpp) / 8 / 1024 / 1024 = 126 MB and 140 MP takes (24193px * 6489px * 24bpp) / 8 / 1024 / 1024 = 450 MB.

Therefore any viewer that uses more than RAM than the uncompressed RGB image size is useless for large images.

Large image viewers for Linux

How to install WinUSB in Ubuntu 15.10

 Author:   Posted on:   Comments
WinUSB is a piece of software that allows you to make a bootable flashdrive for installing Windows by using a Linux computer. Currently this is the only graphical and easy to use method to do this on Linux. There are of course manual guides of doing this but it isn't that easy for inexperienced users. Unfortunately, neither this guide is for beginners. This guide will show you how you can install WinUSB in Ubuntu 15.10 Wily Werewolf.

Update: These instructions are not for Ubuntu 16.04 LTS and newer. The only way to get it working in Xenial and above is to compile after patching the source code to work with wxWidgets 3.0. It is described in detail here.

There are currently some issues with the available builds of WinUSB:
  • wrong dependencies: some older versions depend on grub package while Ubuntu uses grub-pc or grub-efi. Installing WinUSB as usual will force grub-pc or grub-efi removal thus rendering your computer non bootable.
  • deprecated grub-install method. WinUSB uses the --root-directory argument to specify GRUB install location while it is recommended to use --boot-directory.
  • Unspecified bootloader type. There is no --target argument for grub-install so you don't know whether a MBR bootloader or an EFI one will be installed.
  • The previous issue raises a limitation. If GRUB decides to use the EFI bootloader, it will install it in a NTFS partition (that's how WinUSB formats the flashdrive) which makes it useless.
How to install WinUSB in Ubuntu 15.10

Free EDA: Easy circuit board design with ExpressPCB

 Author:   Posted on:   Comments
In the previous tutorials we simulated a circuit idea and turned it into a schematic. Now it is time to make a PCB design. I have chosen for this the free PCB design software from ExpressPCB. They also offer ExpressSCH, a schematic capture software which is quite good but doesn't have powerful drawing capabilities. This software is available only for Windows operating system but it runs in Linux too using Wine.

ExpressPCB is very easy to use and one of the features I like most is that it is very easy to make new footprints. You don't even need to leave the current PCB design window. You just draw the footprint using predefined pads and shapes then group all elements into a component footprint. That is all. If you want this to be available in other projects, you just add it to library.

There are also some downsides. The export dialog is quite limited and you can't directly export mirrored layouts. However there is a workaround that I will show you.

Free EDA: Easy circuit board design with ExpressPCB

How to align satellite dish

 Author:   Posted on:   Comments
After some unsuccessful tries to align a satellite dish do you think it's rocket science? Well, the calculations are difficult but the practical thing isn't. Despite what many believe, it is easy to align a satellite dish as long as you know the parameters than can easily be calculated online these days. Of course you are looking towards the sky, but you must be looking towards the satellite. This is not the usual practical guide to satellite dish installation. For that there are plenty of resources and video clips on YouTube. I'm gonna explain all the steps required to successfully receive signal from a satellite and explain why you do that and that. Everything from mounting the dish, connecting the LNB and receiver and looking for signal on the right frequency.

How to point the offset satellite dish

Free EDA: Good looking schematics using TinyCAD

 Author:   Posted on:   Comments
Welcome to the second part of the Free EDA series. Now that we have a working circuit design, let's draw a good looking schematic. I decided to use for this the free schematic capture software called TinyCAD. It is available only for Windows but runs it Wine too.

I have chosen TinyCAD because it has quite powerful drawing abilities for a schematic capture software and I found it quite easy to make my own symbols. More than that, it can export netlists that you can use to design the PCB later (I will not be using this feature though).

I have tried TinyCAD before and I quit using it because I didn't like how the schematics look. There are plenty of libraries with many symbols, but there are also duplicate symbols that look different in other libraries. Some look good, some don't. I didn't actually start to use TinyCAD until I made my own libraries that I'm gonna share with you at the end of this post.

Free EDA: Good looking schematics using TinyCAD

Free EDA: Design and simulation with LTspice

 Author:   Posted on:   Comments
This is the first part of a series articles about turning a circuit idea to design using only free software. EDA stands for electronic design automation and Wikipedia has a nice comparison table of software for this job.

Before drawing the schematic and designing the PCB we need a circuit idea. Then we will use the free circuit simulation software LTspice to simulate our design. This is what this article is about. LTspice is developed by Linear Technology and it runs native in Windows and Mac OS X. The Windows version runs without issues on Linux using Wine.

This is not a LTspice tutorial. For that we recommend Terry Sturtevant's and Simon Bramble's tutorials. You will also need electronics knowledge. See All About Circuits, Learn Electronics Online or Learn About Electronics.

Free EDA: Design and simulation with LTspice

Make a wideband antenna matching transformer

 Author:   Posted on:   Comments
Most do-it yourself TV antenna projects online use a ready made impedance matching transformer between antenna and cable. But what can you do if you can't find one at your local supplier? This post will show you how can you make one. You could use some hard to find double hole pig-nose RF ferrite cores, but this transformer has good performance even with ordinary toroidal cores.

This transformer can be used for VHF and UHF reception (from 50 to about 800 MHz). The input is 300 ohms balanced and the output is 75 ohms unbalanced, ready for coaxial cable connection. A device similar to what is presented here is used in commercially available antenna preamplifiers with 300 ohms input.

Make a wideband antenna matching transformer

UEFI NTFS: Bootable Windows USB from Linux

 Author:   Posted on:   Comments
Installing Windows from USB drive in UEFI mode requires a FAT32 formatted USB drive. How to create that bootable USB is described in Make a bootable Windows USB from Linux (Ubuntu). However that method is unusable in some cases where install.wim is larger than 4 GB.

The procedure that is about to follow should work with any Windows version that supports UEFI boot (Windows 7 on 64 bits and all the newer versions). It has been successfully tested only in VirtualBox but it should work on real hardware too.

We will make two partitions on the USB drive, one that is FAT32 and will hold an EFI bootloader and the other is NTFS and holds Windows installation files. The bootloader will use a NTFS driver to read the NTFS partition and boot Windows.

UEFI NTFS: Bootable Windows USB from Linux

Change mouse cursor theme in Ubuntu

 Author:   Posted on:   Comments
There are a few applications that should allow changing default mouse cursor in Ubuntu. Unity Tweak Tool, GNOME Tweak Tool, Dconf Editor fail to change the mouse cursor or do it in such a way that it uses mixed themes.

In order to have a consistent cursor theme you must select it from one of these apps and also run a command in Terminal. First, the command. This is the most important and you may not even need to change the cursor theme from those apps too.
sudo update-alternatives --config x-cursor-theme
Change mouse cursor theme in Ubuntu



Safely try new kernels in Ubuntu Linux

 Author:   Posted on:   Comments
Some while ago, bothered by the ACPI PCC Probe Failed message at every boot, I decided to try the latest Linux kernel, which was at version 4.2. But I ran into troubles. So this tutorial is not focused on installing new kernels, but on the steps you should take to maximize the chances your new kernel will work and how do you prepare to restore your system to the old kernel, before actually installing the new one.

Here is what I recommend doing before trying a new kernel:

Add page numbers, headers and footers to PDF in Linux

 Author:   Posted on:   Comments
If you need to add page numbers over each page of a PDF document in Linux keep reading. Actually using this method you will be able to add any kind of content that changes sequentially or by page to a PDF document. By content I mean header, footer and/or watermark. It can be text and/or graphics. I will use cross-platform and free software so you may want to try this on Windows too. I will be using only GUI software: ScribusPDF Chain (the GUI to pdftk) and GIMP. You can install these on Ubuntu with:
sudo apt-get install scribus pdftk pdfchain gimp
First of all you need to gather some information about the document you want to add content to. Using your favorite PDF reader or any other PDF information software find out the number of pages and their size. In order to know where to place headers/footers pick a content representative page from the PDF document that you will later use as a template to avoid overlaying header/footer with document contents.

Add page numbers, headers and footers to PDF in Linux

Free PDF manipulation software for Linux

 Author:   Posted on:   Comments
Are you having trouble editing your PDF files in Linux? If you thought there are no alternatives to paid Windows software, then you might be wrong. For most tasks there is a solution. The difficulty is that there are more small pieces of software that do little things. And most of the time you'll have to combine whatever these pieces of software do in order to get the result. But you get a result.

I will use throughout this tutorial only free software (probably most are open source too). I will avoid as much as possible using CLI software from the command line because most new Linux users are afraid of this. Although I will remind what backends are used to perform certain operations.

If you got a bunch of scanned pages as images and you want to turn them into a PDF I already discussed that in the post High quality scanning vs. small file size. For now I will focus on what you can do with an existing PDF.

Free PDF manipulation software for Linux

10W Stereo Audio Amplifier with Transistors

 Author:   Posted on:   Comments
This is another simple to build audio amplifier using common parts and medium power transistors. It outputs 10 W into 4 ohms speakers on each channel when it is fed with a 0.5 V peak-to-peak signal.

It is powered from 24 ± 1 V and has an input impedance greater than 100 k.

The output transistors must be able to handle 2 A of collector current and dissipate at least 20 W. Something like BD237 & BD238 or BD 437 & BD 438 pairs will do. The rest are general purpose transistors such as BC547, BC171, 2N2222, S8050, 2N3904 and their complementary BC557, BC177, 2N2907, S8550, 2N3906. The drivers of the power transistors, just like them, must be complementary and with similar current gain. So, if you have a hFE meter, do test the transistors and match them based on their hFE. If you can't measure them, follow the hFE markings. Do not match a BC547B with a BC557C because they have different gains.
10W Stereo Audio Amplifier with Transistors
Built amplifier (single channel, without heatsink)

2.5W Audio Amplifier with Transistors

 Author:   Posted on:   Comments
This amplifier is easy to build using common discrete parts. A channel uses only four general purpose transistors (3 NPN like BC547, 2N2222, 2N3904 and 1 PNP like BC557, 2N2907, 2N3906) and two medium power complementary transistors like BD135/137/139 with BD 136/138/140 or MJE200 with MJE210. Almost any pair of complementary transistors will do as long as hFE is greater than 60, maximum collector current at least 1 A and dissipation at least 10 W.

The power transistors must be fitted on a heatsink! They have their collectors electrically connected so you don't have to isolate each other. The heatsink should have an area of at least 40 square centimeters. Note that the heatsink voltage is neither ground or supply voltage so do not connect it with anything else besides transistors. Be careful not to connect it with chassis ground. If you build the other channel for stereo use, do not electrically connect the heatsinks of both left and right channels.

2.5W Audio Amplifier with Transistors

Make a multifeed LNB bracket for your satellite dish

 Author:   Posted on:   Comments
A satellite dish can receive signals from multiple satellites by using one LNB for each satellite. This configuration has advantages and disadvantages. The main advantage over a motorized dish is that you can change channels quickly, but the non-center LNBs will receive lower quality signal.

The multiple LNB bracket must keep a constant focal distance and must follow the inverted reflection of Clarke orbit. The focal distance depends on antenna and orbit reflection depends on location. The distance between LNBs is proportional with dish diameter. Later I will show how these parameters affect the LNB bracket shape and size.
Multifeed dish with 8 LNB
Photo courtesy of Paul Lucas on Flickr (cropped and resized) 

Connect multiple satellite receivers to a single LNB

 Author:   Posted on:   Comments
A TV satellite receiving installation is usually made up of a dish, LNB and receiver. A single LNB is designed to feed one receiver. Yet in some circumstances, depending on received transponders properties, a LNB with a single output can feed multiple receivers, although the number of received transponders will lower. The best solution is a multiple output LNB.
Satellite installation with two receivers

LibreOffice: bibliography management with JabRef

 Author:   Posted on:   Comments
LibreOffice Writer is a powerful text editor with a nice bibliography management. Yet, not very user-friendly. For example, if you want to insert a bibliography entry in a document, you are presented with a list that contains only the short name of the reference, making it difficult to use large databases. Moreover, each database entry must be manually inserted into the database.

But with the help of the bibliography manager JabRef, things get more simple. It uses the BibTex file format, so the bibliographical databases made with it are compatible with LaTeX. It has a nice online search tool which can populate a bibliography entry with all the information based on ISBN for books or document ID for different papers. And most important it integrates with LibreOffice and OpenOffice, allowing users to insert a bibliography entry with a simple two-click operation.

LibreOffice: bibliography management with JabRef

Dual booting Windows and Ubuntu [MBR]

 Author:   Posted on:   Comments
Linux distributions are becoming more and more popular. But before completely giving up Windows, many users want to have both OSes on their PCs. That's because they can't find an alternative for their everyday apps on Linux or can't play some games. Several manufacturers also started to sell preinstalled Linux computers. Before wiping the whole HDD to install Windows, consider dual booting.

This post will give solutions to some common situations. Because Ubuntu is one of the most popular Linux distributions, it will be used during this tutorial.

Here are some common situations that we will talk about:

ScanTailor Fix DPI dialog

 Author:   Posted on:   Comments
ScanTailor is a scan post-processing software that can improve significantly your scans and reduce the file size of your e-books. But it needs high quality scanned images above a threshold considered by it 300 DPI. The purpose of this post is to understand the Fix DPI dialog in ScanTailor. If you don't see it when loading images everything should be OK and you can continue processing.

ScanTailor Fix DPI dialog screenshot
The Fix DPI dialog

How to identify an unknown radio tuner

 Author:   Posted on:   Comments
Radio frequency tuners can be found in a lot of devices, starting with TV sets, set top boxes and PC tuner cards. A tuner is a device that takes a ”chunk” of a frequency carrier of a bandwidth, amplifies it and then shifts it (usually by down-converting) into a fixed frequency that will be fed into a demodulator device. Tuners are difficult to build and a DIY tuner will never have the performance of one from a radio receiving device. The RF signal enters a baseband amplifier. Further, this signal is mixed with a local oscillator with variable frequency. The result exits the tuner as Intermediate Frequency (IF). Sometimes the tuner also contains a filter at the IF output. These functional blocks can be integrated into a superheterodyne receiver with ease (just add a detector). So, what can you do with a tuner? Keep reading.

How to identify an unknown radio tuner

Gray-Hoverman, the wideband TV antenna

 Author:   Posted on:   Comments
Air TV channels broadcast on frequencies ranging from 170 MHz to 860 MHz. The VHF-Hi band covers 175 to 230 MHz, while UHF covers 470 to 860 MHz. The gap between is used for cable TV. Receiving all these frequencies is difficult when using a single antenna.

The Gray-Hoverman antenna has been designed by Doyt R. Hoverman and it was patented in the sixties. His design only covered a part of UHF band. However, with some improvements, the antenna can receive well both the UHF as well as VHF-Hi. This post will a simple to build variant of the antenna that can be used to receive 170 to 230 MHz channels (5 - 12) and a part of UHF between 470 - 720 MHz (21 - 52 channels) with a minimum gain of 5 - 6 dBi. There are however designs that offer a minimum gain of 8 dBi on VHF and 10 dBi on UHF (check the Links section). This antenna can be used for any kind of signal that can be received on the mentioned frequencies: analog TV, DVB-T, DVB-T2, ISDB-T, ATSC. The design is distributed according to the GNU GPL version 3 license.
Gray-Hoverman with NARODs, the wideband TV antenna