A champion biker from Alaska--Lael Wilcox--in a 21-hour nonstop stretch over the this Memorial Day weekend, made 13 trips up and down a 9-mile stretch of local Hatcher Pass Road to complete the Everest climbing challenge. The goal for participating cyclists: ride the hill of their choice over and over until they climb 29,029 feet — the height of Mount Everest. This is a talented biker who held the woman's record for the Continental Divide Race as well as first place finish in the unsupported Trans Am Bike Race. We are very proud of our slim local sports talent pool. To emulate her effort I thought it would be fun to just notch off a few feet here and there and over the course of days, weeks, or months mount my own challenge. For those of you interested in keeping track of arbitrary heights gained with your bike in your casual weekend rides I have provided instructions on how to build a monitor that will eventually announce to the world that you too have completed the Everest Challenge!
The device is rechargeable and sleeps most of the time and has a E-Paper screen that provides you with diverting pictures of the mountain.
Step 1: Gather Your Materials
This build is incredibly simple and easily made. The ease of putting it together is based on the nesting features of Adafruit Feather boards and screen. The only additional add-ons are a switch for power, a rechargeable battery and the newly released BMP 388 altimeter.
1. Adafruit HUZZAH32 – ESP32 Feather Board $19 You can use a different Feather -- the advantage of the ESP is it goes to sleep so easily.
2. Adafruit 2.13" Monochrome eInk / ePaper Display FeatherWing - 250x122 Monochrome $21 You can also use the three color one with red to jazz it up.
3. Adafruit BMP388 - Precision Barometric Pressure and Altimeter--$9
4. 600mah Rechargeable battery --- $2
5. On/Off switch --$1
Step 2: 3D Print It
The case is made in two pieces that are easily printed without support in PLA. PETG may hold up to the elements a little better--and I would use it preferentially if you live in someplace hot like Tucson --- doing your Everest going up Mt Lemon! The insets are designed to take 3mm metric heat inserts into the base. The Screws go through the slightly undersized holes in the screen that must be enlarged with a 3mm bit. If you want a slightly bigger battery you can increase the depth of the upper case with little trouble. The side port for accommodating programing and charging of the battery is built into the file. The flattened area at the back of the base is to attach the mount for the bicycle handlebar. The line knurling on the back of the case is done by adding a screw pattern in an early step.
Step 3: Wire It
There really isn't much to the wiring of this device so I didn't include a wiring diagram. The ease of just soldering some male headers onto the ESP32 allows you to easily mesh it to the receiving side of the E-Paper screen. This connects all the complicated pins in the SPI interface along with all the pins to control the build in SD memory card. The only thing that requires wiring is the BMP 388 which comes from Adafruit on a I2C breakout board. Nicely, you don't have to add any pull-ups to make it work. Just solder wires to the Power, Ground, SCL and SDA and attach them to the female hook-ups on the Feather E-paper screen. I used some male header pins and just soldered the connector wires to them and pushed them home. A few dabs of hot glue holds these connections in place to the 3V, GND, SCL and SDA on the main board. (You will probably become bored with this device soon and want to build something else with these expensive components.) The battery is connected with JST connector to the ESP32 with a switch placed on the Power line to turn the device on and off. To charge the unit you must have it on the ON position.
Step 4: Build It
The BMP 388 fits very nicely nested between the Feather E-paper screen and the ESP32. The case has the battery tucked at the bottom and the only modifications are for your preferred switch mounting position. You can easily add a more subtle slide switch. The case is not designed to be waterproof although you can make additional modifications in the design to help prevent water ingress. The E-paper screen is held in place with the 3 mm screws going through the modified screen holes and supported by small spacers underneath the screen. I cut these out small plastic tubes which are much better than commercial nylon spacers as they can be easily adjusted in height with a clipper. Adding the bike mount to the back of the case is just a matter of tearing one off your multiple broken light mounts that you have thrown in a box in disgust when they fail after the first rainstorm commute. I usually use super glue with activator that incredibly now binds nearly all types of plastic together: Loctite Plastics Bonding System
Step 5: Program It
The fun part of the project was the program which in the end is pretty easy. The BMP is a extremely accurate update of a series of barometric pressure sensors. When connected to the serial port on your ESP you can watch the numbers flip as you slowly raise it in the air from your desk. It is talented enough to discern perhaps a foot difference with some accuracy. It appears to be very stable in its output. The first reading is usually bad so I take a couple of swings at collecting before accepting a good one. To obtain absolute height is complicated-- requiring you to know the atmospheric pressure at sea level and then using a subtle formula. In our case I just want to check the initial pressure and then recheck 3 minutes later (after a nap of the ESP32) to see if there has been a decrease in the pressure that would represent an increase in altitude of the unit. The new pressure is then reset as the baseline and the next pressure difference is calculated. All of the cumulative decreases in measured pressure are added together as a total foot climb on your bike. Any decreases in pressure are ignored--no fame for Biking Death Valley. I tested the unit on several climbs of known height and it corresponded with the accepted factor of 12hPA/100 meters or 27.78 feet/hPA for decreases in pressure near sea level.
The pin definitions at the start of the program will of course vary if you use another board. The time to sleep in the first section can be varied and this also sets the period of your sample. Be careful with setting this too close especially with the 3 color board...any faster refresh then about 120 seconds and it begins to malfunction. In the next section you can set what E-paper board you have. I used EEPROM memory in this program because you want to remember your total height after each ride and when you turn the power off; it needs to remember it on turning it on again. I also included another program to reset your EEPROMs to 0 if they are stuck on some old data and keep rebooting. The BMP programming is from Adafruit library and works very well along with the tricky programming for getting the E--paper display running. The SD card with the E-paper holds all the images for the screen to boot up randomly during your ride. Please go to the Adafruit web page to learn the easiest way to make these graphic elements--I used Gimp and had no problems. Depending on E-Paper size and number of colors the files will be different. The program is designed to hold in RTC_DATA_ATTR memory the baseline pressure and the Total distance between sleep boot-ups--another advantage of the ESP32. We are using EEPROM memory cycles but at 100,000 uses before corruption that would take us a leisurely 5 years.
Step 6: Using It
Just attach it to your bike and turn it on. The battery lasts quite a while since the unit is asleep most of the time. When you turn it off the total height is still preserved in memory. The initial pressure in the same location will vary with weather on a daily basis and may affect the unit if it is recording over a several hour period. But we can't be too compulsive about this sort of fame... being just a participant is quite exciting. The splash screen when you reach the top shows Sir Edmund Hillary and Tenzing Norgay on their 1953 Everest climb. The final screen times-out after 5 minutes and then resets to 0--you don't want to stay in the "Death Zone" for too long. So far I have biked Everest 2 times! That is over the course of 4 months.....
Second Prize in the