Maker. Hacker. Haker. Macker. Whatever. I'm a n00b at it and this is my mackerspace.
Sunday, June 29, 2014
Fixing A Hole Where The Rain Gets In And Stops My Mind From Wandering, Where It Will Go
I updated my sketch to output the row and column when a hit is detected, and I found out a few interesting things about the issues I reported to myself yesterday.
Firstly, only the red "Server Connection" LED is not working. The yellow and green light up as instructed when a connection is established.
Secondly, all the number wedges were registering hits today, only the second half of the triple ring was not.
So I charted out all the row/column pairs for each hit combination and updated my matrices in the sketch to match. A retest found that all hits were registering correctly, except: the second triple ring remains silent and the 18/19 pair stopped registering.
Glancing at the perfboard and ribbon connector, I quickly found the problem with the triple ring... the 7 outputs from the dartboard start on the second pin. I connected the shift register to pins 1-7 when I should have connected them to pins 2-8. An easy fix, I will just solder in another small wire connecting pin 1 to pin 8... this also explains why the single/double/triple/bull portion of the matrix was off by 1 in every case. Doh!
The 18/19 pair of wedges may be a precarious solder. It is the first pin in the second row of the ribbon connectors, and I was flipping the perfboard over and back to inspect the connections, so it is possible that I have been disturbing this joint in the process. I will de- and resolder this connection, and inspect the other end of the connection at the shift register to see if that may be where the problem actually lies. I can imagine some of these connections breaking when the board is actively pummeled by darts, so I will be sure to generate the proper documentation that details what shift register pins goes to which dartboard ribbon pin, and what row/column and point/multiplier these match -- if one stops registering, I will be able to find the solder joints quickly and easily.
Finally, I will test the connections to the red server connectivity LED and test the LED itself to see why it is not functioning properly. To be honest, I will consider this project a success even if this one LED doesn't work, so put that in your pipe and don't smoke it because smoking is a health risk.
On another front, I downloaded some free circuit board design cad software and created the dartboard circuit. It is a mess. I need to seriously reconsider the layout to optimize the traces because there is so much crossover in this layout. The circuit has some layout restrictions due to the location of the LEDs, the location of the ribbon connector and to some extent the orientation of the boarduino. Unfortunately the software I am using does not appear to have an option to automatically route the copper or optimize the layout. Also unfortunate is that the other free software that does have this option also has restrictions on the board size -which my circuit exceeds.
I will keep looking for other softwares and maybe try to defeat the limitations by trying to export from one into another. Fear ye not, I will surely keep all of you updated on this topic, so there is no need to flood the comments section nor my inbox with all of your complaints. Gee whiz.
Saturday, June 28, 2014
Moment of Truth; Drum Roll, Please; It's...
This story is longer than it should be, but... well, there is no "but."
Finished all the soldering, finally. left the ribbon connector for last and thought it would be much more difficult than it was. the soldering was probably not the best in some places, but it is done.
So I had low expectations when I plugged the USB cable into the duino and then into the laptop. The red LED signifying a USB connection lit up on the duino, but Windows wouldn't recognize it. I fiddled with a few whatnots and whatevers with no luck. I was convinced that I had a fatal short that fried the processor and was mentally preparing myself to find a new hobby.
I reinstalled the Arduino IDE and drivers and tried plugging in again, this time both of my yellow LEDs lit up for a minute or so, then all of my LEDs turned on and off somewhat randomly before staying off.
I should mention that between my original breadboard prototype and this perfboard version, some of the pins were changed, so I had to change around the code to account for this. But when I plugged in, the duino was still running the old code, which probably explains the LED madness.
I uploaded the latest sketch and fired up the serial monitor in the IDE. The "play state" LED set had red lit up but the "Server connection" LEDs were all off.
I typed "C" into the serial monitor, and the dartboard echoed "C" back, yet no LED action. "Q" got an "X" response. A good sign that the duino wasn't fried and serial communication was functioning. "P" got an echoed "P" and the play state LEDs went to yellow and then to green, a very good sign. Another "Q" inquiry prompted a "P" response. Splendid, but now the big test... The Board!
A few random presses on the board resulted in serveral "H"s hollering back from the board to the serial monitor. This revealed the second issue: the"H"s should have been followed by the point value and multiplier of the wedge being pressed. Soon I identified two more issues: one of the two halves of the triple ring was not registering, nor was one pair of numbers. Other than that, everything else seems to work!
I consider this a victory. I have a few relatively minor things to track down... The missing points and multipliers are likely a software bug introduced when the pins were switched around...probably the same with the second set of LEDs, since at least some of them were working to some extent under the original code. Fixing this may also fix one of the other board hit problems. I suspect a bad solder may be the cause of one of these things, but this should not be very difficult to track down and fix. Oh, and I just need to wire up the speaker, but that's hardly a big deal.
It's pretty hard to believe that in a few days this thing could be hanging on the wall and all I have left is the game software (which will probably never be"done")...and not quite the end of June
- almost, but not quite.
Sunday, May 4, 2014
Step by Step (NKOTB)
Slowly and painfully, but forward I go. Frustration smothers experience, yet close, I am close. 9 points torn in space and time, lacking what they lacked. A white hot iron, silver, molten blood. One step from, from done. Ugly blobs, globs, lobbed and flawed. Yet continuity continues, no short, possible it might work. Step by step.
Sunday, April 13, 2014
Back on Track
Completed all connections from the 589 parallel outs to pull down resistors, from the 589 serial out to 'duino, grounds, voltage and control lines from 'duino to 589.
Remaining work:
- control lines from duino to 595 set
- ground from 595 set to duino
- voltage from duino to 595 set
- line from duino to speaker resistor
- ground second set of LEDs to duino
- and probably should expose some convenient pins to attach the speaker wires
Sunday, April 6, 2014
Perf Board Diagrams
- 2 x 74HC595 Serial-Parallel Shift Register
- 1 x 74HC589 Parallel-Serial Shift Register
- 6 x 5mm LED
- 2 x red
- 2 x yellow
- 2 x green
- 15 x Resistor
- 1 x 100 Ohm
- 6 x 220 Ohm
- 8 x 10 k-Ohm
- 1 x Arduino
- I am using the Boarduino
- Diagrams depict the Arduino Micro
- 1 x Electonic Dartboard
- 1 x 20 pin Ribbon Connector in 2 rows of 10
- 1 x Small Piezo Speaker
| Amount | Part Type | Properties |
|---|---|---|
| 1 | Piezo Speaker | |
| 1 | Generic shrouded header - 20 pins | package THT; hole size 1.0mm,0.508mm; row double; form ♂ (shrouded male); pins 20; pin spacing 0.1in (2.54mm) |
| 2 | Green LED - 5mm | package 5 mm [THT]; leg yes; color Green (555nm) |
| 2 | Yellow LED - 5mm | package 5 mm [THT]; leg yes; color Yellow (595nm) |
| 2 | Red LED - 5mm | package 5 mm [THT]; leg yes; color Red (633nm) |
| 1 | Arduino Micro (Rev3) | type Arduino Micro (Rev3) |
| 1 | 100 Ω Resistor | package THT; tolerance ±5%; bands 4; resistance 100Ω; pin spacing 400 mil |
| 8 | 10k Ω Resistor | package THT; tolerance ±5%; bands 4; resistance 10kΩ; pin spacing 400 mil |
| 6 | 220 Ω Resistor | package THT; tolerance ±5%; bands 4; resistance 220Ω; pin spacing 400 mil |
| 1 | 74HC589 | package DIP16 [THT]; type 74HC595; variant variant 1 |
| 2 | 74HC595 | package DIP16 [THT]; type 74HC595 |
| Color | Component | Connection | Pin | Component | Connection | Pin | |
|---|---|---|---|---|---|---|---|
| Red | 'duino | 5v | 5v | > | 74HC589 | vcc | 16 |
| > | 74HC595-1 | Master Reset | 10 | ||||
| > | vcc | 16 | |||||
| > | 74HC595-2 | Master Reset | 10 | ||||
| > | vcc | 16 | |||||
| Black | 'duino | gnd | gnd | > | 74HC589 | gnd | 8 |
| > | Output Enable | 10 | |||||
| > | 74HC595-1 | gnd | 8 | ||||
| > | Output Enable | 13 | |||||
| > | 74HC595-2 | gnd | 8 | ||||
| > | Output Enable | 13 | |||||
| > | LED (x6) | Cathode | - | ||||
| > | Piezo Speaker | Negative Terminal | - | ||||
| > | 10k-Ohm Resistor (x8) [pull-down] |
| Color | Component | Connection | Pin | Component | Connection | Pin | |
|---|---|---|---|---|---|---|---|
| Blue | 'duino | digital 5 | d5 | > | 74HC589 | Shift Clock | 11 |
| digital 10 | d10 | > | 74HC595-1 | Shift Clock | 11 | ||
| > | 74HC595-2 | Shift Clock | 11 | ||||
| Yellow | 'duino | digital 6 | d6 | > | 74HC589 | Latch Clock | 12 |
| digital 11 | d11 | > | 74HC595-1 | Latch Clock | 12 | ||
| > | 74HC595-2 | Latch Clock | 12 | ||||
| White | 'duino | digital 4 | d4 | > | 74HC589 | Parallel Load | 13 |
| Color | Component | Connection | Pin | Component | Connection | Pin | |
|---|---|---|---|---|---|---|---|
| Orange | 'duino | digital 9 | d9 | > | 74HC595-1 | Serial In | 14 |
| Green | 74HC595-1 | Serial Out | 9 | > | 74HC595-2 | Serial In | 14 |
| Purple | 74HC595-1 | Parallel Data Out | 15, 1-7 | > | DartBoard | Row 1: 1-8 | 1-8 |
| 74HC595-2 | Parallel Data Out | 6-7 | > | DartBoard | Row 1: 9-10 | 9-10 |
| Color | Component | Connection | Pin | Component | Connection | Pin | |
|---|---|---|---|---|---|---|---|
| Orange | 'duino | digital 7 | d7 | > | 74HC589 | Serial Out | 9 |
| Brown | 74HC589 | Parallel Data In | 1-7 | > | DartBoard | Row 2: 1-7 | 1-7 |
| Parallel Data In | 15, 1-7 | > | 10k-Ohm Resistor (x8) [pull-down] |
| Color | Component | Connection | Pin | Component | Connection | Pin | |
|---|---|---|---|---|---|---|---|
| RGB | 74HC595-2 | Parallel Data Out | 15, 1-5 | > | 220 Ohm Resistor (x6) | ||
| Pink | 'duino | digital 8 | d8 | > | 100 Ohm Resistor | ||
| Silver | 220 Ohm Resistor (x6) | > | LED (x6) | Anode | + | ||
| 100 Ohm Resistor | > | Piezo Speaker | Positive Terminal | + |
Follower Hoax and Winter Sucks
I was going to get a lot done over the winter, but winter sucks. No motivation. Winter's still trying to linger, but spring is squeezing in enough to matter. So I got a little inspired tonight.
Downloaded the latest version of Fritzing and whipped up an "accurate" perf board diagram:
Well, the "no motivation" thing wasn't entirely true. I did spend a little time messing with Pygame and OpenGL, 'cause when you are making progress on a project and need to focus on its tasks to make the project a success, it's always a good idea to start more projects.
Sigh. I'll probably end up posting about the "new" game projects.
Me out.
Monday, February 17, 2014
Still Breathing
I have done a little bit of work on the game engine over the past month, so will have to check my code into git for posterity. I am still risking over-engineering the game engine, but we'll just have to wait and see... it might be worthwhile.
I forget just about everything I learned about the circuit and the arduino and the shift registers... and this thing that looks like the pictures in the last post is sitting on my desk, waiting for me to solder some more wires from some parts to some other parts. Without this blog, it would be very difficult to know what goes where, sooooo, yay blog.
There were actually several page hits last month.... curious why people are looking at this gibberish and if any of it has ever been useful to anyone else. Hmmm.
Maybe next post I'll have some of the python code checked in and some more soldering done... next soldering session I'd like to finish all the connections to and from the duino.
Trying not to let this project die...'cause I'm not letting myself build a theremin until I get this to work, and you know how much I want to build a theremin.






