Create comprehensive troubleshooting guide

Co-authored-by: leestott <2511341+leestott@users.noreply.github.com>
copilot/create-troubleshooting-guide
copilot-swe-agent[bot] 2 months ago
parent 4fd3e225ee
commit f84a40b188

@ -79,6 +79,8 @@ Each project is based around real-world hardware available to students and hobby
We have two choices of IoT hardware to use for the projects depending on personal preference, programming language knowledge or preferences, learning goals and availability. We have also provided a 'virtual hardware' version for those who don't have access to hardware, or want to learn more before committing to a purchase. You can read more and find a 'shopping list' on the [hardware page](./hardware.md), including links to buy complete kits from our friends at Seeed Studio.
> 💁 Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), and [Translation](TRANSLATIONS.md) guidelines. We welcome your constructive feedback!
>
> 🔧 Having issues? Check out our [Troubleshooting Guide](TROUBLESHOOTING.md) for solutions to common problems.
## Each lesson includes:

@ -0,0 +1,746 @@
# Troubleshooting Guide
This guide helps you solve common problems when working with the IoT for Beginners curriculum. Issues are organized by category for easy navigation.
## Table of Contents
- [Installation Issues](#installation-issues)
- [Python Installation](#python-installation)
- [VS Code and Extensions](#vs-code-and-extensions)
- [PlatformIO (Wio Terminal)](#platformio-wio-terminal)
- [Grove Libraries](#grove-libraries)
- [Hardware Issues](#hardware-issues)
- [Raspberry Pi](#raspberry-pi)
- [Wio Terminal](#wio-terminal)
- [Virtual Device (CounterFit)](#virtual-device-counterfit)
- [Connectivity Issues](#connectivity-issues)
- [WiFi Connection](#wifi-connection)
- [Cloud Services](#cloud-services)
- [MQTT](#mqtt)
- [Sensor and Actuator Issues](#sensor-and-actuator-issues)
- [Grove Sensors](#grove-sensors)
- [Camera](#camera)
- [Microphone and Speaker](#microphone-and-speaker)
- [Development Environment Issues](#development-environment-issues)
- [VS Code](#vs-code)
- [Python Virtual Environments](#python-virtual-environments)
- [Dependencies](#dependencies)
- [Performance Issues](#performance-issues)
- [Common Error Messages](#common-error-messages)
- [Getting Help](#getting-help)
---
## Installation Issues
### Python Installation
#### Problem: Python version is too old
**Error:** `Python 3.6 or higher is required`
**Solution:**
1. Download the latest Python 3 from [python.org](https://www.python.org/downloads/)
2. During installation on Windows, check "Add Python to PATH"
3. Verify installation:
```bash
python3 --version
```
#### Problem: Multiple Python versions causing conflicts
**Symptoms:** Wrong Python version runs, packages install to wrong location
**Solution:**
- **Windows:** Use `py -3` instead of `python` to explicitly call Python 3
- **macOS/Linux:** Use `python3` instead of `python`
- Always create and use virtual environments for projects
#### Problem: pip command not found
**Error:** `'pip' is not recognized as an internal or external command`
**Solution:**
1. Try `pip3` instead of `pip`
2. Or use `python -m pip` or `python3 -m pip`
3. Ensure Python is added to PATH (reinstall Python and check the option)
### VS Code and Extensions
#### Problem: Pylance extension not working
**Symptoms:** No Python IntelliSense, code completion, or type checking
**Solution:**
1. Open VS Code Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`)
2. Run "Python: Select Interpreter"
3. Choose the correct Python interpreter (virtual environment if using one)
4. Reload VS Code window
#### Problem: VS Code not detecting virtual environment
**Symptoms:** Wrong Python interpreter selected
**Solution:**
1. Ensure you've activated the virtual environment in the terminal
2. Open Command Palette and run "Python: Select Interpreter"
3. Select the interpreter from `.venv` folder
4. Check the status bar (bottom left) shows the correct Python version
### PlatformIO (Wio Terminal)
#### Problem: PlatformIO installation fails
**Error:** Various errors during PlatformIO installation
**Solution:**
1. Ensure VS Code is up to date
2. Install the C/C++ extension first
3. Restart VS Code after installing PlatformIO
4. Check your internet connection (PlatformIO downloads large files)
#### Problem: Board not detected by PlatformIO
**Symptoms:** Cannot upload code to Wio Terminal
**Solution:**
1. Try a different USB cable (some cables are charge-only)
2. Check Device Manager (Windows) or `ls /dev/tty*` (macOS/Linux)
3. Install or update USB drivers
4. Try a different USB port
5. Slide the power switch on the Wio Terminal twice quickly to enter bootloader mode
#### Problem: Compilation errors in PlatformIO
**Error:** `fatal error: Arduino.h: No such file or directory`
**Solution:**
1. Delete `.pio` folder in your project
2. Run "PlatformIO: Rebuild" from Command Palette
3. Ensure `platformio.ini` has correct board configuration:
```ini
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
```
### Grove Libraries
#### Problem: Grove library import fails on Raspberry Pi
**Error:** `ModuleNotFoundError: No module named 'grove'`
**Solution:**
1. Reinstall Grove libraries:
```bash
cd ~
git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo pip3 install .
```
2. If using virtual environment, you may need to install globally or copy libraries
3. Verify I2C is enabled: `sudo raspi-config nonint do_i2c 0`
#### Problem: Grove sensor not detected
**Error:** `IOError: [Errno 121] Remote I/O error`
**Solution:**
1. Check physical connections (ensure Grove cable is fully inserted)
2. Verify sensor is connected to correct port (analog, digital, I2C, UART)
3. Run `i2cdetect -y 1` to see if device appears on I2C bus
4. Try a different Grove cable
5. Ensure Grove Base Hat is properly seated on Raspberry Pi GPIO pins
---
## Hardware Issues
### Raspberry Pi
#### Problem: Raspberry Pi won't boot
**Symptoms:** No display, no LED activity, or rainbow screen
**Solution:**
1. **Check power supply:** Use official 5V 3A USB-C power supply for Pi 4
2. **SD card issues:**
- Reformat SD card and reinstall Raspberry Pi OS
- Try a different SD card (use recommended brands)
- Ensure SD card is properly inserted
3. **Check HDMI connection:** Try both HDMI ports on Pi 4, use HDMI port closest to power
#### Problem: Cannot SSH to Raspberry Pi
**Symptoms:** Connection refused or timeout
**Solution:**
1. Enable SSH:
- When flashing SD card with Raspberry Pi Imager, configure SSH in advanced options
- Or create empty file named `ssh` (no extension) in boot partition
2. Find Pi's IP address:
- Check your router's connected devices
- Use `ping raspberrypi.local` (if mDNS works)
- Use network scanning tools like `nmap` or Angry IP Scanner
3. Check network:
- Ensure Pi is on same network as your computer
- Try ethernet connection instead of WiFi
4. Verify username/password (default: username `pi`, password `raspberry`)
#### Problem: Grove Base Hat not recognized
**Symptoms:** Sensors not working, I2C errors
**Solution:**
1. Ensure Base Hat is properly seated on all GPIO pins
2. Check for bent pins on Pi or Base Hat
3. Enable I2C interface:
```bash
sudo raspi-config nonint do_i2c 0
sudo reboot
```
4. Verify I2C is working: `i2cdetect -y 1`
#### Problem: Raspberry Pi running slow
**Symptoms:** Laggy UI, slow response
**Solution:**
1. Check SD card speed (use Class 10 or better, or SSD via USB)
2. Free up disk space: `df -h` to check, delete unnecessary files
3. Reduce GPU memory in `raspi-config` if not using camera/display heavily
4. Close unnecessary applications
5. Consider upgrading to Pi 4 with more RAM if using Pi 3 or older
### Wio Terminal
#### Problem: Wio Terminal screen stays blank
**Symptoms:** No display output after uploading code
**Solution:**
1. Check if code initializes the display (TFT_eSPI library)
2. Update Wio Terminal firmware from [Seeed Wiki](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)
3. Add display initialization code:
```cpp
#include <TFT_eSPI.h>
TFT_eSPI tft;
tft.begin();
tft.fillScreen(TFT_BLACK);
```
4. Try uploading example sketch from PlatformIO to test hardware
#### Problem: WiFi not working on Wio Terminal
**Symptoms:** Cannot connect to WiFi, network errors
**Solution:**
1. **Update WiFi firmware:** Follow [Wio Terminal WiFi firmware update guide](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
2. **Check WiFi credentials:** Ensure SSID and password are correct
3. **WiFi band:** Wio Terminal only supports 2.4GHz WiFi (not 5GHz)
4. **Signal strength:** Move closer to router
5. **Router settings:** Some enterprise/WPA-Enterprise networks may not work
#### Problem: Wio Terminal not recognized by computer
**Symptoms:** USB device not detected
**Solution:**
1. **Try different USB cable:** Use data cable, not charge-only cable
2. **Enter bootloader mode:** Slide power switch down twice quickly
- Blue LED should pulse, device appears as "Arduino" in Device Manager
3. **Install drivers (Windows):**
- Download and install [Seeed USB driver](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
4. **Try different USB port:** Avoid USB hubs, use direct connection
5. **Update system USB drivers**
#### Problem: Sensors not working on Wio Terminal
**Symptoms:** Grove sensors not reading data
**Solution:**
1. Check Grove cable connections
2. Verify you're using correct Grove port (left or right)
3. Include correct libraries for sensor
4. Check sensor power requirements
5. Test sensor with example code from library
### Virtual Device (CounterFit)
#### Problem: CounterFit app won't start
**Error:** Various Python errors when starting CounterFit
**Solution:**
1. Ensure virtual environment is activated
2. Install/reinstall CounterFit:
```bash
pip install CounterFit
```
3. Check port 5000 is not already in use:
- Windows: `netstat -ano | findstr :5000`
- macOS/Linux: `lsof -i :5000`
4. Kill process using port 5000 or use different port:
```bash
counterfit --port 5001
```
#### Problem: Cannot connect to CounterFit from code
**Error:** Connection refused or timeout
**Solution:**
1. Verify CounterFit is running: Open browser to `http://127.0.0.1:5000`
2. Check connection URL in code matches CounterFit address
3. Ensure firewall isn't blocking connection
4. Try restarting both CounterFit app and your code
#### Problem: Sensors not appearing in CounterFit
**Symptoms:** Created sensors don't show in CounterFit UI
**Solution:**
1. Create sensors in CounterFit UI before running code
2. Refresh browser page
3. Check sensor type matches what code expects
4. Clear browser cache
---
## Connectivity Issues
### WiFi Connection
#### Problem: Device can't connect to WiFi
**Symptoms:** Connection timeout, authentication failed
**Solution:**
1. **Check SSID and password:** Verify credentials are correct
2. **WiFi band:** Most IoT devices only support 2.4GHz (not 5GHz)
3. **Router settings:**
- Disable AP isolation if enabled
- Use WPA2-PSK security (avoid WPA3, WEP, or open networks)
- Ensure DHCP is enabled
4. **Hidden networks:** If SSID is hidden, you may need to explicitly configure it
5. **Signal strength:** Move device closer to router
6. **Interference:** Other devices, microwaves, or walls can interfere
#### Problem: WiFi connection drops frequently
**Symptoms:** Intermittent connectivity
**Solution:**
1. Check router stability and consider reboot
2. Update device firmware
3. Use static IP instead of DHCP
4. Reduce distance to router or add WiFi extender
5. Check for interference from other devices
6. Verify power supply is adequate (especially for Raspberry Pi)
### Cloud Services
#### Problem: Cannot connect to Azure IoT Hub
**Error:** Authentication failed, connection refused
**Solution:**
1. **Verify credentials:**
- Check connection string is correct
- Ensure no extra spaces or line breaks in connection string
2. **Check device registration:** Device must be registered in IoT Hub
3. **Firewall/proxy:** Ensure outbound MQTT (port 8883) or HTTPS (port 443) is allowed
4. **IoT Hub region:** Ensure IoT Hub is running and not in different region causing latency
5. **Quota limits:** Check if free tier limits are exceeded
6. **Test connection:**
```bash
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
```
#### Problem: Azure Functions not triggering
**Symptoms:** Messages sent but function doesn't execute
**Solution:**
1. Check Function App is running (not stopped)
2. Verify connection string in Function App settings
3. Check function logs in Azure Portal
4. Ensure Event Hub compatible endpoint is configured correctly
5. Verify message format matches function expectations
6. Check Function App service plan (consumption vs. dedicated)
### MQTT
#### Problem: MQTT connection fails
**Error:** Connection refused, authentication failed
**Solution:**
1. **Broker address:** Verify broker URL/IP is correct
2. **Port:** Check port number (1883 for unencrypted, 8883 for TLS)
3. **Authentication:** Verify username/password if required
4. **TLS/SSL:** Ensure certificates are valid and trusted
5. **Firewall:** Check port is not blocked
6. **Test with MQTT client:** Use MQTT Explorer or mosquitto_pub/sub to test
#### Problem: MQTT messages not received
**Symptoms:** Messages published but not received by subscribers
**Solution:**
1. **Topic names:** Verify subscriber topic matches publisher topic exactly
2. **QoS level:** Try QoS 1 or 2 instead of 0
3. **Wildcards:** Check topic wildcards are used correctly (`+` for single level, `#` for multi-level)
4. **Retained messages:** Publisher can set retain flag to keep last message
5. **Connection timing:** Ensure subscriber connects before messages are published
---
## Sensor and Actuator Issues
### Grove Sensors
#### Problem: Sensor returns incorrect values
**Symptoms:** Readings are 0, -1, or nonsensical values
**Solution:**
1. **Check connections:** Ensure sensor is properly connected
2. **Correct port:** Verify sensor is in correct port type:
- Analog sensors → Analog ports (A0, A2, A4)
- Digital sensors → Digital ports (D5, D16, D18, etc.)
- I2C sensors → I2C ports
3. **Calibration:** Some sensors need calibration (soil moisture, light)
4. **Power cycle:** Disconnect and reconnect sensor
5. **Sensor datasheet:** Check sensor specifications and requirements
#### Problem: Capacitive soil moisture sensor always reads wet
**Symptoms:** Sensor reads high moisture even when dry
**Solution:**
1. **Calibration needed:** Soil sensors require calibration:
- Read value in air (dry baseline)
- Read value in water (wet baseline)
- Map readings between these values
2. **Check sensor coating:** Moisture sensors can degrade if coating damaged
3. **Placement:** Ensure sensor is fully inserted in soil
#### Problem: Temperature/humidity sensor readings incorrect
**Symptoms:** DHT11/DHT22 shows wrong temperature or humidity
**Solution:**
1. **Sensor placement:** Avoid direct sunlight, heat sources, or airflow
2. **Warm-up time:** Allow sensor 2 seconds after power-on before reading
3. **Read frequency:** DHT sensors need time between reads (at least 2 seconds)
4. **Check for condensation:** Can affect readings
5. **Sensor quality:** DHT11 is less accurate than DHT22
### Camera
#### Problem: Camera not detected on Raspberry Pi
**Error:** `mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'`
**Solution:**
1. **Enable camera interface:**
```bash
sudo raspi-config
```
Go to Interface Options → Camera → Enable
2. **Check ribbon cable:** Ensure camera cable is properly inserted
- Blue side faces USB ports on Pi Zero
- Blue side faces away from USB ports on Pi 4
3. **Update firmware:**
```bash
sudo apt update
sudo apt full-upgrade
sudo reboot
```
4. **Test camera:**
```bash
raspistill -o test.jpg
```
#### Problem: Camera images are poor quality
**Symptoms:** Blurry, dark, or washed out images
**Solution:**
1. **Focus:** Remove protective film from lens, adjust focus if adjustable
2. **Lighting:** Ensure adequate lighting
3. **Camera settings:** Adjust exposure, ISO, white balance in code
4. **Stability:** Keep camera steady, use tripod if needed
5. **Resolution:** Don't exceed camera's maximum resolution
### Microphone and Speaker
#### Problem: No audio input/output
**Symptoms:** Microphone not recording, speaker not playing
**Solution:**
1. **Check connections:** Verify audio devices are properly connected
2. **Test hardware:**
- Speaker: `speaker-test -t wav -c 2`
- Microphone: `arecord -l` to list, `arecord test.wav` to record
3. **Volume settings:** Check and adjust volume:
```bash
alsamixer
```
4. **Select audio device:** Specify correct audio device in code
5. **Driver issues:** Update ALSA or reinstall audio drivers
#### Problem: ReSpeaker hat not working
**Symptoms:** Audio device not detected
**Solution:**
1. **Install drivers:**
```bash
git clone https://github.com/HinTak/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot
```
2. **Check installation:** `arecord -l` should list ReSpeaker
3. **Update firmware:** Some Pi OS versions need driver updates
4. **Check seating:** Ensure hat is properly connected to GPIO pins
---
## Development Environment Issues
### VS Code
#### Problem: Terminal not activating virtual environment automatically
**Symptoms:** Terminal opens but venv not activated
**Solution:**
1. **Set Python interpreter:** Command Palette → "Python: Select Interpreter" → Choose venv
2. **Restart VS Code** after selecting interpreter
3. **Check settings:** In `settings.json`, add:
```json
"python.terminal.activateEnvironment": true
```
#### Problem: Code not running on device
**Symptoms:** Code runs but nothing happens on device
**Solution:**
1. **Verify code is saved** (check dot on file tab)
2. **Check which Python is running:** `which python` or `where python`
3. **For Wio Terminal:** Ensure code is uploaded via PlatformIO (click upload button)
4. **For Raspberry Pi:** SSH into Pi and run code there
5. **Check output window** for errors
#### Problem: IntelliSense not showing library functions
**Symptoms:** No autocomplete for imported modules
**Solution:**
1. Ensure library is installed in current environment
2. Reload VS Code window
3. Check Python interpreter is correct
4. Install type stubs if available: `pip install types-<library-name>`
### Python Virtual Environments
#### Problem: Cannot create virtual environment
**Error:** `The virtual environment was not created successfully`
**Solution:**
1. **Install venv module:**
- Ubuntu/Debian: `sudo apt install python3-venv`
- macOS: Should be included with Python
- Windows: Reinstall Python with all components
2. **Check Python installation:** Verify Python is properly installed
3. **Use full path:** Try `python3 -m venv .venv` with explicit python3 call
#### Problem: Packages installed in wrong location
**Symptoms:** Import error after installing package
**Solution:**
1. **Verify venv is activated:** Command prompt should show `(.venv)`
2. **Check pip location:** `which pip` should point to `.venv/bin/pip`
3. **Reinstall in venv:** Activate venv, then `pip install <package>`
4. **Don't use sudo with pip** in virtual environment
#### Problem: Virtual environment not portable
**Symptoms:** Venv doesn't work after moving or on different computer
**Solution:**
1. **Don't move venvs:** Delete and recreate in new location
2. **Use requirements.txt:**
```bash
pip freeze > requirements.txt
pip install -r requirements.txt
```
3. **Recreate venv:**
```bash
python3 -m venv .venv
source .venv/bin/activate # or activate.bat on Windows
pip install -r requirements.txt
```
### Dependencies
#### Problem: Package installation fails
**Error:** Various pip errors during installation
**Solution:**
1. **Update pip:**
```bash
pip install --upgrade pip
```
2. **Install build tools:**
- Ubuntu/Debian: `sudo apt install build-essential python3-dev`
- macOS: `xcode-select --install`
- Windows: Install Visual Studio Build Tools
3. **Check internet connection**
4. **Try different package index:** `pip install --index-url https://pypi.org/simple/ <package>`
5. **Install specific version:** `pip install <package>==<version>`
#### Problem: Dependency conflicts
**Error:** `ERROR: pip's dependency resolver does not currently take into account all the packages that are installed`
**Solution:**
1. **Use fresh virtual environment** for each project
2. **Update packages:** `pip install --upgrade <package>`
3. **Check requirements:** Use `pip check` to find conflicts
4. **Install compatible versions:** Specify version ranges in requirements.txt
---
## Performance Issues
### Problem: Code runs slowly
**Symptoms:** Delays, timeouts, unresponsive behavior
**Solution:**
1. **Reduce sensor read frequency:** Don't read sensors too often
2. **Optimize loops:** Avoid busy-waiting, use sleep() or delays
3. **Memory issues:**
- Close unnecessary applications
- Free up storage space
- Monitor with `top` or `htop` on Pi
4. **SD card speed:** Use faster SD card or SSD for Raspberry Pi
5. **Network delays:** Use async operations for network calls
### Problem: Out of memory errors
**Error:** `MemoryError` or system freezing
**Solution:**
1. **For Raspberry Pi:**
- Close unnecessary applications
- Increase swap space
- Use lighter OS (Lite version)
- Upgrade RAM (Pi 4 has 2/4/8GB options)
2. **For Wio Terminal:**
- Reduce buffer sizes
- Use smaller images
- Optimize string usage
- Check for memory leaks (unreleased memory)
### Problem: Data loss or corruption
**Symptoms:** Missing messages, corrupted files
**Solution:**
1. **SD card issues:**
- Use quality SD cards (avoid cheap/counterfeit)
- Regular backups
- Clean shutdown (don't pull power)
2. **Buffer overflow:** Increase buffer sizes in code
3. **Network reliability:** Implement retry logic and error handling
4. **Quality of Service:** Use MQTT QoS 1 or 2 for important messages
---
## Common Error Messages
### `ModuleNotFoundError: No module named 'X'`
**Cause:** Package not installed or virtual environment not activated
**Solution:**
```bash
pip install X
```
Ensure virtual environment is activated first.
### `Permission denied` on Linux/macOS
**Cause:** Need elevated permissions or file permissions issue
**Solution:**
- For system operations: Use `sudo`
- For pip: DON'T use sudo with venv, activate venv first
- For serial port: Add user to dialout group: `sudo usermod -a -G dialout $USER`, then logout/login
### `OSError: [Errno 98] Address already in use`
**Cause:** Port is already being used by another process
**Solution:**
1. Find process using port: `lsof -i :<port>` or `netstat -ano | findstr :<port>`
2. Kill process or use different port in your code
### `SSL: CERTIFICATE_VERIFY_FAILED`
**Cause:** SSL certificate validation failing
**Solution:**
1. Update certificates: `pip install --upgrade certifi`
2. Check system time is correct: `date`
3. For development only (not production): Disable verification in code
### `IndentationError: unexpected indent`
**Cause:** Python indentation issues (mixing tabs/spaces)
**Solution:**
1. Use consistent indentation (4 spaces is Python standard)
2. Configure editor to use spaces instead of tabs
3. VS Code: Set `"editor.insertSpaces": true` and `"editor.tabSize": 4`
### `UnicodeDecodeError` or `UnicodeEncodeError`
**Cause:** Character encoding issues
**Solution:**
```python
# When reading files
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
# When writing files
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(content)
```
---
## Getting Help
If you've tried these troubleshooting steps and still have issues:
### 1. Check Existing Resources
- **Documentation:** Review the [README](README.md) and lesson instructions
- **Hardware guides:** Check [hardware.md](hardware.md) for hardware-specific info
- **Seeed Studio Wiki:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) for Grove components
### 2. Search for Similar Issues
- **GitHub Issues:** Search [existing issues](https://github.com/microsoft/IoT-For-Beginners/issues)
- **Stack Overflow:** Search for error messages
- **Device forums:** Check Raspberry Pi forums or Arduino forums
### 3. Create a GitHub Issue
If you can't find a solution:
1. Go to [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
2. Click "New Issue"
3. Provide:
- Clear description of the problem
- Steps to reproduce
- Error messages (full text)
- Hardware/software versions
- What you've already tried
- Screenshots if relevant
### 4. Join the Community
- **Discord:** [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-iot)
### 5. Provide Good Bug Reports
A good bug report includes:
- **Environment:** OS, Python version, hardware used
- **Steps to reproduce:** Exact steps that cause the issue
- **Expected behavior:** What should happen
- **Actual behavior:** What actually happens
- **Error messages:** Complete error text, not screenshots
- **Code:** Minimal code example that reproduces the issue
---
## Tips for Prevention
### General Best Practices
1. **Keep backups:** Regular backups of working SD cards/code
2. **Document changes:** Note what works in comments
3. **Version control:** Use git to track code changes
4. **Test incrementally:** Test small changes before combining
5. **Read error messages:** They often tell you exactly what's wrong
6. **Update regularly:** Keep software/firmware up to date
7. **Use quality components:** Avoid cheap cables/power supplies
8. **Stable power:** Use appropriate power supply (especially Pi)
### Development Workflow
1. **Start simple:** Begin with example code that works
2. **One change at a time:** Easier to find what breaks
3. **Test frequently:** Catch issues early
4. **Keep it clean:** Organize files and code logically
5. **Comment code:** Future you will appreciate it
---
*This troubleshooting guide is maintained by the community. If you find a solution to a problem not listed here, please consider [contributing](CONTRIBUTING.md) to help others!*
Loading…
Cancel
Save