Robots w/Lasers

August 19, 2011


Well, not completely DIY, I’m not making the OLEDs from scratch in a chemistry lab. But instead of buying an OLED from sparkfun for $37, or the OLED with a breakout board for $60, I found taobao, essentially a chinese version of ebay. Some seller was selling a very similar display for only ¥20.80 ($3.25). Below is a google-translated screenshot. Automated translation for chinese-to-english still has a way to go unfortunately.

Anyway, you can’t order directly from, they only ship to people living in China. However a whole cottage industry has sprung up around exporting from taobao to USA, there are dozens and dozens of sites with poor english on them, who will buy from taobao, and then re-ship the package to you, for a nice fee of course. I went this route, choosing (after seeing a review saying someone else used them successfully). I ended up paying all told $5 per OLED display.

Now the product page had zero technical info on the displays, and contacting the seller (in Chinese of course), they didn’t have any further information either. However I was able to track down the datasheet for both the display itself and the controller chip, which I’ve uploaded here:

OLED: UG-2828GDEAF02.pdf

Controller chip: SEPS225.pdf

The whole reason I started on this oled ordeal, is after reading this article on driving OLEDs via an AVR microcontroller by rossum. He gets pretty good results out of them, and I wanted to try something similar. I couldn’t find any US source of cheap OLEDs that fit the bill, after scouring ebay and so on. I did find which has a couple cheap oleds, but unfortunately the 1.5″ color display could NOT be driven by SPI, instead requiring a more complicated 8 bit parallel interface, that I didn’t want to have to fool with. SPI is ideal for AVRs since it can output data up to (Clock Speed/2) bits per second, meaning an AVR running at top speed of 20MHz could output at 10Mbit/sec (assuming you do nothing but output data, which means in practice it’s a bit lower). Rossum was able to output pixels fast enough to refresh the entire display at 30fps, which is great (check out the video on his page).

Speaking of rossum, he has some nice little breakout boards using a FAN5331 boost converter to generate the driving voltage for the OLEDs (which generally need 12-15V to drive the display), along with a buffer chip to allow you to interface 5V logic to the 3.3V OLED if you wish. Unfortunately the pinout and such of my OLED is different from his, including different connector size, so I couldn’t use it unchanged. Luckily he provides the source to his boards, so taking those as a starting point I’ve designed my own breakout boards:

Source: pdf, sch, brd (WARNING! These are a work in progress, have not been tested yet. It may short VCC to GND and set your cat on fire!)

I’ve sent away to have them made by laen’s pcb service, they should be back any day now, and I can start putting them together and see what happens! Watch this space for updates.



Filed under: AVR,Hardware — davr @ 4:56 pm

January 9, 2008

It Works!

I’ve finished assembling my little gadget…and it works! As a side note, Flux is super handy, it made soldering the tiny SMT stuff really easy, also I learned a few tips from this video.

I ran into one small problem: on the board, I added a JTAG port for in-circuit programming & debugging. However, my cheapo JTAGICE mkI (not mkII) doesn’t support the newer AVR chip I put on the board. So I had to hack in an ICSP port, hence the four ugly green wires coming out of the middle of the board. But once I got that in, I updated the program I had running on the prototype. There were just some minor changes, IO pins were mapped differently, and the syntax for using Timers was slightly changed.

Now that the hardware is essentially done, I need to write some more software, get a few polished minigames on there.

UPDATE: Please enter your email address, I’m trying to find out if there’s any interest in these devices. If enough people subscribe, it will encourage me to do something about it 🙂

You can download a short video, or watch it online here:


Filed under: AVR,Hardware — davr @ 6:54 pm

January 4, 2008

PCB Received from Olimex

Over the christmas holiday I received my PCBs back from Olimex. They look very professionally made, it’s pretty neat knowing that I designed it completely myself. In the picture to the right you can see the board with a few of the components. I haven’t started soldering yet, but I’ve placed them on there so you can get an idea of how it will look when finished.

I’m waiting on the parts from Allegro before I can finish, I’ve requested samples of their surface mount pieces (previously I only got the ones in the DIP packages).

Filed under: AVR,Hardware — davr @ 12:00 pm

December 11, 2007

Designing my first PCB

So I built a pretty good prototype of my LED matrix, AVR-based toy (as you can see in my previous post, as well as this video). Now I’ve decided to get a PCB made, using mostly surface mount components, which will make it nice and compact. You can see to the right a 3D render of approximately what it will look like, right now a company in Bulgaria is fabricating my PCB, hopefully I’ll get it within another week or two.

Whether or not it actually will work once I get it & assemble it, remains to be seen.

I used cadsoft’s Eagle tool to design the PCB, and I used this plugin along with povray in order to create the 3d render. Also I sort of edited in the image of the LED matrix…since they didn’t already have a 3d part built for it. But it looks reasonable enough I think.

Filed under: AVR,Hardware — davr @ 5:01 pm

September 24, 2007

AVR Project update

I’ve had a little time to come back to working on my AVR ATMega-based project. First of all, I replaced a bunch of free wires with a ribbon cable, which makes things a lot easier to handle. I’ve also wired up the buttons, so now I can write little programs which can be controlled by user input. Right now you can just move the dot around and change its color, next I think I will make a 1 or 2 player pong game.

Download a short video of it in action (~700KB), or view it here:

Filed under: AVR,Hardware — davr @ 7:48 am

March 29, 2006


Here I am posting the schematic of the current design, and my proposed schematic for design revision 2. The main changes are:

  • Directly drive the ROW inputs with transistors, instead of using shift register. I have enough I/O pins that there is no need for a shift register here, and the transistors will allow a decent amount of current through.
  • Limit the current coming out of the COLUMNS with resistors. This is needed now that there will be more current flowing through. Before I got away without them, probably because each row was being driven by a single output pin of the shift registers
  • Use shift registers on columns as before, but this time with a latch, so you wont see the data being shifted in. Thus the ‘off’ LEDs will really be off, instead of the faint flicker/glow
Schematic Rev. 1
Schematic Rev. 1

(What I currently have built)
Schematic Rev. 2
Schematic Rev. 2

(What I am planning to change next time)
Filed under: AVR — davr @ 12:26 am

March 19, 2006

Ported to C

I ported the code to C. Now it is easier for me to work with.

This makes it easy to scale things, so now I have 10 boucing lights instead of one:

Bouncing lights

bounce3.mpg – 3MB

I’m no ASM master, so I could probably be doing it the hard way, but this code in ASM:


Filed under: AVR — davr @ 2:35 pm

March 15, 2006


I finally got the code worked out for bouncing a little ball around. Here’s a short movie:
A single bouncing LED
– 200KB
MPG1 format – 1.1MB
I think next, I am going to rewrite all this code in C. The ASM is getting too complex for me to manage efficiently, I spend too much time tracking down ASM bugs versus actually writing code.

Filed under: AVR — davr @ 10:55 am


I hardcoded this pattern to load into SRAM on bootup:

Smiley face

Filed under: AVR — davr @ 9:38 am

March 14, 2006


Ok, now I’ve written the code to display patterns from RAM, but I haven’t written the code to actually update those patterns. So I’m not sure exactly where this pattern is coming from. But it’s slightly more interesting looking now:

Color patterns

Still the same problem with the ‘off’ leds lighting up slightly, but I think it’s not too bad for now. Next up, I think I’ll animate a simple 1-pixel ‘ball’ bouncing around or something.

Filed under: AVR — davr @ 11:08 pm
Next Page »

Powered by WordPress

Bad Behavior has blocked 12445 access attempts in the last 7 days.