Saturday, August 3, 2013

NI LabVIEW HD44780 Driver

I have always had a place for LabVIEW in my toolbox. My opinion of it varies from week to week but I am settling on the side of appreciating what it brings to the table. It is an intriguing software package that allows you to write programs using graphical block diagrams. It is targeted primarily for scientists and engineers (read: non-programmers). I am a seasoned programmer with experience in C, C#, Java and a whole pile of other languages so it is fun for me to use LabVIEW and think about it as if I am using C. I taught myself LabVIEW over the past year by working on increasingly complex projects.

I recently got my hands on a National Instruments USB-6009 Data Acquisition (DAQ) card and decided to write up a driver for the classic Hitachi HD44780 LCD controller. I used the object oriented features of LabVIEW to implement the driver. This allows multiple instances of the LCD to exist concurrently which means that I can have multiple displays interfaced to my PC simultaneously. The results were great!

The Initialized and Functional Display :]

I I released the code on NI Developer Zone. Read on to see how I did it!

Friday, July 19, 2013

Programming the Vintage Intel MCS-48 Microcontrollers

I have had a box in my parts collection for a few years that contains a variety of interesting vintage components. The most prominent are the Intel 8035L microcontrollers. These microcontrollers are from the Intel MCS-48 (commonly known as the 8048) line. They have 64 bytes of RAM and access to 4096 bytes of external program memory. Thankfully they are not the one-time-programmable (OTP) variety so I am free to put them up to any task. These processors have a copyright date of 1977 which puts them at roughly twice my age.

There are also a couple of different EPROMS: D27256, with a copyright date of 1984 and D2758 with a copyright date of 1977. Obviously whoever owned these components prior to me was building some interesting embedded systems.

Vintage ICs
They are in relatively good shape. I would say that these are socket pulls. They have some signs of prior use (adhesive on the quartz windows). These may have also been "development" units.

These components coupled with my new EPROM tools were enough for me to bring this vintage processor online. I managed to get the classic blinking LED working as shown on the top trace of my oscilloscope.

Intel 8035L in Action :]
Continue reading to see how I did it!

New EPROM Tools!

I have ordered some tools to experiment with EPROMs. I ordered a "Universal Memory Programmer" that goes by the name MEMprog2 from eBay user cosmicmedevac. The unit arrived quickly and very well packed.

MEMprog2 Programmer
MEMprog2 Programmer
I was able to load a file onto an old Intel D27256 EPROM that I have and then read the file back successfully. The programmer is a very nice piece of gear with device coverage of over 15000 units.

I have also ordered a very low-cost EPROM eraser from eBay user techex_us. This unit also arrived quickly and well packed. It is definitely a piece of gear that I do not plan to leave connected to mains unattended. The entire device feels quite cheap. The AC power cord is thin and the rotary dial seems to have a mind of its' own. The one small piece that I do trust is the mains power switch. I can't complain for less than $25 shipped.

Cheap EPROM Eraser
I had no trouble erasing a few EPROMs in this little oven. I am quite happy with the product despite its' quality shortcomings.

I have a box of Intel 8035L microcontrollers (from the MCS-48, 8048 line) that have been in my collection for a few years. They have a copyright date of 1977 on them. I plan to bring one of these processors online on a breadboard. It should be interesting to experiment with a processor that is nearly twice my age.

Sunday, June 23, 2013

Villard Cascade Voltage Doubler

I recently watched an interesting EEVBlog video about Villard Cascade Voltage Doublers. I have had some neon tubes (NE-2) in my parts collection for a few years now. I have always wanted to drive them from a relatively low voltage DC supply. I decided to spend the afternoon/evening designing a circuit to drive the neon tube from a 12V supply.

The Glowing NE-2 Neon Tube

Sunday, April 28, 2013

Homebrew Solder Fume Extraction System

Over the past year I have been slowly building a solder fume extraction system. It has been a slow project because there was no real push for it. I have been doing a lot of soldering lately and decided that it was time to wrap it up and blog about it.

This system is based upon a vacuum cleaner. I am using a vacuum that goes by the trade name Shop-Vac. They are well known for their tremendous reliability on construction sites and other rough applications. I chose this vacuum because I assumed it would be up to the task of extended run times under medium to high load.

Here are a couple of pictures of the completed system:
The lab side of the completed fume extractor.
The garage side of the fume extraction system.
Here is a video demonstration:

Wednesday, April 24, 2013

Creating a Glass Circuit Board

I was inspired by CNLohr to create my own glass circuit board. I decided to create a 2D LED matrix because the layout is simple enough to fit onto a single sided board.

I decided to take a different approach than CNLohr took. Rather than adhering a layer of copper to the glass and etching out the traces, I used copper tape and glued each trace to the glass. Unfortunately this takes away the printed aspect of PCB manufacture but it allowed me to complete the project using parts that I found in a local craft store.

Here is a picture of the completed project.

Completed Project
Here is a video demonstration:

Wednesday, April 17, 2013

Graphing the Links between Articles on Wikipedia

One of my summer projects last year was to graph the links between Wikipedia articles. I was inspired by the Wiki Wars concept and wanted to see if I could programmatically beat the game. I used C# and the Mono .NET runtime to build a Wikipedia pathfinder.

Here are a couple of graphical representations of the results. They make great wallpapers!

My Current Wallpaper
A Zoomed Out Link Graph

Sunday, April 14, 2013

Designing a Window Manager for an AVR Microcontroller

I have been experimenting with the uVGA-II VGA controller for the past couple of weeks. It is an amusing piece of hardware that is capable of drawing graphics onto a VGA framebuffer. The VGA controller takes care of line drawing algorithms and helps to hardware accelerate the drawing of geometric primitives (squares, circles, triangles, polygons, lines).

Once I realized the power of this hardware I decided to implement a window manager like you would expect on any standard desktop PC. I have used a mouse for user input to the system.

Close-up of the Default Configuration
The default system boots with three applications: Theme Manager, Audio Player and Window Factory. The Theme Manager is used to modify the colors of the system theme, the Audio Player is used to playback some audio files stored on an SD card and the Window Factory is used to create new windows for the purposes of demonstration.

Slightly Blue Theme, More Windows
Here is a video demonstrating the system.