Browsed by
Category: Projects

Building 8-Bit Computer Parts List

Building 8-Bit Computer Parts List

I was recently at the San Diego Maker Faire and I came across a interesting booth.

John Wolf was sitting in front of his 8-bit computer that he made out of logic gates.  I was very excited to see this and quickly began asking him questions about how he built this.  He has a great set of slides that I’ll link to here that explain everything about what he did.

His work was based off of Ben Eater’s tutorial about building the 8-bit computer.  Ben goes into great detail in his YouTube videos about how each part works.

I decided I wanted to try and build a 8-bit computer for my self, however the first challenge is finding all the parts.  There is a parts list on Ben’s site but some of the links are outdated or I have found better deals on other sites.  Below is my parts list for the 8-bit computer.

Read More Read More

Embedded Devices | Controlling adjustable desk with my phone

Embedded Devices | Controlling adjustable desk with my phone

At work we have very nice electric adjustable standing desks made by Workrite.  There is a button on the side the of the desk that allows you to control the high of the desk.  You can use it to go from a sitting desk to a standing desk in only seconds!  One day I accidentally ripped out the cables that were connected to the up and down switch show below.  This happened when the arm of my chair got wedged underneath the wires and when I lifted the desk up they were ripped off.   Time to fix it …

Read More Read More

Amazon S3 | Batch processing of image files

Amazon S3 | Batch processing of image files

At work, we store all of our images on Amazon S3.  This allows us to have a reliable storage point where we can host millions of photos.

We store a couple different sizes of images, so the Amazon S3 buckets (folders) are named by the different image sizes we keep.  As a new feature, we started saving a larger image size whenever anyone uploaded a new photo through our site so that new bucket (1680px wide) needed to be back filled with the largest image size we stored for all previous images (1200px wide).

As I looked into this, there is no batch process on Amazon that allows you to send them a large list of keys and a command to run on those keys.  A program must be written to do this instead.

Read More Read More

Android App | Circle Game

Android App | Circle Game

I have created a small Android App game that can be installed by downloading the APK file below on your phone (It’s not on the Google Play Store).

Screenshot_2014-05-30-17-48-56

The objective of this game is to memorize the locations of circles as more and more of them show on the screen.  Click the newest circle that is drawn on the screen to increase your score.  It seems simple enough, although as more and more circles are drawn on the screen figuring out where the new one is becomes a harder challenge! 🙂

To install the game, make sure you have a Android phone and click here to download the APK game file.

After it is downloaded please follow the steps listed here to install the game.

x86 Bootloaders | Background

x86 Bootloaders | Background

It seems like magic that every time you press the power button on your computer, that everything just loads and works perfectly every time (well mostly every time). But what is actually happening under the hood that allows your computer to boot up into your operating system? I certainly do not pretend to know all the details, but I will describe what I do know at a high level and hopefully after reading this, the boot process will seem less magical and more of a logical step-by-step process.

Read More Read More

PIC microcontroller | Flashing LED

PIC microcontroller | Flashing LED

In this article I will look at flashing an LED on/off using a external clock delay. If you have not already read my previous articles, Pre-coding preparation and LED On, please do so now. Many of the concepts I have discussed in earlier articles will come into play in this project.

With this project, I will be using an external 20MHz clock instead of the built in 4MHz clock that comes with the PIC16F628A chip. To do this, I looked at the EasyPIC5 manual, to find out where to place and how to configure the board to register the external clock.

Read More Read More

PIC microcontroller | Turn LED on with PIC assembly

PIC microcontroller | Turn LED on with PIC assembly

This is a very good place to start if you are just starting out learning PIC assembly. If you have not yet read my Pre Coding Preparation article about setting up the IDE and testing your configuration, please do that before reading this article.

In this article I am going to describe how to turn on a LED in PIC assembly using the PIC16F628A microcontroller. To start off, open MPLAB IDE and create a new project using the Project Wizard. Then open your ASM file.

Read More Read More

PIC microcontroller | Pre-coding preparations

PIC microcontroller | Pre-coding preparations

In order to ease into the learning process of how to program a PIC microcontroller, I used a PIC development board which took care of hooking up all of the electronic peripherals to the microcontroller. The specific board that I am using is a EasyPIC5 Development System, by MikroElektronika. Below is the image of the board which has all the necessary peripherals for development and the microcontroller can be programed via USB 2.0. Click the image to zoom-in.

easypic5

Read More Read More

Linux Device Drivers | Concept character driver

Linux Device Drivers | Concept character driver

I have created this very simple character driver just to see how the process works from beginning to end when creating a device driver in Linux. Before we start, this driver is going to be compiled against the Linux 2.6 kernel and will probably not work in earlier versions. Also, make sure you have set up your development environment and that you have the Linux 2.6 kernel header files installed. If you need to review any of this, look back at the Pre-coding Preparation page.

The device driver that is described on this page is a very simple character driver which simply logs a message whenever a process tries to open/close the device file. I did this so that I could get familiar with the development process and understand how everything works together to create the driver. Eventually I am going to implement the open/read/write/close functions so that the driver will actually do something useful.

Read More Read More