Interfacing VS1053 audio encoder/decoder module with PIC using SPI
To fulfill my wish of building an MP3 player on top of a 16-bit PIC (PIC24FJ64GA002), I purchased a VS1053 audio encoder/decoder module from eBay. The VS1053, manufactured by VLSI, is capable of...
View ArticleRestoring text from PDF files encoded using custom CID fonts
Recently while reading Dune: The Battle of Corrin, a 2004 science fiction novel, from a PDF e-book using Foxit Reader, I realized that I could not seem to copy text from the document. Only garbled...
View ArticleComparison of popular PDF libraries on iOS and Android
Being able to preview as well as editing PDF documents is a very common requirement in many Android or iOS applications such as eBook readers or PDF form filling utilities. This article shares various...
View ArticleIPDGen - Blackberry IPD backup generator from SMS CSV files
In view of the popularity of CSV2IPD, a utility which I developed back in 2010 that reads text messages from CSV files and generates an IPD file that can be imported to Blackberry devices, I have...
View ArticleKeyboard issues in GRUB bootloader on a Mac Mini booting Mac OS, Windows and...
The Mac Mini, my main machine for daily work, has the following partition configuration for triple-booting Windows, Mac and Ubuntu Linux: Partition 1: Mac OS X (HFS+)Partition 2: Windows 8...
View ArticleError 'Your layout should make use of the available space on tablets' when...
Recently I received feedback from some customers stating they could not find my application on Google Play when searching from their Android tablets. The app, however, could be found on Google Play if...
View ArticleFixing 'Search fields undefined' error when generating source code for a...
When using Scriptcase to quickly develop a web portal in PHP for administrators to perform CRUD (create/read/update/delete) operations on more than 20 tables in an existing database, I encountered the...
View ArticleTektronix 1230 Logic Analyzer
Made in the 1980s, the Tektronix 1230 is a general purpose logic analyzer that supports a maximum of 64 channels with up to 2048 bytes of memory per channel. Despite being huge and heavy compared to...
View ArticleEnglish text to speech on a PIC microcontroller
I have always been a fan of the TTS256 - a tiny but great English text-to-speech IC based on a 8-bit microprocessor for embedded voice applications. Unfortunately, the TTS256 has been out of production...
View ArticleLD3320 Chinese Speech Recognition and MP3 Player Module
After my previous success in getting the SYN6288, a Chinese text-to-speech IC, to produce satisfactory Chinese speech and pronouncing synthetic English characters, I purchased the LD3320, another...
View ArticleSYN6288 Chinese Speech Synthesis Module
When searching eBay for a text to speech IC equivalent to the TTS256, I came across the SYN6288, a cheap speech synthesis module made by a Chinese company called Beijing Yutone World Technology...
View ArticleArchiving iOS projects from command line using xcodebuild and xcrun
In one of my recent projects, I need to provided 16 different builds from a single iOS application code base. Although the different builds targeting different customers, having different application...
View ArticleLimited Internet connection issue when using a VPN connection on Windows
As a frequent user of VPN (Virtual Private Network) for personal purposes, using both free software such as Hamachi and paid VPN service providers, I often encounter no issues accessing the Internet...
View ArticleImplementing PIN code checking in an Android application
In one of the mobile applications targeting both iOS and Android that I was working on, there was a new requirement of implementing a PIN code dialog which would ask user to enter a pre-defined code...
View ArticleUsing the Real Time Clock and Calendar (RTCC) module on a PIC24
This article shares the source code which I have written to set and get the current time using the Real Time Clock and Calendar (RTCC) module on the PIC24. It is tested with the PIC24FJ64GA002 but will...
View ArticleUsing picojpeg library on a PIC with ILI9341 320x240 LCD module
I purchased a 320x240 LCD module which supports 320x240 resolution and comes with an SD card slot from eBay: This LCD is using the ILI9341 controller supporting SPI mode. Within minutes I was able to...
View ArticleInterfacing the NEO-6M GPS module to a PIC
I recently purchased a NEO-6M GPS module made by u-blox from eBay. The module is manufactured by u-blox and a datasheet is downloadable on the company website. It looks like the following, with...
View ArticleCapturing data from a Tektronix 1230 logic analyzer by emulating a parallel...
As a fan of vintage measurement equipments such as oscilloscopes and logic analyzers, I sometimes encounter the problem of extracting data from these machines onto external devices for storage or...
View ArticleCalibration and acquisition problems on Tektronix TDS 340 oscilloscope
During one of my experiments with the TDS 340 oscilloscope made by Tektronix, I suddenly noticed that the AUTOSET button does not set the correct parameters for most signals, including the 1kHz...
View ArticleProgramming the Tektronix TDS 340 100MHz digital storage oscilloscope
In my previous article I provided some information on the Tektronix TDS 340 100 MHz digital storage oscilloscope and instructions on how to install the Option 14 card to get VGA output and support for...
View Article