AVR USB printer device and teletype

I have old teletype printer T-63 (it is made by RTF in Eastern Germany, clone of old Siemens Teletype). And the idea is about connecting it as USB printer to our-days computer. Easiest way is to connect it using RS232 port, configured to 50bod speed and 5 data bits. But I was thinking about real USB printer.
Somehow I didn’t managed to program old AVR Atmega16 series MCU with V-USB library as printer. Windows is detecting as “printer”, but “cannot start”. Next device available was ATMEGA32U4 board from China, for about 2€. It is more modern chip, with build in USB hardware. I selected LUFA library (latest version, downloaded with git).

AVR ATMEGA32U4 as printer device for TTY teleprinter

This is very small board with everything already soldered for testing. For electrical compatibility I used SSR (solid state relay)- I need to link TTL level with 40mA (50…120V) current loop.

testing gear- windows 10, macos x and linux
I wrote all stuff on windows 10 Pro computer. I managed to emulate “text only”, “generic” printer. Windows downloaded drivers and installed them automatically, but I encountered some weird problems: windows can print only few hundreds of symbols. After it printing stalls, and after few minutes print spooler reports error.
I switched computer to old Apple Air with old Mac OS X (10.6?). Mac OS detected printer, but there was no downloadable drivers. After playing with CUPS, I installed RAW printer driver. But there is problem with modern computers- even if I was printing plain text file (‘The Call of Cthulhu’), apple “text editor” was sending PDF formated data to printer.
Next computer was Linux Mint (also very old version). Linux detected and installed text only printer driver. But when printing same text from some type of text viewer the output was nill. Why? When switched to raw printer driver, output was same PDF signature and binary data. Same shit… why modern software make all jobs so complicated?
But there was good news- all that binary data was sent to printer without any problems. So, printing in Windows 10 was the windows drivers problem, not AVR device.

Thanks to all gods (and the older ones), but there is old school command prompt (shell) in linux. And only few lines of commands and that dark text appeared on paper with 50+ years old teletype printer.

teletype printer output from modern computer via AVR ATMEGA MCU USB device

All source code is free and available for download:
USB printer device on AVR ATMEGA32U4 source code LUFA. With ‘The Call of Cthulhu’ testing text included.
To compile, please download latest LUFA library from github.

Lithuanian, extended version. Hardware (Lithuanian).

Posted in MCU | Tagged , , , | 4 Comments

Building 8bit ATARI test ROM in easy way

I was experimenting with damaged Atari 800XL and I need to test it in low level. I wrote several lines in machine code and it was pain in the ass to fill data to ROM chip. After entering HEX data in binary editor with several errors, I decided to write some “visual ROM linker” to merge asembler output with ROM chip buffer.
In attached archive there is third party 6502 asembler, test program source, asembler output, ROM binary file and my visual linker executable for windows .NET system. There is installer too, but software is not signed.

Atari ROM linker
Some of 6502 asembler…

Atari ROM linker
My ROM linker….

Atari ROM linker
Atari emulator running my new ROM.

All software to download:
Atari ROM visual linker

Feel free to use.

Posted in MCU | Tagged , , , | Leave a comment

Partial solar eclipse

This outdated article about some partial solar eclipse- it was in 2008, but to keep both Lithuanian and English blog “synchronized” I leave this article.

Info from wiki:

As seen from the Earth, a solar eclipse is a type of eclipse that occurs when the Moon passes between the Sun and Earth, and the Moon fully or partially blocks (“occults”) the Sun. This can happen only at new moon, when the Sun and the Moon are in conjunction as seen from Earth in an alignment referred to as syzygy. In a total eclipse, the disk of the Sun is fully obscured by the Moon. In partial and annular eclipses, only part of the Sun is obscured.

And here is photo made using some welding mask glass:
saules uztemimas
Photo date: 12:35 local Kaunas time, at 2008.08.01

Posted in Anything | Leave a comment

Klystron

In previous article I mentioned, that I didn’t managed to remove klystrone tube from metal chassis. After some time I managed to remove it…
Here is the author of this blog and “little” vacuum tube:
Big klystron vacuum tube

All tuning magnets and other stuff is removed. It is bare tube. Weight of the tube is 66kg (145.5lbs). Height? I don’t know, but my height is about 194cm (6 feet and 4 inches).
All bright red-pink parts are made from toxic beryllium oxide (BeO) ceramics. BeO is carcinogenic and may cause chronic beryllium disease. Once fired into solid form, it is safe to handle as long as it is not subjected to any machining that generates dust. It is definitely in solid form.

Original article dated 2008.

Posted in Anything | Leave a comment

Scanning for WiFi

In old times, when article was originally posted in 2008 wifi was not popular in our country. Now (2015), then article was translated, situation changed.

I aquired several old handheld computers for tests. So I started wifi scanning software and made a short trip arround.

wifi hardware

My trip is arround local university campus, so it was quite “high tech” rich one.
My moving speed was about 50km/h, so not all WiFi AP were scanned. Trip was about 7km long and I managed to find about 74 WiFi spots.
There are lots of WiFi networks with default names, and I think, that several ones were with default passwords too. Especially ones without encription.

WIFI scanning

In fact it is just “filler” article. So, keep calm, and wait for more informative articles, o just try to read Lithuanian articles.

Posted in Anything | Leave a comment

Old style TV transmitter

From time to time I have articles about teardown about some strange items. It is not regular home items, but something more exotic… It is either 10kW or 20kW TV transmitter. It from Lithuanian region Dūkštas, Ignalina. Device is made in 1993 in soviet union, and it is printed on it Дукштос, Сниечкус. Despite that it is made in 1993, the technology used in it is about 1965.

Main element in transmitter is tubes: Klystron and traveling-wave tube (лампа бегущей волны). But this article is photo story, so there is lots of pictures and only few words of text.

This not heating tube, but vacuum tube with magnets on it. This is so called traveling-wave tube, magnets keeps electron beam focused. These tubes were used for amplify output power.

Just info from wiki:

A traveling-wave tube (TWT) is a specialized vacuum tube that is used in electronics to amplify radio frequency (RF) signals in the microwave range. The TWT belongs to a category of “linear beam” tubes, such as the klystron, in which the radio wave is amplified by absorbing power from a beam of electrons as it passes down the tube.

Power tube TV transmitter
Continue reading

Posted in Anything | Leave a comment

RGB matrix: organization

This post is about structure and organization of big RGB LED matrix. Just notes to remember how it works, as paper notes tends to be lost. And it is much easier to find information back in the internet compared to my paper notes.
I completely debugged and reverse engineered the RGB matrix from previous posts. Now it is time to explore, how engineers from Adaptive Micro Systems LLC from Milwaukee, USA, designed it.
RGB matrix
Matrix is made from total 1728 LEDs placed on PCB in 24 rows and 72 locums. Total count 5184 discrete diodes. There are two parts (mega-rows) to access upper and lower parts of the matrix: LE_MBI_UPPER and LE_MBI_LOWER (pins 69 and 70 on Cyclone FPGA). One mega row is made from 12 regular LED rows. /LE signal pulse is used to move data from input buffer to output buffer of MBI5026CD chip. (See MBI5026CD datasheet).
All these 12 rows are controlled (via mosfet switches) by regular 74 series chip 74HC154. It is binary to 16 output decoder. Only lower 12 output are used. This chip is connected to FPGA: A0-A3 (HC154[3..0]) to Cyclone (pins 32, 33, 34, 35), OE2 (HC154OE) to FPGA pin 32. Meanwhile OE1 is connected in more complicated and interesting way. There is ingenious protection from system freeze (if matrix could be freezed due to system glitch, the LED may be burned)- there is some discrete parts, diodes, capacitors and resistors which combines to some sort of watch dog. If there is constant clock feed to watch dog (RC_UNKNOWN1, pin 37) the decoder is working. If there is static signal on pin, the decoder is switched off.
All the lines (except first two squares) have 16 RGB LEDs, all connected to three serial-parallel-LED-driver chips (MBI5026CD). Every chip is for one color only, because each color have it own working current. First squares (columns) are missing LED because the matrix is only 72 LED wide, meanwhile “logically” is bigger, 80 LEDs. (it much easier to assume that there is 80 columns in software).

All MBI5026 chips have OE inputs to control output. All connected in rows to control separate colors. OE1 (59) is for upper RED color, OE2 (60)- green, OE3 (61)- blue. Outputs OE4,5,6 (62, 67, 68)- lower part RGB control.

Video output is organized is such way:
Select video data from memory for 10×16 color pixels. Push all data to serial register. Select mega_row to use with LE lines and select discrete line with A0..A3. Why to use LE? Because every “square” have its own SDI input.
Refreshing whole frame, data is fed to multiple zones of the matrix on the same time. This speeds up whole system. In later articles I experimented with various timing systems and it shows, that there is limiting timing “window” available to keep RGB matrix fps high and flicker free.

In this, originally posted at 2008, article I still don’t know how to build full RGB color levels…

Posted in Anything | Tagged , | Leave a comment

Gyroscopic effects in high speed hard drives

Just short demonstration of gyroscopic effects in high speed hard disks. I had some useless hard disks. It is old SCSI server disk ST39102LW. It is only 9Gb, but 10000 rpm (10K). This increase effect to noticible level. To feel effect you need just try to move working disk. I am not going to explain forces in this disk, lets give some words to wiki:

A gyroscope (from Greek γῦρος gûros, “circle” and σκοπέω skopéō, “to look”) is a spinning wheel or disc in which the axis of rotation is free to assume any orientation. When rotating, the orientation of this axis is unaffected by tilting or rotation of the mounting, according to the conservation of angular momentum.

And look to this short movie in youtube:

Do not do this trick with good disk. And not effects with SSD ones 🙂

Original article in Lithuanian language. Dated 2008.

Posted in Anything | Leave a comment

Satellite transceiver

Yes, it was satellite transceiver. For receiving and sending information to satellite.

Sometime I post messages about items I dissasemble. This was quite a big device:
satellite transceiver
It is not compressor, it is satellite transceiver from Hughes Network System. Such device were mounted on big satellite dishes. There two “heads” here- on for receiving, another one- transmitter.
Continue reading

Posted in Anything | Leave a comment

Surface tension effects in SMD soldering

I had very short time to remove some Atmel (AT90SL2343T) chips from discarder NOKIA communication equipment boards using standard hot air gun. It was very high quality PCB boards so I made some experiments about self positioning of some SMD elements to solder pads. Main idea is, that good design board can help solder some bigger elements. In this video big transistor-like element (National semiconductors LM2937) moves to its landing place.


Sorry for bad video quality.

Posted in Anything | Leave a comment