Skip to main content

Posts

Showing posts with the label lazarus

FA-5 VizControl

The BG7TBL FA-5 frequency counter has become recognized as an excellent choice for experimenters and radio enthusiasts, offering high-spec performance comparable to branded units. But it remains remarkably accessible due to its low cost.  FA-5 Frequency counter. The FA-5 has powerful hardware. However, most existing control applications lack a good user experience. Many of them rely on scripting languages, such as Python, while others utilise simple command-line interfaces . These limitations inspired us to create FA-5 VizControl . This native application provides a comprehensive, intuitive, and portable desktop experience for managing the FA-5 . We developed FA-5 VizControl using Lazarus and the FPC ( Free Pascal Compiler ). This choice ensures maximum compatibility and portability. The application functions as a standalone, portable executable on both Linux and Windows operating systems. There is no need for complex installation routines. Users simply download and launch...

Virtual electronic finderscope for the Stellarium

StarPointer is a virtual electronic finderscope for astronomical telescopes. This device works with Stellarium and helps the observer identify objects in the sky.  Prototype version of the StarPointer sensor kit. This unit can be attached to the telescope without modifications and connects with the computer through the USB port. The StarPointer uses a few onboard sensors to determine its angle and position. After obtaining that information, the unit calculates the RA (right ascension ) and DEC (declination) coordinates of the telescope and transfers those details to the Stellarium. The StarPointer builds around the STM32F103C8 microcontroller, ADXL345 3-axis accelerometer , and HMC5883L 3-axis magnetometer . This unit communicates with the PC using the inbuilt USB peripheral of the STM32F103C8 microcontroller. The firmware of the StarPointer is developed using the LibOpenCM3 library and built using GNU ARM Embedded Toolchain . This unit can attach to any astronomical telescope o...

Portable Image File (PIF) library for Lazarus and Delphi

Portable Image File (PIF) is an embedded-systems friendly, bitmap-like image format with ease of use and small size. This image format develops by the gfcwfzkm ( aka Pascal ) for low-end embedded systems. The file format and PIF's original implementation are available at https://github.com/gfcwfzkm/PIF-Image-Format . In this project, I developed an open-source library for the above file format to get used in Lazarus and Delphi programming languages.  This PIF library supports Windows and Linux operating systems, including Raspberry Pi OS . Sample application in Linux environment. The library is available at https://github.com/dilshan/pascal-pif-library .  The library methods are self-explanatory, and sample projects are available for Lazarus and Delphi . For example, the following code block demonstrates opening the Portable Image File and displaying it on the TImage . var pifObj: TPortableImageFile; begin pifObj := TPortableImageFile.Create('sample-image.pif'...

STM8S001J3 based Programmable timer module

Programmable timer lite is a miniature, USB programmable timer module. This module can handle more than 100 alarm configurations and trigger the output channel based on the programmed conditions. The timer module can program using SRIKit 's Timer Controller software. All the timer configurations are store in the EEPROM to prevent the loss of data during power failures. Programmable timer module. We design this module around the STM8S001J3M microcontroller and DS3231 real-time clock. AMS1117-3.3 regulator in this module can handle a maximum of 9V DC input without installing an external heatsink. Bottom side of the timer module These programmable timer modules were specifically developed to handle long-duration alarm configurations which span up to years. Firmware of this timer module develops using SDCC version 3.9. Programming utility is a GUI application and develops using Lazarus and FPC toolchain. Both these projects are built and tested on a 64-bit Linux environment. Th...

8-bit assembler compiler project

This project is an assembler compiler to generate a binary executable for 8-bit x86 like CPU systems. This compiler can parse NASM style assembler code and it compatibles with Marco Schweighauser's javascript 8-bit virtual CPU . Compare with Marco Schweighauser's javascript compiler this compiler parse almost same assembler code and generate almost identical executable code. The only difference in this parser is that all the operands are separated by white space(s), and not with the comma ( , ). jmp start hello: db "Hello World!" db 0 start: mov c hello mov d 232 call print hlt print: push a push b mov b 0 loop: mov a [c] mov [d] a inc c inc d cmp b [c] jnz loop pop b pop a ret The output generated by this compiler for " Hello World " sample is listed in below and it can execute directly with Marco Schweighauser's 8-bit virtual CPU . 0000 1F0F 4865 6C6C 6F20 576F 726C 6421 0006 0010 0202 0603 E838 1800 3200 320...

ZFM-20 fingerprint capture library

ZFM-20 is an optical fingerprint sensor module series developed by Zhiantec . Resolution of these fingerprint modules are 256×288 pixels and depending on the module it can be accessible over UART or USB interfaces. Other than capturing fingerprints this module has inbuilt DSP to process and verify captured fingerprints. This ZFM-20 fingerprint library is developed to capture and retrieve fingerprint images from the above sensor module. The main purpose of this library is to use ZFM-20 sensor with PC as a low-cost fingerprint capture unit and because of that, in-module fingerprint processing and verification functions are not implemented in this library. ZFM-20 fingerprint sensor test setup with CH340G serial to USB converter. ZFM20-LIB is x86 native shared library and it's implemented using Lazarus / FPC . This library is developed to use with most of the programming languages which including C , C++ , Delphi , FPC , Microsoft .net framework based languages, etc. Objec...

ImageHide: Digital image based steganography tool

Steganography is a method of hiding information and one of the techniques is to hide an image inside a "cover image" by without distorting the supplied "cover image". ImageHide is command-line driven console application to perform this task and it is capable to hide/embed a colored or gray-scale image inside another color or gray-scale cover image and/or extract an embedded image from the supplied "cover image". This application is developed using FPC / Lazarus and it can execute on any FPC supported operating system which including Linux, Windows, Mac OS, etc. ImageHide is an open source project and its source code is available at https://github.com/dilshan/image-hide under the terms of GNU General Public License version 3.0 . Compiled binaries of ImageHide are also available for both Linux and Windows operating systems. As an input, this application accepts bitmap, PNG or JPEG image formats and it can export the processed image as bitmap or PNG ...

Extended Run dialog box for Windows

When it comes to Windows operating systems I highly addicted to the "Run" dialog box. Technically, to me it functions like a single-line command line interface . From Windows 95 to Windows 8.1, layout and the functionalists of "Run" dialog box is quiet identical. To extend the functionalists of "Run" dialog box we did some project call " QRun ". The main purpose of QRun is to provide more convenient user-interface to existing Windows "Run" dialog box. QRun window with Action menu entries   The key feature of QRun is its menu driven command and resource selector. This menu driven interface help end user to perform actions by without memorizing commands and/or parameters. Another feature of QRun is its macro commands. Using this feature end user can create custom actions for run dialog box. Other than above features QRun also had inbuilt support for win-bash . Because of this feature end user may be able to run GNU bash relat...

ParseGen - parser generator for FPC

ParseGen is rule driven, parser generator for FPC / Lazarus . ParseGen is design using FPC, FCL and Lazarus and it mainly supports for Windows and Linux operating systems. ParserGen scanner is slight DFA (deterministic finite automaton) state machine. This scanner can operate on case sensitive or case-insensitive modes and it can easily configure/extend through given class structure. The parser of the ParseGen is recursive descent parser. ParseGen generate this parser using high-level source language and this language is logically similar to EBNF grammar. For example, in ParseGen, definition for "term" and "expression" can be written like this: define: expression   optional: "-","+"   end          term          loop: "-","+"     term   end   end define: term   factor   loop: "*","/"     factor   end   end This parser generator...

microTone Module - Simple Analog Hardware Interface

microTone Module is analog interface to connect microcontrollers or digital logic systems with PCs. This interface use PC sound card’s audio output terminal to send commands to external hardware systems. microTone Module is an open source project and all its software source codes and hardware designs are available to download at sourceforge.net/p/microtone . All the compiled software and source codes of this project are distributed under the terms of GNU Lesser General Public License . Hardware design and other documents are distributed under the terms of Creative Commons Attribution-ShareAlike 3.0 Unported License . Software library of microTone Module is a Win32 DLL and it can use with any programming language which allows interface with dynamic link libraries (e.g: C++ , C# , Python , Java , Delphi , Visual Basic , etc.) Some wrappers for this DLL are already implemented and available to download at microTone Module sourceforge.net code repository. And also if you implement or...

nanoide – custom build tool with source editor

nanoide is an effort to build scriptable build tool with source code editor. Initially I developed this tool to test some of my ongoing compiler projects and later I extend it with source code editors and with simple UI. nanoide build 138 with sample build script nanoide build system is based on FreePascal style scripting system and it comes with more than 50 inbuilt support functions . With help of nanoide, users can create complex conditional build flows and it helps to automate system testing processes also. Current version (build 145) of nanoide editor support C/C++, Java, Pascal/Delphi/Lazarus, Python, HTML, XML, CSS, Perl, Basic/Visual Basic, SQL, Tex, DOS batch scripts and UNIX\Linux shell scripting. nanoide is developed using Lazarus and it can be compiled and execute on Windows, Linux and Mac OS platforms. Virtually nanoide is compatible with any command line-driven compiler and it is tested with TinyC Compiler , Lua , Python , FPC and with PHP .  ...

Processing OpenOffice.org dictionary files using Lazarus

In this article we demonstrate how to processing OpenOffice.org dictionary files using Lazarus – FPC IDE. To use the OpenOffice.org dictionary first we need to extract AFF file and DIC files from the OXT (OpenOffice.org extension) file. This can be easily done using 7Zip or any other generally available file archiving utility. (Only thing we need to do is change OXT file extension to ZIP and extract the contents) To process this dictionary (DIC) file we need to use affix table defined in the AFF file. In this sample code we implement the complete AFF and DIC file processor for English (United States) dictionary of the OpenOffice.org. Our processing of this affix file in this sample application is based on the following rules, AFF file generally consist with some conditional modules as follows, SFX T N 4 SFX T 0 st e SFX T y iest [^aeiou]y SFX T 0 est [aeiou]y SFX T 0 est [^ey] In the first line " SFX " means ...