04/17/2017 at 10:48 •
Today the source code for the Fochica device was released on GitHub.
This is an important step towards enabling everyone to make this project for themselves.
Schematics, video and app coming soon. Follow the project to get updates.
The repository is at: https://github.com/fochica/fochica-arduino
Have a nice day!
04/18/2017 at 17:59 •
Now that the Arduino code and the Android app are online I am approaching a point where I am comfortable submitting Fochica to the Hackaday Prize 2017. The project is far from being complete, in fact it is just in its initial stages. The existing code has to be tested at a larger scale and I hope that many hackers find this project interesting and will build Fochica for their kids. To facilitate that I will write and post guidelines for selecting the parts and building the design.
Going forward I am planning to focus on a few things. First I am going to complete the design of the “discharge protection” circuit. This circuit is responsible for turning off Fochica when the car battery voltage is low. I have the design on paper and I am going to build it on a breadboard next. It is just two MOSFETs with some extra components.
After that, I am planning to design and implement another type of sensor for sensing whether a seat is empty or occupied. This one will be based on IR continuity and potentially a reflector.
A major stage for me would be to implement the Fochica circuit on a proto-shield and to get rid of the breadboard. Not only will this save space but it will make the whole device more robust to vibrations.
Send me your comments if you have ideas for improvements and please follow and like if you just want to show your support for this important project.
04/19/2017 at 06:26 •
When you are dealing with a project that is tied to people’s lives (for good and bad) it is important to set precise boundaries and expectations. The last thing that I expect is somebody not fulfilling his/her responsibilities, getting hurt and then blaming Fochica and its creators for what happened. This is why the following terms and conditions are very important.
The entire project is subject to a Disclaimer. The key note is that Fochica is backup and not a replacement for your own responsibilities.
The device’s source code is licensed under the GPLv3 and the app has its own detailed EULA. The project is in Beta and free. Do not expect any kind of warranties. Please review the agreements to understand your obligations.
04/25/2017 at 07:32 •
There are existing solutions out there to prevent such tragic incidents. Starting from printed stickers and up to complex IoT systems connected to the cellular network. I am not inventing something new. So what made me design and implement a system of my own? The reason is that I was not happy with the existing systems for various reasons. I will describe my key requirements for such a system in more detail.
But first a short disclaimer: any device you might use for this purpose is a backup. It is not meant to be a replacement for your responsibilities. It is merely a last resort when all else has failed. Having said that, I think that installing a device like this is a responsible thing to do, because even though the chances are slim, cases like this happen yearly.
Alert, not a reminder
It is all about the timing and the level of certainty of the alarm. Many systems will notify you that a child seat is occupied when you open the door, turn off the car or stand up from the driver’s seat. However, that is merely a reminder. You might have just been planning to open the back door and take the child with you, but the system doesn’t differentiate. Worse, you might hear the reminder and plan to take the child, but then something might happen and you might get distracted. When using a reminder system, you would get these reminders all the time, as often as several times a day. You might get used to these reminders, they might lose efficiency and affect your routine.
A key requirement for Fochica was to be an alert. Meaning to know when the adult left without taking the child out of the seat and to sound an alarm at that time. This should be a rare event, probably due to a false positive rather than an actual incident (which are very rare). Such an alert would draw much more attention due to the context and certainty it conveys.
To know when the adult and the car are apart, some type of communication must happen between the two parties. Additionally, each of the two parties must have a device to facilitate the communication, a receiver and a transmitter. Naturally this makes an “alarm” system more complex than a “reminder” system but since an alarm can also fall back to being a reminder, I couldn’t see any other cons for this design.
Some similar implementations are available where an adult must carry a special dongle/keyfob that communicates with the device in the car. A key requirement for Fochica was to use something that a user would already have, a smartphone, as the “terminal” for the adult. This way I didn’t have to design a compact device for the adult, overcome challenges of reliably powering it, increase the cost by introducing more parts, etc. Using the phone also carries several advantages, such as a rich UI, IoT connectivity, etc.
The decision to use smartphones for one side of the communication basically limits the communication protocol options to Wifi, Bluetooth and BLE. I have decided to use BLE due to the low energy property and the growing support in smartphones. BLE modules are also available for as low as $3 on eBay so they are “approachable” for hobbyists.
The downside of this approach is the dependency on the smartphone. The assumption is that we now carry our smartphone everywhere with us. The chance of having the phone with us is high and the chance of forgetting both the phone and the child in the car is lower than forgetting just one. Still, if the phone is not available, the device in the car will operate in “reminder” mode as a fallback measure.
Some implementations exist where the user must turn the system on when placing a child in the seat (arm it) or turn it off when taking the child out, or put a beacon on the child, or start an app, or do something on a routine basis that he wouldn’t have to do if he was not using such a system. This creates nuisance to the user and faced with the low chance of an incident like this happening and the belief that “it won’t happen to me” many parents decide to not install or abandon the use of such a system.
Remember, there is not legislation on this matter for private cars, so the willingness of users to install a system like that depends largely on the balance between being proactive and the amount of effort the device will require from the user.
Due to these considerations, it was important that Fochica works automatically once installed. Not requiring any action that you wouldn’t otherwise do normally. This means the system must detect if the seat is occupied and when the adult is in range without any human input. I find the overhead of installation of lesser importance. Systems that are easy to install but hard to operate day to day seem to miss the point in my opinion. The difficulty of installation should be reasonable and most importantly shouldn’t mess up other systems in the car or seat.
To prevent a scenario of a “silent failure”, where the device is not operating correctly without the user being aware of it, Fochica provides audible feedback when the state of the seat changes, additionally a visual feedback (LED) can be added to represent connectivity state, seat state or both.
Another requirement of this project was that it would be low-cost. For it to ever reach wide use and remove any financial barriers the device has to be cheap. The key components: Arduino, BLE module, step-down converter can all be purchased together for under $10 on eBay. The parts that were used in the design are all available in single item quantities to allow for hobbyists to obtain them. The choice of the popular and widely available Arduino platform is also a result of the same requirement.
Comparable commercial systems cost around $200-300 and require subscription fees or cellular fees which add a recurring cost. It is understandable that making a commercial system carries additional costs such as manufacturing, stock, distribution, support, etc. Still savings of $300 plus over 3 years of use is a significant value and can encourage wider adoption of such systems, something that hasn’t happened yet.
Support for several adults, cars
Supporting several seats is trivial, but many available implementations fail to address scenarios with two adults or two cars. Imagine a family where both parents use the car. One day the two parents and their child stop near the grocery store and the driver goes to get some groceries. The other adult and the child stay in the car. Should an alarm sound?
To address these scenarios, the device should be aware of any number of registered adults and should differentiate between any adult leaving the premises and the last adult leaving the premises. This is also one reason why a design with a simple BLE beacon in the seat is much less useful than a complete Fochica system.
As you can see there were plenty of considerations. It was important to shift the complexity from the hardware to the software because the software can be duplicated easily whether one still needs to build each Fochica device independently. More work must be done to simplify the build so it is easier for the end user to assemble. I encourage you to build a Fochica and send your feedback. If you have good ideas on how to simplify the build or take it to the next level, please let me know.
04/29/2017 at 16:27 •
Since launching the project at Hackaday.io it got great publicity. It was featured on Instructables, it got covered on Hackaday.com and it was shared on some Arduino Facebook groups (including the official group). I got a lot of feedback and here are my takeaways.
- A lot of people are not familiar with the phenomenon of kids getting forgotten in vehicles. I thought that this was covered numerous time on main stream media, but apparently, awareness is still lacking. As a result, many reactions revolve around disbelief, denial and accusations of parents who have had such a tragic incident happen to them.
- Some people wanted to build a Fochica but need better instructions. Beginners may not know how to get the right parts on eBay, for example. There is a real need to make this as simple as possible.
- The device should be more aesthetically pleasing. Perhaps smaller too. Obviously, what was shown is a prototype on a breadboard so one should have no high expectations at this phase. Going forward, more compact, reliable and robust build is needed.
To address these issues, I am planning a few TODOs. First, I will try to do better at explaining the problem, mostly through directing readers to excellent resources that already exist about the subject. Second, I started to write a wiki for the project, which will have detailed instructions for everybody who is interested in building a Fochica. Third, I will be working on laying the circuit on a protoboard or PCB in an elegant form.
In addition to the above, there are some takeaways that I have as a result of using the device for some time now in my own car. Some of them have already been mentioned in past build logs.
- There might be additional types of sensors worth looking at. The goal is to find the simplest sensors that will also provide good reliability at detecting correct seat state. Need to research additional sensor types.
- The Fochica device is using power at all time. If the car is not used for a long period of time the car battery doesn’t get charged and there is a chance of a dead battery. Need to implement a discharge protection circuit to prevent such cases.
- There are ways to make the initial calibration/setup process shorter and simpler. Need to plan and implement those.
These are just “R&D” action items that I need to do. While doing that I will also be working with people who expressed interest in building a Fochica and with those who will be sending feedback.
Thanks for the support and feedback so far! More is welcome. Please follow if you want to get updates and like if you liked the project.
05/28/2017 at 10:25 •
One of the goals of the project is to allow anybody, including beginners, to build the Fochica device. To facilitate that, a significant effort is dedicated to creating detailed and simple to understand documentation.
As of now, the Wiki has complete and detailed build instructions for a basic version of Fochica. The topics in the wiki range from the Fochica circuit itself o the various components of the build such as BLE module, constant power source in a car, discharge protection and more. Some of the topics might be useful for other projects, enjoy.
06/07/2017 at 12:23 •
Breadboards are annoying for in-the-field use. The wires are sticking everywhere and the whole construction is just not rigid enough. On the other hand, I don't think the design is ready yet for making it on a custom PCB. What do you do? Perfboard. Specifically a ProtoShield v.5 for Arduino Uno.
The end result turned out very nicely compared to the previous prototype. About 3 times more compact. This prototype version also includes a car battery discharge protection circuit and it works beautifully.
One takeaway from this build is that if you desolder female headers from a board, they are likely to get destroyed in the process.
If you want to see more photos of the build or if you are looking to build a Fochica Shield on a ProtoShield take a look at the instructions in the Fochica Wiki.