Multi-Channel Battery Monitor Aces First Sea Trial

A little over a a year ago, we covered an impressive battery monitor that [Timo Birnschein] was designing for his boat. With dedicated batteries for starting the engines, cranking over the generator, and providing power to lights and other amenities, the device had to keep tabs on several banks of cells to make sure no onboard systems were dipping into the danger zone. While it was still a work in progress, it seemed things were progressing along quickly.

But we know how it is. Sometimes a project unexpectedly goes from having your full attention to winning an all-expense-paid trip to the back burner. In this case, [Timo] only recently put the necessary finishing touches on his monitor and got it installed on the boat. Recent log entries on the project’s Hackaday.io page detail some of the changes made since the last time we checked in, and describe the successful first test of the system on the water.

Certainly the biggest issue that was preventing [Timo] from actually using the monitor previously was the lack of an enclosure and mounting system for it. He’s now addressed those points with his 3D printer, and in the write-up provides a few tips on shipboard ergonomics when it comes to mounting a display you’ll need to see from different angles.

The printed enclosure also allowed for the addition of some niceties like an integrated 7805 voltage regulator to provide a solid 5 V to the electronics, as well as a loud piezo beeper that will alert him to problems even when he can’t see the screen.

Under the hood he’s also made some notable software improvements. With the help of a newer and faster TFT display library, he’s created a more modern user interface complete with a color coded rolling graph to show voltages changes over time. There’s still a good chunk of screen real estate available, so he’s currently brainstorming other visualizations or functions to implement. The software isn’t using the onboard NRF24 radio yet, though with code space quickly running out on the Arduino Nano, there’s some concern about getting it implemented.

As we said the first time we covered this project, you don’t need to have a boat to learn a little something from the work [Timo] has put into his monitoring system. Whether you’re tracking battery voltages or temperatures reported by your BLE thermometers, a centralized dashboard that can collect and visualize that data is a handy thing to have.

TTGO ESP32 Module With Multiple Personalities

Volos Projects educator [Danko Bertović] had a TTGO ESP32 board looking for a project, so he implemented a surprisingly functional weather station for such a small screen. Presumably that was too boring for him, so he decided to write a version of the classic Atari game Breakout instead. [Danko] prefers using the Arduino IDE for ESP32 projects, and has made the Breakout software available as an Arduino sketch. We hope the weather station sketch will be released soon, too. The TTGO is a small ESP32 board with an ST7789V 1.14 in (29 mm) TFT color display, available from your favorite Shenzhen market supplier. This platform is perfect for all kinds of niche applications. We’d love to hear how you are using, or plan to use, these modules in your projects.

We wrote about one such project last summer, where a similar TTGO module was used to display 50-year broadcast delayed transcripts of the Apollo 11 mission. [Danko] is no stranger to Hackaday — he has made several Arduino-based calculator projects.  Perhaps the most remarkable being the circuit sculpture binary number calculator from last year, another project that morphed into a computer game (Pong).

Continue reading “TTGO ESP32 Module With Multiple Personalities”

Simple Sprite Routines Ease Handheld Gaming DIY

Making your own handheld games is made much easier with [David Johnson-Davies’] simple sprite routines for the Adafruit PyBadge and PyGamer boards. Sprites can be thought of as small, fixed-size graphical objects that are drawn, erased, moved, and checked for collision with other screen elements.

xorSprite() plots an 8×8 sprite, moveSprite() moves a given sprite by one pixel without any flicker, and hitSprite() checks a sprite for collision with any screen elements in a given color. That is all it takes to implement a simple game, and [David] makes them easy to use, even providing a demo program in the form of the rolling ball maze shown here.

These routines work out-of-the-box with the PyBadge and PyGamer, but should be easy to adapt to any TFT display based on the ST7735 controller. The PyGamer is the board shown here, but you can see the PyBadge as it was used to create an MQTT-enabled conference badge.

If you really want to take a trip down the rabbit hole of sprite-based gaming graphics, you simply can’t miss hearing about the system [Sprite_TM] built into the FPGA Game Boy badge.

Five Channel Monitor Keeps Boat Batteries Shipshape

While those of us stuck sailing desks might not be able to truly appreciate the problem, [Timo Birnschein] was tired of finding that some of the batteries aboard his boat had gone flat. He wanted some way to check the voltage on all of the the batteries in the system simultaneously and display the information in a central location, and not liking anything on the commercial market he decided to build it himself.

Even for those who don’t hear the call of the sea, this is a potentially useful project. Any system that has multiple batteries could benefit from a central monitor that can show you voltages at a glance, but [Timo] is actually going one better than that. With the addition of a nRF24 module, the battery monitor will also be able to wireless transmit the status of the batteries to…something. He actually hasn’t implemented that feature yet, but some way of getting the data into the computer so it can be graphed over time seems like a natural application.

The bill of materials is pretty short on this one. Beyond the aforementioned nRF24 module, the current version of the monitor features an Arduino Nano clone, a 128×160 SPI TFT display, and a handful of passives.

Knowing that a perfboard wouldn’t last long on the high seas, [Timo] even routed his own PCB for this project. We suspect there’s some kind of watertight enclosure in this board’s future, but it looks like things are still in the early phases. It will be interesting to follow along with this one and see how it eventually gets integrated in to the boat’s electrical system.

If you’re looking for a way to keep an eye on the voltages aboard your land ship, this battery monitor disguised as an automotive relay is still the high-water mark in our book.

Your Puzzle’s Done When The Electronics Says So

We can race against the clock when assembling jigsaw puzzles online but what about competing against each other in the real world? [HomeMadeGarbage] came up with the simplest of solutions with his jigsaw puzzle timer that stops only when the puzzle’s completely assembled.

Copper strip on back of puzzle
Copper strip on back of puzzle

His simple solution was to attach copper foil tape to the back of the pieces, with overlap. He did this in a serpentine pattern to ensure that all pieces had a strip of the tape. The puzzle he used comes with a special container to assemble it in. At two corners of that container, he put two more pieces of copper foil, to which he soldered wires. Those two act as a switch. Only when the puzzle is completed will those two pieces be connected through the serpentine strip on the back of the puzzle.

Next, he needed a timer. The two wires from the puzzle container go to an Arduino UNO which uses an ILI9325 touch panel TFT display for both the start, stop, and reset buttons, and to show the time elapsed. Press the touch screen when it says START and begin assembling the puzzle. When the last piece is inserted, the serpentine strip of copper tape completes the circuit and only then does the Arduino program stop the timer. As you can see from the video below, the result makes doing the puzzle lots of fun.

Continue reading “Your Puzzle’s Done When The Electronics Says So”

ESP32 Display Is Worth A Thousand Words

The ESP32 is the successor to the wildly popular ESP8266. There seems to be no end to what the chips can do. However, despite all the wireless communication capabilities, the module doesn’t have a display. [G6EJD] wanted to connect an ILI9341 TFT display and he put the code and information on GitHub. You can also see a video of his work, below.

Since the display uses a serial interface, there isn’t much wiring required. The Adafruit GFX library does the heavy lifting, utilizing the SPI library for the actual communications. The first demo shown on the hardware can pull weather data decoded. If you want more details on the display’s operation, check out [G6EJD’s] YouTube channel and you’ll find other videos that go into more detail.

We’ve seen these displays married to an ESP8266 with an integrated PCB, too. There’s a choice of libraries, and perhaps we’ll see a similar range of choice for the ESP32.

Continue reading “ESP32 Display Is Worth A Thousand Words”

Everyone Loves Faster ESP8266 TFT Libs

Reader [Jasper] writes in with glowing praise for the TFT_eSPI library for the ESP8266 and the various cheap 480×320 TFT displays (ILI9341, ILI9163, ST7735, S6D02A1, etc.) that support SPI mode. It’s a drop-in replacement for the Adafruit GFX and driver libraries, so you don’t need to rework your code to take advantage of it. If you’re looking to drive an LCD screen with an ESP8266 and Arduino, check this out for sure.

As a testbed, [Jasper] ported his Tick Tock Timer project over to the new library. He got a sevenfold increase in draw speed, going from 500 ms to 76 ms. That’s the difference between a refresh that’s visibly slow, and one that looks like it happens instantly. Sweet.

Improving software infrastructure isn’t one of the sexiest or most visible hacks, but it can touch the lives of many hackers. How many projects have we featured with an ESP8266 and a screen? Thanks, [Bodmer] for the good work, and [Jasper] for bringing it to our attention.