Skip to content

Repository files navigation

Project Stauts

Functional - Most of the mower functionalies are implemented and have been tests.

ToDo

  • Implement perimeter wire sensing
  • Extend status message to include perimeter wire data
  • Test perimeter wire
  • Implement panel UART and data transfer
  • Extend status message to include top pannel data
  • Test pannel integration

Serial Protocol

To control the mower a text based USB Serial protocol is used. Simply connect to the mower with a USB data cable and open a USB serial connection with the following setting:

  • baud rate: 115200
  • stop bits: 1
  • parity: none
  • nb. of bits: 8

Status Output

Beside some log information mainly at boot time the B005CSerial sends a periodic status update. The status update is a JSON formatted message:

{'state':0,'emergency':0,'blade_state':0,'blade_temp': 21.20,'rain':0,'home':0,'play':0,'battery_v': 26.18,'charger_state:'0,'charger_v': 30.98,'charger_a': 1.02,}

Commands

CommandParameter TypeDescriptionExample
armNeeds to be issued to enable any motorarm
speed:left_speed right_speedfloat (-0.5 to 0.5)Controls the speed of the left and right wheelspeed:0.3 0.3
cut:on_offbooleanControls the cutting bladecut:1
charger:on_offbooleanControls the chargercharger:1
haltEmergency Stophalt
ackNeeds to be sent every 500ms to avoid triggering the emergency timeoutack

PIN MAPPING

PINPeripheralTypeConfig
A8 (TODO: not working)Mechanical tiltGPIO(HIGH when set) GPIO_MODE_INPUT GPIO_PULLDOWN
B8 (TODO: test)Perimeter Sense ControlGPIOGPIO_MODE_OUTPUT_PP
B9 (TODO: test)Perimeter Sense ControlGPIOGPIO_MODE_OUTPUT_PP
A10 (TODO: test)Panle UART Port J16UART1 RX (DMA)
A9 (TODO: test)Panle UART Port J16UART1 TX (DMA)
B1BuzzerPWMTIM4_CH3
C9Play buttonGPIO(LOW when pressed) GPIO_MODE_INPUT GPIO_PULLUP
E8Charge Control PinsTIM1_CH1NHighSide/LowSide MosFET
E9Charge Control PinsTIM1_CH1HighSide/LowSide MosFET
B13Home buttonGPIO(LOW when pressed) GPIO_MODE_INPUT GPIO_PULLUP
E2Rain SensorGPIO(LOW when active) GPIO_MODE_INPUT GPIO_PULLUP
C0Stop buttonGPIOyellow (HIGH when pressed) GPIO_MODE_INPUT GPIO_PULLDOWN
C8Stop buttonGPIOwhite (HIGH when pressed) GPIO_MODE_INPUT GPIO_PULLDOWN
B2LEDGPIOGPIO_MODE_OUTPUT_PP GPIO_PULLDOWN GPIO_SPEED_HIGH
C524V EnableGPIOGPIO_MODE_OUTPUT_PP GPIO_NOPULL GPIO_SPEED_HIGH
E14Blade Motor nRESETGPIO(HIGH for no RESET) GPIO_MODE_OUTPUT_PP GPIO_NOPULL GPIO_SPEED_HIGH
E15Drive MotorsGPIOHC366 OE Pins (LOW to enable) GPIO_MODE_OUTPUT_PP GPIO_NOPULL GPIO_SPEED_HIGH
D0Wheel lift blueGPIOGPIO_MODE_INPUT GPIO_PULLDOWN
D1Wheel lift redGPIOGPIO_MODE_INPUT GPIO_PULLDOWN
D6Driver motorsUART2 RX (DMA)
D5Driver motorsUART2 TX (DMA)
C7Blade motorsUART6 RX (DMA)
C6Blade motorUART6 TX (DMA)
A12USB SerialUSB_DP
A11USB SerialUSB_DM
A1Charge CurrentADC1
A2Charge VoltageADC1
A3Battery VoltageADC1
A7Charger Input VoltageADC1
C2Blade NTCADC1
A6PerimeterADC1 (DMA)
H0Crystal 8MhzRCC HSE
H1Crystal 8MhzRCC HSE
A10 [not used]Master UART Port J16UART1 RX
A9 [not used]Master UART Port J16UART1 TX
B3 [not used]SOFT I2CGPIO
B4 [not used]SOFT I2CGPIO
D2 [not used]STOP HALL SensorGPIO(HIGH when set) TODO: find config
D3 [not used]STOP HALL SensorGPIO(HIGH when set) TODO: find config
B3 [not used]Flash CLKSPI3
B4 [not used]Flash MISOSPI3
B5 [not used]SPI3 Flash MISISPI3
A15 [not used]Flash nCSGPIOGPIO_MODE_OUTPUT_PP GPIO_PULLUP GPIO_SPEED_HIGH
C11 [not used]Master UART Red Port J18UART4 RX (DMA)
C10 [not used]UMaster UART Red Port J18UART4 TX (DMA)

About

YardForce Classic 500B reverse engineered USB Serial Interface

Resources

Stars

3 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages