29 December 2015

Striped print on Epson inkjet printer

We own an Epson XP-215 inkjet printer/scanner/copier. We print/copy very seldomly and very few pages each time. One of these days I had to copy a drawing and it came out with wide horizontal white areas. A second copy of the same document was even worse!

In order to better understand the problem I created a simple print with increasing numbers, one per line, and you see the result on the right.

Initially I suspected something had gotten into the printer cylinders and periodically moved paper away from the print head, but further prints were even worse. With the help of an Internet search engine I found and watched some tutorials that showed how to clean nozzles that had dried ink all around.

All you need is a piece of kitchen paper, some liquid for cleaning glass (windows) and thin gloves (else you loose sensitivity in your fingers). The quest for these tutorials is left as an exercise to the reader.

Around the black ink nozzle there was something that looked like dry ink. I removed it with the method mentioned above.

Once I re-installed ink cartridges the first test print came out like this:

Almost completely readable. Almost. Then I did a print head check printout (from the Epson tool on Windows). Then after 10 minutes I printed again and everything looked normal.

Mission completed. 60€ printer saved from dumping within one year from purchase. Happy family members.

24 December 2015

biNixie clock: completed.

Less than six months, from first purchase to a completed device. This is a personal record!

In May 2015 I bought some Burroughs B5092 Nixie tubes. Since I couldn't build something meaningful out of three working tubes I opted for a dual-digit clock, and a third B5092 stays as spare.

Inside a decoupage light-wooden box I fit the two sockets, a perfboard with K155DI BCD decoder/drivers, an Arduino clone board with DS1307 RTC and a lumos.sk high voltage PSU.

This clock has been built with components of the Cold War era, from both sides of the wall, mixed with modern microcontrollers and switching power supply.

The firmware shows HH, MM and SS. Every hour all symbols are looped once in a basic cathode de-poisoning routine. I have not implemented any other fancy feature like fading, DST auto.adjust, night mode and so on: it is a simple addictive clock.

Yes, I caught people staring at the box for few cycles before asking what are those numbers.

Edit March 2016: the schematic diagram is now available.

20 December 2015

TIL305 on driver's back

Fast forward to the arrival of ATtiny4313 through few design considerations about controlling TIL305 displays "remotely", and a couple of these dot-matrix displays have jumped on the back of their drivers according to the drawing published earlier on this blog.

Meanwhile I have also completed the onboard font with 0-9 numbers and 7 possible symbols (check the ASCII table and you will see there are seven "holes" between number 9 and capital letter A).

For this first release I have left out current limiting resistors on anodes, so I rely on the average current since in the worst case each pixel is ON only 1/7th of the time. The resulting "component" is compact and TIL305 displays can sit next to each other without short circuits.

With proper fuse settings the ATtiny4313 works between 1.8 V and 6 V, so intensity can be controlled through either "pixel ON time" or DC power supply (but not through PWM dimming).

14 December 2015

CCFL laptop inverter board for Nixie/valve testing - 3 - keeping it on

As it can be seen in the video of a previous post, the CCFL driver enters a shutdown mode if there is no lamp connected. According to the chip datasheet it measures both output voltage and current.

I found a couple of papers describing how the impedance of a CCFL changes at startup, and that Z profile cannot be reproduced with passive components.

Nevermind, how about trying to satisfy the current feedback check with a beefy resistor? With a little bit of Ohm's law, considering that a CCFL lamp should work with 5 mA:

R = V / I = 600 (guesstimate) / 0.005 =  120'000 ohm

I cannot measure the actual voltage, but I am sure I am in the right region. Note that the 120 kohm resistor will have to dissipate 3 W: that's why I wrote "beefy".

In the junkbox I located a 100 kohm 2 W resistor. Put it across output terminals and the frequency counter probe thereabout: powered it up and, as almost expected, the HVAC driver kept running after the first second. The resistor did not get too hot either, so the voltage is probably lower than the estimated 600 V.

Now I need to scrounge a resistor with adequate power rating and find a proper housing for the Nixie tester.

13 December 2015

ATmega48 controls TIL305 with custom font

Before ordering a bunch of ATtiny2313/4313 I wanted to be sure I could control the TIL305 dot matrix display. After few trial and error I chose to power each column for 4 milliseconds and multiplex per-column rather than each individual pixel. This way flickering is acceptable, even if I will probably reduce it to 3 ms as well as the current limiting resistor so to get a tad more brightness than shown in the video below. Right now I picked 1 kohm and 5 V power supply (to the uC) at the video shows the result.

Well, the overall idea and firmware does work, so I can order ATtiny4313. At least 6 of them, if I want to build a clock.

04 December 2015

INPUT_PULLUP and dot matrix display

I tried to use the Atmel uC pullup resistor on input lines to limit the current through an LED (the TIL305 dot matrix display in my case). The declared value on the datasheet is 20 kohm minimum: that means 160 uA flowing through a red LED.

The idea does work, so if you need to source that little current through a pin, you can do it.

But 160 microAmps are too little for the old LEDs inside a TIL305 and they can be seen only in real darkness, and even then they are very dim. Because of this result I have not tested how fast the internal pullup resistor can be switched in and out.

Now I will use column drivers as outputs with proper external current limiting resistors. I will probably use small 1/8th Watt resistors to keep everything compact.

02 December 2015

Dot matrix display programmable interface - for TIL305

Thinking how to use those TIL305 matrix displays, I came up with a way to interface them with an ATtiny2313 saving the correct pins for I2C/TWI communication. The idea is taken from the "tinymatrix" project, but the coupling TIL305/ATtiny2313 is the one shown on my diagram. The decimal point LED has to be sacrificed if you want to keep TWI communication ability, but it is not a big loss for an alphanumeric display.

TIL305 on top of ATtiny2313.

The firmware will scan each dot, one by one, and turn ON those needed to form a predefined pattern. The scanning algorithm will be: column 1 / row 1, column 1 / row 2, ... column 1 / row 7, column 2 / row 1, and so on.

As with every LED a current limiting resistor is needed. They will be installed on the five anode lines ("columns") rather than on the 7 cathodes ("rows"). But how about using the pull-up resistor embedded in most Atmel microcontrollers? According to the datasheet it is 20 kohm typical, or more. At 5 V supply that means very little current through a red LED, but worth a try. How to implement it? When a column is active the corresponding pin will be configured as INPUT_PULLUP (in Arduino terms): this will allow some current to flow through the pin to the dot activated by pulling low the corresponding row. All other four columns will be set as high impedance INPUT. The Atmel datasheet does not mention how fast the pullup resistor can be switched in and out, so this is another thing to learn from this project.

01 December 2015

A bag of matrix display from the past: TIL305

3 types of TIL305.
At the last edition of the local HAM flea market I got a bag of TIL305 5x7 dot matrix displays. [I got quite a lot of them, more than I can possibly use, so if you need them to repair a piece of equiment and landed on this page because of that, write me.]

A new challenge is up! There are few possibilities for driving these displays and most of them rely on equally osbolete hardware or expensive parts (like those from Maxim IC). On hackaday I located an interesting project called "tinymatrix" that uses a similar display with an interesting approach.

The display is soldered on top of a ATtiny2313/ATtiny4313 microcontroller, which handles pixel multiplexing. While the original idea has hardcoded animations, with my TIL305 I can go one step further and use the microcontroller as a matrix driver connected on a I2C/TWI bus. The "driver" can then carry onboard some symbols or receive temporary ones from the master controller.

Time to get some paper and do some preliminary work.