Monday, September 28, 2020

Blog Neglect

 It has been forever since I posted to this, and it is darn time I got started again.  Since my last posts I've:

  • Made Dice from scratch
  • Taken Data science courses
  • Finished my first book
  • Started the process of finding and agent for my first book
  • Started my second book
  • Lot's of other random things

I think my book writing kind of sucked up any initiative I had for writing anything else, but I think I've got enough juice to do both now.  Look forward to more things you should know!


Friday, November 2, 2018

Motorola is Bad, I'm Bad, and Trying Again Even After You've Messed Up

I fell in love with Motorola when I found the Moto G4 on Amazon.  I want decent tech in my phone, but I also want a decent price and the Moto G4 had that in spades.   I even bought one for my Mom last Christmas as her first smartphone (after configuring a few things to make it easier to use).  But, as every romance story goes, that love would turn into a bitter hatred.

The projector and game controller "mods"
It all started when I bought my Moto Z about 2 years ago.  Best Buy had a good  deal going on satisfying my craving for a low price, and the Moto Z was awesome on its own.  Great specs, plus it had a modular setup, allowing one to attach "mods" to the back of the phone, sleekly providing a new functions.  Some examples of the "mods" were a second battery, a game controller, and a portable projector!
The first few months of owning the phone were spectacular.  Not one issue.  But about 7 months in, I notice a decreased battery capacity.  It should be expected to a certain extent, but not to the point I would need to charge my phone several times a day. 

Then the 9 month point rolled in.  Now I have to leave my phone charging otherwise it will burn through it's battery in 2 hours, or die when it had 30% charge left.

Of course I tried everything. Clearing caches, updating apps and the OS, I even tried resetting it completely, but nothing worked.

Luckily it was still under warranty, so I was blessed with the experience of going through Lenovo's warranty service, which was about what I expected.  After repeating all of the things I originally did, Lenovo accepted that there was an issue with the phone and I ended up sending it in and getting a replacement (this time with only a 3 month warranty).  Shortly after they had a giant sale on the "mods" letting me get the game controller and projector for a fraction of the cost.

Now fully stocked on phone doohickeys I made my way to China for work.  Just like last time, the phone worked like a dream, and the "mods" made it even better.  Sitting I a hotel room I could watch a movie projected onto the ceiling, on the subway I could play games as I went.  But. Then we hit that 5 month point.

The battery started to crap out on me again. Every day the power would last shorter and shorter, causing me to again leave it plugged in during the day.  When I traveled I had to carry a portable battery with me or the phone would only last for an hour and die regularly at 50% power.

Finally I had the brilliant idea to buy the battery "mod" for the Moto Z.  If the phone was being charged all the time surely it wouldn't matter how bad the internal battery is!

It worked for a week or two, but my phone took a nosedive.  All of a sudden the phone starting discharging faster than it could charge! Plus it would now die at
80% power!  Recycling plant here it comes!
The Guts

But I'm not one to abandon tech so quickly.  I like a project and I know before recycling I should try to reduce or reuse.  I search on Taobao for some authentic parts, and a few days later I had a replacement battery and a phone repair kit.
Now it was time for the opening of the phone, which was a nightmare in itself.  Every website I checked said that it was a highly difficult phone to repair.

That's because the screen is glued straight onto the phone, and the only way to open it is to use a heat gun or blow dryer to warm the glue up enough for you to be able to slip a small metal instrument in and cut through the adhesive. 
It took a while, but in a moment I was inside the phone looking at it's guts.  The inside was easy enough to fiddle with, and in a moment (after a little bit of prying) I had the old battery out, and the new battery, then plugged the screen back on, and tested it out wanted to see how the battery was performing.  

Poor dead screen number 2
WEEEEEEELLLLLLLLL.  The battery was performing great, but the screen? Not so much.  Turns out I put was to much pressure on it when removing it, and now I was left with random colors.

Back to Taobao to order another screen, this one on the right.  After testing to make sure it worked I decided I had such a difficult time removing the previous screen, I should secure this one with less glue.  Which again was a poor decision.  That cable on the bottom doesn't fit snug inside the case, instead it pushes back against the screen.  Soon I noticed that while most of the phone stayed glued down, the sides stuck up.  Which means touching the screen would flex it down, and releasing it would let the cable push it back up.  At somepoint in the near future the screen would be wrecked so I decided to remove it and try again.

And I messed it up again...

Somehow I scratched a bad part of the back of the LCD, and it wouldn't light up at all after I removed it.  At this point, giving up was a real option, but after a few days of pondering I decided to give it another go.

Another trip to Taobao and another screen tested let's my jump back into the thick of things, except this time I've learned from my mistakes and glued the screen in place properly.
It was an interesting experience and I learned a lot about how terrible phone repair is.  Even moreso, this made me realize how easy it could be to repair phones,  it didn't need to be like this.  Why not glue the screen to a frame that can be unscrewed by accessing panels in the back?  Why not make the battery more easily accessible?  This phone is less that two years old and far from obsolete, the fact that the battery is terrible is such a waste of resources.  Sadly, it seems most phones are trending away from easy fixes these days, but hopefully we'll have more on the horizon.
  
Regardless, my phone works, and I'm happy I can use all my doohikies again, but and I can say honestly, in 7 months, when my battery starts dying again, I am going to throw this stupid thing away and never look at a Motorola phone again.  Maybe sell the "mods" on eBay though...

Monday, July 24, 2017

Inspiring Actions in Improv

One of my favorite games to play with new improv students is "Another Choice".  The game has two actors and a conductor.  During the scene at any time (when appropriate), the conductor may say "another choice" and the actors will have to repeat their previous lines, but change the last one.  For example:


Actor 1: I'm bored, why don't we go on a drive to pass the time?

Actor 2: I remember the last time we drove, it took forever for us to get home.

Director: Another choice.

Actor 2: I remember the last time we drove, somehow all four of our tires popped simultaneously.

Director: Another choice.

Actor 2: I remember the last time we drove, somehow we got into a wacky race against cartoon characters.

Actor 1: Yes, but we made a lot of interesting friend.  Even if a few shot at us I still consider that a win.


Etc.  As you can see this forces the actors to thing creatively and explore new options.  And usually they get zanier and more interesting the further it goes on.  This is just like stretching your muscles, in future games the actors will be able to explore new options in their scenes.

The other day at practice while we were playing Another Choice I noticed a new actor was speaking well, but her movements were very lively or animated.  That's when I realized an excellent application for this game which I named "Another Action".  The rules are the same as Another Choice, but instead of changing their line, they have to change what their body was doing during the scene.

For example if our two actors were in the car driving and interaction like this may take place:


Actor 2: Just please drive safely this time.

Actor 1: What does it look like I'm doing? (Mimes turning a wheel patiently).

Director: Another Action.

Actor 1: What does it look like I'm doing? (Starts turning wheel hectically.)

Director: Another Action.

Actor 1: What does it look like I'm doing? (Pulls wheel off of dashboard and turns it in front of Actor 2's face.

Actor 2:  Well if that's how they taught you in Driver's Ed I guess it will have to do.


With these two games we can stretch an improviser's creatively and movements, so they make great games to start a practice off with.  And if you're feeling devious, it could be fun to mix both of the games together!

Friday, May 19, 2017

Working with Organs and Arduino

Sometime in mid-October I received a call from my friend asking for a 3d printed brain, heat, and set of lungs.  I thought about it for a moment and told her that I could make it pretty cool...and that's how one of my favorite projects was started. 

Finding the STLs to use wasn't too hard, making them usable was a little more difficult.
  • Heart - http://www.thingiverse.com/thing:932606
  • Lungs - http://www.thingiverse.com/thing:1234899
  • Brain - http://www.thingiverse.com/thing:478336

The heart was already hollowed out and ready to go, the Brain was pretty simple because I was able to make a smaller brain and cut out the insides with it.  The lungs were a much bigger problem, because of their weird shape they were difficult to hollow out, and even hollowed it seemed like the supports would use more filament than just printing them solid.  Here comes the biggest mistake from this project.

I decided it would be perfectly fine to print the lungs, and then hollow them out with a drill.  This was a very bad idea.  Sure it worked perfectly fine, but it took forever and felt like a waste of time.  The fact that I had to print the lungs in 8 parts because it was too big for my printer just made it take longer.

As soon as the organs were finished printing I started on the electronics which were relatively easy to put together, it is basically the same setup I had in my last project (so check that out if you want to learn more).  The coding was a little more troublesome.  This was my first endeavor into Object Oriented Programming with C++ so things went a little slow at first.

The Code

The basic plan was to make an organ class and give it attributes for each of the organs.  I'm not going to post this code though, it looks really ugly.  Maybe at some point in the future I'll come back and fix it.

The final plan was to have one arduino connected to each organ, but I was thinking it may be fun to recreate this in the future and have one arduino run all three organs, so I took a more fun route that required me to figure out how to multi-task! (Adadfruit has a pretty good tutorial here)

.  Normally people program Arduinos to run of a single loop, so if I want a light to flash every two seconds I may write something like:
  1. Wait 2 Seconds (delay())
  2. Flash Light
This works perfectly fine for this application, but what if I want a light to flash every 2 seconds, and another to flash every three seconds? The second command stops the entire program, which makes it impossible for these two commands to run simultaneously. Even if I tried to get a light to flash on the third second, it would ruin the first command.
  1. Wait 2 Seconds (delay())
  2. Flash Light -Light Flashes on the 2 second mark
  3. Wait 1 Second
  4. Flash Light - Light Flashes on the 3 second mark
  5. (Loop Beings again)
  6. Wait 2 Seconds
  7. Flash Light - Light Flashed on the 5 second mark, when we wanted it to flash on 4 
This is where a handy command called millis() comes in to play.  millis() will tell you how many milliseconds the Arduino has been running  and based on this we can much more easily fix the problem above with something that looks like this (bear with me, it will be a bit more complicated)
  1. time = millis()
    light1_time =0
    light2_time=0
  2.  if time - light1_time > 2 seconds
    then Flash Light and set light1_time = time
  3.  if time - light2_time > 3 seconds
    then Flash Light and set light2_time = time
As this program loops around it is constantly checking if it has been two or three seconds since the last time it lit, and the light1_time keeps track of the last time it was lit.  And tada! It works!

The code itself replicates each organ.  The lights in the brain randomly light up with varying colors and intensities.  The lungs slowly get brighter and darker, and the heart beats at about 60 beats per minute!


The Hardware

When all the components were finished, it was time to assemble them. The hardware was pretty easy to assemble, it's the exact same layout as my previous Stranger Things build following the same safety precautions to not damage the leds.  The only difference was that I used a lot more shrink wrap.  These are intended to be used at a festival so there is the very real chance that it could rain.  I didn't set up a final box to hold the arduino themselves, but I suggested that they get some plastic containers, cut a hole out of the lid and stick everything in, then superglue the crap out of it.




The Bragging

Look at them and their awesomeness!



How do I hold all these organs?
I have an idea!

























And now to see all of the actually working!

A post shared by Steven Burgess (@stevenryanburgess) on

A post shared by Steven Burgess (@stevenryanburgess) on

A post shared by Steven Burgess (@stevenryanburgess) on
jkljljlkj

Tuesday, January 17, 2017

Stranger Arduino Things

Halloween is a magical time where people have a chance to shed their persona, and adopt another, be it a Dracula, a robot, or one of Backstreet Boys. But more importantly Halloween is a time for makers to show off their new projects!  What a shame it is that they only get one day... The least I could do for my newest favorite project is to devote a blog post to it!

After seeing 'Stranger Things' the first time I was hooked, good actors, excellent production value, and a plot that pulls you in from beginning to end. Most importantly it had a scene that I knew I needed to emulate.  If you haven't seen the show I don't suggest reading further or you'll find some spoilers.

The wall from 'Stranger Things'
In a tense scene Joyce Byers is desperately trying to communicate with her son who is in some other realm of existence (the Upside Down).  She quickly realizes that he is trying to contact her through the lights in the house, and Joyce rigs together what you can see on the right.  So I thought to myself, why not make a portable wall so people in the Upside Down can communicate with me on the go?

I knew the setup would be pretty simply. Use and Arduino Nano, follow the standard hookups for Programmable Leds with an Arduino (add a resistor in front of the pin you are using to control the lights to help prevent damage to the pin, and a pretty large capacitor across the + and - wires coming from the power source to help smooth the current so the leds don't get damaged), battery case, and various art supplies.  Now it was time to get the code for the leds working.

The leds I purchased could be controlled by the Fast LED Arduino library pretty easily, and after a few hours I was able to get my proof of concept to work! 

A video posted by Steven Burgess (@stevenryanburgess) on


Around this time I started to see people posting their own versions of the project on Reddit.  There were a handful of example codes that I could have used, but what's the fun in that?  I trudged on, and with a little more work I ended up with the full program! You can find the code at my Github here.  It's pretty simple to use and change, the main thing you'll need to know about is the 'lightUp' function.  It take the led number, and then the r, g, and b color values.  For a little added authenticity I preset the color for each led to match the corresponding color of lightbulb in the show!

With all of the technical stuff working it was time to move onto the arty parts!  I set up my mini studio and dove in!

I started off with a base layer that was a bit similar to the wall's color, but I ended up going with a slightly brighter color because I wanted more contrast for when it was dark outside.  After that I painted some flowers and started with the letters.

Originally I wanted to have a font closer to what is shown in the series, but after I painted the letters I realized that they were too thin to read easily. After another layer I finished what you see below.


 The next step was to attach the leds to the poster-board, superglue wasn't going to work so I ended up using wire.  All I needed to do was jab it through the poster board and with a quick twist it was ready! (I did need to tape a piece of cardboard on top of the twisted wire so it wouldn't scratch up my chest)  All that was left was a strap so I could hang it on my neck and that was easily made with some duck tape.



I'm pretty happy about the final result, and can't wait to find an excuse to wear it again in the future!



Monday, December 12, 2016

Next Best Color?


Have you ever wanted to recolor an image with a limited number of colors, replacing each color with the next best color?  Probably not, but I needed it for another project I'm working on, and it end up being a fun exercise.  The basic idea behind this program was to loop through each pixel of an image, and compare it to several colors in a list, and replacing the original color with the color from the list that is closest.

If you read my post "Is it There?" you'll recall I brought up the concept of the distance between two colors.  In the "Is it There" project I used the Euclidean distance, which isn't really that good.  The Euclidean distance just looks at the distance between two points, in this case two points in a three dimensional grid.  Though you can represent colors in an RGB format with a number from 0 to 255 representing how much Red, Green, and Blue are in the color, and you can represent that as a 3 dimensional point, finding the Euclidean distance between two of these points doesn't really work...because color doesn't work like that.

This is where the Delta E (ΔE) comes in.  This is a metric defined by the International Commission on Illumination (a lot of bright people work here), to measure the difference between two colors.  The equation changes between the years and you can find more information about it here.

To illustrate the difference between the Delta E and Euclidean methods I picked a sprite from one of my favorite video games (Terra from Final Fantasy VI).  Here I chose a limited selection of colors and used both the Delta E method, and the Euclidean method to find the the next closet colors.
As you can see, Delta E leads to a much more vibrant image.  The Euclidean distance works, and we are left with a very similar image, but the Delta E gives us brighter greens, closer purples, and just an overall better image.

Now for some fun...

You may recognize this spider to the right as Ochos Locos from my previous post on spiders.  I ran my program, but instead of giving it a set of colors, I had it generate a list of between 15 to 40 randoms colors (and then look at each pixel in the image and replace it with the next closest color.  As it turns out this is a pretty long process, and at sometime in the future I might optimize it.

But! After hours and hours of waiting I bring the work of art that is "Ocho Ochos Locos"

Ocho Ochos Locos
Ocho Ochos Locos

If you're interested in taking a look at the code you can find it here!

Monday, November 21, 2016

Wedding Design Build

When one of my Idahoan friends asked me to 3d print vases to hold electric candles for their wedding I had to dig in.  I went through several iterations, and it ended up being an excellent and interesting piece for their wedding.

They wanted something simple and geometric that would easily blend into the "natury" theme of the wedding (it was at City of Rocks in Alma, Idaho so you can't get too much more natury).  I fiddled around and came up with a basic idea on the right. Please don't look at a closeup of it, it's a pretty crappy print.

It was nice, but I wanted something more symmetrical...I also wanted a better print because I didn't want people to see that about one in public.  I had just started using PLA and was having a lot of problems with slipping, consistency on walls, and overall quality.  Another problem that was plaguing me was this weird bad printing on the right.  After some experimenting I found a setting configuration that worked:

  • Increase temperature to 215C
  • Decrease print speed to 30mm per second
  • Increase the roof thickness
One thing to note is that I'm operating with a pretty junky CTC printer, so if you're new to 3d printing be sure to experiment.  Each machine has it's own setting that work the best.  In the end I was able to make a pretty satisfying print.



Bannanagrams for scale


But this was just step one!  In the middle of this process I was asked if I could paint it to make it look like wood, and after a couple of google searches I discovered Wood PLA! It smells like delicious wood when it prints and actually has a wooden texture.


At this point I received the actual dimensions of the candles to I made the model a little taller
You may be asking yourself why I am only printing one vase right now.  I know I could fit 4 on this bed easily, and I tried, but I ran into a slight problem.  Wood PLA is incredibly....gooey.  No matter what the retraction distance I set, it would always stretch and leave a trail from one model to the other.  This left a very unattractive texture on the side of the vase. Which I did not want.  Sooooo I ended up print them one at a time.  A lot of them.



But it was worth it.  It was a lovely wedding, made only lovelier with my creations!  Enjoy a few glamor shots.