Saturday, September 5, 2009

uMAX to DIP adapter

Not much to say about this at the moment. It's an uMAX to DIP converter for an upcoming project. uMAX is a miniature surface-mount package used by Maxim, that resembles Mini SO (MSOP) . The below adapter is uMAX10 -> DIP14 (there is no DIP10, so I used 14), for comparison a DIP8 and a SO8 chip are on the picture. The uMAX pin spacing was really pushing the boundaries of PnP Blue.

The chosen chips soldered in.

And DIP pins added.


I wouldn't mind using these chips as-is on surface-mount boards, but I don't like working with hybrid boards, and most of the necessary components for the particular design I intend to use these in were available in through-hole packages for me, so I chose to make these adapters instead of making a hybrid board.

Download Eagle brd here (5.6)

Sunday, August 16, 2009

Couple of 08 boards revisited

Finally had time to finish and test two boards from 08.

The SLA smart charger from here.


And the SPI Bios programmer based on this project.


The SPI bios programmer worked fine, I substituted the original design's CD4049 with a 74HC04, which is the same functionality-wise but with a different pinout. The small adapter board was made because the SMD pads in the main PCB design turned out to be the narrow version (I didn't double-check during design), and I needed the wide one. Soldered the SST25VF080B onto the adapter, inserted it into the DIP8 socket, and modified the original program code for the smaller chip (the only difference between the original project's SST25VF016B is size. The 016B is 2 megabytes, while the 080B is only 1.
Erased the chip, wrote the new bios, read it back, compared. It worked just fine. (Though the mobo had other problems)

Finally found an SMD LM339 to finish the the SLA Charger. I substituted several componens from the original design, with ones I had at home. It seems to work just fine at the moment, but the power transistor requires substantial cooling. I will have to find some sort of case for this sooner or later.

Saturday, July 11, 2009

Zipit2 clock, email / twitter monitor


This was my second (and last) project involving the Zipit2.
It culminated in a PHP script that generates images based on dynamic information, called ImgUI. This can then be displayed on any device that is capable of pulling and displaying images from an HTTP server. The idea should be reusable for any device that fits the criteria.
For the ZipIt2, the quick and dirty way to display images on the screen was to switch the tty over to graphical mode, then just dump raw data to /dev/fb0. This has to be the right orientation and format. I've coded up a tool that takes raw RGB888 pixeldata flips it the right way, then converts it to BGR565. This is used by the script. A minimal shell script on the z2 then just pulls a new image every minute or so and dumps it to the framebuffer. Above you see the Z2 displaying the clock "applet". Thanks to PHP's imap extension I also have one that checks specific folders on imap accounts, and displays unread mail.



Plus I also included a sample twitter applet:



I'm releasing this under the MIT license.

Includes applets seen above, z2 output driver and script, plus a readme file that should tell you everything you need to know.

Download here: ImgUI Z2

Wednesday, July 8, 2009

Relay on LPT port



I made this (on a piece of leftover junk PCB) to remotely switch an external HDD connected to my home server on/off.
I went with the "Safer New Design" from here, but then decided to opto-isolate it anyway. An LPT port data pin switches the led in a 4N25 opto-coupler, which then switches an external power brick's connection to the board. The relay then switches the mains on an extension cord. I pulled the NAIS 5v/220V relay from a broken monitor. Although with this design the switching voltage isn't really that important. As long as it's within the accepted ranges of the opto-coupler and transistor.


Coded up this simple command-line tool in FreeBasic to use it with:

dim as string myCmd
dim as ubyte myState

myCmd = ucase(command$(1))
if myCmd <> "ON" and myCmd <> "OFF" then goto state
if myCmd = "ON" then out &h378,1
if myCmd = "OFF" then out &h378,0

state:
myState = inp(&h378)
if myState = 0 then print "Relay is OFF" else print "Relay is ON"

Update:
I decided to release my board layout along with some notes on this project, in case anyone wants to build this. The notes say it all.

You can check it out here or download it as an Eagle BRD (v5.6)

In case you build it, leave a comment :)