Samsung Navibot SR8730, SR8750, SR8751

This page needs a lot of tidying up.

Source

Difference between models

Description

Device info (high level)

Feature Status Comment
Reflashable yes With a way to revert back to original firmware
Original firmware is readable yes
No soldering required yes
Linux Board TODO Although it has a linux board, it was decided not to use it. Using a separate board is much more convenient. If you think that using existing linux board might be useful, then your contributions are welcome.
Docking Station yes
Remote control depends on the model Possible through web interface with LibreRVAC
Wheels standard Regular spring-loaded wheels
Sensors infrared
Cliff Sensors how many?
Bumper 2 switches It is possible to read them separately
User Input 3 buttons
Display leds PCB has support for 7-segment display, so maybe with a little bit of soldering and 3D printing you can upgrade
Speaker buzzer
Wi-Fi no Should be installed for LibreRVAC
Bluetooth no
Camera pointing up Pointing up. TODO info about the camera

Device info (low level)

Microcontroller pic32mx360f256l PIC32 is fine as long as you tolerate problems with their toolchain
Accelgyro TODO
Main Brush Spinning Direction yes
Side Brushes Spinning Direction no
Separate Control of Side Brushes no
Current Sense on Wheels yes
Current Sense on Main Brush encoder No, but has an encoder instead. Weird.
Real-time clock no

Supported features (high level)

Feature Legacy LibreRVAC Comment
Web Interface no yes
Scheduled Start no yes, but no user interface yet
Wall following no* planned *in extremely small areas (3x1 meters) the robot may eventually start cleaning around the corners. It has only been observed once.
Curved path only when docking planned
Room mapping probably planned In legacy firmware the robot is moving in parallel lines, but collected info suggests that it is unable to build a map

Supported features (low level)

Feature Legacy LibreRVAC Comment
Charging yes yes
Wheels yes yes
Main Brush yes yes
Side Brushes yes yes
Bumper yes yes
Beeper yes yes
LEDs yes yes
User Buttons yes yes
Wheel Buttons yes yes
Sensors yes planned
Cliff Sensors yes planned
Accelgyro yes planned
Camera ? no No info about on-board GNU/Linux board

Components

Pinout

More recent information may be found in pinout.h file.

https://files.progarm.org/2015-08-10-192832_653x737_scrot.png

Pin Index Type Function pullup/pulldown active Comment
1RG15in bumper switch right +3.3V low
2-VDD Power 3.3V
3RE5out UNKNOWN LED 1-2, LED 4, BATTERY LED 2, 7-Segment display top-left segment, colon-top segment high ILN2003AD (pin 6)
4RE6out LED 5, BATTERY LED 3, 7-Segment display center segment, colon-bottom segment high ILN2003AD (pin 7)
5RE7out motor left ?A3950ST (pin 2 – MODE)
6RC1out motor left ?A3950ST (pin 3 – PHASE) – low level means forward
7RC2out main brush ?DRV8840 (pin 20 – PHASE)
8RC3out main brush ?DRV8840 (pin 19 – DECAY)
9RC4out ic16 – C ?14051BG ic16 (pin 9 – C)
10RG6out motor right ?A3950ST (pin 2 – MODE)
11RG7out motor right ?A3950ST (pin 3 – PHASE)
12RG8in MID_RECEIVER_R +3.3V ?not connected!
13-RESET reset low RC-circuit
14RG9in bumper switch left +3.3V low
15-VSS
16-VDD
17RA0JTAG mode select ?????? also R1050K (pin 9 – reserved, pin 18 – nRST
18RE8in rear right IR receiver +3.3V low VIRTUAL_REAL_R (yes, REAL, hah)
19RE9in button interrupt +3.3V low one of three buttons
20RB5in main brush encoder +3.3V low
21RB4adc battery thermistor (10kΩ ?)
22RB3?comparator in+ battery voltage before/after? resistor (912 +) (01b -) – 1/10.1 multiplier ????
23RB2?comparator in- battery voltage after/before? resistor ?????
24RB1?adapter detect????
25RB0adc buttons HOME(1.5kΩ – 0.43V)/START(10kΩ – 1.65V)/MODE(4.7kΩ – 1.06V)
26RB6DBG programming/debugging clock jtag pin 1 (actually ICSP)
27RB7DBG programming/debugging data I/O jtag pin 2 (actually ICSP)
28RA9?linux board pin 10???
29RA10in MID_RECEIVER_L +3.3V ?not connected!
30-AVDD nothing fancy, just +3.3V
31-AVSS nothing fancy, just GND
32RB8in bottom right sensor GND high ??
33RB9?linux board pin 11???
34RB10in bottom center sensor GND high ??
35RB11in bottom left sensor GND high ??
36-VSS
37-VDD
38RA1out ic16 – A ?14051BG ic16 (pin 11 – A)
39RF13out ic16 – B ?14051BG ic16 (pin 10 – B)
40RF12NC not connected GND
41RB12in ic1 – X ?14051BG ic1 (pin 3 – X)
42RB13adc right wheel motor current sense ???
43RB14adc left wheel motor current sense ???
44RB15out ic1, ic2 – C ?14051BG ic1, ic2 (pin 9 – C)
45-VSS
46-VDD
47RD14out ic1, ic2 – B ?14051BG ic1, ic2 (pin 10 – B)
48RD15out ic1, ic2 – A ?14051BG ic1, ic2 (pin 11 – A)
49RF14uart RX ↔ accelgyro TX, also unknown port (pin 3)GND
50RF15uart TX ↔ accelgyro RX, also unknown port (pin 2)GND
51RF3uart TX ↔ linux board pin 9GND
52RF2uart RX ↔ linux board pin 8GND
53RF8spi data output GND not connected – WOOOHOOO! :(
54-out turn on power for accelgyro and linux board ?low could have been spi data input, but wasted for some shit
55-in rear left IR receiver +3.3V low VIRTUAL_REAR_L
56RG3NC not connected GND free I2C SDA
57RG2NC not connected GND free I2C SCL
58RA2I2C EEPROM SCL +3.3V ?also some micro IC 21 (pin 6) also R213
59RA3I2C EEPROM SDA ???
60RA4out side brushes ???
61RA5NC not connected GND
62-VDD
63RC12OSC
64RC15OSC
65-VSS
66RA14in docking receiver left +3.3V low
67RA15in docking receiver right +3.3V low
68RD8in left wheel motor encoder 1??input capture
69RD9in left wheel motor encoder 2??input capture
70RD10in right wheel motor encoder 2??input capture
71RD11in right wheel motor encoder 1??input capture
72RD0out motor left ??A3950ST (pin 6 – enable)
73RC13?unknown port pin 4???
74RC14NC not connected GND
75-VSS
76RD1out main brush enable ?high DRV8840 (pin 21 – ENABLE)
77RD2out enable charging ????
78RD3out motor left ??A3950ST (pin 6 – enable)
79RD12out enable bottom left/center/right sensors, ic2 – X ??14051BG ic2 (pin 3 – X)
80RD13out beeper ??no pwm? wtf?
81RD4out ic16 – X ??14051BG ic16 (pin 3 – X)
82RD5out vacuum enable ??
83RD6in Wheel lift left +3.3V low low – robot is lifted
84RD7in Wheel lift right +3.3V low low – robot is lifted
85-Vcap/Vcore ????
86-ENVREG ????
87RF0in dust box switch +3.3V low low – dust box is inserted
88RF1out 7-Segment display colon high IK62783 (pin 8)
89RG1out BATTERY LEDS high IK62783 (pin 7)
90RG0out TWO UNKNOWN LEDS high IK62783 (pin 6), not connected
91RA6out 5 LEDS high IK62783 (pin 5)
92RA7out Number 1high IK62783 (pin 4)
93RE0out UNKNOWN LED 2-1, 7-Segment display top segment high ILN2003AD (pin 1)
94RE1out UNKNOWN LED 2-2, 7-Segment display top-right segment high ILN2003AD (pin 2)
95RG14out Number 2high IK62783 (pin 3)
96RG12out Number 4high IK62783 (pin 1)
97RG13out Number 3high IK62783 (pin 2)
98RE2out LED 1, 7-Segment display bottom-right segment high ILN2003AD (pin 3)
99RE3out LED 2, 7-Segment display bottom segment high ILN2003AD (pin 4)
100RE4out UNKNOWN LED 1-1, LED 3, BATTERY LED 1, 7-Segment display bottom-left segment high ILN2003AD (pin 5)

Multiplexers

https://files.progarm.org/2015-08-12-011446_235x322_scrot.png

White – turn on sensor, Yellow – analog signal

14051BG ic1

Pin Type Function pullup/pulldown active Comment
X0in right right IR sensor ??OBS_1
X1in middle right IR sensor ??OBS_2
X2in front right IR sensor ??OBS_3
X3in front IR sensor ??OBS_4
X4in front left IR sensor ??OBS_5
X5in middle left IR sensor ??OBS_6
X6in left left IR sensor ??OBS_7
X7in GND not connected

14051BG ic2

Pin Type Function pullup/pulldown active Comment
X0out right right IR sensor ??OBS_1
X1out middle right IR sensor ??OBS_2
X2out front right IR sensor ??OBS_3
X3out front IR sensor ??OBS_4
X4out front left IR sensor ??OBS_5
X5out middle left IR sensor ??OBS_6
X6out left left IR sensor ??OBS_7
X7out GND not connected

14051BG ic16

Why did they even bother to solder this?

Pin Type Function pullup/pulldown active Comment
X0out ???S/M transmitter (through various resistors), not connected
X1out ???S/M transmitter (through various resistors), not connected
X2out ???S/M transmitter (through various resistors), not connected
X3out ???S/M transmitter (through various resistors), not connected
X4GND not connected
X5GND not connected
X6GND not connected
X7out speaker

Extra info

Multiplexer frequency is about 28.25 Hz.

Weird IR pwm – 900 Hz (55% duty cycle? Probably just 50 Hz)

Linux ↔ PIC baud rate is 550400 (TODO or is it?)

MID_RECEIVER_R (SIGNAL, +5V, GND)

Current consumption

mode consumption
idle 200mA
working 1.15A
working (without brushes)0.75A
sleep 80mA which is 25 hours with full battery under perfect conditions

ICSP

ICSP pins – CLOCK, DAT, MCLR, VCC, GND (same on charger)

Charging

Charger requires 350-1500 Ohm resistance between contacts.

P6LED 1 dim
P7LED 3 dim
P9all LEDS bright
P10LED 1 and LED 3 dim
P13LED 2 dim

Interesting facts

Comments:

Analyzer dumps

File:samsung_charger.csv
File:samsung_charger.png

-- Anonymous 2015-08-30 17:29 UTC

Charger dump with IR Receiver on channel 3

File:last_test.csv

-- Alexandr Boldin 2015-08-30 21:09 UTC

File:samsung_battery_log_edited.ods

-- Alexandr Boldin 2015-09-12 16:02 UTC

6E326

-- AlexDaniel 2015-09-12 20:16 UTC

SI-8008TMX real max output current 360mA (which leaves more than 1A for our stuff!)

-- AlexDaniel 2015-09-12 21:13 UTC

Funny:
https://files.progarm.org/20160225_003.jpg

-- AlexDaniel 2016-02-25 13:20 UTC

Interrupt priorities (higher number means more priority):

  1. Core Timer; Sensors; ADC (only for battery); Buzzer; Motors
  2. Charging
  3. UART Change notice
  4. UART Timer

Timers:

  1. Sensors
  2. Beeper
  3. Motors / Charging
  4. UART
  5. Charging

-- AlexDaniel 2016-04-08 03:51 UTC