CAN Wizard is a project designed for communication using the CAN (Controller Area Network) protocol, primarily targeted at embedded systems utilizing the ESP32 microcontroller family. This project is developed using ESP-IDF and supports ESP32-C3, allowing flexible development for different use cases.
Here are more information:
- Xa6p Article. (in Russian)
- Traduccion in English.
- CAN Communication: Implements CAN communication protocols, enabling data exchange between devices over a CAN bus.
- File System Integration: Includes file system operations for handling configuration or logging.
- Custom serial Console: A custom serial console implementation for interacting with the system and issuing commands.
- Modular Design: Organized in components for easier maintenance and scalability, including linked lists and command utilities.
-
Hardware:
- ESP32-C3 microcontroller
- SN65HVD230 CAN transceiver
-
Software:
- ESP-IDF (version x.x.x or newer)
- CMake (for project build system)
- Python (for ESP-IDF and related tools)
-
Clone the Repository: Clone this repository using:
git clone --recursive [email protected]:okhsunrog/can_wizard.git
-
Install ESP-IDF: Follow the official ESP-IDF installation guide for your operating system: ESP-IDF Setup Guide
-
Configure ESP-IDF: Set up your environment by running the following commands:
cd <project-directory> idf.py set-target esp32c3 idf.py menuconfig
-
Build and Flash: Build the project and flash it to your microcontroller:
idf.py build idf.py flash idf.py monitor
The CAN Wizard project provides several commands that can be executed through a console interface:
can_send <data>: Send CAN data over the bus.can_receive: Receive CAN data from the bus.can_status: Display the current CAN status.
Additional commands can be explored through the console by typing help.
The project includes basic file system operations to read and write configuration or log files. These operations can be accessed through the fs_* commands in the console.
can_wizard-main/
├── components/
│ └── C-Linked-List/ # Linked list implementation used in the project
├── main/
│ ├── can.c # CAN communication implementation
│ ├── console.c # Custom console implementation
│ ├── cmd_can.c # CAN command handlers
│ ├── fs.c # File system operations
│ └── main.c # Main entry point
└── CMakeLists.txt # Project build system configuration
- code refactoring
- test dumb mode
- fix prompt flickering with some commands
- add standard ID filtering to cansmartfilter
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please submit a pull request or open an issue to discuss your ideas.
Danila Gornushko