Skip to main content

CATPOO 2021 — Internal Structure

See CATPOO 2021 — A New Beginning for an overview of the whole project.

Way back when, I designed that I wanted to learn how to create a circuit board from scratch. It was fun and I learned a lot. Unfortunately, one of the things that I learned was it takes forever to build proper circuits. It also costs a lot. For someone like myself who’s learning, it’s best to simply use some permaproto style Raspberry Pi HATs. Using 20mm standoffs and doubling up some stacking headers gives me plenty of space.

While this isn’t very space efficient, it still would fit inside of 4″ cube which is small enough for my purposes.

Layer Overview

  1. Raspberry Pi
    1. Nothing special here
    2. Leaning towards using the 20mm standoffs to allow more air flow over the CPU
  2. Motors 1 and 2
    1. Include at least 1 massive capacitor for the motors
    2. An additional capacitor right where the power enters would be nice too
  3. Motors 3 and 4
    1. Don’t forget those capacitors
  4. Sensors
    1. 4 channel ADC board with i2c interface for the range finders
    2. Accelerometer with i2c interface

Build Notes

  1. Check wiring twice, solder once
    • I ended up going with the solder trice, check nonce.
    • Hours were wasted, but I’ve become even more confident in my soldering skills
  2. Getting the standoffs to match up with the stacked headers was a larger pain than anticipated.
  3. Making the accelerometer circuit board perfectly level was impossible.
    • Some sort of calibration step will be necessary.
  4. The range finders require 5v power but output in 3.3v logic.
    • This could’ve explained issues that I had in the past on the Arduino. I remember vaguely issues with not getting the range of values that I was expecting.
  5. This strategy of doing outrageous RPi HATs works surprisingly well.
    • Doing the separate daughter board with the 40pin ribbon cable is actually more cumbersome than vertically stacking.
    • This obviously only works well where I can go high. A more flat, pancake shaped robot wouldn’t work.

CATPOO 2021 — What Does It Do?

NOTE: This is a place for me to jot my thoughts regarding what my next robot will do. Expect many stealth edits.

See CATPOO 2021 — A New Beginning for an overview of the whole project.

I remember when I first started playing with robotics, I was always asked what my goals were. I never had a good answer for that. Here’s my thoughts on a better answer.

True Goals

The ultimate goal is to learn enough to consider a change of career. My ultimate dream would be to create affordable robotics kits for kids to built their own robots. I remember how much DJGPP and other free software projects helped me when I was starting out. Wouldn’t it be awesome to allow the next generation access to open source technology? Then I feel good for helping kids, while those kids can one day go on to create something more amazing than I could. Everyone wins.

To accomplish my goal, I’ve got vaguely defined constraints. Whatever I create shouldn’t cost more than $500 to recreate. I want to keep the price low enough that any parent can afford to give their kid(s) the tools necessary to learn the fundamentals. With economy of scale, I should be able to get that down to $100 if my idea pans out.

Functionality Related Goals

  1. Must have a web based UI that works with any browser
  2. Must be able to see in the dark
  3. Must use omnidirectional wheels for a holonomic drive
  4. Power input must be flexible as possible
  5. Should be lit up like a Christmas Tree

Remote Control

  1. I’m a web developer, so the UI will definitely be web based
  2. I’ve enjoyed using Bootsrap for years, so that’s definitely going in there
  3. Video should take up as much of the view as possible
  4. Putting the controls on top of the video worked in the past


  1. It must be able to see a black cat in pitch black darkness
  2. I’ve had trouble with getting low latency and good frame rates in the past
  3. Resolution doesn’t need to be very high, but should be at least as good as DVD (480p)
  4. The illuminator I have works okay with the all the NoIR cameras I’ve bought

Holonomic Drive

  1. I’m vacillating between 3 and 4 wheels
    • No matter what, still have 4 total stepper drivers wired up.
  2. IR illuminator must be effective at least 3 meters away from the robot


  1. Getting at the battery was always annoying in previous designs, so make it easy to swap out batteries
  2. Using a beefy SPDT switch to allow switching quickly between internal and external worked really well in the past
  3. Don’t worry about designing any advanced charging circuitry

Christmas Tree Aesthetics

  1. Case should be as clear as possible to allow as much light out as possible
    • Engraving designs into the plexiglass might be a fun idea
  2. The 5″ touchscreen should be used for displaying as much internal information as possible
  3. Use power regulators with displays showing voltage will be helpful
  4. Stepper drivers should have LEDs to indicate the following:
    • Direction
    • Steps
    • Power (if I’m allowing the stepper drivers to be disabled)
  5. Power LED for Raspberry Pi
  6. LED to show whether power is coming from the battery or external

CATPOO 2021 — Power Supply

Note: This post is a work-in-progress and will be updated as requirements are fully fleshed out.

See CATPOO 2021 — A New Beginning for an overview of the whole project.

It’s about time I ruminate on power issues I’ve had in the past. In previous iterations, I cut a lot of corners with the power. Melted wires and malfunctioning steppers were the main issues I remembered facing. This brain dump will be help to avoid all the power issues in this next, final holonomic robot.

Past Power Problems

  • Previous designs considered power supply as an afterthought
  • Running all stepper motors off a single power supply proved problematic
    • The amount of current passing through would often surpass what the power supply was capable of
    • Microstepping would fail or become unreliable due to voltage irregularities
    • Even regular steps would cause problems
  • If I needed 1A max for a load, then I’d only have 1A max available
    • Designing power circuitry like I worked for Apple was a bad idea, as all that does is lead to overheating
    • Sometimes wires would melt or components would release the magic smoke from within

What’s Worked in the Past

  • Using a beefy SPDT switch to allow powering the robot externally or from battery proved helpful
    • Keeping the external and internal power physically separated avoided a lot of potential issues
    • It was very simple to troubleshoot power input issues as things were very simple
  • The battery should be easy to access and replace
    • At minimum, it should be easy to recharge.
    • Physically replacing it easily is a nice to have, especially when I show up with multiple fully-charged batteries

Strategies and Mitigation Plans for the Future

  • Have one single 12v main power rail that everything else connects to
    • There exist high powered buck boost voltage regulators that have more than enough
    • Going overkill on the main rail will leave me with more power than I know what to do with
      • I don’t want to have to remove functionality again due to lack of current
      • This will allow me to scale the robot up to whatever size I would like
    • From the main 12v rail, I’ll use a series of buck converters to get the proper voltage(s) required
  • Build and be prepared to handle lots of current (12V * 5A = 60W)
    • Once I get good, I can drop the power requirements.
    • Until then, assume the following padded numbers:
      • 5V × 5A for Raspberry Pi and peripherals
      • 4 motors * 2 coils/motor * (2.7V * 1A) for the motors
      • 5V * 1A padding for feature creep
      • Total power at worst: (5V*5A) + 4 * (2*2.7V*1A) + (5V * 1A) = 52W
      • My best guess of average power would be more like 35W
    • On battery power, it’s looking like I’ll be discharging around 1 to 2C maximum. I can’t find power ratings for the batteries that I have, but it’s looking like a lot of comparable ones are 25C, 50C or even higher.
  • Dedicated power regulator for Raspberry Pi and peripherals
  • Dedicated power regulators for pairs of motors
    • There will likely be 4 steppers with omni wheels attached.
    • Ideally, I’d want a separate power supply for each stepper motor and driver combo, but two per regulator should be good enough.
      • It’s definitely better than before
      • Have the front left motor and the back right motor on one power rail, and the front right and back left on another
        • Theory: hopefully this will cause power fluctuations to balance out
  • Have the IR illuminator draw right off the main 12v rail
    • I’d like to add a way to enable or disable this, to reduce power usage when it’s not necessary
      • It’s also nice for comparing IR versus no-IR
    • A physical switch seems like the obvious MVP, yet I’d like the ability to turn it off via software


  • Having an LED on all power rails
    • I want to be able to diagnose common issues from across the room

Diagrams and Illustrations

Rough power flow diagram
Rough layout of the robot’s back panel

CATPOO 2021 — A New Beginning

Note: This post is a work-in-progress and will be updated as requirements are fully fleshed out.

Way back when I started playing around with robotics and electronics years ago, the most important thing to me was having a good name for my robotics projects. I came up with Cat Antagonizing Tactical Platform Of Oppression (or CATPOO for short). With the hardest part done, I remembered following the KISS principle. Within a week, I had a working remote controlled robot. It had a wireless access point with a web based UI with streaming video from the robot’s perspective. It just worked, and was compatible with every phone and laptop thrown at it.

However, aesthetically it was a mess. Ever since then, I’ve been running into situations where I’ve gone way into the weeds chasing a particular look without any concern for functionality. I’ve finally become fed up with spending tons of time creating robots that look great, but are difficult to work on. I’m tired of having to spend 45 minutes tearing it down to swap out of a single part, or check a single solder point.

We’re going way back to my original design: a cube with 4 wheels. Once I get everything working well, then and only then, will I begin to care about aesthetics again.

Continued Reading

I was originally going to have one long and lengthy post about my goals, but decided it’d be easier for me to break up into smaller chunks. I’ll be adding to the following list as I continue fleshing out the project.

  1. CATPOO 2021 — What Does It Do?
  2. CATPOO 2021 — Power Supply
  3. CATPOO 2021 — Internal Structure