{"id":468,"date":"2010-04-27T15:43:41","date_gmt":"2010-04-27T07:43:41","guid":{"rendered":"http:\/\/www.computersolutions.cn\/blog\/?p=468"},"modified":"2013-01-04T22:50:49","modified_gmt":"2013-01-04T14:50:49","slug":"ip-cam-hacking-pt3","status":"publish","type":"post","link":"https:\/\/www.computersolutions.cn\/blog\/2010\/04\/ip-cam-hacking-pt3\/","title":{"rendered":"IP Cam Hacking \u2013 pt#3"},"content":{"rendered":"<p>I&#8217;ve finally received my 2nd camera, so I can now start working properly on it (assuming I get some free time too!)<\/p>\n<p>High resolution photos of the board are below:<\/p>\n<p><a href=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_underside.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_underside-300x200.jpg\" alt=\"\" title=\"ipcam_underside\" width=\"300\" height=\"200\" class=\"aligncenter size-medium wp-image-471\" srcset=\"https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_underside-300x200.jpg 300w, https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_underside-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_topside.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_topside-300x200.jpg\" alt=\"\" title=\"ipcam_topside\" width=\"300\" height=\"200\" class=\"aligncenter size-medium wp-image-470\" srcset=\"https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_topside-300x200.jpg 300w, https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_topside-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_wifi_daughter_board.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_wifi_daughter_board-300x200.jpg\" alt=\"\" title=\"ipcam_wifi_daughter_board\" width=\"300\" height=\"200\" class=\"aligncenter size-medium wp-image-469\" srcset=\"https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_wifi_daughter_board-300x200.jpg 300w, https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2010\/04\/ipcam_wifi_daughter_board-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Main parts used are:<\/p>\n<p><strong>RAM &#8211;  Winbond W9812G61H-6 (2M)<\/strong><br \/>\nAccording to the data sheet, that 2M X 4 BANKS X 16 BITS SDRAM @ 3.3V \/ 166MHz\/CL3<br \/>\nData sheet is here &#8211; <a href=\"http:\/\/jp.ic-on-line.cn\/IOL\/datasheet\/w9812g6ih_4223255.pdf\">http:\/\/jp.ic-on-line.cn\/IOL\/datasheet\/w9812g6ih_4223255.pdf<\/a><\/p>\n<p><strong>Flash &#8211; Spansion S29AL016D (2M)<\/strong><br \/>\nOther boards are populated with different providers &#8211; some people have Samsung flash&#8230;<br \/>\nMine has the Spansion onboard both units.  Its programmable onboard (via the uBoot)<br \/>\nData sheet here &#8211; <a href=\"http:\/\/www.datasheetpro.com\/259722_view_S29AL016D_datasheet.html\">http:\/\/www.datasheetpro.com\/259722_view_S29AL016D_datasheet.html<\/a><\/p>\n<p><strong>Sound Card &#8211; ALC203<\/strong><br \/>\nThis is obviously used as the BSP for the Novotel provides sample code for that card, making their life easier&#8230;<br \/>\nData sheet here &#8211; <a href=\"http:\/\/realtek.info\/pdf\/alc203.pdf\">http:\/\/realtek.info\/pdf\/alc203.pdf<\/a><\/p>\n<p><strong>Wired Ethernet &#8211; Davicom DM9161AEP (10\/100 Ethernet)<\/strong><br \/>\nData sheet here &#8211;<br \/>\n<a href=\"http:\/\/www.davicom.com.tw\/userfile\/24247\/DM9161AEPProductBrief_v1.0.pdf\">http:\/\/www.davicom.com.tw\/userfile\/24247\/DM9161AEPProductBrief_v1.0.pdf<\/a><\/p>\n<p><strong>8 Port Relay Driver (for the motors etc) &#8211; ULN2803<\/strong><br \/>\nData sheet here  &#8211; <a href=\"http:\/\/www.rentron.com\/Files\/uln2803.pdf\">http:\/\/www.rentron.com\/Files\/uln2803.pdf<\/a><br \/>\nMore info \/ explanation here &#8211; <a href=\"http:\/\/wiki.answers.com\/Q\/What_is_Relay_driver_ULN2803\">http:\/\/wiki.answers.com\/Q\/What_is_Relay_driver_ULN2803<\/a><\/p>\n<p><strong>Wifi &#8211; RALINK 2571 (on daughterboard).  Wireless G <\/strong><br \/>\nThis is a USB based chipset, so we&#8217;re using 4 usb connector pins for this one.<br \/>\nNo datasheet, as Ralink are dicks.<\/p>\n<p><strong>CPU &#8211; ARM7 N745CDG (Arm 7 by Nuvoton)<\/strong><br \/>\nLot of info for chip available at Nuvoton. <\/p>\n<p>W90N745 makes use of the ARM7TDMI microprocessor core of ARMR and 0.18um production to achieve standard operation at 80MHz. 128-Pin LQPF packing is also used to save electricity and lower costs. The built-in 4KBytes I-Cache and 4KBytes D-Cache of W90N745 can also be set as On-Chip RAM according to the needs of product developers. With regards to system integration, W90N745 is suitable for network-related applications such as management switch, IP cameras, VoIP and printer servers.<br \/>\nFeatures<br \/>\n    * One Ethernet MAC<br \/>\n    * One USB 2.0 full speed Host controller<br \/>\n    * One USB 2.0 full speed Host\/Device controller<br \/>\n    * AC97\/I2S<br \/>\n    * 4 UARTs<br \/>\n    * I\u00b2C Master<br \/>\n    * 31 GPIOs<br \/>\n    * Power Management<\/p>\n<p>Data sheets &#8211; <a href=\"http:\/\/www.nuvoton.com\/hq\/enu\/ProductAndSales\/ProductLines\/ConsumerElectronicsIC\/ARMMicrocontroller\/ARMMicrocontroller\/NUC745A.htm\">http:\/\/www.nuvoton.com\/hq\/enu\/ProductAndSales\/ProductLines\/ConsumerElectronicsIC\/ARMMicrocontroller\/ARMMicrocontroller\/NUC745A.htm<\/a><br \/>\nThe uclinux sample distribution and files can be downloaded here &#8211; <a href=\"http:\/\/www.metavert.com\/public\/NO-SUPPORT\/NUC700%20Series%20MCU%20uCLinux%20BSP.zip\">http:\/\/www.metavert.com\/public\/NO-SUPPORT\/NUC700%20Series%20MCU%20uCLinux%20BSP.zip<\/a><\/p>\n<p>I&#8217;m just waiting on a JLINK USB adaptor, then I&#8217;m ready to roll.<\/p>\n<p>[Updates]<\/p>\n<p>David M from comments at <a href=\"http:\/\/irishjesus.wordpress.com\/2010\/03\/30\/hacking-the-foscam-fi8908w\/#comments\">http:\/\/irishjesus.wordpress.com\/2010\/03\/30\/hacking-the-foscam-fi8908w\/#comments<\/a> provided his rom sizing from his device, I&#8217;ve got some notes on that here.<\/p>\n<p>MAC Address : 00:30:10:C1:D0:39<br \/>\nIP Address : 0.0.0.0<br \/>\nDHCP Client : Enabled<br \/>\nCACHE : Enabled<br \/>\nBL buffer base : 0\u00d700300000<br \/>\nBL buffer size : 0\u00d700100000<br \/>\nBaud Rate : -1<br \/>\nUSB Interface : Disabled<br \/>\nSerial Number : 0xFFFFFFFF<\/p>\n<p>For help on the available commands type \u2018h\u2019<\/p>\n<p>Press ESC to enter debug mode \u2026<\/p>\n<p>bootloader > ls<br \/>\nImage: 0 name:BOOT INFO base:0x7F010000 size:0\u00d700000038 exec:0x7F010000 -af<br \/>\nImage: 7 name:linux.bin base:0x7F020000 size:0x000BB334 exec:0\u00d700008000 -acxz<br \/>\nImage: 6 name:romfs.img base:0x7F0E0000 size:0x0008D000 exec:0x7F0E0000 -a<\/p>\n<p>My notes:<\/p>\n<p>Image: 0 name:BOOT INFO base:0x7F010000 size:0\u00d700000038 exec:0x7F010000 -af<\/p>\n<p>[Image 0 is 38 bytes (small!).<br \/>\nBoot info is not the bootloader &#8211; 38bytes is way too small for that.<br \/>\nIt actually stores our bootloader config settings.<br \/>\neg ip address, cache setting, boot loader buffer address etc.<br \/>\nOur initial settings are below:<\/p>\n<p>MAC Address : 00:30:10:C1:D0:39 (should be changed, this Mac range belongs to Cisco!)<br \/>\nIP Address : 0.0.0.0 (unset)<br \/>\nDHCP Client : Enabled  (pulls ip from dhcp..)<br \/>\nCACHE : Enabled (onboard chip cache)<br \/>\nBL buffer base : 0\u00d700300000<br \/>\nBL buffer size : 0\u00d700100000<br \/>\nBaud Rate : -1 (unset \/ so defaults to 115,200,8,n,1)<br \/>\nUSB Interface : Disabled (NC745 has no USB for bootloader)<br \/>\nSerial Number : 0xFFFFFFFF (unset)<\/p>\n<p>-af indicates Active (a) , and is a Filesystem image (f)]<\/p>\n<p>Image: 7 name:linux.bin base:0x7F020000 size:0x000BB334 exec:0\u00d700008000 -acxz<br \/>\n[Image 7 is our OS &#8211; Linux 2.4.20 ucLinux  Not sure why Maverick didn&#8217;t build on 2.6, there is more hardware support.  Probably time dependant &#8211; 2.6 may not have been available, plus the Nuvoton sample code is also 2.4 based&#8230;<\/p>\n<p>-axcz says  active (a)  executable (x) copied to ram (c) compressed (z)  ]<\/p>\n<p>Image: 6 name:romfs.img base:0x7F0E0000 size:0x0008D000 exec:0x7F0E0000 -a<\/p>\n<p>[Our rom image &#8211; aka userland stuff.  This is where we&#8217;ll be putting our own code.  Looks like its stuck quite high up in the flash, although doesn&#8217;t need to be given size of the Linux rom.  We have plenty of room available.<\/p>\n<p>We&#8217;ll need to make appropriate changes to Image 6 size on flashing<\/p>\n<p>-a says active partition.]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve finally received my 2nd camera, so I can now start working properly on it (assuming I get some free time too!) High resolution photos of the board are below: Main parts used are: RAM &#8211; Winbond W9812G61H-6 (2M) According to the data sheet, that 2M X 4 BANKS X 16 BITS SDRAM @ 3.3V [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[252,25],"tags":[251,245,241,240,250,249],"class_list":["post-468","post","type-post","status-publish","format-standard","hentry","category-ip-cam","category-technical-mumbo-jumbo","tag-embedded","tag-foscam","tag-hacking","tag-ipcam","tag-nc745","tag-nuvoton"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/comments?post=468"}],"version-history":[{"count":8,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/468\/revisions"}],"predecessor-version":[{"id":920,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/468\/revisions\/920"}],"wp:attachment":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/media?parent=468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/categories?post=468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/tags?post=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}