Articles by Brian Thompson

You are currently browsing Brian Thompson’s articles.

I replaced the main board and now it just resets, flashes, and repeats. Any suggestions?

https://youtu.be/5kmxlttkc-s

The following deals were at Costco.  Not sure what the problem is/was, but Costco didn’t get me signed up for it.  Then after 6+ hours of chat with sprint and an hour phone call they finally honored the deal (I think).  Though I’m not sure Sprint ever really found this plan and just gave me what I told them

I also bought a new phone that is supposed to have the following deal. I suspect this is a mess and I’ll have to fight to get the deal too. Fortunately, I have plenty of saved IM conversations with Spring saying they will honor the deal.

Tags: ,

For a while I was making my own certs, just to see that I could and to understand how to setup and force https.  However, since my certs were not signed every browsers said my site wasn’t secure (rightly so).  So after a few times of my certs expiring I turned off forcing https and all redirects related to it.

With Chrome now making https more mandatory I looked into getting real SSL certs.  I found ZeroSSL.com could do the trick.  I followed the new user directions and have a few trips I was able to get real certs.  However, I read that these certs expire every 90 days.  Now I’m not the best at remembering to do updates like this so I set out to figure out how to refresh my certs automatically.  

Perhaps I’ll get into the details later, but my final messy solution is a php script that will create an html output will run the refresh command.  It translates the refresh command output to a less descriptive output (i.e. it hides all the folder paths and files used).  If the refresh command generates keys the command is setup to place the keys in my webservers SSL folder. From there I use a windows batch file to call the php file and to log the output to a html file.  The batch file also transfers the lastest html log file to a known folder that I can see from my website (the reason I don’t capture the full refresh command output into the html log file).  Finally, I have Windows Scheduled task setup to run the batch file every night.

 

And with that I should have SSL certs always up to date….at least that’s the theory.

Tags: , ,

I have my own bar coasters!  I don’t know why, but this seems so much fun.  I was fortunate enough to have a few beers reviewed on The Brewing Network’s Dr. Homebrew podcast from which I won a gift certificate to GrogTag.  After looking at the various products I settled on getting bar coasters.  I spent way too much time thinking about this.  I think I received the gift card in February and then thought about it for a good six months.  When I actually sat down to make something I spent several nights working on various designs.  In the end I settled on a somewhat modern theme loaded things with Easter eggs about my background.  Can you find everything?

 

I will have to say when I sent this to get printed I suspected the print quality wouldn’t be that great. Much to my surprise everything looks fantastic. Below is a photo of the real coaster

 

And finally here are all the easter eggs exposed

  1.  ViaSat-2: The last satellite I help build at Boeing. I helped design several of the unique digital payload units. 
  2. Silhouette of Engineer Mountain as seen from Purgatory:  Purgatory is where I grew up skiing
  3. Iron Cross 360 with a grab:  I’m still trying to land my dream trick from Tommy Mosley’s 1998 gold medal Olympic run
  4. A Zia symbol: New Mexico state symbol as a look back to where I was born and raised
  5. Delta Chi: My college fraternity 
  6. A pull down circuit: A reflection of my EE background. Also this is a variant of what I designed into my future brewstand controller
  7. My family:  two boys, my wife, and I
  8. Palm Trees:  These are the plam trees that could be seen from our old Hermosa Beach balcony
  9. NMSU:  where I attended undergrad
  10. Standford:  where I completed my masters’ degree  
  11. My mash paddle:  Not really and Easter egg, but this corner got charred one brew session when I left it too close to the burner and later cut it off
  12. Norte Dame!!!!!
  13. Soccer ball:  I’ve been playing since a kid, still play, and am having fun teaching the boys to play
  14. Abbey of St. Peter in Oudenburg: Abbey founded by St. Arnold, commonly referred to as the brewer’s saint

 

Tags: , , ,

This is my second lager, a Schwarzbier, and it came out really well. Though if I were to do it again I might pull back the blackprinz just a bit and add a touch of pale chocolate malt. For fun I entered this into the Brew Hut Annual Homebrew Competition. This was well received and took 2nd place with a score of 43.

Possibly even more exciting is that the more experienced judge gave the beer and Outstanding rating of 45! He even left as the final feedback “Delicious & Drinkable! Each element blends harmoniously!”.  Big thanks to Brew Hut for hosting the competition.

Here is a link to recipe

 

11/5:  After trying to change my webpage theme I broke things and had to revert to an older version of the website.  In doing that I lost the original post about this beer and re-typed it best I could remember.

Tags: , , , ,

Just experienced my first corrupt database error. All repair attempts failed. Fortunately, I have the WP-DBManager plugin running with periodic full backups. With a previous backup I was able to use the import function in phpMyAdmin to recover my WordPress site back to my last post.

Tags: , ,

In playing around with the Raspberry Pi and Craftbeerpi, I came across a project called Raspberry Pints. This project is intended to enable a single screen behind a bar show what is on tap.  It has fancy features to monitor the kegs if you add flowmeters and stuff.  Somewhere along the way I read that someone noticed that this can be ‘ported’ to work on a normal apache/php/mysql server.  So I thought, I have one of those (the website that you are reading) and decided to give it a whirl.

Turns out the project is kind of dead or at least stalled for a while, but I managed to learn that the 2.0.1 zip file was a good start.  I kicked off the install and ta-da it said everything was a success. So I went to the main page and immediately ran into several errors.  

Error 1:  I think the install script running on my server didn’t update config files for the username and passwords that I was asked for in the install script.  There are a few files this had to be updated.

Error 2: The main page didn’t recognize some variables setup in a few include files.  I’m pretty not php savy, but it seemed that if I setup a variable as a global things went fine.

Error 3:  Some of the includes were missing from the admin page to get into the mysql database.  Simple adding the inlcude files to the files that generated errors seemed to overcome this.

Once I was past that I was in and able to set things up.  Quickly I discovered that I need to learn how to use this better. It seemed like some pages were overwriting information about beers when I didn’t think they should and subsequently mixed up the data on the beers. After a bit of trial and error I was able to get my info added.

I then made a few updates.  I wanted a way to jump back to my wordpress site added to the display.  The logo on the top left normally takes you to the admin page, but I changed this to go back to my own page.  This took some effort as I didn’t realize how the project was converting the mysql data into php variables.  Several hours later I discovered an include file was doing this magic.  Simply adding my new variables to this and adding the data to the mysql database got this all going.  I tried to make an Admin link right below the logo, but my random attempts to update the php and css files failed.  So instead I setup and Admin link on the left header in a ugly way.

So there we go I have my digital taplist up and going.  Now I can get back to my brewstand controller design, but at some point I need to create my own logo.

5/10/2018 Update: I figured out how to add some PHP code that will convert a snapshot of my current raspberry pints webpage to an image using khtmltoimage and add it to this post and my homepage rather than using iframe. This allows the image to size correctly in my post.

Image of Raspberry Pints taplist

Tags: , , , , ,

Once I was able to get into my Rasberry Pi (RPi) I started to think about how I was going to use it.  I was pretty far along on my Ardunio controller and circuit schematics that I started to think that I would connect the serial cable to the Ardunio and build upon my existing design.

So I started to look at Craftbeerpi which seemed to have a pretty solid start on what I wanted. The more I looked it seemed to not have support to read from an Ardunio to the pre-made widgets.  So I started scheming ideas to make my own program.  For better or worse I was leaning towards a Python development.  My brief time using Python wasn’t too great and I hated the tabbing format for block commands (if statements, loops, etc).  However, after looking around it seems to be one of the more popular languages and something I should probably be more familiar with.  From what I could see Django was about my best option as it looked like I would be able to get something up and running quickly.  If I could follow instructions better I would have Django setup in about 20 mins, instead I spent a day fumbling with errors before I re-read the instructions.

With Django setup I started to wonder if I was making this too hard.  So tonight I re-visited my I/O needs from my Arduino controller vs what RPi offers.   Turns out RPi can fully support my needs and I don’t have to deal with interfacing with the Arduino a bit more.  With that simplifcation, Craftbeerpi is now back to being my quickest way to getting a Brewstand Controller working.  I think I’d still like to make my own program, but given that I tend not to have much free time (unless it is late at night) I seriously doubt that will ever happen once I get a controller working with Craftbeerpi.  So now I just need to tweak the circuits a bit to adjust for 3.3V outputs  and watching the currents.  

 

Tags: , , , , ,

I’ve been toying around with an idea to make my own brewstand controller.  Over the past year or so I’ve been designing a front panel and circuits with plan to connect to an Ardunio for future semi-automation with an Android app.  The more I’ve been kicking around ideas it started to seem like a web interface would be nice rather an Android app so that I could control it from any device.  For my birthday I got a Raspberry Pi (thank mom and dad) to do just that.  Here is a quick post about getting setup.

Day 1

Took about 30 mins to find a microSD card and another 20 mins to find the adapter to fit into the normal SD card slot on my laptop.  Great start!  I followed the simple directions to format, download, and install the NOOBs file to the card.  Setup the RPi with an HDMI cable to my laptop and powered it on.  Nothing.  When trying to switch over the screen to the HDMI input it kept telling me not HDMI input detected.  After googling a bit I came across the idea to reinstall the Alienware On-Screen Display (OSD) program.  So I did that and didn’t notice that it was the Win 8 version instead of Win 7.  So that uninstall the version I had working.  I stopped the night with my function keys on the keyboard not working and still hadn’t turned on the RPi

Day 2

Found a Win 7 version of the Alienware OSD and got my keyboard working again.  Decided to try getting things going headless with help from this post. So I re-installed the RPi software with SSH on.  Then I plugged in a network cable from the RPi to my computer.  After many different attempts I couldn’t figure out what IP address the RPi was on and could never connect to it.

Day 3

Break.  Need to actually get things done around the house.

Day 4

Moved the RPi close the router and plugged it in to the LAN.  I was able to see the device on the router screen and then SSH into the device for the first time!  With this I was able to see the wireless cards MAC address and then configure the router to set the RPi to a fixed IP address.  From there I was able to remove the network cable and still connect to the RPi over the wlan.  Progress!  I updated programs, added personal user account, and took sudo privledges from the default ‘pi’ username.  Next, I set out to get X11 working so I could see program windows on my laptop rather than just a terminal window using Xming. I was able to get X11 working, but only for a program at a time (never the background desktop).  And that is where I left things

Day 5

Found another other ideas to get X11 sharing the desktop.  This was to create a shortcut with the following Target:

C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

This worked and I can now see the full desktop!  Then found some more ideas why the HDMI wasn’t working and made some setting changes the the RPi.  

Add these two lines to /boot/config.txt and reboot Raspbmc:

hdmi_force_hotplug=1
hdmi_drive=2

hdmi_force_hotplug=1 sets the Raspbmc to use HDMI mode even if no HDMI monitor is detected. hdmi_drive=2 sets the Raspbmc to normal HDMI mode (Sound will be sent if supported and enabled). Without this line, the Raspbmc would switch to DVI (with no audio) mode by default.

 

Success, I can now see the RPi through the HDMI!  So there we go after 5 days I finally can see my RPi.  At this point I think I’m ready to start moving toward setting up things to start some coding.

 

Tags: , , , ,

I’m diving in to sour beers headfirst. Since I don’t have a clue how any method will turn out I figure I might as well try 4 methods on the first attempt. I mean why not? 

Upfront is the plan for the beers (30a, b, c, and d). Below that are various questions or bits of information I ran across when trying to figure out what I’m getting myself into.  Along the way I discovered Milk the Funk and the Mad Fermentationist that have turned out to be invaluable. 

 

Base Recipe

The base recipe is based on the Rare Barrel golden recipe. I’ve upped the OG  to 1.060 so the pre-boil will be 1.051 for the raw beers (30a and 30b), will mash at 148, and will add first wort hops to 3 IBUs.  After 5.5G taken for the raw beers, I’ll will add water to drop actual OG to 1.052 and add ~25 IBUs.   The water profile will be Brewers Friend’s Water Calculator Balanced Profile water.  

I plan to sit on these for about a year before thinking about any blending ideas.  Any thoughts of adding fruit to anything will be determined after sampling and more research (which I’ll have time to do). 

30a & 30b

This will be a raw beer with lacto.  Then 1/2 will be 30a which will be clean fermented and then Brett added . The other 1/2 will be Brett only.

Here are a few more plans for these beers

  • pasteurize in kettle:  155 @ 15 mins
  • transfer out 5.5G and cool to 90
  • pre-acidify drop to 4.5   (est 1mL 88% to drop 0.1 pH)
  • add lacto – goodbelly straightshot
    – Need starter: no need for starter
    – monitor for 2-3 days
  • Add hop tea (~22 IBUs) and wait 24 hours
  • Transfer 1/2 to 2.8G carboy and add Brett (30b)
    • Imperial Yeast W15 Suburban Brett
  • add sacc yeast (US-05) to 30a 
  • Xfer after high krausen to 2.8G carboy and add brett

beer 30c

The third beer will be ~5.5G and will be a Pedio/Brett fermentation 

  • Pedio:  Bootleg Biology Sour Weapon P BBX0089
  • Brett: Bootleg Biolofy Funk Weapon #3 BB0022
  • Create a Brett starter 1.5 weeks out
    • About 500ml starter per 25 liters of wort seems to be the current best practice.
    • Data from Thomas Hübbe supports that the initial pitching rate doesn’t have a great effect on the final cell count in pure Brettanomyces starters or beer, indicating that Brettanomyces is fairly forgiving in regards to small initial cell counts (MTF)
    • An alternative to the second approach is to use a stir plate on a very low setting so that only a very small “dimple” of a vortex is formed (with foil covering the top)
  • Transfer the chilled wort to 5G carboy
  • Expect 3/4″ rise from fermentation
    –need to worry about time on yeast cake?  No.

beer 30d

The fourth beer will be ~5.5G and will be primary fermented Sacc then Brett (I know this isn’t a sour, but should be fun anyhow) 

  • Transfer to 6.5g carboy
  • Add sacc
    — clean or belgain yeast? US-05
  • Just after high krausen tranfer to 5G to secondary
  • Add pedio and Brett

New gear

I’m a bit freaked out about all of these e\new bugs so here is a list of new gear that I think I’ll need.

  • Stoppers
  • Use old autosiphon
  • Bottle bucket And bottle filler
  • Wine thief

Use extra caution cleaning

  • pH meter
  • Hydrometer 
  • Cylindrical beer sampler (hydrometer testing) 
  • Glass carboys
  • Airlocks

Other random notes

 

Here are a few other random notes I captured while looking into this idea.  It isn’t cleaned up.

http://jeffreycrane.blogspot.com/2015/06/blending-calculator-ph-abv-and.html?m=1

 

https://www.homebrewtalk.com/forum/threads/best-cleaning-method-after-sour-beer.529378/

You can try:
a) PBW – to dissolve any particles. Clean before and after with soap and water and a dedicated sponge.
b) 1 gallon of water + 1 ounce bleach + 1 ounce of vinegar (added to the water, not the bleach directly). Let it sit 5 minutes then dump out and air dry. [this is the sanitize concentration, and may not kill all bacteria]
Follow up with 
c) Iodophor – 2 minute contact time, then air dry.

(You can use Hydrogen Peroxide or One Step in addition – it kills with Oxygen).

No need for new bottling equipment, use glass and just clean really good.

 

Raw Beer Notes

Raw beer watch out for DMS creation and pasturize before starting

DMS temp (Milk the Funk):
The primary source for DMS in beer (as well as cooked vegetables) is caused by the decomposition of SMM into DMS. This decomposition is caused by heat above ~80°C.(176°F)
Allow the beer to age longer, particularly if it contains Brettanomyces. Studies in lambic brewing have shown that DMS will volatilize over time if left in the fermenter.

DMS forming temp/time (Homebrew talk)
Conversion happens around 70C. Rapid conversion happens around 80C. I’ve seen information that says the conversion of SMM to DMSO occurs “above 60C.” Brewing: science and practice – Google Books

Anticipated issues to overcome, and how I resolved them (Experimental Brewing)
1) No-boil = DMS
Not necessarily. My understanding is that DMS is produced at 180 degrees, which explains why true no-boil berliner’s don’t have a DMS profile. As long as the mash and mashout stay below 180, it won’t be a problem.

2) No-boil = no sanitation
Again, not necessarily. Pasteurization occurs at 160 degrees in just a few seconds, so as long as the mashout is above 160, no problems.

If need more Beer 1a to blend in with  then this fastest beer to turn around

 
Raw beer watch out for DMS creation and pasturize before starting

Need new bottling equipment.   Glass just clean really good.

 

DMS temp (Milk the Funk):
The primary source for DMS in beer (as well as cooked vegetables) is caused by the decomposition of SMM into DMS. This decomposition is caused by heat above ~80°C.(176°F)
Allow the beer to age longer, particularly if it contains Brettanomyces. Studies in lambic brewing have shown that DMS will volatilize over time if left in the fermenter.

DMS forming temp/time (Homebrew talk)
Conversion happens around 70C. Rapid conversion happens around 80C. I’ve seen information that says the conversion of SMM to DMSO occurs “above 60C.” Brewing: science and practice – Google Books

Anticipated issues to overcome, and how I resolved them (Experimental Brewing)
1) No-boil = DMS
Not necessarily. My understanding is that DMS is produced at 180 degrees, which explains why true no-boil berliner’s don’t have a DMS profile. As long as the mash and mashout stay below 180, it won’t be a problem.

2) No-boil = no sanitation
Again, not necessarily. Pasteurization occurs at 160 degrees in just a few seconds, so as long as the mashout is above 160, no problems.  

Tags: , , , , , , , , ,

« Older entries