Showing revision 4

No redirection for old revisions

SR8730

Difference between revision 3 and revision 4

Summary: Redirect

Changed:

< <outdated>
< This page needs a lot of tidying up.

< Samsung SR8730
< == Source
< * Firmware: https://github.com/LibreRVAC/librervac-sr8730
< == Device info (high level)
< |= Feature |= Status |= Comment |
< | Reflashable | <yes> yes | With a way to **revert back to original firmware** |
< | Original firmware is readable | <yes> yes | |
< | No soldering required | <yes> yes | |
< | Linux Board | <kinda> 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> yes | |
< | Remote control | <nope> no | Possible through web interface with OpenRVAC |
< | Wheels | <yes> 2 | Regular spring-loaded wheels |
< | Sensors | <yes> infrared | |
< | Cliff Sensors | <yes> how many? | |
< | Bumper | <yes> 2 switches | It is possible to read them separately |
< | User Input | <yes> 3 buttons | |
< | Display | <yes> leds | PCB has support for 7-segment display, so maybe with a little bit of soldering and 3D printing you can upgrade |
< | Speaker | <kinda> buzzer | |
< | Wi-Fi | <nope> no | Should be installed for OpenRVAC |
< | Bluetooth | <nope> no | |
< | Camera | <kinda> pointing up | Pointing up. TODO info about the camera |
< == Device info (low level)
< | Microcontroller | <kinda> pic32mx360f256l | PIC32 is fine as long as you swallow their toolchain bullshit (TODO) |
< | Accelgyro | <yes> TODO | |
< | Main Brush Spinning Direction | <yes> yes | |
< | Side Brushes Spinning Direction | <nope> no | |
< | Separate Control of Side Brushes | <nope> no | |
< | Current Sense on Wheels | <yes> yes | |
< | Current Sense on Main Brush | <kinda> encoder | No, but has an encoder instead. Weird. |
< | Real-time clock | <nope> no | |
< == Supported features (high level)
< |= Feature |= Legacy |= OpenRVAC |= Comment |
< | Web Interface | <nope> no | <yes> yes | |
< | Scheduled Start | <nope> no | <kinda> yes, but no user interface yet | |
< | Edge Hugging | <nope> no* | <kinda> planned | *in extremely small areas (3x1 meters) the robot may eventually start cleaning around the corners. It has only been observed once. |
< | Curved path | <nope> only when docking | <kinda> planned | |
< | Room mapping | <kinda> probably | <kinda> 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 |= OpenRVAC |= Comment |
< | Charging | <yes> yes | <yes> yes | |
< | Wheels | <yes> yes | <yes> yes | |
< | Main Brush | <yes> yes | <yes> yes | |
< | Side Brushes | <yes> yes | <yes> yes | |
< | Bumper | <yes> yes | <yes> yes | |
< | Beeper | <yes> yes | <yes> yes | |
< | LEDs | <yes> yes | <yes> yes | |
< | User Buttons | <yes> yes | <yes> yes | |
< | Wheel Buttons | <yes> yes | <yes> yes | |
< | Sensors | <yes> yes | <kinda> planned | |
< | Cliff Sensors | <yes> yes | <kinda> planned | |
< | Accelgyro | <yes> yes | <kinda> planned | |
< | Camera | <kinda> ? | <nope> no | No info about on-board GNU/Linux board |
< https://files.progarm.org/2015-08-10-192832_653x737_scrot.png
< * pic32mx360f256l [http://ww1.microchip.com/downloads/en/DeviceDoc/61143H.pdf]
< * pic16f716 (charger)
< * ILN2003AD
< * IKG2783D [http://pdf1.alldatasheet.com/datasheet-pdf/view/536315/IKSEMICON/IK62783D.html]
< * A3950ST [http://www.ret.hu/DataSheets/76_SMD_ANALOG_IC/SSG_104/3950.pdf]
< * DRV8840 [http://www.ti.com/lit/ds/symlink/drv8840.pdf]
< * 14051BG [http://pdf1.alldatasheet.com/datasheet-pdf/view/11962/ONSEMI/MC14051.html]
< * CruizCore R1050K [http://www.minfinity.com/Brochure/CruizCore_R1050K_ver1.0.pdf]
< * CLABSYS SV210 (Telechips TCC8322)
< MID_RECEIVER_R (SIGNAL, +5V, GND)
< |= Pin |= Index |= Type |= Function |= pullup/pulldown |= active |= Comment |
< | 1 | RG15 | in | bumper switch right | +3.3V | low | |
< | 2 | - | VDD | Power | | | 3.3V |
< | 3 | RE5 | out | UNKNOWN LED 1-2, LED 4, BATTERY LED 2, 7-Segment display top-left segment, colon-top segment | | high | ILN2003AD (pin 6) |
< | 4 | RE6 | out | LED 5, BATTERY LED 3, 7-Segment display center segment, colon-bottom segment | | high | ILN2003AD (pin 7) |
< | 5 | RE7 | out | motor left | ? | | A3950ST (pin 2 – MODE)|
< | 6 | RC1 | out | motor left | ? | | A3950ST (pin 3 – PHASE) – low level means forward |
< | 7 | RC2 | out | main brush | ? | | DRV8840 (pin 20 – PHASE) |
< | 8 | RC3 | out | main brush | ? | | DRV8840 (pin 19 – DECAY) |
< | 9 | RC4 | out | ic16 – C | ? | | 14051BG ic16 (pin 9 – C) |
< | 10 | RG6 | out | motor right | ? | | A3950ST (pin 2 – MODE) |
< | 11 | RG7 | out | motor right | ? | | A3950ST (pin 3 – PHASE) |
< | 12 | RG8 | in | MID_RECEIVER_R | +3.3V | ? | not connected! |
< | 13 | - | RESET | reset | | low | RC-circuit |
< | 14 | RG9 | in | bumper switch left | +3.3V | low | |
< | 15 | - | VSS | | | | |
< | 16 | - | VDD | | | | |
< | 17 | RA0 | JTAG | mode select | ? | ? | ???? also R1050K (pin 9 – reserved, pin 18 – nRST |
< | 18 | RE8 | in | rear right IR receiver | +3.3V | low | VIRTUAL_REAL_R (yes, REAL, hah) |
< | 19 | RE9 | in | button interrupt | +3.3V | low | one of three buttons |
< | 20 | RB5 | in | main brush encoder | +3.3V | low | |
< | 21 | RB4 | adc | battery thermistor (10kΩ ?) | | | |
< | 22 | RB3 | ? | comparator in+ battery voltage before/after? resistor | | | (912 +) (01b -) – 1/10.1 multiplier ???? |
< | 23 | RB2 | ? | comparator in- battery voltage after/before? resistor | ? | ? | ??? |
< | 24 | RB1 | ? | adapter detect? | ? | ? | ? |
< | 25 | RB0 | adc | buttons | | | HOME(1.5kΩ – 0.43V)/START(10kΩ – 1.65V)/MODE(4.7kΩ – 1.06V) |
< | 26 | RB6 | DBG | programming/debugging clock | | | jtag pin 1 (actually ICSP) |
< | 27 | RB7 | DBG | programming/debugging data I/O | | | jtag pin 2 (actually ICSP) |
< | 28 | RA9 | ? | linux board pin 10 | ? | ? | ? |
< | 29 | RA10 | in | MID_RECEIVER_L | +3.3V | ? | not connected! |
< | 30 | - | AVDD | | | | nothing fancy, just +3.3V |
< | 31 | - | AVSS | | | | nothing fancy, just GND |
< | 32 | RB8 | in | bottom right sensor | GND | high ?? | |
< | 33 | RB9 | ? | linux board pin 11 | ? | ? | ? |
< | 34 | RB10 | in | bottom center sensor | GND | high ?? | |
< | 35 | RB11 | in | bottom left sensor | GND | high ?? | |
< | 36 | - | VSS | | | | |
< | 37 | - | VDD | | | | |
< | 38 | RA1 | out | ic16 – A | ? | | 14051BG ic16 (pin 11 – A) |
< | 39 | RF13 | out | ic16 – B | ? | | 14051BG ic16 (pin 10 – B) |
< | 40 | RF12 | NC | not connected | GND | | |
< | 41 | RB12 | in | ic1 – X | ? | | 14051BG ic1 (pin 3 – X) |
< | 42 | RB13 | adc | right wheel motor current sense | ? | ? | ? |
< | 43 | RB14 | adc | left wheel motor current sense | ? | ? | ? |
< | 44 | RB15 | out | ic1, ic2 – C | ? | | 14051BG ic1, ic2 (pin 9 – C) |
< | 45 | - | VSS | | | | |
< | 46 | - | VDD | | | | |
< | 47 | RD14 | out | ic1, ic2 – B | ? | | 14051BG ic1, ic2 (pin 10 – B) |
< | 48 | RD15 | out | ic1, ic2 – A | ? | | 14051BG ic1, ic2 (pin 11 – A) |
< | 49 | RF14 | uart | RX ↔ accelgyro TX, also unknown port (pin 3) | GND | | |
< | 50 | RF15 | uart | TX ↔ accelgyro RX, also unknown port (pin 2) | GND | | |
< | 51 | RF3 | uart | TX ↔ linux board pin 9 | GND | | |
< | 52 | RF2 | uart | RX ↔ linux board pin 8 | GND | | |
< | 53 | RF8 | spi | 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 |
< | 56 | RG3 | NC | not connected | GND | | free I2C SDA |
< | 57 | RG2 | NC | not connected | GND | | free I2C SCL |
< | 58 | RA2 | I2C | EEPROM SCL | +3.3V | ? | also some micro IC 21 (pin 6) also R213 |
< | 59 | RA3 | I2C | EEPROM SDA | ? | ? | ? |
< | 60 | RA4 | out | side brushes | ? | ? | ? |
< | 61 | RA5 | NC | not connected | GND | | |
< | 62 | - | VDD | | | | |
< | 63 | RC12 | OSC | | | | |
< | 64 | RC15 | OSC | | | | |
< | 65 | - | VSS | | | | |
< | 66 | RA14 | in | docking receiver left | +3.3V | low | |
< | 67 | RA15 | in | docking receiver right | +3.3V | low | |
< | 68 | RD8 | in | left wheel motor encoder 1 | ? | ? | input capture |
< | 69 | RD9 | in | left wheel motor encoder 2 | ? | ? | input capture |
< | 70 | RD10 | in | right wheel motor encoder 2 | ? | ? | input capture |
< | 71 | RD11 | in | right wheel motor encoder 1 | ? | ? | input capture |
< | 72 | RD0 | out | motor left | ? | ? | A3950ST (pin 6 – enable) |
< | 73 | RC13 | ? | unknown port pin 4 | ? | ? | ? |
< | 74 | RC14 | NC | not connected | GND | | |
< | 75 | - | VSS | | | | |
< | 76 | RD1 | out | main brush enable | ? | high | DRV8840 (pin 21 – ENABLE) |
< | 77 | RD2 | out | enable charging ? | ? | ? | ? |
< | 78 | RD3 | out | motor left | ? | ? | A3950ST (pin 6 – enable) |
< | 79 | RD12 | out | enable bottom left/center/right sensors, ic2 – X | ? | ? | 14051BG ic2 (pin 3 – X) |
< | 80 | RD13 | out | beeper | ? | ? | no pwm? wtf? |
< | 81 | RD4 | out | ic16 – X | ? | ? | 14051BG ic16 (pin 3 – X) |
< | 82 | RD5 | out | vacuum enable | ? | ? | |
< | 83 | RD6 | in | Wheel lift left | +3.3V | low | low – robot is lifted |
< | 84 | RD7 | in | Wheel lift right | +3.3V | low | low – robot is lifted |
< | 85 | - | Vcap/Vcore | ? | ? | ? | ? |
< | 86 | - | ENVREG | ? | ? | ? | ? |
< | 87 | RF0 | in | dust box switch | +3.3V | low | low – dust box is inserted |
< | 88 | RF1 | out | 7-Segment display colon | | high | IK62783 (pin 8) |
< | 89 | RG1 | out | BATTERY LEDS | | high | IK62783 (pin 7) |
< | 90 | RG0 | out | TWO UNKNOWN LEDS | | high | IK62783 (pin 6), not connected |
< | 91 | RA6 | out | 5 LEDS | | high | IK62783 (pin 5) |
< | 92 | RA7 | out | Number 1 | | high | IK62783 (pin 4) |
< | 93 | RE0 | out | UNKNOWN LED 2-1, 7-Segment display top segment | | high | ILN2003AD (pin 1) |
< | 94 | RE1 | out | UNKNOWN LED 2-2, 7-Segment display top-right segment | | high | ILN2003AD (pin 2) |
< | 95 | RG14 | out | Number 2 | | high | IK62783 (pin 3) |
< | 96 | RG12 | out | Number 4 | | high | IK62783 (pin 1) |
< | 97 | RG13 | out | Number 3 | | high | IK62783 (pin 2) |
< | 98 | RE2 | out | LED 1, 7-Segment display bottom-right segment | | high | ILN2003AD (pin 3) |
< | 99 | RE3 | out | LED 2
, 7-Segment display bottom segment | | high | ILN2003AD (pin 4) |
< | 100 | RE4 | out | UNKNOWN LED 1-1, LED 3, BATTERY LED 1, 7-Segment display bottom-left segment | | high | ILN2003AD (pin 5) |
< \\
< \\
< 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 |
< | X0 | in | right right IR sensor | ? | ? | OBS_1 |
< | X1 | in | middle right IR sensor | ? | ? | OBS_2 |
< | X2 | in | front right IR sensor | ? | ? | OBS_3 |
< | X3 | in | front IR sensor | ? | ? | OBS_4 |
< | X4 | in | front left IR sensor | ? | ? | OBS_5 |
< | X5 | in | middle left IR sensor | ? | ? | OBS_6 |
< | X6 | in | left left IR sensor | ? | ? | OBS_7 |
< | X7 | in | GND | | | not connected |
< == 14051BG ic2
< |= Pin |= Type |= Function |= pullup/pulldown |= active |= Comment |
< | X0 | out | right right IR sensor | ? | ? | OBS_1 |
< | X1 | out | middle right IR sensor | ? | ? | OBS_2 |
< | X2 | out | front right IR sensor | ? | ? | OBS_3 |
< | X3 | out | front IR sensor | ? | ? | OBS_4 |
< | X4 | out | front left IR sensor | ? | ? | OBS_5 |
< | X5 | out | middle left IR sensor | ? | ? | OBS_6 |
< | X6 | out | left left IR sensor | ? | ? | OBS_7 |
< | X7 | out | GND | | | not connected |
< == 14051BG ic16
< Why did they even bother to solder this?
< |= Pin |= Type |= Function |= pullup/pulldown |= active |= Comment |
< | X0 | out | ? | ? | ? | S/M transmitter (through various resistors), not connected |
< | X1 | out | ? | ? | ? | S/M transmitter (through various resistors), not connected |
< | X2 | out | ? | ? | ? | S/M transmitter (through various resistors), not connected |
< | X3 | out | ? | ? | ? | S/M transmitter (through various resistors), not connected |
< | X4 | GND | | | | not connected |
< | X5 | GND | | | | not connected |
< | X6 | GND | | | | not connected |
< | X7 | out | speaker | ? | ? | not connected |
< 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
< == 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.
< 50 Hz, 20% duty cycle (with PWM????)
< * LED 1 – left (when looking from robot)
< * LED 2 – center
< * LED 3 - right (when looking from robot)
< | P6 | LED 1 dim |
< | P7 | LED 3 dim |
< | P9 | all LEDS bright |
< | P10 | LED 1 and LED 3 dim |
< | P13 | LED 2 dim |
< == Interesting facts
< * One of the ports is called “VIRTUAL_REAL_R” (silkscreen text). Same port on the opposite side is called “VIRTUAL_REAR_L”. It looks like a typo (both are rear).
< * Wheels are spinning into different directions. Possibly a routing error. It is still very easy to fix that in software.
< ----
< ==Analyzer dumps
< [[File:samsung_charger.csv]]
< [[File:samsung_charger.png]]
< -- Anonymous 2015-08-30 17:29 UTC
< ----
< More Analyzer Dumps
< [[File:samsung_charger.csv]]
< [[File:samsung_charger.png]]
< [[File:samsung-charger2.csv
]]
< [[File:samsung-charger2.png]]
< -- Alexandr Boldin 2015-08-30 21:03 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
< ----
< Fun:
< https://files.progarm.org/20160225_003.jpg
< -- AlexDaniel 2016-02-25 13:20 UTC
< ----
< Interrupt priorities (higher number means more priority):
< #
< #
< # Core Timer; Sensors; ADC (only for battery); Buzzer; Motors
< # Charging
< # UART Change notice
< # UART Timer
< Timers:
< # Sensors
< # Beeper
< # Motors / Charging
< # UART
< # Charging
< -- AlexDaniel 2016-04-08 03:51 UTC

to

> #REDIRECT [[Samsung Navibot SR8730, SR8750]]


#REDIRECT Samsung Navibot SR8730, SR8750