[{"element_type":"image_url","content":"https://raw.githubusercontent.com/skjdghsdjgsdj/babypod-hardware/refs/heads/main/docs/img/hero.jpg","metadata":{"alt":"A 3D printed rectangular box with an LCD screen showing various menu items for tracking baby statistics","caption":"An assembled and running BabyPod"}},{"element_type":"text","content":"\n        \u003cp\u003eWhen my family was expecting, I started to look for baby tracking software I could host myself. I didn't want to share my data with anyone else and wanted to easily integrate with my data, like I did with \u003ca href=\"https://github.com/skjdghsdjgsdj/matrixportal-babybuddy\"\u003emy MatrixPortal case\u003c/a\u003e. I came across \u003ca href=\"https://docs.baby-buddy.net/\"\u003eBaby Buddy\u003c/a\u003e which is a web-based tracker for babies' sleep times, feedings, diaper changes, and more. It has an easy-to-use REST API and lets me poke around directly in its database for other things that the API can't do.\u003c/p\u003e\n\u003cp\u003eIt worked great, but the last thing I wanted to do was fumble around tiredly with a phone or laptop while trying to do something quick with my hands full, like save a feeding or diaper change. So I came up with\u0026nbsp;\u003ca href=\"https://www.printables.com/model/872095-babypod-a-remote-control-for-baby-buddy-for-new-pa\"\u003eBabyPod\u003c/a\u003e: a device that would\u0026nbsp;\u003cem\u003eonly\u003c/em\u003e do simple things for baby tracking, have a battery that would last for days, and have an easy to use interface. The name is inspired by an iPod's click wheel because that's the main interface: a rotary encoder.\u003c/p\u003e\n\u003cp\u003eThe software is written in CircuitPython and it went from a simple project to a big one. I added support for working offline by saving data temporarily to an SD card, so it would still work while we were away from Wi-Fi. I continually tweaked the UX based on real-world experience. I printed several BabyPods and put them throughout the house, and tweaked the hardware design with each new iteration.\u003c/p\u003e\n\u003cp\u003eEventually I published both the hardware and software to GitHub. It was very rewarding to see people building their own and submitting issues!\u003c/p\u003e\n\u003cp\u003eThe main technologies I used:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCircuitPython for all the code running on the ESP32-S3\u003c/li\u003e\n\u003cli\u003eBaby Buddy running on a home server\u003c/li\u003e\n\u003cli\u003eOpenSCAD for the 3D model\u003c/li\u003e\n\u003cli\u003eFritzing for the wiring diagram\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/skjdghsdjgsdj/babypod-hardware\"\u003eGitHub hardware repository\u003c/a\u003e to build your own and the \u003ca href=\"https://github.com/skjdghsdjgsdj/babypod-software\"\u003esoftware\u003c/a\u003e one for the source code that runs on it. Below, I listed the Adafruit components that go into it. At first I used \u003ca href=\"https://www.adafruit.com/product/499\"\u003eAdafruit's 20x4 LCD\u003c/a\u003e with a \u003ca href=\"https://www.adafruit.com/product/292\"\u003ebackpack\u003c/a\u003e, but the \u003ca href=\"https://www.sparkfun.com/sparkfun-20x4-serlcd-rgb-backlight-qwiic.html\"\u003eLCD by Sparkfun\u003c/a\u003e draws faster, takes up less space, uses less wiring, and is \u003ca href=\"https://sparkfun-circuitpython-serlcd.readthedocs.io/en/latest/\"\u003eCircuitPython compatible\u003c/a\u003e, so I switched over to that in later versions of the hardware.\u003c/p\u003e\n      ","metadata":{}},{"element_type":"image_url","content":"https://github.com/skjdghsdjgsdj/babypod-hardware/raw/main/docs/img/case.png","metadata":{"alt":"Semitransparent view of a BabyPod showing the placement of hardware","caption":"The internals of a BabyPod shoved neatly into a 3D printed enclosure"}},{"element_type":"image_url","content":"https://github.com/skjdghsdjgsdj/babypod-hardware/raw/main/docs/img/baseplate.png","metadata":{"alt":"The bottom components of a BabyPod","caption":"A BabyPod has a spot for a battery, ESP32-S3 Feather, RTC, and flash storage device"}},{"element_type":"image_url","content":"https://raw.githubusercontent.com/skjdghsdjgsdj/babypod-hardware/refs/heads/main/docs/img/fritzing.png","metadata":{"alt":"Wiring diagram of a BabyPod","caption":"All the logical components of a BabyPod"}},{"element_type":"product","content":"https://www.adafruit.com/product/5477","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/5740","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/5001","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/328","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4210","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4399","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/1740","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4899","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/5189","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/380","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/1311","metadata":{}}]