Logic Voltage Levels

Again and again I need to look up the logic voltage levels of various logic gate standards like HC, HCT, LVT, and so on. I found a nice article on EETimes: A brief recap of popular logic standards. The page has a picture that recaps all the popular standards along with their Voh, Vih, Vil, and Vol voltage levels. However, the picture resolution is very low quality, and it is also not evident at the first glance what is the relation between standards. So I redraw the picture in Inkscape, an open-source SVG editor. The result is here (click to see large image):

Logic Voltage Standards Continue reading “Logic Voltage Levels”

Bluetoothing to Android Tablet

Today I tried pairing my UART-to-Bluetooth adapter to a Nexus 7 tablet to see how it works. On the tablet I used BlueTerm, an open-source terminal emulator for communicating with any serial device using a bluetooth serial adapter.

I connected my Bluetooth adapter through a USB/UART adapter to a PC. On the PC in a terminal emulator the following sequence of commands is sent to the BT adapter:


The three slashes are an escape sequence to put the adapter into the AT-mode. Then we set BT device name and a PIN. Finally we exit the AT-mode, entering data mode. The adapter now awaits BT connections.

On a tablet or phone we search for BT devices in the vicinity. The BT module should appear in the list, and we pair the tablet with it. Android may ask for a PIN number, which is 1234. After pairing it is possible to connect to the adapter using, for instance, the BlueTerm app in android.

On a slightly separate note, I also tried creating my first Android app. I just followed a tutorial on developer.android.com and everything worked just fine, even thou I am running ‘bleeding-edge’ Fedora 20 on the PC. The only problem was with access permissions to an android device in Linux. The adb (android debug server) reported error “(?????? no permissions)”, but this post on stackoverflow.com solves the issue.



Foolish Attempt at Soldering an FPC Connector with 0.5mm Pitch, and a Prototyping PCB Design

Mechanical drawing of my EPD ePaper display GDE021A1 is shown below. Signals to the display are connected via a 24-pin flex flat cable. The pitch between pins is only 0.5mm. A suitable matching connector is MOLEX 52435-2471 FPC RCPT 24PIN 1ROW.


On Thursday I tried soldering thin wires directly on the MOLEX connector I got from Farnell. However, my attempt was very naïve because the pitch between pins on the connector is only 0.5mm. So I failed.

As the second attempt I designed a small prototyping PCB board to hold the 24-pin MOLEX FPC (0.5mm) connector for EPD display and a standard 24-pin header (2.54mm pitch). The PCB connects all MOLEX signals to the header. The board also includes all capacitors, a power transistor, a coil and diodes for switching/mode power supply to power the display. The circuit is copied from the display’s datasheet.

The scheme for the PCB board is in this PDF file, and the PCB layout is shown in the picture below. The dimensions of the board are 42x38mm.


On Friday I sent the PCB to OSH Park for manufacture. As this is my first order in that company I am quite interested how it will turn out. I hope to get the board in about a week or two.

As usual, schematic and layout for the prototyping board in KiCad format are in the project repository.


UPDATE: The boards arrived on June 11, so it took full 3 weeks.

Philips PM3310 Digital Storage Oscilloscope

I got myself an old Philips PM3310 Digital Storage Oscilloscope (DSO). The scope has a classic CRT screen, but otherwise it is a fully digital device. The scope has two channels. Analogue bandwidth of the input attenuator/amplifier is 60MHz, which is not bad at all. Sampling frequency in real-time mode, however, is only 50 Mega samples per second. Each sampling ‘run’ after a trigger stores 256 samples into a RAM. The sample RAM has capacity for 4 independent waveforms. The 50M sampling speed allows single-shot time base up to 500ns/div, and a recurrent time base up to 5ns/div (sampling of repetitive signals in equivalent time). The internal CPU switches between the modes as needed.

PM3310 Front view

PM3310 Inside view

Sampling speed of this DSO is funny in today’s terms, although in mid-80 when it was designed it must have been quite good. The DSO uses unique Philips-proprietary “Profiled Peristaltic Charge Coupled Device” (P2CCD). It allows storing of an analogue signal into a serial analogue-like shift register with the sampling speed up to 50M samples/second (125MS/sec in PM3311). After a waveform is completed the ‘register’ is sequentially read out and sampled using a normal A/D converter at a much slower rate 78kHz, and stored in a digital RAM.


There is an interesting project at http://ringwelt.de/index.php/messgeraete/16-oszilloskop/37-oszilloskop-pm3311.html. It describes a home-made USB adapter for the PM3311 oscilloscope. Captured waveforms can be sent to a PC.


Philips PM3310 Product Brief


Bluetooth Module (Re-)Investigation

Some five years ago I bought a nice UART-over-Bluetooth adapter module. The module emulates a serial port (UART) over a Bluetooth connection. All necessary chips and an antenna are mounted on a small PCB board depicted below.

The type I’ve got is the cB-OEMSPA310i-04 with an internal antenna. The module requires only a 3.3V power.


Communication with the module is over serial UART at 3.3V logic levels. The basic RXD/TXD signal pair is complemented with hardware flow control via RTS/CTS, and an optional BT connection status via DSR/DTR. A three-colour LED (red, blue, green) can be directly connected to dedicated pins on the module to visually indicate the state of module to the user.

The BT module is controlled by standard AT commands. When powered up or after a reset the module is in a data mode with no connection over BT. Local application microcontroller connected to the RXD/TXD/RTS/CTS signals first sends an escape sequence, which normally consists of three forward slashes ‘///’. This puts the module into the AT mode. In AT mode the strings sent over the local UART are interpreted as commands, while in data mode all data is passed through to bluetooth and over the air.

Continue reading “Bluetooth Module (Re-)Investigation”

Mailbag: ePaper Display Module

Look what I’ve got by post today from our Chinese comrades at ‘Good Display‘ factory: a nice small 2.04-inch electrophoretic display (EPD), or better known as ePaper/eInk display or ‘electronic paper’.

ePaper EPD display front side view
ePaper EPD display front side view
ePaper EPD display back side
ePaper EPD display back side

Electrophoretic displays (EPD) do not require any power to retain  an image. Power is needed only when redrawing the screen. The technology is thus used in electronic paper readers such as Amazon Kindle or the Pebble smartwatch (correction: Pebble uses different display: Memory LCD).

The unit I’ve got is 2.04″ display designed for use as electronic price tag at shelves in shops. The resolution is 172×72 pixels. It has 2-bit ‘colour’ depth, which corresponds to 4 grades of shade. The model number is GDE021A1.

If I read the datasheet correctly, the display requires DC-DC converter circuit to supply relatively high voltage 40V for refresh. Luckily the DC-DC controller is integrated, but a power MOSFET, a coil, and diodes must be connected externally over the connector. All other communication with the display is via SPI-like interface, so it should be quite easy.

I will get back once I have it working somehow. What is my target application? Well, I always loved Falout’s Pip-Boy (Personal Information Processor) device, but-you know-wearing a CRT on your wrist is not entirely practical (maybe unless there are mutant scorpions around).


UPDATE 2014-04-28: Below you can find a driver circuit for interfacing to an MCU. It is redrawn from the datasheet.

EPD Driver Circuit
Basic EPD driver circuit, redrawn from datasheet

 Tutorial video by the manufacturer:


Talking Nixie Clock

I’ve just assembled both PCB boards of my talking nixie clock together and went ‘whoa, this thing IS really beautiful!’.  Check it out below, electronics porn at its best!




The first two pictures were taken with a flash to get good details, the last one without, hence a poorer picture quality. But you at least get the idea how those nixie puppies shine!

Later I’ll get my documentation together and create a proper project page with all schematics, pcbs, source codes, better pictures etc etc.

And finally an obligatory youtube video:


Talking Clock Prototype

I am working on a talking clock with a remote IR control. The idea is that when I awake at night I don’t have my  glasses on, hence I cannot recognize digits on a clock display. So I figured out that what I need is a talking clock that could tell me the time aloud. The audible announcement is triggered by a button press on a standard infrared remote, normally used to control my hi-fi equipment.

So this is the current state of the prototype (turn volume up!):

As you can see in the video the display board (using six nixies, of course!) is finished but the ‘mainboard’ is still being in the works.

The specification is as follows:

  • Display: Six nixies
  • Time control: Radio DCF77 module (automatically synchronizes to the German time), backed up by a precision 32.768kHz crystal.
  • Remote control: infrared (IR) sensor, software decoder for the Sony remote I’ve got
  • Processor: AVR ATmega32 (8-bit, 32kB FLASH, 2kB RAM)
  • Voice samples storage: SD card (e.g. 1GB) with FAT16/32 filesystem
  • Sound converter: 12-bit DAC over SPI (MCP4921)
  • Amplifier: 1.5W (TDA7233)
  • Debug: UART/RS232, AVR ISP interface

The picture shows layout on my breadboard: rcclock-breadboard-marked