Skip to content

Latest commit

 

History

History
158 lines (100 loc) · 7.2 KB

README-chatgpt.md

File metadata and controls

158 lines (100 loc) · 7.2 KB

Disclaimer

This README.md is generated by ChatGPT-4 from OpenAI based on a prompt provided by the developer. Instructions and information might be inaccurate, outdated, or incomplete. Please verify the steps and details before proceeding.

LandLord Firmware for Worx Robotic Mower

LandLord is a custom, open-source firmware designed for Worx robotic mowers with mainboard numbers db275 and db504, specifically for Worx models WG79x.xx. This firmware aims to provide improved functionality and compatibility with the OpenMower ROS project.

Table of Contents

  1. Disclaimer
  2. Features
  3. Compatibility
  4. Dependencies
  5. Installation
  6. Building and Compiling
  7. Flashing Firmware
  8. Contributing
  9. Support and Community
  10. Future Development
  11. License

Features

  • Compatible with OpenMower ROS project (in development)
  • Preserves the original bootloader for easy flashing and reverting
  • Utilizes the WiFi port on the mainboard for communication
  • JSON-based SPI interface between mainboard and Raspberry Pi

Compatibility

The LandLord firmware is designed for the following mainboards and Worx models:

  • Mainboard db275 (Worx models WG79x.xx)
  • Mainboard db504 (Worx models WG79x.xx)

Please note that there is currently an issue with the HAL layer on the db275 mainboard that needs investigation.

Dependencies

LandLord firmware relies on the GNU Arm Embedded Toolchain (arm-none-eabi-gcc) for compilation. Instructions on how to install the toolchain for the 4 most used Linux distributions can be found here.

Installation

  1. Clone the repository:
git clone https://github.com/Damme/LandLord.git
  1. Install the GNU Arm Embedded Toolchain for your Linux distribution following the instructions provided in the Dependencies section.

Building and Compiling

  1. Navigate to the LandLord directory:
cd LandLord
  1. Choose the appropriate CPU for your mainboard:
  • For db275 (CPU=1768)
  • For db504 (CPU=1788)
  1. Compile the project using the Makefile:
make CPU=<CPU_VALUE>

Replace <CPU_VALUE> with the appropriate value for your mainboard (either 1768 or 1788).

A CMake version of the project is in development but not committed yet.

Flashing Firmware

LandLord firmware keeps the original bootloader intact, allowing for easy flashing and the possibility to revert. The binary base for the db504 mainboard is 0x10000, and for the db275 mainboard, it is 0x9000. The provided create_bin.py script generates the necessary binaries for db504 with a checksum at the first 4 bytes.

There are two methods to flash the firmware: using a USB stick or using OpenOCD.

Flashing using a USB stick

  1. Compile and for db504 generate the binary file:
python create_bin.py
  1. Name the generated binary file according to your mainboard:
  • For db275: DB275_GRAF.BIN (This is the unmodified main.bin)
  • For db504: db504*.bin (this need a checksum in the beginning of the file from create_bin.py
  1. Copy the binary file to a USB stick.

  2. Insert the USB stick into your Worx robotic mower and power it on. The mower should detect the firmware update and start the flashing process.

Flashing using OpenOCD

  1. Compile

  2. Flash the firmware using OpenOCD:

Example configuration for db504 LPC1788:

source [find raspberrypi2-mod.cfg]
transport select swd
source [find target/lpc17xx.cfg]
adapter speed 500
program main.bin 0x10000
reset run

And for db275 program main.bin 0x9000

Contributing

To contribute to the LandLord project, please submit pull requests or report issues on the GitHub repository.

Future Development

We are constantly working to improve the LandLord firmware and expand its compatibility. There is an ongoing reverse engineering effort on the Discord server to support the new generation of Worx robotic mowers. By collaborating and sharing knowledge within the community, we aim to bring the benefits of the LandLord firmware and its features to an even wider range of devices.

If you have experience in reverse engineering or would like to contribute to the development of LandLord firmware for the new generation of mowers, we encourage you to join the Discord server and participate in the discussions. Your expertise and insights will be invaluable in shaping the future of this open-source project.

Support and Community

For discussions, support, and questions, join the Discord server and participate in the #worx-landroid channel. This community forum is an excellent place to share ideas, ask for help, or collaborate with other LandLord users.

For additional information and updates, visit the development blog. Please note that the blog is not updated very often, so the Discord server is the best place to get the most recent news and updates.

Feel free to explore the following resources to learn more about the project:

License

This project is licensed under an open-source license that prohibits unauthorized use for commercial purposes. Please note that some parts of the code are not the original work of the LandLord project and are subject to their respective licenses. These external components include, but are not limited to:

Additionally, the LandLord project may contain code snippets or ideas borrowed from other projects, Stack Exchange, and various online sources. Unfortunately, a proper journal was not maintained to track these contributions. We sincerely apologize for any unintentional oversight in providing due credit. If you recognize any code or ideas that should be attributed to you or others, please contact the project maintainer to rectify the situation and ensure proper acknowledgment.

Before using, modifying, or redistributing any part of the LandLord project, please ensure that you comply with the licenses of the respective components. It is essential to give proper attribution and respect the work of the original authors when using their code.

The specific open-source license for the LandLord project will be chosen and added to the repository in the near future. In the meantime, please adhere to the general principles outlined above to ensure compliance with open-source guidelines and the wishes of the project's contributors.