[posted] Teensy-RV-Leveling-Helper


Well-known member
This is a fairly simple project using a Teensy 4.0 + ILI9341 color touchscreen + BMA400 accelerometer. In spite of its overall simplicity, it provides an extremely useful function for RV/trailer owners who do not have an automated leveling system. Using the XYZ vector information from the BMA400, the Teensy calculates PITCH & ROLL angles, which it then uses to determine the number of inches that each wheel on the RV (when operating in RV mode, or wheels & hitch when operating in in trailer mode) must be raised in order to level the RV. Specifics for the wheelbase & axle width can be easily adjusted on the touchscreen in order to customize the solution to any particular RV/trailer. The hardware also includes an Adafruit PowerBoost 1000C to manage the built-in LiPo battery, and battery charge status is available on the display. A simple calibration procedure is included in the github documentation. 3D CAD files are provided for the case design, and KiCAD files are provided with the full schematic.

This is by far the most enjoyable (& maybe also the most useful) project that I have built. It has saved me countless drive on / drive off cycles & I can now often get the RV leveled in one pass !!

Mark J Culross


TRLH - RV mode main screen.jpg

TRLH - splash screen.jpg

TRLH - Trailer mode main screen.jpg

View attachment TeensyRVLevelingHelper - mechanical view.pdf
The github repository for this <project> has been updated with the latest firmware. Now, two units can be used & they talk to each other using NRF24L01 wireless modules. The first unit powered on will assume that it is the "INSIDE" unit (which is actually reading its onboard BMA400 accelerometer & displaying the leveling recommendations from the calculated pitch & roll). The second unit will assume that it is the "OUTSIDE" unit (which is ignoring its onboard BMA400, and is instead displaying the leveling recommendations calculated using the pitch & roll data received over the NRF24L01 wireless link from the "INSIDE" unit). This way, leveling can be achieved without the need for running back & forth between inside (to look at the Teensy-RV-Leveling-Helper) & outside (to make adjustments). Any unit can also be used by itself...it does not have to have a partner to work. The latest firmware also automatically detects the lack of the NRF24L01 module & operates successfully without the radio as a standalone unit.

P.S. The schematic & PCB layout will be updated once I receive the latest NRF24L01 modules with external antennas that I have on order. Initial development was done using the NEF24L01 modules with the integral patch antenna, & they work OK, but are very strongly affected by orientation & distance. I'll also update the STL files for the case as well to optionally allow use of the new modules with external antennas. MJC
Any chance you could share a photo of the system in use on a RV? Maybe also a photo of the hardware with Teensy?

These display pictures are awesome, but we could write a much better article with at least 1 photo showing how it's actually used.

Thanks for your consideration including the TRLH in your blog.

Steps to use the Teensy-RV-Leveling-Helper to make the leveling process easier & much quicker:

1) park your RV where you want it to ultimately rest for the duration of your stay

2) apply power to the inside TRLH & place it on the kitchen counter inside the RV
(which provides a non-moving reference plane for the entire RV)

3) if you are using a second TRLH as a remote display, apply power to the remote TRLH
(the two units will establish sync over the radio & the remote unit will ignore its
own accelerometer data, and will instead perform all leveling calculations using
the accelerometer data received from the inside TRLH over the NRF24L01 radio -
NOTE: if you're not using the remote TRLH, the inside TRLH will still operate as a
single unit)

4) take note of the leveling solution displayed (indicating results of calculating
how many inches to raise any of the wheels in order to bring the RV to a perfectly
level position)

5) back the RV away sufficiently to leave room to put the ramps into place

6) build and place the required ramps (using 1" blocks) to raise the wheels as indicated

7) drive the RV up onto the newly built leveling ramps

8) verify that the TRLH now shows 0" for each wheel - LEVELING SUCCESS !! (Note that
anything within 1" of level is sufficient for the comfort of the occupants, as
well as for the equipment, primarily the refrigerator)

9) sit back & enjoy a cold drink of your choice

TRLH github: Teensy-RV-Leveling-Helper
TRLH (updated) photos: Teensy-RV-Leveling-Helper/photos (they're too large to attach here)
TRLH pcb at OshPark: TRLH

Note: If a second TRLH is not being used as a remote display unit, then the NRF24L01 radio need not be installed onto the PCB. The TRLH firmware will detect the missing radio & operate in stand-alone TRLH mode.

Mark J Culross
Last edited:

As requested, here are the updated photos (in reduced resolution so that they can be uploaded here - original full-resolution photos are still available at the github photos link).

Mark J Culross


  • TRLH - display after leveling - lo-res.jpg
    TRLH - display after leveling - lo-res.jpg
    178 KB · Views: 42
  • TRLH - display before leveling - lo-res.jpg
    TRLH - display before leveling - lo-res.jpg
    131.8 KB · Views: 42
  • TRLH - on the job - lo-res.jpg
    TRLH - on the job - lo-res.jpg
    147.5 KB · Views: 40
Last edited: