Anth's Computer Cave Projects

About the Author

Anthony Hartup, creator of AAIMI, Estimcad and Anth's Computer Cave.
Anthony Hartup runs the AAIMI Project, a Python machine interface platform.
He also programs for the Estimcad Project and ControlCadGUI.

This article covers an older version of AAIMI. It is here only for historical purposes. Click here to see the current article series.

New features in AAIMI Room Control 0.2

This module is part of the AAIMI Home Automation Project, an open and scalable platform that aims to counter the trend of limited, propriety systems we see today. AAIMI will give you the ability to run all the systems in your home without the need for multiple proprietary apps. AAIMI can read and utilize any sensor or device that can connect to an Arduino micro-controller or a Raspberry Pi computer.

Version 0.2 is the final alpha release and it is working solidly on our test systems. Both the code and the hardware platform have changed considerably since version 0.1.

So what can you expect from the new version?


Two AAIMI satellite units, one with a power outlet and one built-in to a lamp base. Picture: Anthony Hartup
Two AAIMI satellite units, one with a power outlet and one built-in to a lamp base. Picture: Anthony Hartup.

By far the biggest change since version 01 is the new satellite system. AAIMI can now use all-in-one satellites with light-sensor, movement-sensor and relay, and the program now works with these satellites as unique systems.

Out of the box AAIMI can now run light in six rooms. The only reason it is limited to six is the number of analogue-to-digital converters on the Arduino Uno. With a bigger Arduino board the system could run many more satellites.

Customization is now much easier. You need only modify one line of code to add or customize a satellite. You can easily set different light-levels and polling frequencies for each room. You can also customize the overall program behavior by simply changing a couple of variables.

Note that a satellite does not have to be in an physical unit. It can be a movement and light-sensor on a wall plug and a relay in the ceiling next to your light fitting. You can still add these components to the program to make AAIMI see it as a satellite. Think of the satellite system as the way AAIMI sees rooms, or sections of rooms, rather than in a hardware sense.

The reason I am physically using all-in-one stellites is because I am using a portable system for testing rather than hard-wiring everything into my home. All-in-one units make cabling and positioning much easier. Even with a hard wire system I think there will be a place for all-in-one satellites within the overall concept. They could be used in addition to the hard-wired system to add lamps to a room, or they could be part of a stand-alone portable system for those unable to modify their home.

Hardware components

While the overal layout has changed, AAIMI still uses the same sensor and relay circuits we built in the first series, with one small modification.

I have changed the resistor value on the light-sensor from 1.4K to 4.6K. I found the previous sensors were reaching almost zero volts at less than full darkness. The new 4.6K value reverses the light calculations by causing the voltage to fall with brighter light rather than rise, but there is more headroom. My current switching level is 3V and that was about what I was after. If the sensor falls below 3V AAIMI will not turn lights on.

I will cover the current hardware set up further in tomorrow's article.


Along with the new way AAIMI treats satellites, the program also treats all its components as a larger entity comprised of distinct, yet related parts. This has simplified current and future coding tasks for developers, while making it much easier for less-tech-inclined end-users to customize settings within the code.


AAIMI Room Control 0.2 collects the same type of room data as version one, but it collects data from all satellites. The saving method, and overall saving principle, have changed.

I no longer plan to use the save file for live access to room data. It is now there for longer-term analytical purposes. I plan to be using a database for live access to the data instead by the next release.

This means the program needs to save less often. I have mine set to save hourly during testing, but you could set it for less frequent saving. It now saves to a new file each time to negate the risk of file corruption, so that is a consideration for the saving frequency. You'll need to manually delete older save files for now. In the next release AAIMI will automatically remove the older files for you.





Leave a comment on this article

Leave a comment on this article

Search the Cave with AaimiClip