{"product_id":"pocket-bot","title":"Pocket Bot","description":"\u003ch3\u003eWhat Is It?\u003c\/h3\u003e\n\u003cp\u003eThe Pocket Bot is a fully programmable micro-robot measuring just 1.8 inches x 1.5 inches (46mm x 39mm).\u003c\/p\u003e\n\u003cp\u003eDespite its small size, the Pocket Bot is a complete mobile robotics platform. It has 2 independently-controlled motors, 3 downward-facing reflectance sensors, infrared communications, 5 individually-addressable RGB LEDs, USB-C recharging, a tactile button, and an expansion port, all powered by an ATmega328P microcontroller.\u003c\/p\u003e\n\u003cp\u003eIt was designed to be approachable enough for someone building their first robot, while also remaining open and capable enough for educators, hobbyists, programmers, and robotics researchers to develop more sophisticated applications.\u003c\/p\u003e\n\u003cp\u003eThe Pocket Bot does not lock you into a single activity or environment: you can run the included example programs, modify the example code, write entirely new firmware, connect additional hardware, or use multiple Pocket Bots together as a small robot swarm.\u003c\/p\u003e\n\u003cp\u003eThe Pocket Bot takes about \u003ca href=\"\/pages\/pocket-bot-assembly\"\u003e10 minutes to assemble\u003c\/a\u003e, and no soldering is required. Parts snap-fit together and there are only 4 screws.\u003c\/p\u003e\n\u003ch3\u003eSpecifications + Capabilities\u003c\/h3\u003e\n\u003ch4\u003eMore Than a Line Follower\u003c\/h4\u003e\n\u003cp\u003eThe Pocket Bot is excellent at following line courses, but line-following is only one of the applications that its hardware supports.\u003c\/p\u003e\n\u003cp\u003eHere are some of our favorite applications we've developed during testing:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStaying inside a taped-off area\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eDetecting and avoiding the edge of a table (circular ones work best)\u003c\/li\u003e\n\u003cli\u003eNavigating on a printed grid\u003c\/li\u003e\n\u003cli\u003eReading bytes encoded into a line course\u003c\/li\u003e\n\u003cli\u003eExecuting a sequence of movements and lighting effects read from a course\u003c\/li\u003e\n\u003cli\u003eReceiving remote-control commands over infrared\u003c\/li\u003e\n\u003cli\u003eTransmitting commands and data between multiple Pocket Bots\u003c\/li\u003e\n\u003cli\u003eBroadcasting commands for coordinated behavior\u003c\/li\u003e\n\u003cli\u003eUsing the RGB LEDs to display status, sensor readings, debugging information, and animations\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eControlling multiple Pocket Bots using an overhead camera and a global vision system\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eBecause the Pocket Bot is completely programmable, these are only examples, not fixed operating modes. The same hardware can become a line-follower, a dancing robot, a programmable light display, a tiny remote-controlled vehicle, a classroom control-systems experiment, or part of a coordinated robot swarm.\u003c\/p\u003e\n\u003ch4\u003eHardware Specifications\u003c\/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePowered by the popular ATmega328P\u003cbr\u003e\n\u003cul\u003e\n\u003cli\u003e32KB flash, 2KB SRAM, 1KB EEPROM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e3.5+ hours of continuous run time\u003c\/li\u003e\n\u003cli\u003eUSB-C rechargeable\u003c\/li\u003e\n\u003cli\u003e3.7V 320 mAh rechargeable LiPo battery\u003c\/li\u003e\n\u003cli\u003e2 x independently-controlled gear motors\u003c\/li\u003e\n\u003cli\u003e5 x individually-addressable RGB LEDs for feedback and effects\u003c\/li\u003e\n\u003cli\u003e3 x downwards-facing line-follower sensors\u003c\/li\u003e\n\u003cli\u003eInfrared transmitter and receiver for remote control, robot-to-robot communication, and other wireless functionality\u003c\/li\u003e\n\u003cli\u003e1 x tactile pushbutton for user feedback or control\u003c\/li\u003e\n\u003cli\u003e1 x optional expansion header for additional sensors, serial communication, or other capabilities\u003c\/li\u003e\n\u003cli\u003eFully programmable firmware\u003c\/li\u003e\n\u003cli\u003eNo soldering required for normal assembly\u003c\/li\u003e\n\u003cli\u003eCompact 46mm x 39mm footprint\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eWhat's Included?\u003c\/h3\u003e\n\u003cp\u003eThis kit includes all of the parts necessary to assemble and run your Pocket Bot, plus some spare parts:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e1 x Pocket Bot printed circuit board (PCB)\u003c\/li\u003e\n\u003cli\u003e2 x Pocket Bot chassis (includes 1 spare)\u003c\/li\u003e\n\u003cli\u003e6 x Pocket Bot wheels (includes 2 spares)\u003c\/li\u003e\n\u003cli\u003e2 x pre-soldered motors + connectors\u003c\/li\u003e\n\u003cli\u003e1 x expansion header (not soldered, optional)\u003c\/li\u003e\n\u003cli\u003e1 x 3.7V 320mAh LiPo battery\u003c\/li\u003e\n\u003cli\u003eComplete set of fasteners\u003c\/li\u003e\n\u003cli\u003e3 example courses printed on 8.5\" x 11\" paper:\n\u003cul\u003e\n\u003cli\u003e1 x figure-8 course\u003c\/li\u003e\n\u003cli\u003e1 x rounded rectangle course\u003c\/li\u003e\n\u003cli\u003e1 x barcode course (2 pages)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWith the exception of our custom circuit board and fasteners, \u003cstrong\u003eall of the components\u003c\/strong\u003e are 3D-printable or available from common distributors, meaning that sourcing replacement parts is simple.\u003c\/p\u003e\n\u003cp\u003eThe robot comes pre-loaded with \u003ca href=\"\/pages\/pocket-bot-example-programs\"\u003eseveral example programs\u003c\/a\u003e that can be used immediately after assembly.\u003c\/p\u003e\n\u003cp\u003eA \u003ca href=\"\/products\/programmer\"\u003eMidnight Make Programmer\u003c\/a\u003e is required to modify the firmware or upload your own programs. The programmer is sold separately and can be used with other supported Midnight Make kits as well.\u003c\/p\u003e\n\u003cp\u003eDetailed assembly instructions are \u003ca href=\"\/pages\/pocket-bot-assembly\"\u003eavailable here\u003c\/a\u003e. Assembly takes about 10 minutes. No soldering is required unless you choose to install the optional expansion header.\u003c\/p\u003e\n\u003ch3\u003eWho Is This Kit For?\u003c\/h3\u003e\n\u003cp\u003eThe Pocket Bot was designed to support a wide range of experience levels.\u003c\/p\u003e\n\u003ch4\u003eFirst-Time Robot Builders\u003c\/h4\u003e\n\u003cp\u003eYou do not need any programming or electronics experience to assemble the Pocket Bot and run the \u003ca href=\"\/pages\/pocket-bot-example-programs\"\u003eincluded example programs\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eThe mechanical assembly takes roughly 10 minutes and requires only a small screwdriver. After assembly, you can immediately run the pre-loaded example programs on the provided printed line courses.\u003c\/p\u003e\n\u003cp\u003eThis makes the Pocket Bot an approachable introduction to robotics without reducing it to a closed, single-purpose toy.\u003c\/p\u003e\n\u003ch4\u003eStudents and Educators\u003c\/h4\u003e\n\u003cp\u003eThe Pocket Bot can be used to teach:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEmbedded programming\u003c\/li\u003e\n\u003cli\u003eSensor calibration\u003c\/li\u003e\n\u003cli\u003eFeedback and motor control\u003c\/li\u003e\n\u003cli\u003eLine-following algorithms and control loops\u003c\/li\u003e\n\u003cli\u003eState machines\u003c\/li\u003e\n\u003cli\u003eAutonomous navigation\u003c\/li\u003e\n\u003cli\u003eInfrared communications\u003c\/li\u003e\n\u003cli\u003eDebugging with LEDs and serial output\u003c\/li\u003e\n\u003cli\u003eMulti-robot systems\u003c\/li\u003e\n\u003cli\u003eComputer vision and external robot tracking\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eStudents can begin by running an existing program, progress to changing individual parameters, and eventually develop complete applications of their own.\u003c\/p\u003e\n\u003cp\u003eBecause the Pocket Bot is small, rechargeable, and quick to assemble, a classroom can operate multiple Pocket Bots without requiring a large course or dedicated robotics area. Even courses printed on an 8.5\" x 11\" sheet of paper will suffice (and this kit includes some)!\u003c\/p\u003e\n\u003ch4\u003eHobbyists and Programmers\u003c\/h4\u003e\n\u003cp\u003eFor experienced makers, the Pocket Bot provides a compact platform for experimenting with embedded systems, mobile robotics, and real-time systems without having to first design and assemble an entire robot.\u003c\/p\u003e\n\u003cp\u003eThe motors, sensors, LEDs, button, battery system, communications hardware, and firmware libraries are already integrated. You can start working on the behavior of the robot immediately.\u003c\/p\u003e\n\u003cp\u003eAll major hardware functions are accessible through straightforward C functions. The complete source code remains available for anyone who wants lower-level control.\u003c\/p\u003e\n\u003ch4\u003eResearchers and Advanced Users\u003c\/h4\u003e\n\u003cp\u003eThe Pocket Bot can also serve as an inexpensive, experimental platform for work involving:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSwam robotics\u003c\/li\u003e\n\u003cli\u003eMulti-agent coordination\u003c\/li\u003e\n\u003cli\u003eGlobal vision control\u003c\/li\u003e\n\u003cli\u003eDistributed behaviors\u003c\/li\u003e\n\u003cli\u003ePath planning\u003c\/li\u003e\n\u003cli\u003eRobot communication\u003c\/li\u003e\n\u003cli\u003eCollective motion\u003c\/li\u003e\n\u003cli\u003eAutomated testing\u003c\/li\u003e\n\u003cli\u003eSmall-scale autonomous systems\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eIts compact size makes it practical to operate many robots within a relatively small workspace. The infrared transceiver supports local communication while the expansion header can be used to connect external equipment, custom sensors, or debugging interfaces.\u003c\/p\u003e\n\u003cp\u003eYou can use the Pocket Bot exactly as provided, customize our firmware, replace it entirely, or add to the hardware to create something new.\u003c\/p\u003e\n\u003ch3\u003eWhat Can I Customize?\u003c\/h3\u003e\n\u003cp\u003eNearly everything! The Pocket Bot comes pre-flashed with several example programs (see below), but its firmware is not locked or restricted. Using the \u003ca href=\"\/products\/programmer\"\u003eMidnight Make Programmer\u003c\/a\u003e, you can modify any part of the code or replace it with an application of your own.\u003c\/p\u003e\n\u003cp\u003eWe provide complete source code and resuable functions for:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMotor control\u003c\/li\u003e\n\u003cli\u003eRGB LED control\u003c\/li\u003e\n\u003cli\u003eLine-sensor calibration and reading\u003c\/li\u003e\n\u003cli\u003eButton input\u003c\/li\u003e\n\u003cli\u003eInfrared transmission and reception\u003c\/li\u003e\n\u003cli\u003eTiming and delays\u003c\/li\u003e\n\u003cli\u003eSerial communication\u003c\/li\u003e\n\u003cli\u003eCommon robot behaviours\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eYou are free to use these functions as building blocks, modify them, or work directly with the ATmega328P at the heart of the Pocket Bot.\u003c\/p\u003e\n\u003cp\u003eThe Pocket Bot comes pre-flashed with several demonstrations:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eBasic line-following\u003c\/li\u003e\n\u003cli\u003eArea keeping\/edge avoidance\u003c\/li\u003e\n\u003cli\u003eScan barcode course, transmit to other robots, and execute encoded commands\u003c\/li\u003e\n\u003cli\u003eSpinning with rainbow LED effects\u003c\/li\u003e\n\u003cli\u003eLine brightness sensing with LED output\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eAdditional source code examples are available for experimenting with sensors, motors, LEDs, communications, and custom robot behaviors.\u003c\/p\u003e\n\u003cp\u003eA guide to the example programs is \u003ca href=\"\/pages\/pocket-bot-example-programs\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eInstructions for writing and uploading your own code are \u003ca href=\"\/pages\/working-with-source-code\"\u003eavailable here\u003c\/a\u003e. \u003cstrong\u003ePlease note\u003c\/strong\u003e that if you want to write or upload your own code, you should be familiar with embedded C and comfortable with a terminal\/command-line (or are willing to learn). We provide detailed guides for setup and usage, but familiarity with the basics (such as setting your \u003ccode class=\"cli\"\u003ePATH\u003c\/code\u003e variable) is assumed.\u003c\/p\u003e\n\u003ch3\u003eWhat Skills Do I Need?\u003c\/h3\u003e\n\u003cp\u003eThat depends on what you'd like to achieve!\u003c\/p\u003e\n\u003ch4\u003eRunning the Included Programs\u003c\/h4\u003e\n\u003cp\u003eTo \u003ca href=\"\/pages\/pocket-bot-assembly\"\u003eassemble the Pocket Bot\u003c\/a\u003e and \u003ca href=\"\/pages\/pocket-bot-example-programs\"\u003erun the pre-loaded demonstrations\u003c\/a\u003e, you only need a small screwdriver, about 10 minutes for assembly, and a USB-C cable for charging. No soldering or programming experience is required.\u003c\/p\u003e\n\u003ch4\u003eModifying or Writing Programs\u003c\/h4\u003e\n\u003cp\u003eTo write your own Pocket Bot applications, some familiarity with embedded C is helpful.\u003c\/p\u003e\n\u003cp\u003eThe Pocket Bot uses the popular ATmega328P, which is the same microcontroller family used in many classic Arduino-compatible boards. If you have worked with an AVR microcontroller, or written Arduino code before, much of the hardware and programming model will already be familiar to you.\u003c\/p\u003e\n\u003cp\u003eUnlike a typical Arduino sketch, Pocket Bot programs use straightforward embedded C and have direct access to the microcontroller. However, we provide easy-to-use functions for the most common robot operations, so you do not need to configure any peripheral from scratch.\u003c\/p\u003e\n\u003cp\u003eFor example, here is the code for a Pocket Bot program that spins and flashes the middle LED red every second:\u003c\/p\u003e\n\u003cp\u003e\u003ccode class=\"cli-block\"\u003e\n\n\u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ spin right; speeds range from -100 to 100\u003c\/span\u003e\u003cbr\u003e\nmotorLeft(50);\u003cbr\u003e\nmotorRight(-50);\u003cbr\u003e\n\u003cbr\u003e\n\u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ do forever\u003c\/span\u003e\u003cbr\u003e\n\u003cspan style=\"font-weight: bold;\"\u003ewhile\u003c\/span\u003e(1)\u003cbr\u003e\n{\u003cbr\u003e\n   \u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ set the middle LED to full red (0 - 255)\u003c\/span\u003e\u003cbr\u003e\n   ledSet(2, 255, 0, 0); \u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ LED (0-4), R, G, B\u003c\/span\u003e\u003cbr\u003e\n   ledRefresh();\u003cbr\u003e\n\u003cbr\u003e\n   \u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ wait one second\u003c\/span\u003e\u003cbr\u003e\n   _delay_ms(1000);\u003cbr\u003e\n\u003cbr\u003e\n   \u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ turn off all LEDs\u003c\/span\u003e\u003cbr\u003e\n   ledClear();\u003cbr\u003e\n   ledRefresh();\u003cbr\u003e\n\u003cbr\u003e\n   \u003cspan style=\"font-style: italic; color: #3a4;\"\u003e\/\/ wait another second\u003c\/span\u003e\u003cbr\u003e\n   _delay_ms(1000);\u003cbr\u003e\n}\u003cbr\u003e\n\u003c\/code\u003e\u003c\/p\u003e\n\u003cp\u003eFrom there, you can begin reading sensors, changing motor speeds, responding to button presses, receiving infrared commands, and combining these capabilities into increasingly complex behaviors.\u003c\/p\u003e\n\u003ch4\u003eAdding Custom Hardware\u003c\/h4\u003e\n\u003cp\u003eThe optional expansion header provides access for additional sensors, serial communication, debugging tools, or custom peripherals.\u003c\/p\u003e\n\u003cp\u003eInstalling the header requires basic soldering, but this is a beginner-friendly task involving only a few pins. An experienced builder can perform this task in a few minutes.\u003c\/p\u003e\n\u003cp\u003eThe expansion header is optional and is not required for any of the standard Pocket Bot features or included demonstrations.\u003c\/p\u003e\n\u003cp\u003eThe expansion header breaks out the following pins:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e3.3V output\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eGND\u003c\/li\u003e\n\u003cli\u003eSerial RX and TX\u003c\/li\u003e\n\u003cli\u003eI2C SDA and SCL\u003c\/li\u003e\n\u003cli\u003eA pin for charging the battery, to allow for alternative charging solutions\u003c\/li\u003e\n\u003cli\u003eInfrared RX\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eInterested in Teaching with the Pocket Bot?\u003c\/h3\u003e\n\u003cp\u003eWe're developing classroom activities and multi-robot packages for educators, robotics clubs, makerspaces, and university programs.\u003c\/p\u003e\n\u003cp\u003eMidnight Make is currently selecting a small number of early educators to evaluate the Pocket Bot with students and help shape the future classroom offering. Early evaluation sets may include several Pocket Bots, sample activites, starter code, onboarding, and direct technical support from us.\u003c\/p\u003e\n\u003cp\u003eThe Pocket Bot may be a good fit for courses and programs involving:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRobotics and autonomous systems\u003c\/li\u003e\n\u003cli\u003eEmbedded programming\u003c\/li\u003e\n\u003cli\u003eSensors and feedback control\u003c\/li\u003e\n\u003cli\u003eInfrared communication\u003c\/li\u003e\n\u003cli\u003eMulti-robot coordination and swarm robotics\u003c\/li\u003e\n\u003cli\u003eEngineering design and experimentation\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe Pocket Bot is designed to be affordable enough for individual student use, and compact enough for multi-robot activities on an ordinary classroom desk or table.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntersted in an educator evaluation or future classroom set?\u003c\/strong\u003e Contact Midnight Make \u003ca href=\"\/pages\/contact\"\u003ehere\u003c\/a\u003e to apply for an educator evaluation.\u003c\/p\u003e\n\u003ch3\u003eWhere Are the Instructions, STLs, and Source Code, Again?\u003c\/h3\u003e\n\u003cp\u003eAssembly instructions are \u003ca href=\"\/pages\/pocket-bot-assembly\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eExample program instructions are \u003ca href=\"\/pages\/pocket-bot-example-programs\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eInstructions for working with the provided source code are \u003ca href=\"\/pages\/working-with-source-code\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eInstructions for uploading custom code are \u003ca href=\"\/pages\/using-the-mmp\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eSTL files and source code are \u003ca href=\"https:\/\/github.com\/midnightmake\/pocket-bot-downloads\"\u003eavailable here\u003c\/a\u003e.\u003c\/p\u003e","brand":"Midnight Make","offers":[{"title":"Default Title","offer_id":46781688152236,"sku":"MM-PB-WITH-BAT-V1","price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/9798\/2892\/files\/front-right_3bb435be-bce4-4034-95c2-f49e2ebc5bc1.jpg?v=1784336671","url":"https:\/\/www.midnightmake.com\/products\/pocket-bot","provider":"Midnight Make","version":"1.0","type":"link"}