News:

Re-organized the forum to more cleanly delineate the development section, as the end user support side appears to have taken a life of its own!

Author Topic: Tenvis Camera  (Read 44415 times)

March 09, 2011, 10:55:27 am
Hi!

Yes, I've read all your post and modified the tools to get them working with the lastest versions of the firmware.

Indeed I'm working with Foscam firmware, but my camera is from Tenvis and I'm waiting for the firmware, that is supposed to be very, very similar to Foscam firmware.

Thanks for all the keys. One question,

Have you loaded your own kernel with a modified camera binary?

Regards!

  • No avatar
  • *****
March 09, 2011, 11:23:29 am

March 09, 2011, 11:33:55 am
Thanks for your quick reply...

mov   rX, #80   ; 0x50 'P' => where rX is any reg. it's in other parts of the code. But it seems to be the port (by the way, 'P' from port, I hope)

I can't try it because I don't know if loading the Foscam firmware in a Tenvis camera (it's exactly the same, I guess). Once I get tenvis firmware I'll try it.



Thanks for all your help!

  • No avatar
  • *****
March 09, 2011, 12:01:03 pm
No.

'P' because 0x50 (80 in decimal) is ascii character 'P'


Your hardware is exactly the same as ours (from looks), although if the firmware is what I downloaded, then it isn't.  Assuming I got the wrong file looks like you're buying from one of the 2nd tier factories, that does work for others, or bought the design from someone like Maygion.

So, its going to be stock stuff, and the same.
Most probably 2M ram etc.
You can take a photo of your board to confirm.

I'd need to see the USB, and the Flash to confirm, or a boot log.
« Last Edit: March 09, 2011, 01:37:07 pm by admin »

March 09, 2011, 12:06:57 pm
Well, I guess to get a boot log I need hack the camera to get a serial conection. Need some free time!

I'll take a look / picture of the board...

Best regards!

  • No avatar
  • *****
March 09, 2011, 12:12:54 pm
Did a tad bit more searching and found them in Taobao.

腾威 - http://tengweishipin.taobao.com/
They're over in Longhua town (龙华镇) in Shenzhen.


You can now get one in orange, green or other cool colors.

Firmware file is here - http://www.tenvis.com/down.php?type=pub&downID=16
Thats just the romfs, and webui.

If you want I can take a look.


March 09, 2011, 12:32:17 pm
Actually, the link to the JPT3815 (model on Tenvis) firmware is down. I'm waiting a response from Tenvis to fix this...

Tomorrow I'll hack te camera to connect to PC and get the bootlog

Thanks!

  • No avatar
  • *****
March 09, 2011, 12:35:51 pm
I took a quick look, and amusingly they're being marginally sneakier in trying protect these things from prying eyes now.

Your binaries have this in as the start bytes in both files.

Code: [Select]
1F 8B 08 00
Any guess what the significance of that is?

Gzipped ;)

GZ signature - 1f 8b 08 00

So..

Code: [Select]
mv html_MINI_20100414.bin html_MINI_20100414.bin.gz
mv ipcam_20100414.bin ipcam_20100414.bin.gz


gzip -d *

and voila.

We have our files... which are in tar format.

So tar -xzvf ipcam_20100414.bin
or tar -xzvf html_MINI_20100414.bin

would actually work better.

Your software is actually quite interesting.
Its definitely not from the same people.

Looks like its ARM9 based.

Assuming I grabbed the right firmware, you seem to have the ARM9 one that I was going to look at next.

Happy to see that they did it properly this time, and compiled things as modules.
Looks like it uses the Faraday gm8120 MP4 SoC.  Which is good, as I have looked at that before.


They're using
GCC: (GNU) 2.95.3

And from my quick look, its going to be MUCH easier working on those camera's for a good number of reasons!


A peek at the romfs side shows this:

Code: [Select]
ls -al
total 1112
drwxr-xr-x  11 lawrence  staff     374 Jan  1  1970 .
drwxr-xr-x   8 lawrence  staff     272 Mar 10 01:18 ..
-rwxr-xr-x   1 lawrence  staff     803 Apr 14  2010 FStream.sh
-rwxr-xr-x   1 lawrence  staff   53721 Apr 14  2010 inadyn
-rwxr-xr-x   1 lawrence  staff  363544 Apr 13  2010 ipcam
-rwxr-xr-x   1 lawrence  staff   87728 Mar 31  2010 mini_httpd
-rwxr-xr-x   1 lawrence  staff     397 Dec 16  2009 mini_httpd.conf
-rwxr-xr-x   1 lawrence  staff    3360 Dec 16  2009 mydrv.o
-rwxr-xr-x   1 lawrence  staff    6115 Dec 16  2009 rtc.o
-rwxr-xr-x   1 lawrence  staff   10300 Dec 16  2009 telnetd
-rwxr-xr-x   1 lawrence  staff   20705 Dec 16  2009 update
LozMBP:ipcam lawrence$ file *
FStream.sh:      ASCII text
inadyn:          ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
ipcam:           ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
mini_httpd:      ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
mini_httpd.conf: ASCII English text, with CRLF, LF line terminators
mydrv.o:         ELF 32-bit LSB relocatable, ARM, version 1, not stripped
rtc.o:           ELF 32-bit LSB relocatable, ARM, version 1, not stripped
telnetd:         ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
update:          ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
LozMBP:ipcam lawrence$ cat FStream.sh
mknod /dev/video2 c 81 2
mknod /dev/video3 c 81 3

#ifconfig eth0 hw ether 00:80:BB:0A:23:29
#ifconfig eth0 192.168.1.111
ifconfig lo 127.0.0.1
tar -zxf /mnt/mtd/web/html.tgz -C /web

cp -rf /mnt/mtd/web/logo_cn/ /web/html/
cp -rf /mnt/mtd/web/logo_en/ web/html/
#/ipcam/telnetd
insmod /lib/modules/FTC_FOTG200_udc.o
insmod /lib/modules/g_file_storage.o
insmod /lib/modules/zd1211b.o
insmod /lib/modules/cpesd_dma.o
insmod /ipcam/mydrv.o
insmod /ipcam/rtc.o
mknod /dev/mydrv c 241 0
mknod /dev/urandom c 1 9
#/ipcam/mini_httpd -C /ipcam/mini_httpd.conf &

mkdir /web/html/recfile
mount -t vfat /dev/cpesda1 /web/html/recfile
mkdir /web/html/recfile/jpeg
rm -f /mnt/mtd/ipcam.tgz.old
if (test -f /ipcam/update); then
echo new update  exist
killall update
/ipcam/update &
fi

/ipcam/ftpd &
/ipcam/ipcam &
LozMBP:ipcam lawrence$

Nice find!

Lawrence.
« Last Edit: March 09, 2011, 12:38:13 pm by admin »

  • No avatar
  • *****
March 09, 2011, 12:40:39 pm
Code: [Select]
ls -al
total 528
drwxr-xr-x  10 lawrence  staff     340 Jan 29  2010 .
drwxr-xr-x   9 lawrence  staff     306 Mar 10 01:30 ..
-rwxr--r--   1 lawrence  staff  227632 Mar 23  2010 IPCameraOcx.cab
dr--r--r--  33 lawrence  staff    1122 Apr 13  2010 cgi-bin
dr--r--r--  14 lawrence  staff     476 Apr 14  2010 images
-rwxr--r--   1 lawrence  staff   28688 Jan 31  2010 index.cgi
dr--r--r--   4 lawrence  staff     136 Jan 24  2010 lib
-rwxr--r--   1 lawrence  staff    1409 Jan 23  2010 reboot_cn.htm
-rwxr--r--   1 lawrence  staff    1388 Jan 23  2010 reboot_en.htm
drwxr-xr-x   3 lawrence  staff     102 Jan 24  2010 recfile
LozMBP:html lawrence$ file index.cgi
index.cgi: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
LozMBP:html lawrence$ strings index.cgi
/lib/ld-linux.so.2
__gmon_start__
lib/ttapi.so
CT_GetNetParameter
_DYNAMIC
CT_GetUpnpInfo
_init
__deregister_frame_info
CT_QueryUser
_fini
_GLOBAL_OFFSET_TABLE_
__data_start
__register_frame_info
libc.so.6
strcpy
printf
stdout
snprintf
getenv
fgets
memcpy
malloc
fflush
strncasecmp
abort
stdin
strstr
strncpy
realloc
strtok
memcmp
fread
strdup
inet_aton
memset
strcmp
fclose
exit
fopen
atoi
_IO_stdin_used
__libc_start_main
strchr
free
_edata
__bss_start
__bss_start__
_end
_bss_end__
__bss_end__
__end__
GLIBC_2.1
GLIBC_2.0
LANGUAGE
zh-cn
HTTP_USER_AGENT
MSIE
REQUEST_METHOD
HEAD
POST
QUERY_STRING
CONTENT_LENGTH
<head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
</head>
 HTML file not found
Content-type: text/html
<HTML><HEAD><TITLE>%s</TITLE></HEAD>
<BODY>
</BODY></HTML>
<H1>%s</H1>
LANGUAGE
zh-cn
HTTP_USER_AGENT
MSIE
ON/OFF
Ordinary users can only view.
Save Path
Full
Audio
Record
Snapshot
Display
Stream
Sign Out
System Setup
Freq
Mirror
Flip
Default Image
Saturation
Contrast
Bright
REMOTE_ADDR
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta content=0 http-equiv=expires>
<meta content=no-cache http-equiv=pragma>
 <title>Network Camera</title>
 <link href="/cgi-bin/css.css" rel="stylesheet" type="text/css" />
 <style type="text/css">
 .slider3 {
height:19px;
width:280px;
background-color:#ffffff;
border:1px solid #cccccc;
 .bar3 {
height:15px;
width:10px;
border:2px outset buttonhighlight;
background-color:#D4D0C8;
font-size:0;
 </style>
 </head>
 <body>
 <table width="655" border="0" align="center" cellpadding="0" cellspacing="0" background="images/net_02.jpg" >
   <tr>
     <td align="center"><table width="655" border="0" cellspacing="0" cellpadding="0">
         <tr>
           <td width="333" align="left"><img src="images/net_04.jpg" width="333" height="89" /></td>
           <td width="667" align="right"><br />
             <br />
 <a href="cgi-bin/configall.cgi">%s</a> | <a href="#" onclick="window.close()">%s</td>
   <a>%s</a> | <a href="#" onclick="window.close()">%s</td>
         </tr>
       </table></td>
   </tr>
 </table>
 <table width="655" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:12px">
     <td width="723" align="center"><table width="655" border="0" cellpadding="0" cellspacing="0">
           <td width="655"><img src="images/net_09.jpg" width="655" height="40" /></td>
       </table>
       <table width="655" border="0" cellpadding="0" cellspacing="0" background="images/net_16.jpg">
           <td width="640" height="480" align="center" valign="middle">
<img src="1.mjpeg" width="640px" height="480px" /></td>
 <table width="655" border="0" align="center" cellpadding="0" cellspacing="0" id="0" >
     <td width="723" align="center" background=""><img src="images/net_22.jpg" width="655" height="16" /></td>
<p><center><font color="#FF0000" >%s</font></p>
 </body>
 </html>
 <body onLoad=onPageLoad()>
 <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" background="images/net_02.jpg">
     <td align="center"><table width="990" border="0" cellspacing="0" cellpadding="0">
             <a href="cgi-bin/configall.cgi">%s</a> | <a href="#" onclick="window.close()">%s</td>
 <table width="990" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:12px">
     <td width="723" align="left"><table width="655" border="0" cellpadding="0" cellspacing="0">
           <td width="655"><img src="images/net_09.jpg" width="655" height="40"></td>
           <td width="655" height="500" align="center" valign="middle" valign="center" >
<object classid="clsid:3ED56945-4F17-480D-9029-A7AAD33D29BF" codebase="./IPCameraOcx.cab" width=320;  height=240; id="CTVideoPlayer" style="TOP:131px; left:378px;">
<param name="UserInfo" value="" >
<param name="HostName" value="" >
<param name="UserName" value="" >
<param name="Password" value="" >
<param name="Port" value="0" >
<param name="Channel" value="0" >
<param name="isIE" value="0" >
<param name="WorkState" value="0" >
</object>
</td>
     </td>
     <td align="center" valign="top" background="images/net_14.jpg"><table border="0" cellspacing="0" cellpadding="0">
           <td><img src="images/net_12.jpg" width="316" height="18"></td>
       <table width="310" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:18px">
           <td height="40" align="center"><a href="javascript:void(0)" class="an3" onmouseup="CTVideoScale(1)" >X0.5</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" class="an3" onmouseup="CTVideoScale(2)">X1</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" class="an3" onmouseup="CTVideoScale(4)">X2</a>
         &nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" class="an6" onmouseup="ConnectVideo()" >%s</a></td></tr>
           <td height="1" bgcolor="#fafafa"></td>
           <td height="1" bgcolor="#cecece"></td>
       <table width="310" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:16px">
           <td width="75" height="30" align="right"><a href="javascript:void(0)" onmouseup="SetBrightness(1)"><img src="images/j_2.gif" width="13" height="13" border="0" style="margin-right:8px"></a></td>
           <td width="160" align="center" valign="middle" class="lan" ><span class="an5">%s</span></td>
           <td width="75" align="left" ><a href="javascript:void(0)" onmouseup="SetBrightness(0)"><img src="images/j_1.gif" width="13" height="13" border="0" style="margin-left:8px"></a></td>
           <td height="1" colspan="3" bgcolor="#fafafa"></td>
           <td height="1" colspan="3" bgcolor="#cecece"></td>
       
           <td width="75" height="30" align="right"><a href="javascript:void(0)" onmouseup="SetContrast(1)" ><img src="images/j_2.gif" width="13" height="13" border="0"  style="margin-right:8px"></a></td>
           <td width="160" align="center" valign="middle" class="lan"><span class="an5">%s</span></td>
           <td width="75" align="left" valign="middle" ><a href="javascript:void(0)" onmouseup="SetContrast(0)" ><img src="images/j_1.gif" width="13" height="13" border="0"   style="margin-left:8px"></a></td>
           <td width="75" height="30" align="right"><a href="javascript:void(0)" onmouseup="SetSaturation(1)" ><img src="images/j_2.gif" width="13" height="13" border="0"  style="margin-right:8px"></a></td>
           <td width="161" align="center" class="lan" ><span class="an5">%s</span></td>
           <td width="75" align="left" valign="middle" ><a href="javascript:void(0)" onmouseup="SetSaturation(0)" ><img src="images/j_1.gif" width="13" height="13" border="0"   style="margin-left:8px"></a></td>
           <td width="75" height="30" align="right"><a href="javascript:void(0)" onmouseup="ControlVolume(0)"><img src="images/j_2.gif" width="13" height="13" border="0"  style="margin-right:8px"/></a></td>
           <td width="160" align="center" valign="middle" class="lan" ><span class="an5"><a href="javascript:void(0)" onmouseup="ControlAudio()" >%s</a></span></td>
           <td width="75" align="left" valign="middle" ><a href="javascript:void(0)" onmouseup="ControlVolume(1)"><img src="images/j_1.gif" width="13" height="13" border="0"   style="margin-left:8px"/></a></td>
           <td width="155" height="30" align="center"><a href="javascript:void(0)" class="an4" onmouseup="SetDefaultImage()">%s</a></td>
           <td width="155" align="center"><a href="javascript:void(0)" class="an4" onmouseup="SetRecordPath()">%s</a></td>
           <td height="1" colspan="2" bgcolor="#fafafa"></td>
           <td height="1" colspan="2" bgcolor="#cecece"></td>
       <tr>
         <td width="155" height="28" align="center"><a href="javascript:void(0)" class="an4" onmouseup="ImageFlip(0,1,0)">%s</a></td>
         <td width="155" height="28" align="center"><a href="javascript:void(0)" class="an4" onmouseup="ImageFlip(1,0,0)">%s</a></td>
       </tr>
         <td height="40" align="center"><a href="javascript:void(0)" class="an4" onmouseup="GrabPicture()">%s</a></td>
         <td height="40" align="center"><a href="javascript:void(0)" class="an4" onmouseup="ControlRecorder()">%s</a></td>
 <table width="990" border="0" align="center" cellpadding="0" cellspacing="0" >
     <td width="723" align="left"><img src="images/net_22.jpg" width="655" height="16" /></td>
     <td width="267" align="left" valign="top"><img src="images/net_24.jpg" width="315" height="16" /></td>
         &nbsp;&nbsp;&nbsp;&nbsp;<span class="an6">%s</span></td></tr>
   <tr>
 <td height="1" bgcolor="#fafafa"></td>
   </tr>
 <td height="1" bgcolor="#cecece"></td>
 </table>
 <table width="310" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:16px">
 <td width="75" height="30" align="right"><img src="images/j_2.gif" width="13" height="13" border="0" style="margin-right:8px"></td>
 <td width="160" align="center" valign="middle" class="lan" ><span class="an5">%s</span></td>
 <td width="75" align="left" ><img src="images/j_1.gif" width="13" height="13" border="0" style="margin-left:8px"></td>
 <td height="1" colspan="3" bgcolor="#fafafa"></td>
 <td height="1" colspan="3" bgcolor="#cecece"></td>
 <td width="75" height="30" align="right"><img src="images/j_2.gif" width="13" height="13" border="0"  style="margin-right:8px"></td>
 <td width="160" align="center" valign="middle" class="lan"><span class="an5">%s</span></td>
 <td width="75" align="left" valign="middle" ><img src="images/j_1.gif" width="13" height="13" border="0"   style="margin-left:8px"></td>
 <td width="75" height="30" align="right"><img src="images/j_2.gif" width="13" height="13" border="0"
style="margin-right:8px"></td>
 <td width="161" align="center" class="lan" ><span class="an5">%s</span></td>
 <td width="75" align="left" valign="middle" ><img src="images/j_1.gif" width="13" height="13" border="0"
 style="margin-left:8px"></td>
 <td width="75" height="30" align="right"><img src="images/j_2.gif" width="13" height="13" border="0"  style="margin-right:8px"/></td>
 <td width="75" align="left" valign="middle" ><img src="images/j_1.gif" width="13" height="13" border="0"
style="margin-left:8px"/></td>
 <td width="155" height="30" align="center"><span class="an4" >%s</span></td>
 <td width="155" align="center"><span class="an4" >%s</span></td>
 <td height="1" colspan="2" bgcolor="#fafafa"></td>
 <td height="1" colspan="2" bgcolor="#cecece"></td>
 <tr>
   <td width="155" height="28" align="center"><span class="an4" >%s</span></td>
 </tr>
   <td height="40" align="center"><span class="an4" >%s</span></td>
 </table></td>
 </tr>
 <tr>
   <td width="723" align="left"><img src="images/net_22.jpg" width="655" height="16" /></td>
   <td width="267" align="left" valign="top"><img src="images/net_24.jpg" width="315" height="16" /></td>
<p><center><font color="#FF0000" size="2" face="Arial">%s</font></p></div>
<script language="JavaScript" type="text/JavaScript">
<!--
function GetServerIP(sHref, sArgName)
var args = sHref.split("/");
var retval = "";
if(args[0] == sHref)
return retval;
return args[2];
var bright = 45;
var contrast = 45;
var saturation = 45;
var autoscan = 0;
var CTWidth = 160;
var CTHeight = 120;
var CTScaleRate = 2;
var ConnectStatus = 0;
var volume = 0;
var InterSpeak = 0;
RecorderState = 1;
AudioSwitch = 0;
var UserName="";
var Password="";
var auto_scan = 0;
function ConnectVideo()
var serverIP = GetServerIP(document.location.href,0);
var ConnStatus = 0;
if (0 == ConnectStatus)
ConnStatus = CTVideoPlayer.ConnectVideo(serverIP,%d, UserName, Password, 0);
if (ConnStatus == 0)
ConnectStatus = 1;
}else{
CTVideoPlayer.DisConnectVideo();
ConnectStatus = 0;
function DisConnectVideo()
function SetBrightness(method)
bright = CTVideoPlayer.GetViewBrightness();
contrast = CTVideoPlayer.GetViewContrast();
saturation = CTVideoPlayer.GetViewSaturation();
if(method)
if(bright > 10)
bright-=10;
else
if(bright < 245)
bright+=10;
CTVideoPlayer.SetImageParameter(bright, contrast, saturation);
 function ImageFlip(ishorizontalflip,isverticalflip,isfreq)
 CTVideoPlayer.ImageFlip(ishorizontalflip,isverticalflip,isfreq);
function SetContrast( method )
if(contrast > 10)
contrast-=10;
if(contrast < 245)
contrast+=10;
function SetSaturation(method)
if(saturation > 10)
saturation-=10;
if(saturation < 245)
saturation+=10;
function SetDefaultImage()
CTVideoPlayer.SetImageParameter(0, 0, 0);
void function VideoScale()
var Width =0;
var Height = 0;
Width = CTWidth * CTScaleRate;
Height = CTHeight * CTScaleRate;
if(Width > 640)
Width = 640;
if(Height > 490)
Height = 490;
CTVideoPlayer.width = Width;
CTVideoPlayer.height = Height;
function nextPageLoad()
VideoScale();
ConnectVideo();
function CTVideoScale( scale )
CTScaleRate = scale;
function FullScreen()
CTVideoPlayer.setActive();
CTVideoPlayer.SetFullScreen();
function ControlAudio()
if(AudioSwitch)
AudioSwitch = 0;
AudioSwitch = 1;
CTVideoPlayer.SetMute( AudioSwitch );
function ControlVolume( state )
volume = CTVideoPlayer.GetVolume();
if ( 0 == state )
if(volume >= 6553)
volume=volume-6553;
else(volume = 0)
if (volume <= 58982)
volume=volume+6553;
else (volume = 65535)
CTVideoPlayer.SetVolume(volume);
function ControlInterSpeak()
if (InterSpeak)
InterSpeak = 0;
CTVideoPlayer.StopDualSpeak();
InterSpeak = 1;
CTVideoPlayer.StartDualSpeak();
function GrabPicture()
CTVideoPlayer.Snapshot("");
function ControlRecorder()
if(RecorderState)
RecorderState = 0;
CTVideoPlayer.StartRecord("");
RecorderState = 1;
CTVideoPlayer.StopRecord();
function SetRecordPath()
CTVideoPlayer.setVideoSavePath();
</script>
REMOTE_USER
function onPageLoad()
UserName="%s";
 Password="%s";
 nextPageLoad();
<script language=%sjavascript%s>
ctvs
123456
</script>
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
GCC: (GNU) 2.95.3 20010315 (release)
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rel.got
.rel.bss
.rel.plt
.init
.plt
.text
.fini
.rodata
.data
.ctors
.dtors
.got
.dynamic
.sbss
.bss
.comment


  • No avatar
  • *****
March 09, 2011, 12:48:12 pm
Wow.  The more I look at your one, the more I appreciate it.

It uses the standard Pelco commands for PTZ.
http://www.commfront.com/RS232_Examples/CCTV/Pelco_D_Pelco_P_Examples_Tutorial.HTM


We have shared libraries.  The .so files are there.  The modules are there.
Its going to be so much easier working on those, all the bits are there and usable as is.

Its like heaven compared to the work I had to do on this one.

Damn... 

I'm sure if I started on that camera, I'd never even have bothered writing stuff for this one!
Not that the one we use is bad, but this is just so much easier to hack stuff into.

I also think I know why.  This looks like it was written by someone outside of China, and I think I know who also.  Have emailed her, and said hi to, as she's made it a little obvious (I think).

Lawrence.
« Last Edit: March 09, 2011, 01:08:50 pm by admin »

March 10, 2011, 02:48:46 am
Good morning!

As I told you, the firmware you linked is and 'unnamed' firmware, and Tenvis has various camera models. I don't now if that firmware is compatible with the model I have (JPT3815 / JPT3815W).

Theses are the main chips that the board has:

-Nuvoton W90N745CDG (can't find datasheet)
-Winbond W9812G61H-6

I tried to take some pictures, but the strings are poorly visible

Best regards!

[EDIT] In example, the firmware says that there's a telnetd, but no open port.

The Nuvoton chip that the board has is this (w/ all numbers):
Nuvoton W90N745CDGARM (<= the same you have)
20188075-AA2
019TBFC


[EDIT2] In example, the firmware says that there's a telnetd, but no open port. => because the telnetd is not being lounched:
Code: [Select]
cat FStream.sh
mknod /dev/video2 c 81 2
mknod /dev/video3 c 81 3

#ifconfig eth0 hw ether 00:80:BB:0A:23:29
#ifconfig eth0 192.168.1.111
ifconfig lo 127.0.0.1
tar -zxf /mnt/mtd/web/html.tgz -C /web

cp -rf /mnt/mtd/web/logo_cn/ /web/html/
cp -rf /mnt/mtd/web/logo_en/ web/html/
#/ipcam/telnetd
insmod /lib/modules/FTC_FOTG200_udc.o
insmod /lib/modules/g_file_storage.o
insmod /lib/modules/zd1211b.o
insmod /lib/modules/cpesd_dma.o
insmod /ipcam/mydrv.o
insmod /ipcam/rtc.o
mknod /dev/mydrv c 241 0
mknod /dev/urandom c 1 9
#/ipcam/mini_httpd -C /ipcam/mini_httpd.conf &

mkdir /web/html/recfile
mount -t vfat /dev/cpesda1 /web/html/recfile
mkdir /web/html/recfile/jpeg
rm -f /mnt/mtd/ipcam.tgz.old
if (test -f /ipcam/update); then
echo new update  exist
killall update
/ipcam/update &
fi

/ipcam/ftpd &
/ipcam/ipcam &
« Last Edit: March 10, 2011, 04:36:50 am by hespresati »

March 10, 2011, 05:43:46 am
The box that you showed mentions PoE, which sounds like you've found the 'perfect' camera!!

I just wish dealextreme would stock these so I could get them here to experiment on :(

Anybody in the position to mail them at reasonable cost?  :D

Which BSP/kernel does this one use? Only found a pdf so far for this soc: http://www.grain-media.com/html/documentation/GM8120_GM-2007-10.pdf

Edit, the PoE seems to be not mentioned at all in the manual, so I doubt it actually has PoE ... :(
« Last Edit: March 10, 2011, 05:54:33 am by oliver »

March 10, 2011, 06:37:38 am
My Tenvis JPT3815 / JPT3815W has PoE indeed...

March 10, 2011, 07:40:45 am
My Tenvis JPT3815 / JPT3815W has PoE indeed...

For real? And it uses the W90N745/NU90N745 Arm SoC?

All the other Foscam clones don't have PoE, there should very most likly be a chip assosciated with PoE, or the network controller should include this feature. Can you post pics of the PCB? :)

And more importantly, how much did it cost, and where did you get it! :D

  • No avatar
  • *****
March 10, 2011, 12:21:49 pm
Don't take box graphics for granted.  Chinese don't necessarily read english so well, and like to copy stuff like that for show.

They don't know what it means, but all the cool kids have it on their boxes, so why not  ::)
I don't think this has PoE - Power over Ethernet.
I don't see that mentioned in their specs or docs.

I'll be talking to the factory tomorrow though, and will see what they offer.
Plan on ordering a sample of each type, and will see if this is suitable for me to use as the camera I will sell.


Lawrence.