2 – Electronics and Software

A fundamental task on the real project was to identify the electronic components needed to realize the idea.

So the very first thing I did was to simply hook up a few components I had at hand and play with them. As I had the ‘clever’ idea of integrating a universal power supply (UPS) on the board, I ordered a few ultra capacitors (10 and 20 Farad) and hooked them up with some resistors. I burned one of the capacitors immediately because I was so excited that I forgot I had to use at least two of them in series for a 5V setup (one has a maximum voltage of 2.7V, which I knew). Doing it right I was able to confirm my assumptions about the maximum current flowing through the components. I find these little ‘in series’ USB adapters pretty useful for that purpose. They give quite accurate readings for what they are and what they cost. These little devices even integrate the current over time, which is a useful feature. I only own cheap amateur electronic tools which (at least for my projects) suffice most of the time. I discarded the whole UPS circuit much later.

Continue reading “2 – Electronics and Software”

2.1 – Marta PCB

22 black and white PCBs for 25€ including a basic check and priority DHL airmail shipping. Can this really be true?

After I had a running prototype of M³ including a software proof of concept for every device, I wanted to design and order a professionally fabricated PCB as soon as possible. The weather was really good at that time of the year. That summer was one of the driest and hottest in Germany since a very long time (UPDATE: the next summer was even hotter, one of the warmest ever recorded). I allowed myself to open the balcony door while working midday. My kid was asleep anyway.

Continue reading “2.1 – Marta PCB”

2.3 – Clone Marta Software

This blog is just half the truth.

It is tightly coupled to a GitHub project with the source code, KiCad project, 3D printer STL files and a little bit of documentation.

You need to check that project out on the Marta machine in order to access all the scripts we’ll need in the upcoming blog posts. Because I didn’t want to maintain multiple branches for different purposes, you may just checkout the master. That means, there’s no distinction between the scripts needed on the Pi or the projects you may want to edit on your home computer (like KiCad).

Continue reading “2.3 – Clone Marta Software”

2.4 – PCM5102 Sound Board + Loudspeakers

I’m not proud of curl XYZ | bash but desperate times call for desperate measures.

There are reasons why we do not want to use the on-board sound output of the Raspberry Pi. First of all we have to distinguish between the digital audio out via HDMI and PWM driven pseudo analog voltages passed through a few passive components (mainly resistors and capacitors).

Continue reading “2.4 – PCM5102 Sound Board + Loudspeakers”

2.5 – Arcade Push Buttons + LEDs + Standard components

When prototyping and fiddling around, make sure to always have enough standard components at hand.

To let the little user interact with the device, we need a few buttons. The bigger the better I thought. Arcade machine buttons come in intense colors and have a perfect size. A price tag of 50ct per button seems reasonable. I found one particular product nice, because it is not as deep as a lot of the competitive products. Look for buttons with a diameter of 24mm and a depth of roughly 33mm.

Continue reading “2.5 – Arcade Push Buttons + LEDs + Standard components”

2.6 – RDM6300 125kHz RFID Reader

When ordering electronic components in East Asia, I always put one or the other collateral super cheap product into my shopping cart.

That’s how I got to know the RDM6300. This RFID reader board has been lying around my desk and shelf for a long time until I finally tried it out when I started Marta. I played around with it a little bit and was surprised by how easy it is to read a tag with this device.

Continue reading “2.6 – RDM6300 125kHz RFID Reader”

2.7 – MPU6050 Accelerator and Gyroscope

Situational awareness in terms of positional information is a nice way of interaction with an electronic consumer product.

The GY-521 is a breakout board for the MPU6050 chip. The latter one consists of a three axis gyroscope and a three axis accelerometer. That’s why it’s often referred to as six axis MEMS motion tracking device.

Continue reading “2.7 – MPU6050 Accelerator and Gyroscope”

2.8 – WS2812B LED Strip + 74HCT245

I love these smart LED strips so much and used them in so many projects.

As I have already mentioned, it is a good idea to include some kind of feedback mechanism other than sound. We use the speakers as main application (namely to play music), but at the same time we want the child to be able to intuitively understand the inner state of our machine by means of light.

Continue reading “2.8 – WS2812B LED Strip + 74HCT245”

2.9 – On/Off SHIM

Why didn’t anyone make a cheap alternative available yet?

From the very beginning it was clear to me that, in order to prevent memory errors (yes this is a real danger and not an urban legend) an unexpected power loss should not occur. I have experienced filesystem corruptions on one of my Raspberry Pis before. Here’s a hint, why this could happen.

After giving up the idea of a UPS built from a simple circuit using super-capacitors, I was looking for an alternative. The requirement was still the same: When the user or the system itself instructs a shutdown, a software procedure should take care of gracefully halting the device and eventually disconnecting the power. Afterwards, no (leakage) current should be flowing from the battery into the device.

Continue reading “2.9 – On/Off SHIM”

2.10 – Intenso Power Bank

Power banks mainly provide our smartphones with energy while traveling. They can also be used for all kinds of electronic projects when it comes to standalone devices.

For our particular application we have a few requirements:

  • well-known brand so it can be ordered from hopefully anywhere in the world
  • compact size
  • suitable connector arrangement
  • high charging/discharging current (well relatively)
  • charge while discharging (allows an operation while plugged in)

Continue reading “2.10 – Intenso Power Bank”

2.11 – Marta POC Main Script

I worked on the software for a few nights and it’s really dirty but come on, it’s also free, everyone can have it and it works. So actually, my code has a lot in common with yo mamma. Sorry, couldn’t resist.

Now that you have seen all of the components up and running individually, it’s time to use them all together. There’s a proof-of-concept implementation available speaking to all the sensors, speakers and lights. It’s nothing fancy but definitely enough to get you going. The current status of the Python scripts is like “kinda works”.

Continue reading “2.11 – Marta POC Main Script”