Video summary

09102021 Lawn Tractor Meeting

Main summary

Key takeaways

Technology

Key technical topics and concepts

STM32 programming modes and bootloaders

  • Discussion of using the built‑in DFU/bootloader versus using an ST‑Link hardware programmer.
  • A common tip: jumper BOOT0 (or a similar pin) to 3.3 V to force the chip into the system boot/program mode.

On‑board vs external programmer

  • Some STM32 boards include a built‑in ST‑Link debugger/programmer; other boards require an external ST‑Link module.
  • Without a bootloader the USB port won’t enumerate; you must either flash firmware that enables USB or use an ST‑Link to program the chip.

Linux device detection

  • Use dmesg (or similar) to check whether the board is recognized when plugged into a Linux host.

Documentation sources

  • STMicroelectronics documentation is recommended for programming mode details, chip-specific bootloader behavior, and IDE/setup instructions.
  • Verify board-specific documentation — seller-provided links may point to the wrong revision.

Blue Pill (STM32F1) workflow

  • Follow online tutorials for flashing bootloaders/firmware (serial or USB bootloader approaches are commonly used).
  • Many community guides describe flashing via ST‑Link or using the built‑in system bootloader.

CAN bus debugging and ROS integration

  • Use a USB‑to‑CAN adapter to log CAN frames and publish them as ROS topics.
  • Record CAN traffic with rosbag for offline analysis to compare sender vs receiver behavior.
  • Options: remap topics or append fields (speed/steering) to other messages to create consolidated logs.

Motor current monitoring

  • A custom current‑sense board produces a voltage proportional to motor current.
  • Publish that voltage as a ROS topic so current can be logged and analyzed (useful after blown motor fuses).

Peripheral microcontrollers

  • Teensy used to pack joystick/switch inputs into CAN messages.
  • Arduino Nano reads a steering potentiometer and publishes a separate topic over USB.
  • Consider whether to consolidate these microcontroller topics or keep them separate.

Product / parts mentioned

  • STM32 development board (Amazon listing; compared to “Blue Pill” style boards)
  • ST‑Link programmer (on‑board or external module)
  • Blue Pill (STM32F103 style board)
  • BNO055 IMU (SparkFun / Adafruit breakout)
  • USB‑to‑CAN adapter (for logging bus traffic into ROS)
  • Teensy microcontroller (remote receiver interface)
  • Arduino Nano (steering pot reader)
  • Small custom current‑sense board (voltage output proportional to motor current)

Reviews, comments and documentation notes

  • Amazon listing included two important comments:
    1. A buyer couldn’t get DFU mode to work and requested DFU info from the seller.
    2. A user noted you must jumper certain pins (BOOT0 to 3.3 V‑like) to use with ST‑Link.
  • The seller reportedly provides documentation if contacted through Amazon, but they may not send docs to people who didn’t buy from them.
  • One posted documentation link pointed to the wrong board/revision (a China link). Verify documentation matches your exact board.

Guides, tutorials and actionable debugging steps

  1. If the board isn’t recognized over USB:

    • Try programming the chip with an external ST‑Link.
    • Jumper BOOT0 to 3.3 V (or follow seller/comment instructions) to enter the built‑in bootloader/DFU.
    • Use dmesg (Linux) to observe device enumeration when plugging/unplugging.
    • Check STMicroelectronics docs for chip programming modes and bootloader instructions.
  2. For Blue Pill / STM32F1:

    • Follow online tutorials for flashing a USB bootloader or flashing via serial/USB or ST‑Link.
  3. CAN debugging with ROS:

    • Add a USB‑to‑CAN adapter to feed bus traffic into a ROS node.
    • Publish CAN frames as ROS topics and record them in rosbag to compare what the remote is sending vs what the main controller receives.
    • Optionally strip speed/steering fields and append them to other messages for consolidated logging.
  4. Motor current monitoring:

    • Insert a current sensor (or the custom board) in series with the motor and publish its voltage (proportional to current) as a ROS topic for diagnostics after fuse failures.
  5. Documentation and community help:

    • Contact the Amazon seller for board documentation.
    • Reach out to local embedded systems groups or robotics community members for help tracing pinouts and flash chip connections.

Project status and next steps

  • Immediate next step: contact the seller for documentation and/or try an external ST‑Link to program the board.
  • Use STMicroelectronics documentation and online Blue Pill tutorials to attempt loading a bootloader or firmware.
  • Continue CAN logging to ROS to determine whether messages from the remote are transmitted and received correctly.
  • Add current sensing and log the data to ROS to track motor current and diagnose blown fuses.
  • Later decision: consolidate multiple microcontroller topics (steering, motor, etc.) or keep them separate depending on system design and logging needs.

Main speakers / sources referenced

  • Juan — described board issues, contacting seller, and ROS/robot work.
  • “Chef” / Shay — provided guidance on ST‑Link, DFU, Linux dmesg, and ROS logging/debugging.
  • Amazon seller and Amazon commenter — sources for board documentation and tips.
  • STMicroelectronics — chip programming modes and documentation.
  • SparkFun / Adafruit — BNO055 IMU product sources.
  • Local embedded systems coalition and other robotics community members — potential helpers for pinouts and hardware tracing.

Original video