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.
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.
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.
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.
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.
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’.
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.
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
Finally, after much waiting, my ZedBoard arrived on Tuesday. See it shining in the picture above, isn’t it lovely?
So far I managed only to unbox it and turn it on… Hence only a few notes on the beginnings:
Running Vivado 2013.3 in Fedora Linux: see my previous post.
Running the demo Linux bitstream from the supplied SD card: you need to reconfigure switches, at least JP8, JP9 should be at 3V3 side. Best to see the README on the SD card. The default configuration (JP7-11 at GND) is for JTAG download.
Installing USB-JTAG cable drivers in Linux: surprisingly, all I needed to do was to run Vivado/2013.3/data/xicom/cable_drivers/lin64/digilent/digilent.adept.runtime_2.14.3-x86_64/install.sh as root.
Missing impact tool in Vivado 2013.3: impact is deprecated. Use Hardware Manager / Open Target tabs in Vivado GUI.