2009-09-26

Site Updates

I did some cleaning up on jonikahara.com and removed useless stuff. Now there's only the blog page and the contact info page. The blog part shows the latest post in full. A list of earlier posts can be revealed by pressing the "Archive" button below that. In the archive listing, a given post can be revealed by clicking its title; post content will be loaded inline with a little help from jQuery $.ajax(). Check out the script if you're into that kind of stuff. (Note: there was a bug in jQuery 1.3.2 that made IE fail when using the :contains() selector – a patch was necessary.)

I also changed my DOCTYPE to HTML5.

And because I got a Typekit invitation (page me if you want one) and as their introductory price of $24.99 per year for personal use seemed quite reasonable I decided to check it out. The thing worked like a charm, at least after I had sorted out some funky bits in my CSS. I'm using Coolvetica (Larabie) in the "JONIKAHARA.COM" part at the top, DDT (Typodermic) in post titles and Legendum (Rogier van Dalen) for the rest. Typekit requires @font-face to work, so you won't be seeing these fancy fonts if your browser does not support it.

2009-09-22

LED Display Hacking (Part 3)

First, here's a more readable view of one seventh of the circuit between the demultiplexer and the LED array, this time with an additional current-limiting resistor between the transistors:

LED Driver Circuit

Speaking of current, the whole circuit draws quite a bit of it, and it may be too much for a single 7805 to handle. Proper heat sink attached to the regulator is at least required, or a different power supply arrangement if that fails to provide enough cooling.

I got some of the LEDs to actually light up, but the addressing appears not to be as straightforward as I had naïvely assumed. More tinkering needed.

2009-09-06

LED Display Hacking (Part 2)

Did some "reverse engineering" on the driver part of the device introduced in a recent post and "designed" (ahem…) a new driver circuit based on my findings. See some amazingly craptastic ASCII art below.

Q1..Q7   BC327
Q8..Q14  TIP32C
IC1      74LS138
R1..R7   220 OHMS

                                       IC1
           ·-------·               ·---------·   
           !       !               !         !
           ! Q8    ! Q1            !         !
           b       e               !         !
ARRAY 0 --c e-·     b-----|R1|------ O0  Vcc ----- +5V
              !    c               !(15) (16)!
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q9    ! Q2            !         !
           b       e               !         !
ARRAY 1 --c e-·     b-----|R2|------ O1  GND ----- GND
              !    c               !(14) (8) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q10   ! Q3            !         !
           b       e               !         !
ARRAY 2 --c e-·     b-----|R3|------ O2  E1  ----- GND
              !    c               !(13) (4) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q11   ! Q4            !         !
           b       e               !         !
ARRAY 3 --c e-·     b-----|R4|------ O3  E2  ----- GND
              !    c               !(12) (5) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q12   ! Q5            !         !
           b       e               !         !
ARRAY 4 --c e-·     b-----|R5|------ O4  E3  ----- ARDUINO PIN 2
              !    c               !(11) (6) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q13   ! Q6            !         !
           b       e               !         !
ARRAY 5 --c e-·     b-----|R6|------ O5  A0  ----- ARDUINO PIN 5
              !    c               !(10) (1) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
           ·-------·               !         !
           !       !               !         !
           ! Q14   ! Q7            !         !
           b       e               !         !
ARRAY 6 --c e-·     b-----|R7|------ O6  A1  ----- ARDUINO PIN 6
              !    c               !(9)  (2) !
              !    !               !         !
             +5V  GND              !         !
                                   !         !
                                   !         !
                                   !         !
                                   !         !
                                   !     A2  ----- ARDUINO PIN 7
                                   !     (3) !
                                   !         !
                                   !         !
                                   !         !
                                   ··--------·

   DATA ------------------------------------------ ARDUINO PIN 4

  CLOCK ------------------------------------------ ARDUINO PIN 3

On the right side is the part that connects to Arduino: pins 5…7 select which one of the LED arrays will be lit and pin 2 enables the 74138 output. Arduino pin 4 feeds data to shift registers in the display part; pin 3 clocks them. (Note to self: check that clock part; how much current will 74164's draw?)

Note to self: add resistors between BC327 emitter and TIP32C base.

74138 truth table is as follows:

 I N P U T S     O U T P U T S
------+-------+----------------
E E E ! A A A ! O O O O O O O O
1 2 3 ! 0 1 2 ! 0 1 2 3 4 5 6 7
- - - + - - - + - - - - - - - -
H X X ! X X X ! H H H H H H H H 
X H X ! X X X ! H H H H H H H H 
X X L ! X X X ! H H H H H H H H 
L L H ! L L L ! L H H H H H H H 
L L H ! H L L ! H L H H H H H H 
L L H ! L H L ! H H L H H H H H 
L L H ! H H L ! H H H L H H H H 
L L H ! L L H ! H H H H L H H H 
L L H ! H L H ! H H H H H L H H 
L L H ! L H H ! H H H H H H L H 
L L H ! H H H ! H H H H H H H L 

As can be seen the 74138 outputs (pins 9…15) are active-low. The outputs drive BC327 (PNP) transistors, which then drive TIP32C (PNP) transistors. TIP32C's drive the display modules.