Video summary
09102021 Lawn Tractor Meeting
Main summary
Key takeaways
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:
- A buyer couldn’t get DFU mode to work and requested DFU info from the seller.
- 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
-
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.
-
For Blue Pill / STM32F1:
- Follow online tutorials for flashing a USB bootloader or flashing via serial/USB or ST‑Link.
-
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.
-
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.
-
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.