IP камера за 11$

За 11$ на AliExpress було куплено безкорпусну мережеву IP камеру із кабелем 720P. Було обрано фокусну відстань 2.8mm яка деє кут огляду ~100 градусів, а також є наявний механічний IR фільтр.

Якість пайки може бути. Купляючи перевіряйте щоб кабель був в наявності, бо конектори з шагом 0.64 проблематично обжати.

Процесор IPC XM510A1. Ідентифкатор у прошивці 23.

Прошивка V5.00.R01.00023650.10010.248201.00000 2017/7/18 16:33:56.

Остання камера прийшла із V5.00.R01.00023650.10010.249201 2017/5/31 17:13:5

Включає:

u-boot.bin.img - 194 560 byte
u-boot.env.img - 65 600 byte, не перезаписується, мість налаштувнаня mac
custom-x.cramfs.img - 262 144
romfs-x.cramfs.img - 3 604 480
user-x.cramfs.img - 2 621 440
web-x.cramfs.img - 1 310 720

Камера ідентифікується 50X10_32M.

Споживання 160 мА (на прошивці 249201) при 12 вольтах (2 вт). Гріється досить сильно. На прошивці 248201 споживання 120 мА (~1,5 Вт). Нагрів помірний: 55 градусів.

Ціль живити камеру від свинцевого акумулятора із БЖ UPS Mean Well PSC-35. Включено на тест на 15 вольт. Споживання майже не змінилося. Камера має DC-DC перетворювачі.

У роз’ємі який йшов штатно, виявилися виведені 7,8 () і 4,5 (+) контакти для пасивного POE. Розпіновка на фото нижче:

GND ⚪ ЗЕЛ ⚪ VIN ⚪ LED – ⚪ LED + ⚪ БІЛ-ЗЕЛ ⚪ СИН ⚪ БІЛ-СИН

Кабель скоротив, а також зафіксував у корпусі термоклеєм. Додано перемичку між GNG і LED-.

При підключенні до RB750UP автоматично подається живлення на порт, діод статусу засвічується червоним.

У RouterOS відображається споживання у mA і потужність по порту.

Ціль: отримати скріншот із камери віддалено. Способи:

1. Через HTTP за лінкою. Віддається пуста відповідь. Не підходить.

http://192.168.1.10/webcapture.jpg?command=snap&channel=1

2. Через RTSP.

rtsp://192.168.1.10:554/user=admin&password=&channel=1&stream=1.sdp?real_stream

далі можна зробити скріншот через ffmpeg.

ffmpeg -ss 2 -i "rtsp://192.168.1.10:554/user=admin&password=&channel=1&stream=1.sdp?real_stream" -y -f image2 -qscale 0 -frames 1 /var/www/tmp/screenshot.jpeg

Замітка по стрімах: камера віддає 1 канал, у якому є стріми. 0 стрім віддає потік для мобільних (D1 або CIF), а 1 стрім віддає нормальне розширення (720P). На DVR H264 можна обрати тільки канал, стрім не можна, рекордер пише 0 стрім у якому погана якість. Те саме у XMEye у режимі SD нормальна якість, а у HD якість для мобільних.

3. Через сервіс XMEye. Камера генерує код, за яким можна підключитися через хмарний сервіс. Пароль користувача admin.

5a230ca27a096896

На даний час не досліджувався.

Напис на платі BLK510A-S1-38×38-IM

Шлейф 24 контактний матриці 0218165556 К-2016.05.25.

Мікросхема мережі MII/RMII IC+ IP101GR.

Флеш пам’ять 25Q64JVSIQ. Є роз’єм Serial не розпаяний.

Конфігуратор камер DeviceManage можна завантажити на cctvcd.com.

Гарна мульти вендорна тапка для дослідження камер: ONVIF Device Manage.

Підключення UART на 115200 до 6 пінового роз’єму (розпіновка):

⚪ +3.3V ⚪ ? ⚪ RX ⚪ TX ⚪ GND ⬜ ?

При завантаженні випльовує U-Boot:

U-Boot 2014.04 (Dec 16 2016 - 14:37:27) 

CPU: XM510 
DRAM: 32 MiB 
In: serial 
Out: serial 
Err: serial 
Net: dwmac.20040000 
Press Ctrl+C to stop autoboot 
### CRAMFS load complete: 1640396 bytes loaded to 0x81000000 
## Booting kernel from Legacy Image at 81000000 ... 
Image Name: Linux-3.0.101 
Image Type: ARM Linux Kernel Image (uncompressed) 
Data Size: 1640332 Bytes = 1.6 MiB 
Load Address: 80008000 
Entry Point: 80008000 
Loading Kernel Image ... OK 

Starting kernel ... 

Uncompressing Linux... done, booting the kernel.

Вивід змінних:

U-Boot> printenv
baudrate=115200
bootargs=mem=18M console=ttyAMA0,115200 root=/dev/mtdblock1 rootfstype=cramfs mt dparts=xm_sfc:256K(boot),3520K(romfs),2560K(user),1280K(web),256K(custom),320K(m td)
bootcmd=cramfsload;bootm 0x81000000
bootdelay=1
cramfsaddr=0x40000
da=mw.b 0x81000000 ff 800000;tftp 0x81000000 u-boot.bin.img;sf probe 0;flwrite
dc=mw.b 0x81000000 ff 800000;tftp 0x81000000 custom-x.cramfs.img;sf probe 0;flwr ite
dd=mw.b 0x81000000 ff 800000;tftp 0x81000000 mtd-x.jffs2.img;sf probe 0;flwrite
dr=mw.b 0x81000000 ff 800000;tftp 0x81000000 romfs-x.cramfs.img;sf probe 0;flwri te
du=mw.b 0x81000000 ff 800000;tftp 0x81000000 user-x.cramfs.img;sf probe 0;flwrit e
dw=mw.b 0x81000000 ff 800000;tftp 0x81000000 web-x.cramfs.img;sf probe 0;flwrite
ethact=dwmac.20040000
ethaddr=00:12:16:cd:c7:02
ipaddr=192.168.1.10
netmask=255.255.255.0
serverip=192.168.1.107
stderr=serial
stdin=serial
stdout=serial
telnetctrl=0
tk=mw.b 0x81000000 ff 800000;tftp 0x81000000 uImage; bootm 0x81000000
ua=mw.b 0x81000000 ff 800000;tftp 0x81000000 upall_verify.img;sf probe 0;flwrite
up=mw.b 0x81000000 ff 800000;tftp 0x81000000 update.img;sf probe 0;flwrite
verify=n

Environment size: 1187/65532 bytes

Дійшли, для чого підключався по UART: хтось змінив пароль, тому стер розділ mtd. Програми ResetUser, Onvif Device Manager, Batch ConfigTool результату не дали.

U-Boot> sf erase 0x7b0000 0x50000
FLASH_ERASE-------[100%]
SF: 327680 bytes @ 0x7b0000 Erased: OK

Вивід довідки, немає команди копіювання розділу на tftp, не зміг переглянути старий пароль, а підпаюватися до SPI було впадло:

U-Boot> help
? - alias for 'help'
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
cramfsload- load binary file from a filesystem image
cramfsls- list files in a directory (default /)
crc32 - checksum calculation
dhcp - boot image via network using DHCP/TFTP protocol
echo - echo args to console
editenv - edit environment variable
env - environment handling commands
flwrite - SPI flash sub-system
go - start application at address 'addr'
help - print command description/usage
imxtract- extract a part of a multi-image
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loadx - load binary file over serial line (xmodem mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing address)
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
setexpr - set environment variable as the result of eval expression
sf - SPI flash sub-system
sleep - delay execution for some time
source - run script from memory
tftpboot- boot image via network using TFTP protocol
version - print monitor, compiler and linker version

Не рекомендую до покупки. Краще пару доларів доплати і взяти з корпусом і на потужнішому процесорі.

Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.