Inside, she placed a – EEPROM::Read . She set the address to ‘0’. This was the memory slot she’d dedicate to the watering time. The output went into a variable called stored_time .
Next came the macro. This was triggered every time the valves actually opened. Another Component Macro – EEPROM::Write . Same address ‘0’. Source: the current system time. A little Delay of 5 milliseconds followed. She’d learned the hard way: EEPROM write cycles need a moment to breathe, like a scribe dipping a quill.
Then, a block. Is stored_time greater than 0?
The old irrigation controller in Greenhouse Seven was dying. Not with a dramatic puff of smoke, but with a slow, stuttering forgetfulness. It would water the tomatoes at 3 AM, then forget it had done so and water them again at 4 AM. By dawn, the basil was swimming and the rosemary was rotting. flowcode eeprom
Her heart sank. Then she realized: it was supposed to do that. Because the EEPROM remembered five . The flowchart’s first action was to read address ‘0’, see the number ‘5’, and decide, “I have already blinked five times. I will not blink again until a new day.”
EEPROM was the chip’s stubborn, permanent scar. Write a number to it, and that number would remain, even if you unplugged the chip, threw it in a drawer for a decade, and plugged it back in. It was perfect for storing a last-watering time.
If yes (meaning the EEPROM held a real value from the past), the flowchart took that number and loaded it into the main RAM variable, current_last_watering . Inside, she placed a – EEPROM::Read
She compiled the flowchart to hex code, watching Flowcode’s progress bar fill. The elegant diagram translated into raw, flashing machine language. She programmed the chip.
The basil was saved. And all because a few simple flowchart blocks knew how to write to a memory that refused to let go.
For a test, she didn’t use water. She used a stopwatch and a simple LED. The flowchart was modified: water valve replaced by “Turn LED on for 1 second.” The EEPROM stored the count of how many times the LED had blinked since the beginning of time. The output went into a variable called stored_time
The LED blinked once. Then stopped.
She needed long-term memory. She needed the EEPROM.
The problem was immediate. The controller had a “last_watering” variable. But this variable lived in RAM—the chip’s short-term memory. Every time a lightning storm flickered the power line, or even when the sun baked the control box to 60 degrees Celsius, the chip would reset. And RAM would vanish. The controller would wake up, see a blank “last_watering,” panic, and assume it had never watered anything in its entire life.
“Die,” she whispered, pulling the USB cable.