I have started migrating content to my Hugo blog at https://blog.cavelab.dev, already migrated pages will redirect there.
Module heartbeat monitor with 15 inputs and LCD
This module was part of the rack box project — which was terminated when I moved out of my first apartment.

Detects and alerts if any of the monitored modules goes silent; meaning their heartbeat stops. Uses an AVR AT90S8515 microcontroller.
Details
As I started putting more and more modules into my rack box project, the previous monitoring module quickly ran out of inputs. I needed to build something bigger and better. I realized that using LEDs to show module status just wasn't practical as the number of inputs increased. So this unit shows the module statuses on an LCD display instead, and has 15 inputs.
If you've read about my first module heartbeat monitor you already know why I built it, if not; here is a recap: I needed a way to know that the modules inside the rack box project were not only powered, but running. Monitoring their heartbeat output was the solution.
If more than 10 seconds passed, without receiving a heartbeat this monitor unit would go into alarm state. A blue LED would flash, and the LCD display would show which module failed.
10 FAIL!
All alarms had to be manually reset, even if the heartbeat came back. The reason for this was so that I would see it if a module had been dead for some time, but came back by itself. This would still indicate a problem with that module. If a heartbeat was not detected at all after a reset, that input was marked as inactive and #n/a
was shown on the LCD. Inactive inputs did not produce alarms.
4 #n/a
The remaining time was also shown on the LCD display, it was split into half seconds; so 20 meant that there was 10 seconds left.
1 Ok>20
Video
I/O
Inputs
- PA2 Module 1
- PA3 Module 2
- PC2 Module 3
- PC3 Module 4
- PC4 Module 5
- PC5 Module 6
- PC6 Module 7
- PC7 Module 8
- PD0 Module 9
- PD1 Module 10
- PD2 Module 11
- PD3 Module 12
- PD4 Module 13
- PD5 Module 14
- PD6 Module 15
- PD7 Reset
Outputs
- PB0 LCD Db7
- PB1 LCD Db6
- PB2 LCD Db5
- PB3 LCD Db4
- PB6 LCD E
- PB7 LCD Rs
- PA0 Module error (to Signal and lights controlling unit)
- PA1 Lifelight
Connectors
D-Sub 9-pin
- 5v
- 0v
- Reset
- Module error LED
D-Sub 15-pin
- Module 1 → 15
LCD display
I used a broken LCD display on this module, of the 16 characters on the display only the first 8 worked. Below are the different messages and statuses shown on the display.
12345678 MSMU #2 Running 1 Ok>21 4 #n/a 10 FAIL! Reset!
Source code

https://github.com/thomasjsn/AVR-Module-heartbeat-monitor-LCD