Skip to main content

Posts

GE's GeoSpring Hybrid electric water heater

2019-02-24 update: Wrote this back in 2014 and only got around to publishing it now after making some final edits. After the final repairs listed here the hot water heater worked without issue until we moved a few years later. It felt, and still feels, like this was just one of those products that was launched with known issues and that it should have had some design changes. Instead they kept shipping the same design for a number of years inspite of knowing a number customers would have to deal with them. In this case the condensate pan was made of inappropriate material for the fitting attachment that was intended for use, and the condenser had a design or manufacturing flaw that caused a serious galvanic reaction. It's too bad that so many people had a negative experience with this relatively new technology given how energy efficient heat-pumps can be. - Chris 2013 We've had a string of issues with our new GE GeoSpring Hybrid water heater. Many reviews on Amazon ...

CANbus on the Omega2

Omega2S Omega2+ If you are as big a fan of the Omega2 as I am I'm guessing you want to do as much with the platform as possible. Recently I've been looking to get a low cost Linux system on a CANbus, to sniff on some traffic. What are the options for adding a CAN interface to your Omega2, either when you are designing a solution or looking to easily add it to an existing system? eLinux has a great guide on a number of CANbus adapters that I'd recommend to anyone looking to integrate CAN into their system. Interface Typical use case Available on Omega2 / Omega2S serial (via SLCAN) Design-in/Add-on Simple protocol but not considered reliable, efficient or fast by Linux CAN developers . SPI Design-in Not usable , the Omega2 (MT7688 cpu) is only half duplex SPI Software SPI Design-in Higher cpu load than hardware SPI USB Design-in/Add-on Available (Omega2 has one USB host port) Note that all of the design-in options could be used ...

Some interesting ways to use gmail's address rules

Gmail address mapping Gmail has some interesting rules that it applies to email addresses. Gmail ignores periods, '.', and all of text after the plus, '+', character up until the '@. Others have written pretty extensively about the situation, I'll try to be brief here. Using periods to make email addresses easier to read You can insert periods to make your email address easier to read, Email sent to Will go to John.Doe@gmail.com -> JohnDoe@gmail.com j.doe@gmail.com -> jdoe@gmail.com Unique email addresses for each site Using '+' you can use unique email addresses when registering with websites. This can make it easier to figure out who might be selling your email address. Email sent to Will go to JohnDoe+somesite@gmail.com -> JohnDoe@gmail.com JohnDoe+anothersite@gmail.com -> JohnDoe@gmail.com If spam starts arriving on one of these site specific emails you can be pretty sure ...

Golang modules - everything, even your application, is a module

I’m new to golang modules . Here are some of the things that I wish I had known when I started using them. There is no reason to set GOPATH One of the things I struggled with was how to reconcile modules with the single workspace directory recommended in the golang docs and what was previously where GOPATH would point. With go modules you wouldn’t normally set GOPATH. Everything is a module Everything is a module. Even your application. This is something not immediately obvious or mentioned anywhere. Every module has to have a name If you aren’t planning to import or share your application/package then you can use a non-repository name like myapp . When you initialize go modules you can do: go mod init myapp If you’d like to share this as a module you’ll want to use its web location instead like: go mod init github.com/user/repo Packages need to be fully qualified If you had a subdirectory of your application called mypackage then you’ll have to adjust your impo...

Graco Swing By Me - Battery to AC wall adapter modification

If you have one of these Graco battery powered swings you are probably familiar with the cost of C batteries! The swing takes four of them and they only last a handful of days. I'm not sure if the newer models support being plugged into the wall but ours didn't. If you are a little familiar with electronics and soldering, here is a rough guide on how you can modify yours to plug in! I wasn't sure how exactly to disassemble the swing side where the batteries were. I was able to open up the clamshell a bit but throughout this mod I was unable to determine how to fully separate the pieces. I suspect that there is some kind of a slip plate on the moving arm portion. The two parts of the plastic are assembled and the moving arm portion with the slip plate is slid onto the shaft. Because of the tension in that slip plate it doesn't want to back away, and because of the mechanicals that portion of the assembly doesn't appear accessible in order to free it. I was...

Oscilloscope assisted debugging

Concept External test equipment is a powerful but often overlooked tool for debugging particular kinds of software problems. In particular, test equipment like oscilloscopes and logic analyzers are well suited to investigating timing related issues on embedded systems. Why is test equipment suited to helping with issues related to timing? Oscilloscopes and logic analyzers can easily provide microsecond or better measurements and, unlike software based monitoring approaches, they aren't affected by other software running on the system. Embedded systems are ideal for this approach as they both provide the io outputs required for timing measurement, and often lack the advanced debugging facilities found in desktop/laptop processors and operating systems that would make this approach less necessary. At the conclusion of  debugging some 1-Wire bus contention issues  I was still seeing CRC errors reported periodically. Here is how I used an oscilloscope to track down the lik...

Bus contention on a 1-wire bus

Background I've been playing around with the Maxim  DS18B20 digital temperature sensor. These are neat devices that provide a digital temperature, which means they provide an actual Celsius reading in digital form, with a pretty high level of accuracy, +/- 0.5C from -10C to 85C. They are also quite compact. Here is the typical TO92-3 form factor that the DS18B20 comes in. Why not a thermistor connected to an ADC? Your microprocessor may not have an accurate enough or linear enough ADC to let you attain the desired temperature accuracy. In my case I'm using the Espressif ESP32 . The ESP32 is a great processor but its ADC still needs some work . Code to linearize the ADC results was added earlier this year but the biggest missing piece is proper calibration of the ADCs vref. Without this the scaling of ADC values can vary by several percent. Good news is that factory calibration is possible and should be coming. Thermistors also have a non-linear resist...