04/28/2018 at 19:39 •
Though there were no updates for a while, this project is still going on. As planned, I am spending the Hackaday prize money to build and give away Fochica devices. Here is what changed recently:
Switching to using ESP32 devboards in the design instead of AVR Arduinos. The code has been ported to ESP32 and compiles for both Arduino architectures.
Code has been refactored to decouple the build (hardware device + configuration) from the firmware source code. This allows for a cleaner code while supporting various Fochica builds in the past and in the future.
I am now using custom PCBs in the builds instead of perfboards. This is just easier at the current scale.
Building more units and trying various off-the-shelf enclosures.
Several of my friends took the opportunity to participate in the beta and get a free device. At the moment there are over dozen of Fochica installations and I am looking to add more as time and resources allow.
10/20/2017 at 12:08 •
When I started this project, it was critical for me to find a good way to detect the state of the seat. Several similar products got bad reviews and were frustrating to users because their sensing was not reliable. I tried many different types of sensors and am still testing various options trying to come up with even better sensing.
For a while my preferred method was a capacitive proximity sensor made of one sheet of conductive material (aluminum foil). Inspired by “Sit.Up”, this design measures the change in capacitance of the sheet caused by a nearby person.
This sensor is easy to build and needs only a single resistor to connect to a micro-controller. Unfortunately, it has some noise which is significant relative to the difference between idle and active states and in some cases it may pose a problem.
Currently, I switched to using a similar, but different design. My preferred method now is a capacitive pressure sensor. Made of two sheets of conductive material (like a complete capacitor). The latest sensor is more stable, requires only one digital pin and one resistor. It is a bit more complex to build as it needs two sheets of foil instead of one, but IMO it is worth it. I wrote a detailed article explaining how to build and use such a sensor, as well on the theory behind its operation. Please take a look. I am happy to get your feedback.
09/30/2017 at 19:44 •
Fochica is one of the twenty finalists in the Hackaday Prize, Best product category. One of the requirements of the competition, which is unique to this category, is to submit 3 prototypes for judging.
For this round of prototypes I have decided to try another build layout using Arduino Nanos. Previously I posted details about builds on a breadboard or builds in a form factor of an Arduino Uno shield, but this time we are going for a record small and low-cost build.
Some technical differences of this build from the previous ones:
- Driving the buzzer directly by a GPIO pin through a resistor, removing the need for a transistor;
- Moving power functionality to an off-the-shelf module that is off-board;
- Switching to capacitive pressure sensors instead of capacitive proximity plus buckle reed sensor combination for seat occupancy detection (worth a separate build log)
The schematic is not significantly different from previous builds, but the layout is completely new.
The Nano board and BLE module(s) are on top of a 20x14 hole perfboard.
The build is not extremely complex, as there are just a few components. It is challenging because it is on a perfboard rather than on a custom PCB, but I am not sure yet if this is going to be the design going forward and I didn’t want to wait a month for PCBs just to save an hour or two of work. So after some careful soldering:
I got a new batch of prototypes. Which look awesome IMO:
Three of these devices are now on their way to Supplyframe Inc in Pasadena, CA. Crossing fingers and hoping at all arrives on time and in one piece.
I would like to thank Hackaday, the organizers of the competition and the sponsors for the wonderful opportunity.
08/31/2017 at 17:41 •
With a functional code and prototypes, my next goal is to have lots of Fochicas installed in cars. For that, two things need to happen. First, the device needs to be made more accessible to the public. Let’s face it, typical parents don’t know how, nor are they going to solder some components together. Even as an “install it yourself” product, some parts still need to come pre-assembled and manufactured at scale. Before going there, I want to make sure I have a design that is simple and cheap to make. Therefore, current goal #1 is simplicity. Here are some examples of things that I have changed or changes that I have evaluated recently:
- Switching from an Arduino Uno to a Nano for smaller size and lower cost;
- Evaluating off-the-shelf power adapters to simplify Fochica board design;
- Switching to a buzzer that is driven directly by a GPIO pin through a resistor to remove a transistor from the BOM;
- Switching from an Arduino Uno to an ESP32 for integrated BLE functionality.
With a new, simpler design I will manufacture a batch of Fochicas to give away on a wider scale as part of the beta program. Fortunately, the recently awarded $1,000 prize Fochica won in the Hackaday contest (thanks HaD and Supply Frame!) makes that possible.
The second thing that needs to happen to make Fochica more accessible to the public is to let the public know about Fochica. This makes marketing goal #2. If you can help and spread the world, please do! It really helps a lot.
In parallel, I am submitting Fochica to the Assistive Technology round of the Hackaday Prize. Fochica is designed for children but can also be used to help the disabled, pets or others under the charge of caregivers. Hoping to win additional funds that can be used to build more devices and hoping to get more online coverage about the project.
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.
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.
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.
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/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/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.