Hardware & Low-level C projects

(years 1998-2002)

Skeleton 3D

Program is simple 3D wireframe modeller. You can create objects using basic commands (point, line, move, delete, rotate, zoom, turn, deep), define objects by matematical expression (3 types), use rotation or translation cloner (to create dishes or prisms easily), and finally, view the object in real-time binocular (anaglyphical) visualisation. Skeleton is programmed using Borland C++ for DOS, if you are interested in sources, I can send it to you via e-mail on request. Here you can download the program. I strictly recommend running it under DOS, because Windows may cause some graphical effects to fail. Old 486 with 1MB video memory will suffice.

The object you can see below is one I call "Propellerhead". It has been created in Skeleton within 2 minutes.

Disasm84

This program is, together with Intelligent I2C Display, part of my graduation diploma work. It includes disassembler and comfortable simulator for Microchip PIC16X84. Simulator allows stepping, tracing and running of program, breakpoints, skippoints, memory editing, I/O ports managing etc. and has implemented visual representation of internal processes. Program is developed using Borland C++ for DOS. You can download it, for conditions of use please read file Disasm84.txt

Alphanumeric LED display as an intelligent I2C periphery

This device is (together with Disasm84) part of my graduation diploma work. My task was to develop an device, which will demonstrate microcontroller's powerful features and capabilities. System consists of PIC16F84, CMOS4094 shift registers and dot matrix LED display VQC10D. Microcontroller takes care of display refresh and I2C communication.

Thermal printer controller for direct debit terminal

I joined in a new employment, into a long time running team project of direct debit terminal. Thanks to flexible system architecture, which allowed parallel design I was able to succesfully cooperate with other developers. My task was to develop a firmware for Microchip PIC 16C57, which has been used as an intelligent, I2C bus controlled driver for Citizen LT-286 Line Thermal Printer. Driver had to perform periodical measuring of thermal head's temperature and adjust printing speed to head's warmth for maintaining equable contrast of print. Microcontroller also drived paper-shifting dot step motor, and of course, cared over I2C communication.

On the score of speeding up data transfer, I developed stream-based modification of I2C protocol.

Within this project I was also responsible for analysis and design of I2C controllers for Voice Modul, Flash EEPROM simcards of various manufacturers (Siemens, Xicor, Gemplus), LCD Dot Matrix displays of various manufacturers (Sharp, Hitachi, Batron). In the picture you can see sample from terminal's printig test. The font used here is still only beta version, what causes odd look of some characters :-)

Remotely controlled slow speed telemetric system

I have been given senior project, goal of which was to design stand-alone system for remote-controlled data collecting (slow-speed telemetry). My task was almost everything about this project. I tried my utmost with problem analysis and basic solutions specification. As usually, my position was also circuit designer (EAGLE), Microchip PIC16C57 firmware programmer (Parallax), test version manufacturer and alpha tester.

System consists of two devices. One communicates with PC via RS232. It sends messages via radio link at 433 MHz band (AUREL DATA SAW RX/TX half duplex modules used). These messages control several adressable measuring accuracy units, which return measured data on request. Firmware development included establishing the FM physical layer based on manchester encoding, data integrity checking routines and simple command processing, RS232 protocol implementation.

Later I have been ordered to extend it following new specifications. Required extensions covered:

Measuring accuracy unit consists of two co-operating microcontrollers PIC16C57, real-time clock circuit PCF8583 and I2C EEPROM 24LC256. Firmware development included design of fast 2-wire asynchronous bi-directional interprocessor bus with corresponding communication interface and time zone managing routines. It the picture below you can see prototype version of data collector. Aurel module is missing there.

Dispatching console

I collaborated on manufacturing of this console assigned for dispatching centre at fire-station. My task was to develop and test firmware for system of keyboards and displays, sensors and actors. Communication between functional blocks of system was based on RS435-like, acknowledged, frame-oriented protocol. Atmel 89C51 family was used, here I became known with AT89C51, AT89C52 and AT89C2051 microprocessors.

Telephone exchange for airport

In spring and summer 2002 I have been working on very interesting project. Although my task consisted of industrial computer core software and microcontroller firmware programming, in addition I became familiar with some platforms and technologies that were new for me. Concept of this project included digital signal processing. I became known with Analog Devices SHARC ADSP2106X signal processor. Also I got in domain of programmable logic devices, gate arrays MACH4XX family, which have been used in the system.

Disprint

The name of this thing means "Long distance printer driving adapter". My task included prototype hardware and firmware design, alpha tests and user-interface development. This device makes possible to drive standard PC printer located several hundred meters from computer. Concept of this project made use of RS485 line driver and AT89C2051 microcontrollers. My goal was to develop very reliable, noise immune, fault tolerant communication protocol, PC-to-Atmel protocol at computer side, printer driving firmware for Atmel at remote side, and finally, user interface for Windows. In the picture you can see final version of computer-side and printer-side adapter pair.

Stop-watch

I got request from the local firemen group to design and manufacture the digital stop-watch with 300x70mm, 5 digit LED display. In this reason precious timing algorithm for PIC16F84 was developed. Self-made PIC16X84 simulator became very helpful with this project. Circuit board was manufactured using HPGL-controlled plotter directly printing PCB routes with special pen.

Back to portfolio