An open-source hardware project designed to promote learning in embedded systems, programming, and electronics.
BitDogLab, an initiative of the Escola 4.0 Project at Unicamp, is an educational tool devoted to electronics and computing. Based on the Raspberry Pi Pico H, W, and Pico 2 (RP2350), it allows users to explore, assemble, and program using components mounted on its board and also external ones connected in an organized and secure manner.
Meticulously selected, the components foster hands-on learning, encouraging users to enhance programming and electronics skills synergistically and progressively. This enriching platform offers a vibrant experience, immersing users in a colorful, auditory, and synesthetic learning environment.
Additionally, BitDogLab is optimized for programming assisted by Large Language Models (LLMs), such as ChatGPT, facilitating more intuitive learning guided by a tireless tutor. Aimed at pre-university and university education, BitDogLab aims to catalyze the adoption of educational technology by providing a robust, flexible tool uniquely integrated into students' learning journey.
β¨ BitDogLab V7 improves upon the solid foundation of V6 with the following updates:
β Cost optimization: design adjustments to keep fabrication cost under US$ 25 (β R$ 250 in Brazil, including taxes).
β Support for Raspberry Pi Pico 2 (RP2350) with dual-core ARM and RISC-V architecture.
β Enhanced LED matrix: 5Γ5 WS2812B RGB array, now using smaller LEDs for better integration.
β Display connection updated: OLED now connected to IΒ²C pins GPIO2 (SDA) and GPIO3 (SCL).
β New Battery Management System (BMS): integrated INA226 for easy monitoring and control.
β Flexible display options: support for OLED modules with 128Γ64 or 128Γ128 pixel resolution, expanding visualization capabilities.
β Additional input control: inclusion of a third button (A, B, and C), enabling more interactive applications.
β Modular microcontroller socket: a new socketed design for the MCU module, allowing future upgrades and simplified maintenance.
BitDogLab supports multiple programming environments, ranging from visual block-based tools for beginners to professional C/C++ development for advanced users. Below is a step-by-step guide to easily program your board using Blockly.
Blockly is the easiest way to get started with BitDogLab β ideal for students and beginners learning programming logic and embedded systems. You can access it directly online, without installing anything:
π Blockly for BitDogLab: https://bitdoglab-blocos.github.io/BIPES-BITDOGLAB/ui/
Steps to use Blockly:
-
Connect your BitDogLab to your computer using a USB cable.
-
Open the link above in your browser (preferably Chrome or Edge).
-
Select the serial port corresponding to your board.
-
Drag and connect the programming blocks to create your program.
-
Click on βRunβ or βUploadβ to send the program to your BitDogLab.
Tip:
Blockly automatically generates MicroPython code, which can also be viewed and modified in the Thonny IDE if you prefer text-based programming.
After experimenting with Blockly, you can easily migrate to MicroPython using Thonny IDE with the examples available in the /Firmware/examples/ folder of this repository.
MicroPython with Thonny IDE
Steps:
Flash/update MicroPython firmware on Pico/Pico 2. OBS: Normally, you have already received a BitDogLab with the firmware flashed.
Connect BitDogLab via USB, select the port under Tools β Interpreter.
Upload the generated script (main.py or a similar file).
If using Blockly, remove main.py first (it can block communication).
The simplest workflow to generate code (MicroPython or C/C++) with the help of Artificial Intelligence models using the Hardware Information Database (BIH) β a text file describing the BitDogLab hardware connection is explained below:
π What is the BIH
The BIH Hardware Bank Database (BIH) is a plain text file containing the pinouts and peripherals of the board/project. It gives technical context so that an LLM (Large Language Model) can write correct code for your BitDogLab, avoiding pin/address mismatches.
-
Open the BIH from the link above.
-
Open your AI assistant (e.g., ChatGPT) and paste the BIH before requesting code.
-
Use a task prompt specifying: target language (MicroPython or C/C++), desired functionality, and constraints. Start with simple tasks.
-
Ask for complete, testable code (with main() or a full script and comments).
-
Iterate: send any compilation/runtime errors back to the AI, always including the BIH and the error log.
Here you can find a visual version of the BIH Hardware Bank Database
under construction ...
This repository holds open-source design files for BitDogLab V7, released under the CERN Open Hardware Licence v2 β Strongly Reciprocal (CERN-OHL-S).
All files can be freely copied, manufactured, assembled, and improved by the community, in alignment with open hardware principles.
hardware/
βββ kicad/
β βββ bitdoglab/ β Schematics, PCB layout and gerbers (DIY)
β βββ bitdoglabsmd/ β Schematics, PCB layout and gerbers (SMD)
β βββ libs/ β Symbols, footprints and 3D models
β
βββ docs/
βββ BOM/ β Bill of Materials (.xlsx and .csv)
βββ fabrication/ β Panelization, pick-and-place, gerber and drill
- MCU board: Raspberry Pi Pico H/W or Pico 2 (RP2350)
- LEDs: RGB LED (common cathode) + 5Γ5 WS2812B matrix
- Inputs: Buttons A/B + Reset, analog joystick (VRx/VRy + SW)
- Audio: Passive buzzers A and B (stereo capable)
- Display: OLED 128Γ64 via IΒ²C (GPIO2 = SDA, GPIO3 = SCL)
- Sensing: Electret or MEMS microphone (analog)
- Power: USB 5V, battery charger, INA226 for monitoring (BMS)
- Expansion: IDC header exposing GPIOs, IΒ²C/SPI/UART, 3V3/5V/GND
The annotated schematic of BitDogLab V7 describes the complete circuit, including the MCU pins, power supply, LEDs, buzzers, joystick, display, sensors, and connectors. A high-resolution schematic diagram is also available.
- Fabrication Files (version 7) with PCB and assembly with SMD componentes: Gerber + BOM + Pick Place
The schematic is the starting point for anyone wishing to understand, replicate, or modify BitDogLab.
It ensures full transparency in the design, reinforcing the open hardware philosophy of this project.
- Spreadsheet (Google Sheets): BOM
- PortuguΓͺs: Banco de InformaΓ§Γ£o de Hardware (BIH)
This project is licensed under:
- CERN Open Hardware Licence v2 β Strongly Reciprocal (CERN-OHL-S) for hardware
- MIT for software and firmware
- IEEE-EDS: STEM outreach program
- CNPq β INCT Namitec
- Prof. Dr. Fabiano Fruett β Project coordination and development CV Lattes
- Contributors: students and collaborators from Escola 4.0 / FEEC β Unicamp