Day 30+: a postlude

(Copyright Vectorbelly Webcomics)

While the rest of the world is preparing for super sportsing, I’m taking the opportunity to tinker. This post is a continuation of the GaSiProMo challenge I took part in a while ago.

Today’s update brings in the next stage of that project with my OsRAM LED display: better packaging.

The goal here is to reduce the amount of “rat’s nest” wiring from the prototype to a more manageable amount of cabling for better display of the pretty blinky lights.

So I harvested an old Shuttle micro PC for its hard drive cables, which are nicely bundled.  The first step was to make a breadboard carrier for the OsRAM.

breadboard layout
breadboard layout

I chose sockets for wire-wrapping.  I’m a big fan of wire wrap.  It’s old school, but very rapid for prototyping.

wire wrap pins
wire wrap pins
finished wire wrap
finished wire wrap

Next up was to make a mapping of the pins from my Arduino to a breadboard.  This took a while to derive the most optimal routing of wires.

Pin mapping for translation cable
Pin mapping for translation cable

No to my surprise, the HDD housing has one pin blocked.  So I had to Dremel this out.

recovered pin
recovered pin

 

I have a serial port terminal working so that I can type in any message from the PC and have it show up on the OsRAM:

20160207_131515

terminal port

terminal port

Hello, world!

Hello, world!

 

Day 30: final day

This post is part of the GaSiProMo challenge.   You can read more about this here.

I’ve got most of the bugs ironed out in my display interface, but not all have been squashed in the driver portion.  In other words, the method in which I can input text into the OsRAM is working nicely (I’m using a serial port console), but the nuts and bolts of how strings are sent to the display — arguably the most important part of this project — remains broken slightly.

OsRAM write timing
OsRAM write timing

The problem is that I was lazy.  I should have paid more attention to the WR and CE lines for proper data latching into the display at the right times.

Oh well, what can I say?   I got distracted by another project.  So I can show you what I have so far:

But this challenge has been fun.  It’s always fun to work under a deadline to see what you can do.  This forced me to learn more about Arduino.  And despite my first impression, I’ve come to see that it’s pretty great.  I especially love the C++ class support.  For instance, its string and bitwise libraries are awesome.  There are things that aren’t so great, like the editor.  I had consistent undo (CTRL+Z) wonkiness that scared me (I was afraid of code-eating), so I switched quickly to Notepad++ with a good syntax language profile.

Until next year.

 

Day 15: display testing

This post is part of the GaSiProMo challenge.   You can read more about this here.

So I have my display working sort of.  It’s definitely showing good old ASCII characters.  Here’s a quick video of it in action:

You can see my code at GitHub.

I’m quickly realizing that I will need a more sophisticated text parser to make this thing usable.  ‘Cuz sending a character at a time for bit-fiddling pretty much sucks.

Day 6: early firmware testing

This post is part of the GaSiProMo challenge.   You can read more about this here.

Things are progressing nicely.  I have the display fully wired now to the Mega.  It’s a spaghetti mess, but it’ll work.
I have the serial port on the Arduino working nicely for debug.  I also did a fair amount of thinking with regards to data and address packetizing.  It quickly became apparent that doing a bunch of digitalWrite calls for all this pins (8 data, 5 address, per character of the display) would be a nightmare.

Here is the character map for the display.

ipd2131 ASCII chart
encoded character map

So I came up with a character array method to do this.  I tested tonight with the serial port debugger to verify correct character parsing.

So far so good.

Day 3: Arduino setup

This post is part of the GaSiProMo challenge.   You can read more about this here.

I’ve had a bad experience with Arduino.  But perhaps I was just cranky that night.  I was also unlucky with a defective Uno.

The good news is that for my new project (which has a deadline), my new Arduino Mega is not in fact defective.  I can attest its functionality tonight, at 10:45pm.

This platform is pretty slick.  They cleverly have positioned it between full language control and  GUI-only.  The syntax is mostly C strict.  But there are abstracted functions and methods that keep the very low-level hardware constructs from mucking up the works.  In a word, Arduino has “de-engineered” the sometimes maddening experience of working in firmware on any given microcontroller.

In mere minutes, I had a PWM signal outputting a nice fade on an LED.  This would have taken me a chunk of time on the Atmel micro that is used on the board.

The IDE lacks a lot of polish, but then I suppose that’s not unintentional.  IDEs are precisely where a lot of engineers get cranky (see above), and IDEs are not the point of hardware design.

So I don’t have much to update for my project, but this little stepping stone is encouraging and enlightening.  Get it?  Englightening?

Day 1: setup

This is day 1 of the GaSiProMo challenge.   You can read more about this here.

I got the display mounted to a breadboard. How about that, it’s green!

20151101_220058The display has a self test diagnostic mode built in, which is incredibly handy. Saw little cute LED bits flashing and twinkling. So the thing appears to be alive, after all these years!  Here is some video too:

The majority of my project frustrations seem to revolve around toolchains.  I hate changing tool sets because the learning curves are so steep.  After a few hours, I finally sided with an Arduino Mega board.

Next step: wire up the display to the Arduino. This will be a big trek into the unknown for me. I haven’t done much with Arduino yet.

GaSiProMo

I’m a notorious task-starter, and not a great task-finisher.  My garage is littered with old projects that are collecting more dust than accolades.  I can lean on the old, dependable excuses but really that’s lame.  If every moment is the new normal, then there aren’t any excuses.  Our hobbies define us, and I love my hobbies.  So it’s time to get serious about some side projects.

One thing that I’ve always responded to positively when it comes to my side projects is a good deadline.  Nothing motivates like external pressure.

The deadline this time?  Something called the Galactic Side Project Month  (GaSiProMo) challenge.  You’ve heard of Hackathons or Codefests?  This is similar, but with a more sane schedule of an entire month for completion.

It was tempting to submit one of my more languishing, challenging old projects.  But in the end I decided on something new and fresh, one that is slightly more achievable.

Osram 5x7 display module
Osram 5×7 display module

For GaSiProMo, I’m going to get this display up and running.  It’s an intelligent LED matrix.  I might even throw in a keypad to change the patterns and such.

I’ve had this display module lying in my Big Bin of Parts for… more than 10 years.  At this point:

  1. I’m not convinced it even works.
  2. I don’t know what color the LEDs are (the module comes in yellow, red, and green).
  3. And I’m certainly not convince it will be that cool, but at least it’s a project that I’ve always wanted to do.

So there we go.  I’ll post regular updates here and over at the GaSiProMo website.  It’s time to blow the dust off some of these old projects.

From iOS to Android, part 2: ecosystem shock

Last time, I talked about two key aspects of technology that tend to make loyal customers: platform ecosystem and user experience.

It was a natural transition from owning Macs for the better part of a decade to iPods and then finally iPhones.  Apple has done well to keep the user experience very fairly consistent between all the platforms.  That is probably their single greatest contribution to the technology world: coherent ecosystem.  In other words, the way you work on a Mac tends to be naturally the way you would work on an iPhone.  And that’s a good feature.  It makes for loyal customers.

So why, then, did I jump ship?

Continue reading “From iOS to Android, part 2: ecosystem shock”