Repository for documenting my 3pi+ 2040 experiments


I received my EARLY ADOPTER 3pi+ 2040 Robot Kit with 30:1 MP Motors (Standard Edition Kit) and assembled it today.

I created a repository on GitHub to document my experience with this cool new bot. As I start writing new code for this bot and/or build some compatible hardware, I will document it there.

Pololu, thanks for making this RP2040 based robot kit available to us early adopters. It should result in some fun projects.


Is battery included in this kit? Or we gotta buy that separately?

The batteries are not included in the kit. You need to provide 4xAAA batteries. The 3pi+ 2040 User’s Guide recommends rechargeable NiMH batteries but indicates that it will work with Alkaline as well.

Debug header notch

Today, I added a notch in the bumper skirt to make room for the debug header that I soldered onto my control board during assembly.

Cool! I got one too. I’m working on adapting ROS2 to controlling it. Do you have any big plans for yours?

I saw your posting about ROS. That sounds very cool :+1: Are your plans to run the main ROS node on something like a RasperryPi SBC that’s sitting on top of the 3π+ or using some kind of remote connection like WiFi, BLE, etc to communicate between ROS nodes?

Right now I am experimenting with the MicroPython library/samples that Pololu has provided. My current plan is to develop some simple behavior based control code for the bot in MicroPython and then set it free in my house to see what kind of trouble it can get itself into :slight_smile:

After that I will probably switch to having some fun in C/C++ as those are my preferred languages. I don’t know if I will use the PicoSDK as Pololu does in their GitHub repository though. I might use Arduino’s RP2040 offerings instead.

I might work on a wireless programming/debugging solution after that.

1 Like

No, I think I’ll run a wireless serial link, like the Wixel, to a main laptop. The power requirements of a raspberry pi are probably too much to run for long on AAA batteries.

I’ve built an implementation like that for the Romi with a raspberry pi and camera mounted on top. That platform was a little bigger and had more batteries.

Your projects sound like a lot of fun. Please keep posting about them! I started out with a copy of the Anita Flynn book way back when. It’s amazing how much more approachable table-top robotics has become thanks to folks like Pololu!

The Personal Robotics discord sounds like a fun group. Can you share a link?

1 Like

That sounds like a great plan.

Thanks. So do yours. I hope to read more about your progress in the near future.

With respect to the “Mobile Robots” book and Pololu, I agree. I have also started my own RugWarrior inspired robot that I call RugRover. It is still a work in progress though.

Here you go:

When I see your username, all I can think of is Dark Angel.

I have updated my repository to include notes about the behavior based robot code that I quickly ported from the Mobile Robots book and got working in MicroPython on the 3pi+ 2040 robot. The code can be found here: 3pi-2040/ at main · adamgreen/3pi-2040 · GitHub Warning: I am not an experienced Python developer and that will show in this code :slight_smile:

Next Steps

I made some more progress with my 3pi+ 2040 robot this week and updated my GitHub repository with notes about this week’s accomplishments.


At this point I only have a portion of the library ported but I thought I would commit what I have so far to my 3pi+ 2040 Arduino Library GitHub Repository so that I can share my current progress and solicit some feedback.

Features/Examples that have been ported so far:

  • 6 examples have been ported: BlinkLEDs, BumpSensorTest, LineSensorTest, LineFollowSimple, LineFollowerPID, WallBumper.
  • OLED Display driver.
  • LED driver. This includes the Yellow LED shared with the 32U4 version and the 6 addressable RGB LEDs that are new for the 2040 version.
  • Bump Sensor driver.
  • Buzzer driver.
  • Line Sensors driver.
  • Motors driver.
  • Buttons driver.
  • Encoders - Will use PIO for the RP2040 port like Pololu did in their MicroPython library.
  • IMU
  • Battery Level

Features to be ported in the near future:

  • Now Feature Complete

I also created a PR in the Pololu 3pi+ 2040 repository with a proposed change to the PIO code for the QTR read path.

Edited on April 5th to update the implemented feature list now that the port is complete.

1 Like

This week I received the debug adapter board that I designed for the 3π+ 2040 robot. It includes a 10-pin connector to accept standard SWD debug cables, easy to access reset button, and less obscured power LED.

Next Steps

  • Design a wireless programming and debugging solution for the 3π+ 2040.