Content-type: text/html Set-Cookie: cookiehash=D8TIX1F9GET8DML97LCWDC1UDL31CF7Q; expires=Wed, 20 Oct 2021 00:00:00 GMT; path=/; domain=.drivemeinsane.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Marquee Sign is (almost) Complete
October 21, 2010 23:34
After many many painstaking hours, the scrolling LED marquee sign is now working and functional. I have a few minor adjustments to make to complete the project, mainly mounting it to a frame and attaching a permanant power supply, but it's working. Over the next few days I'll compose a document detailing the project, both the successes and pitfalls. I'm also considering if I want to try this again, and if so, what extent I will take the next project to.
For now, anytime you send a message to the webpage it will, after any necessary moderation, display on the sign at a relatively slow pace (so it's easy to read even if the cam is updating a bit slowly). I will likely do a bit of rearranging to the back wall to make mounting the sign a bit easier, not to mention mounting it somewhere that's most likely to be visible. Other than the aforementioned issues still to address with this sign, I also need to find a font that renders decently at 8 pixels tall. The font I'm currently using only uses 7, and I might as well take advantage of that extra pixel. I'm also working on a way to submit bitmap images to have them display on the sign as well. I will also do some experimenting with the use of a timer on the circuit itself that triggers the parallel port interrupt (instead of burning cpu cycles with a for loop), as well as play with the refresh rates to see if it's possible to achieve multiple shades of gray (or in this case, green).
Future versions of the sign might include the use of multi-color, or full-color LEDs. I will also want to consider a larger array, perhaps 80x40. I will, however, refrain from doing such a project on perfboard. If it's cost effective, I will probably try to get boards pre-etched so all I need to do is solder the components on. I figure the project probably took about 5 times longer with perfboard. Pre-etched boards cost a lot though, especially in small quantities. I could etch my own easily enough, but I'd also have to drill the holes, which would signfiicantly increase the annoyance level of the project. Still, if the overall cost of the components is substantial enough, the overhead for the boards wouldn't be THAT excessive.
I figure, from the moment I started the assembly process, I spent about 20 hours working on the sign, most of that time spent soldering in the individual LEDs. Once I got a good pace going, I was managing to solder one column of 8 LEDs every 12 to 15 minutes, and there are 40 columns on the sign. As for parts, I spent $31.40 on the 6 perfboards, and about $35.00 for 1000 LEDs, of which I used 328 for this project (if the math doesn't work, I actually have one dark column. I didn't feel like using up a whole shift register just to make it light up. The chips and other accessories comes to about $10.00. Cost wise, it was cheaper to assemble it myself than to purchase a completed unit, however, that probably isn't the case once you factor in the labor cost
October 08, 2010 10:14
For those who are unaware, I am working on building a marquee sign. This is actually a very old project, one I started 10 years ago. For various reasons I've finally had the opportunity to resume my efforts on it and as of this moment, I have a functional working demonstration (although the entire sign will still take a few more days to complete). I will highlight the trials and tribulations of this event.
To get down to basics, a marquee sign is an enlongated LED array, which typically is used to scroll messages, although it can be used for pretty much any display purpose that it's physically capable of. When I first attempted this project, I was uncertain how to proceed. My first inclination was to use D-flipflops so each LED represented one bit of memory and I would clock the flipflops to automatically scroll the data across the board. While workable, it would also be very expensive, consume a lot of power, and be very time consuming to construct. It would also prevent me from doing any sign other than one that scrolled from right to left. I quickly realized this wasn't a workable solution and instead planned out a design to simply refresh the LEDs one column at a time, and let persistance of vision do the rest.
My initial efforts at this refreshing met with some obstacles, which I ended up having to deal with recently as well. The parallel port puts out a 5V signal which is sufficient (plenty more so actually) to drive a LED. The 8 data lines on the port, as well as the control lines all put out the same voltage, however, since historically the control lines were bidirectional, whereas the data lines were output only, the impedance of the control lines is slightly different. Long story short, while I was attempting to feed one of the control lines directly into the shift register, it would result in extra clock pulses, or other junk signals, which at best was causing flickering in the LEDs that were supposed to be off, and at worst would cause LEDs to light up out of sequence. Adding 470 ohm resistors between the TTL circuits and the parallel port lines solved this problem and now the signals are received properly and the sign displays exactly as it should.
Even after I complete the sign, this is still going to be a work in progress. To update the sign without any noticiable flicker, I need to make it ripple (refresh the entire sign) at least 120 times per second. My benchmarking shows that the optimal solution requires around 30000 clock pulses per second. The computer has no problem with that speed, but usleep only has a resolution of at best about 1ms (or 10ms on older linux kernels). It can't get a finer resolution than the clock timer rate, which is supposed to be 1000hz on later kernels. One possible solution would be to increase this rate to about double the needed clock rate, to ensure that the pulses could be issued in a timely manner. This will require a kernel rebuild and compile, so I haven't messed with that yet. The current solution is to simply run a for loop for so many cycles just to chew up CPU time. On an otherwise idle computer, this works fine, but obviously it would cause problems if I had other programs I wanted to run on the same system, or if my sign control program is multithreaded. Another possible solution would be to add a crystal or even a capacitor based occilator to the sign circuit to feed an interrupt to the parallel port each time I want the clock to update. If I use the parport driver (or write my own), I can capture the interrupt and use that as a trigger to issue the pulse. If things act as they're supposed to, the interrupt (no matter how often it triggers) should wake up the sign process, let me issue the pulse and output the new port data, and then let me block the process, so that it won't use up any more CPU than necessary. I could have a full load of programs runnign on the system and as long as the sign process has enough priority, it should update flawlessly. I will work on this as a future extension to this project.
Once the sign is finished, I will mount it on the back wall and it will display the messages sent from the webpage (properly moderated of course). I may also provide additional programmable controls, so people can manipulate how the messages are displayed, or display bitmaps.
Images of the progress are here.
September 06, 2010 22:15
As a few of you no doubt noticed, there's a new cam on the site called testing121. Currently it's pointing down looking at the desk in the back of the office, but I've tried it out in several different locations. This is a wireless IPcam that I'm testing out. So far, it works well enough on the network, and it's certainly portable, but the image quality leaves a bit to be desired. It almost appears, even in 320x240 mode, that the image is just scaled up from 160x120. However, it will create mpeg4 videos with audio, so combined with a network cam interface such as splitcam, it might make for a useful mobile multimedia source, even if the quality sucks.
I'm going to try to get my hands on a few more IPcams and see if I can't find something reasonable and relatively inexpensive.
September 02, 2010 18:24
This is a pre-manufactured prototype pc-board that has a layout similar to a breadboard, but obviously for soldering instead. Radio shack sells a similar board here, but this is far too small for my purposes. The one I'm interested in looks just like the picture, as I'm going to use it for creating a LED matrix. However, I can't seem to find any. The place I purchased them from before (Tanner Electronics) didn't have any in stock the last time I was there, and they apparently had them either custom made or custom labeled. In any event, I've had no luck finding anything similar online. Just for kicks, I decided to create one using pcb prototype software and submit it for a cost analysis to see if I could get it custom made in small quantities, but with all of the holes, it appears it will cost about $20 per board, even in huge quantities. Since I only paid $5 apiece for these, that's not gonna fly.
I have a few options. I'll try to run another cost test on the boards using ONLY the holes that are needed, and in fact develop the board to have the exact trace requirements although I suspect it will still be more expensive for the small run I'm looking at (likely no more than 8) and I can't reuse the boards for something else. I can use perfboard that has plated holes but no traces, but that will require a lot of timeconsuming wiring that the traces would mostly eliminate. I could also use veroboard which has the unbroken rows of traces, and do some strategic cutting where required.
Still, the ultimate choice would be to find exactly what I'm currently looking for. My searching so far has been unsuccessful, so I turn to you as a last resort. A cool site project will result from the effort.
August 31, 2010 20:07
Yes, I realize I've written more news in the last few days than I have all year. I'm making some effort to change that. I've kinda neglected the site the last few years as other things have taken precedence. It's not that I haven't been working on it. I've almost completely rewritten the entire back-end of the site, several hundred thousand lines of code I cranked out in support of it, so it's not like I've been idle. The problem is, almost all of it was completely invisible to the site visitor. I'm finally going to make some more visible changes.
First off, the orientation of the cam and lamps in the office is going to get a bit of a makeover, and I'm going to set up lamps in the living room as well, just to give it some interaction. I've been meaning to set up a few more cams around the house as well, but where and what position is yet to be determined. We're going to finally get the front hallway drywalled so as to at least hide that construction nightmare. I'd been waiting until I knew for sure that I was doing making modifications to the house, but this meny years later, I might as well just wall it up and in the unlikely event I have to break into it later to mess with something, so be it.
I've got the critter out of commission at the moment to solve the wheel base problem, and that will likely require a rebuild of the drive system, and in fact the entire construction of the bot. I will probably at least reassemble it in its former configuration so there is SOMETHING to play with while I work on the new version. I do have a spare TS-7200 available to use in the other one, and there are new embedded computers available now, so I might just pick one of those up too.
The main page is going to get a bit of a facelift as well. The current layout works well for people with a normal 4:3 aspect ratio monitor, but for those with widescreen displays, it looks a bit ugly and there is a LOT of empty space. I've got a couple ideas of what to fill that space up with IF someone is using a widescreen display. For those with a regular display, it will remain as-is, although there will still be an option for the extra material. I also need to create a mobile friendly version of the page for those with smartphones.
As many of you know, the last few weeks I've been playing Starcraft 2. I played the first game extensively when it first came out, and I've been a fan of some RPG games since, although I tended not to play them online much. With SC2, I've played quite a bit (but not as often as I'd like). In any event, I've been saving my replays (all except the first few) and I plan to post some of the more interesting ones, and use them as a training guide for newer players. I'm not even remotely a pro yet, but I AM getting better, so some pages with commentary on the replays could be of interest to some.
August 31, 2010 19:54
... continued. Sunday morning, before dawn, Gertie and I went out to the ocean and I took a quick dip in the water. After that fun, we came back, got cleaned up, and went to Skidders for a quick breakfast. We lounged around for a while and dressed up and the three of us went to Brunch at the Trade Winds resort down the street. After feeding the swan and fish in the small pond there, we returned to the hotel and went out to play on the beach for a few hours. This is where the multiple bottles of suntan lotion REALLY paid off... as we used all of it for ONE application on the three of us. We headed out to the beach, paid quite a bit to rent a cabana for a few hours, and mostly just enjoyed the beach. Swam a bit, made some sandcastles, looked for some shells, got sunburnt (in spite of all that lotion). A storm blew in coincidentally about the time we decided to head back anyway, so we went back to the room and got changed.
That evening we went to Walmart to buy some groceries so we could have a few meals in the room and also to make sandwiches for the Shell Key trip later in the week. We also purchased a much larger bottle of suntan lotion for use during the rest of the week. That night we had hotdogs and just kinda crashed. It WAS a long day afterall.
To be continued...
August 31, 2010 08:33
In the near future, probably sometime next week, I'm doing to do some housecleaning in the database. Somewhere I've got a bug that allows (probably unintentionally) for people to change their user id #. This isn't a security issue, but it does screw up the id matching system for various pages on this system. I first need to figure out how it's happening, or code to prevent it from happening at all (probably both would be a good idea). After I get THAT fixed, I'm going to reset all of the user id's to match their file offset. This will only really affect anyone who created an account in the last few months AND has a cam on the site. The last 20 cams created by users with funny id numbers will get purged. Looking through the database, most of the affected cams were never activated, so this won't be much of a loss. I've also got several memory leaks that I need to find and plug. They're beginning to annoy me.
In more happier news, I'm also going to get the main server updated. It won't cost me any more... will actually cost me less than I'm paying now, and I'll have a CPU that's about 20x faster and a lot more ram and HD space. This will hopefully help performance, although most of the time performance really isn't an issue anyway. Having more HD space will help a lot though.
August 30, 2010 20:34
I never used to have such a problem. Several years back, catching a virus or some other type of malware was almost entirely a behavioral oriented activity. It required you to be foolish enough to execute an untrusted program or use software that was insecure. Doing most of my work on linux boxen, the whole issue was mostly moot, not that linux didn't get its share of problems, but catching a virus by executing a program or browsing some site wasn't one of them.
I was, sadly, just enough of an idiot to catch one on occasion. I usually was able to figure it out within seconds of doing the stupid thing that launched it, and cleaning it up, while an annoying experience, wasn't usually too difficult. The point is, I always knew HOW I caught it and was able to learn from that mistake.
Today is a totally different story. Browsers, even those completely up to date on all known security issues, will still allow malicious code to install unwanted programs on windows boxes without the knowledge or even implied consent of the owner. And the worst part is, you can't even blame it on porn sites anymore, since all is required is that an ad network have one malicious ad and any site that uses that network will be vulnerable. The New York Times website was even serving up malware not too long ago.
The end result is that I can no longer rely soley on my own safe internet habits to prevent the contraction of malicious crap, I have to frequently scan my systems for anything malicious. What brought upon this post is the fact that right now there's something suspicious on my machine, but the two scanners I typically use aren't detecting anything. I've attempted to research the problem, but it seems that although other people have recognized the same issue, nobody seems to know for sure if it's even a malware issue.
The problem I'm specifically having is that when I do a google search, the links on the results sometimes appear to be hijacked to forward through various ad network sites first before sending you onto your destination. Sometimes this is through a google owned network like doubleclick, but there are others. Looking up all of these networks that I have seen so far at least appear to be legitimate, although that does not mean that the injection into the search results is. However, nobody how has seen the problem can identify any specific malware that causes it, and many believe that google is actually the one responsible here.
Since this is the only problem I'm seeing, I could just write it off as either an odd glitch or a google-gone-evil event, but even so, I was determined to at least assure myself as best I could that there was nothing malicious on my system that anyone actually knows about. To accomplish this, I downloaded about 10 free anti-virus programs that seem to be highly recommended. I'm not going to name which ones they were, and I never even installed all of them. The behavior of a couple convinced me that the problem I was having wasn't nearly as bad as the antivirus software itself was.
So, my message to the programmers of this software is as follows. Any future releases need to have the following capabilities:
First, I need to be able to shut down the program. COMPLETELY. Without uninstalling it. This means I need an exit option on the menu, or I need to be able to kill it in task manager. A non-system program I can't shut down makes me think it's a virus, and that has me chasing the wrong problem.
Secondly, a quick 20-30 second quick scan at boot is acceptable. Causing a 2 second delay on launching executables is also acceptable. But that is the limit to the delay I wish to notice with any such software. If periodic scans must be run, they are to be run ONLY when the cpu is not otherwise occupied with other applications. The scanner can wait.
Third, uninstall must do exactly that. Uninstall EVERYTHING.
It's simple. I need to be able to trust the antivirus scanner more than I trust the virus. And right about now, the virus is winning.
August 29, 2010 17:32
Well, they call it the sunshine state. It was sunny, at times. It also stormed in violent and interesting ways, usually at inconvenient times. The hotel was great, if not a bit vacant. The flights went well, USUALLY.
To start from the beginning, Gertie, Kiko and I made a very last minute decision to take a small trip somewhere before school started back up. After considering various possibilities, we finally decided to take a trip to Florida, and eventually settled on the beach near St. Petersburg. A week before we left, we settled on the Beachcomber Hotel in St. Pete's Beach, FL. We quickly planned out a quick trip involving a lot of lying out on the beach, and not much else.
After some minor prep work, such as finding suntan lotion in 4oz or less bottles, which incidentally is almost the exact amount needed for one application. On me. At least we packed more than one bottle. Thankfully, the terrorists hoping to take down airplanes with a large quantity of suntan lotion haven't figured out THAT particular loophole yet. But give them time. Give them time.
But I digress. Our epic journey began on August 7, 2010, at 6:00am in the morning. We were mostly packed already, and what little remained to load up, we were able to quickly assemble in the morning. Attempting to avoid baggage fees and the possibility of lost luggage, we decided to take everything as a carryon. I'm actually quite surprised we were able to accomplish this, since for any trip that doesn't involve air travel, I usually find myself making several trips to haul bags. Very heavy bags. And that's just for Kiko. With some sound packing sense, which involved not packing large quantities of books, costumes, anime figurines, and stuffed animals, we were able to get everything into 5 bags. I even found a use for the briefcase I got as a gift when I was about 16. I've used it TWICE since then, and it had a nice layer of dust I had to clean off first. There were also some ink pens inside which sadly no longer worked. Shocking, yes I know. I used the briefcase to carry all of the electronics. I figured I'd be able to get ALL of the electronics in there, but it wasn't happening, and we decided to just leave the camcorder home.
So we said goodbye to porchkitty, Leban had already been taken care of by taking her to my Mom's. She was initially quite terrified, but after starving for 2 days, she finally decided to be social. Anyway, I also gave all the plants a good soaking, locked up all the doors, and started driving. We got to the airport without incident, ate breakfast, and hung out for about 2 hours before flight left. Each trip required two separate flights, with a short layover in Atlanta, GA. The trip down there was very smooth. We were a bit delayed getting out of DFW, but had plenty of time to make the connection, and had just enough time to charge up the laptop and get a snack, and then we piled into the next flight and made it to Tampa, FL about 20 minutes early. We spent that time surplus at the rental car desk first upgrading the car to something I'd actually fit into, and then talking with my insurance company (and credit card company) to clarify that yes, indeed, the rental car WAS covered by our insurance and we didn't need to spend an extra $30 a day on it.
The drive to the hotel was uneventful, if you don't count the ricers that raced past us on 275 while we were crossing Tampa Bay. Check-in at the hotel was quick and easy, and we got settled in our room, which was cold (a good thing). At least THIS hotel understood the concept of air conditioning. Our room also had a kitchen, so we were able to have a couple of meals there instead of eating out all the time (although we certainly did plenty of that). That first night we didn't do much more than relax from the trip. Gertie and I wandered down to the beach (even though it was dusk), and ended up at the Bar & Grill that is part of the hotel. We ordered burgers and a pina colada. Served by the BUCKET. Yeah, we didn't accomplish much of anything useful THAT night. Took some chicken tenders back for Kiko and called it a night.
To be continued....
August 22, 2010 18:51
Early June we went to A-Kon 21 in Dallas, TX. Of course, the anime conventions are all attended for the benefit and desire of Kiko and her friends, of course, but Gertie and I enjoy them a well, and while I'm not much into the culture of it, I don't dress up and I don't really watch any of the anime or read the manga, it's still a fun experience, the costumes and people wearing them are fun to watch, and many of the panels cover topics that transcend the world of strictly Anime.
While I would have like to attend more panels, some of the ones were chaired during times that I was not available to attend them. Either they were too early in the morning, or I was chasing after kids, or I was spending 3 1/2 hours checking out of the hotel. But I still attended quite a few of them. I attended one about video game production companies. One that featured several web-comic artists, including the designer of 2 Lumps, one on learning Japanese through Anime, which I will say I didn't actually learn much Japanese through, but the clips he showed during the panel were amusing. I also attended Nerd-Core Comedy hour which was pretty fun, and I also attended a panel on cheap movie production.
On the downside, it was HOT. Granted, it was like 105F out that weekend, but the hotel had absolutely abysmal airconditioning, especially considering all of the people that attended. The elevators were also a nightmare. 30 minute long lines to catch an elevator that took almost 5 minutes to get to my floor. And no, there was absolutely no airflow in the elevators. And not everyone was using high quality deoderant. On more than one occasion I found myself using the stairs, which was no small feat considering that we were staying on the 20th floor. I only actually used them to go UP once though. That was enough.
Checkout was a royal pain as well, considering the elevator problem going DOWN got REALLY bad a couple hours prior to the mandatory checkout time. I had to make 6 separate trips to get everything out to the car. Checking in was much easier since Gertie was already there when we arrived and had managed to requisition us a luggage cart (which we completely filled up). I only had to try to find a place to park. NOW I know where I can park, but that Friday it was the ultimate lesson in futility. Almost all of the public parking was several blocks away, charged a hefty daily fee, and required us to vacate by midnight... which presented a problem since all-night parking didn't seem to be available. After a couple hours of trolling around, I eventually discovered the Plaza of the Americas had a public parking garage. Nowhere was it displayed that it allowed overnight parking, or even what it was for. Turns out, from the 7th floor up, it had parking available for the Westin Hotel and they didn't seem to require any confirmation of a reservation to use it. There was also a LOT of parking available and nobody else really seemed to realize it was available. Helpful hint for next year! Although the prices were listed at $18 per day, I only spent $15 when we left, so not a bad deal. The Sheraton's parking garage (the hotel we were actually staying at) was full before I even got there. Yeah... THAT'S some good planing on someone's part.
Long story short, I had to make 6 trips from our hotel room to the car, which took about 30 minutes each round trip, to get all of the luggage to the car. Most of this was the girls' luggage, but I also didn't help matters by bringing along a desktop computer and CRT monitor, but while it was heavy and annoying to carry, it had the benefit of not being likely to sprout legs and run off, and even if it did, it wasn't worth a great deal anyway. While lugging that monitor down 20 flights of stairs, I was sorely tempted to find a trashcan somewhere and just abandon it.
Updates on the Flordia trip in the next entry.