Pages

Sunday, 18 November 2012

Ardiuno data logger?

Random thoughts..

As I run out of time, I'm thinking of dropping the USB capture devices - but I won't have time to develop a solution without one. (I believe something like run ridge SDK on the leopard board and a video capture module is going to take me too long.) For this year a video server is looking more feasible - but it leaves the 1-wire data logging high and dry.

So a Vivotek 8102 is on it's way for testing - "just in case".

Running an addition arm board for the 1wire is overkill and battery intensive.

At a glance standalone dataloggers are a +£50ea
good ones, (Tiny tag),  +£100ea




Thinking about alternative remote 1-wire for less power consumption than an ARM board...

Ardiuno plus data logger shield (SD card + real time clock + 1 wire interface)

http://uk.farnell.com/arduino/a000066/eval-atmega328p-8bit-uno-rv3/dp/2075382


http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=7&products_id=20


Given that there is already a datalogger sketch written for this, it's really tempting... but if we only need one logger per tunnel, and one exterior logger; is it worth it? Probably not... but at £30 for the base unit and £12 a sensor it might be worth a look at.

See also the SDcard libraries in this arduino weather station;


http://sourceforge.net/projects/arduinoweather/files/

Sunday, 11 November 2012

OLinuxino IMX233 Maxi

Looking around for help building the IMX233 kernel with em28xx/easycap/w1 et al....

Found some stuff...

https://www.olimex.com/forum/index.php?topic=101.0
https://www.olimex.com/forum/index.php?topic=160.0

Kernel:
git clone --depth=1 git://git.freescale.com/imx/linux-2.6-imx.git linux-2.6-imx

Olinuxino patches:
git clone --depth=1 git://github.com/archlinuxarm/PKGBUILDs.git alarm

Also you will need to build the boot code (imx-bootlets), the build script at top will does it for you.

Here is the offical alarm kernel build "script":
https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/kernel26-olinuxino/PKGBUILD

https://www.olimex.com/forum/index.php?topic=101.0 



what about 3.6 kernel?

https://github.com/koliqi/imx23-olinuxino/blob/master/Building%20a%20kernel%20%20for%20the%20OLinuXino.md


Read some friendly manuals

https://wiki.archlinux.org/index.php/Kernels/Compilation/Arch_Build_System
http://archlinuxarm.org/developers/building-packages
https://wiki.archlinux.org/index.php/Post_Installation_Tips


Finally I ended up here;

https://github.com/OLIMEX/archlinuxarm-olinuxino/tree/master/olinuxino/kernel26-olinuxino


I think at some point a prebuilt 3.x image will turn up for idiots like me, meanwhile...

(take note that the readme begins with 'don't use these instructions...')

git clone git://github.com/OLIMEX/archlinuxarm-olinuxino.git
cd archlinuxarm-olinuxino/olinuxino/kernel26-olinuxino/
nano PKGBUILD <- uncomment 'make menuconfig'

get any missing dependencies...
pacman -S docbook-xsl xmlto
makepkg --asroot


later, next day...
some error about building ds2751 stuff.

  CC [M]  drivers/w1/slaves/w1_ds2751.o
drivers/w1/slaves/w1_ds2751.c: In function ‘w1_f51_read_bin’:
drivers/w1/slaves/w1_ds2751.c:112:2: error: expected ‘;’ before ‘if’
drivers/w1/slaves/w1_ds2751.c: At top level:
drivers/w1/slaves/w1_ds2751.c:258:2: warning: initialization from incompatible pointer type [enabled by default]
drivers/w1/slaves/w1_ds2751.c:258:2: warning: (near initialization for ‘w1_f51_bin_attr.read’) [enabled by default]
drivers/w1/slaves/w1_ds2751.c:259:2: warning: initialization from incompatible pointer type [enabled by default]
drivers/w1/slaves/w1_ds2751.c:259:2: warning: (near initialization for ‘w1_f51_bin_attr.write’) [enabled by default]
make[3]: *** [drivers/w1/slaves/w1_ds2751.o] Error 1
make[2]: *** [drivers/w1/slaves] Error 2
make[1]: *** [drivers/w1] Error 2
make: *** [drivers] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
 

Trying again without ds2751 stuff... I don't think my humidity sensor is using that one anyway.
(2438 and temp and the em28xx)

Try and do the em28xx patch...

wget https://dl.dropbox.com/u/15065328/em28xx-Fix-height-setting-on-non-progressive-captures.patch 

put patch and md5sum in the PKGBUILD
do not pass GO, do not collect £200.


 makepkg --asroot


Failed again - got as far as depmod...
DEPMOD  2.6.35-4-OLinuXino-ARCH+
ERROR: could not open directory /home/archlinuxarm-olinuxino/olinuxino/kernel26-olinuxino/pkg/kernel26-olinuxino/usr/lib/modules/2.6.35-4-OLinuXino-ARCH+: No such file or directory
FATAL: could not search modules: No such file or directory
make: *** [_modinst_post] Error 1



as per the warning; 'Warning: you may need to install module-init-tools'

pacman -S module-init-tools

just for fun...

 makepkg --asroot

==> Finished making: kernel26 2.6.35.3-4 (Tue Nov 13 06:24:02 CST 2012)
 

hooray!

need to install bootlets and elf

cd ../imx-bootlets-olinuxino
makepkg --asroot
pacman -U imx-bootlets-olinuxino-10.12.01-1-arm.pkg.tar.xz

cd ../elftosb
makepkg --asroot
pacman -U elftosb-10.12.01-1-arm.pkg.tar.xz

now back to the kernel

cd ../kernel26-olinuxino
pacman -U kernel26-olinuxino-2.6.35.3-4-arm.pkg.tar.xz

answer the scary questions

reboot

low and behold - pictures!
my kworld USB2800 (em28xx) is showing pictures with intermittent green/pink flashing.

I'll have a look at 3.6 kernels and try the stk1160 next.

Saturday, 10 November 2012

Not Fixing em28xx on Beaglebone

fixing em28xx on Beaglebone

ATTENTION - Method below almost worked, but didn't.

Horizontal pink and green bars across the image... but at least there was an image. That's better than a green screen, isn't it?

I really liked the Beaglebone. I really wanted it to work. The easycap driver sort of worked, but wasn't stable enough to leave in a field. (although it seems ok at 320x240). The stk1160 driver experiences similar break up to the images I've seen of it running on the raspberry pi. (if you are reading this - I know you're working on the latter!).

It looks like the full Beagleboard xM might be the next contender. More money than I'd hoped to spend, and more power, but 1-wire and rtc and already on the board.








Having another go...



from my ubuntu 12.04 beaglebone;

using http://elinux.org/BeagleBoardUbuntu as a guide

did this http://elinux.org/BeagleBoardUbuntu#Install_Latest_Kernel_Image

export DIST=oneiric  (options are lucid/maverick/natty/oneiric/precise/squeeze/wheezy)
export ARCH=armel (options are armel/armhf (armhf only for precise))

Beagle/Panda
export BOARD=omap

BeagleBone
export BOARD=omap-psp

wget http://rcn-ee.net/deb/${DIST}-${ARCH}/LATEST-${BOARD}
wget $(cat ./LATEST-${BOARD} | grep STABLE | awk '{print $3}')
/bin/bash install-me.sh

reboot!


naturally it blew away my 1307rtc, (remember http://bufobufomagic.blogspot.co.uk/2012/08/1-wire-and-blinking-leds.html) so...


got the headers from http://rcn-ee.net/deb/precise-armhf/v3.2.32-psp25/

wget http://rcn-ee.net/deb/precise-armhf/v3.2.32-psp25/linux-headers-3.2.32-psp25_1.0precise_armhf.deb



installed the headers


dpkg -i linux*2.6.38-7.37*.deb
 

cd /usr/src/linux-headers-3.2.32-psp25/


Get source


cd /home/stuff
wget http://rcn-ee.net/deb/precise-armhf/v3.2.32-psp25/patch-3.2-psp25.diff.gz

wget http://rcn-ee.net/deb/precise-armhf/v3.2.32-psp25/defconfig

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.tar.bz2


tar xjf linux-3.2.tar.bz2 
cd linux-3.2
zcat /home/stuff/patch-3.2.32-psp25.diff.gz | patch -p1

cp /home/stuff/defconfig .config


change build symlink!


restore the 1307




nano arch/arm/mach-omap2/board-am335xevm.c

Add to the existing static struct i2c_board_info __initdata cape_i2c_boardinfo
{
                I2C_BOARD_INFO("ds1307", 0x68),
},

Config changes/checks; (looks ok as it is?)
 CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
remove support for the OMAP RTC driver
I2C RTC drivers
CONFIG_RTC_DRV_DS1307=y


try patching em28xx while we're here...

make a new kernel





Thursday, 25 October 2012

em28xx - RPi - archlinux-hf-2012-09-18

N.B. This doesn't work

Second attempt with a em28xx on Raspberry Pi... I'm so fucking bored of this not working I decided to do it again.


This is largely based on the first attempt...

http://bufobufomagic.blogspot.co.uk/2012/07/make-disk-image-mac-diskutil-list-sudo.html



 

build SD card (on a mac) and, probably, make it work


diskutil list

sudo diskutil unmountDisk /dev/disk1

dd if=/Users/michael/Desktop/RaspberryPi/Images/archlinux-hf-2012-09-18.img of=/dev/disk1 bs=1m


muck about with partitions - i expand the arch linux partition to 4Gb and call the remainder of the drive fat32.

fiddle with boot partition memory elves - rename original start elf and copy the 240 start elf as start.elf



then insert card, boot RPi and watch the LEDs dance about while you find it on the network.



mine was 85...

ssh 192.168.1.85 -l root (password root)

if this isn't your first time round the loop you might get a load of key verification errors, so do

ssh-keygen -R 192.168.1.85

and try again.

 
it is plugged in, right?

set up stuffs

swapdisk-u-like


mkdir -p /var/cache/swap/

dd if=/dev/zero of=/var/cache/swap/swapfile bs=1M count=1024

chmod 0600 /var/cache/swap/swapfile 
mkswap /var/cache/swap/swapfile
 
swapon /var/cache/swap/swapfile
put it in fstab, if you want to...
 
echo "/var/cache/swap/swapfile    none    swap    sw    0   0" >> /etc/fstab


...otherwise just remember to check it's on before you make the kernel.









upgradings






// if you like progress bars, this will give you the horn.

pacman -Syuand open a bottle of red wine.


install stuff

// because you want stuff

pacman -S ffmpeg motion git base-devel python2


Shall we reboot? Wouldn't be a bad idea. It will be nice to see it boot in a working state one more time...

do a kernel

get the kernel source


// are you doing this for fun? - because it isn't.





cd /home

git clone --depth 1 https://github.com/raspberrypi/linux.git

cd linux

zcat /proc/config.gz > .config



make menuconfig
( it appears i2c and em28xx stuff is all there now, but you can have a look for yourself)

muck about with the kernel


This is where you patch em28xx... https://patchwork.kernel.org/patch/1309461/

diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index de2cb20..bed07a6 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -785,12 +785,8 @@ int em28xx_resolution_set(struct em28xx *dev)
     else
         dev->vbi_height = 18;

-    if (!dev->progressive)
-        height >>= norm_maxh(dev);
-
     em28xx_set_outfmt(dev);

-
     em28xx_accumulator_set(dev, 1, (width - 4) >> 2, 1, (height - 4) >> 2);

     /* If we don't set the start position to 2 in VBI mode, we end up

make the kernel

// I know we've been here before, just try and think positively

make



cd ..
 

git clone https://github.com/raspberrypi/tools

python2 imagetool-uncompressed.py /home/linux/arch/arm/boot/Image

mv /boot/kernel.img /boot/kernel.old


cp kernel.img /boot/kernel.img

cd /home/linux

make modules_install

reboot





ERRORS!


motion grumbles with;

[1] Unable to query input 1 VIDIOC_ENUMINPUT: Invalid argument
[1] ioctl (VIDIOCGCAP): Inappropriate ioctl for device
[1] Could not fetch initial image from camera
 




I suspect this is something to do with the wrong card id...

[    4.504130] em28xx #0: Your board has no unique USB ID and thus need a hint to be detected.
 

Here are the choices;

[    4.504215] em28xx #0: Here is a list of valid choices for the card=<n> insmod option:
[    4.504232] em28xx #0:     card=0 -> Unknown EM2800 video grabber
[    4.504248] em28xx #0:     card=1 -> Unknown EM2750/28xx video grabber
[    4.504264] em28xx #0:     card=2 -> Terratec Cinergy 250 USB
[    4.504279] em28xx #0:     card=3 -> Pinnacle PCTV USB 2
[    4.504293] em28xx #0:     card=4 -> Hauppauge WinTV USB 2
[    4.504307] em28xx #0:     card=5 -> MSI VOX USB 2.0
[    4.504321] em28xx #0:     card=6 -> Terratec Cinergy 200 USB
[    4.504335] em28xx #0:     card=7 -> Leadtek Winfast USB II
[    4.504350] em28xx #0:     card=8 -> Kworld USB2800
[    4.504365] em28xx #0:     card=9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker / Kworld DVD Maker 2
[    4.504386] em28xx #0:     card=10 -> Hauppauge WinTV HVR 900
[    4.504401] em28xx #0:     card=11 -> Terratec Hybrid XS
[    4.504415] em28xx #0:     card=12 -> Kworld PVR TV 2800 RF
[    4.504429] em28xx #0:     card=13 -> Terratec Prodigy XS
[    4.504445] em28xx #0:     card=14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0
[    4.504462] em28xx #0:     card=15 -> V-Gear PocketTV
[    4.504476] em28xx #0:     card=16 -> Hauppauge WinTV HVR 950
[    4.504490] em28xx #0:     card=17 -> Pinnacle PCTV HD Pro Stick
[    4.504506] em28xx #0:     card=18 -> Hauppauge WinTV HVR 900 (R2)
[    4.504521] em28xx #0:     card=19 -> EM2860/SAA711X Reference Design
[    4.504537] em28xx #0:     card=20 -> AMD ATI TV Wonder HD 600
[    4.504552] em28xx #0:     card=21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder
[    4.504569] em28xx #0:     card=22 -> EM2710/EM2750/EM2751 webcam grabber
[    4.504585] em28xx #0:     card=23 -> Huaqi DLCW-130
[    4.504599] em28xx #0:     card=24 -> D-Link DUB-T210 TV Tuner
[    4.504613] em28xx #0:     card=25 -> Gadmei UTV310
[    4.504628] em28xx #0:     card=26 -> Hercules Smart TV USB 2.0
[    4.504643] em28xx #0:     card=27 -> Pinnacle PCTV USB 2 (Philips FM1216ME)
[    4.504659] em28xx #0:     card=28 -> Leadtek Winfast USB II Deluxe
[    4.504675] em28xx #0:     card=29 -> EM2860/TVP5150 Reference Design
[    4.504690] em28xx #0:     card=30 -> Videology 20K14XUSB USB2.0
[    4.504705] em28xx #0:     card=31 -> Usbgear VD204v9
[    4.504719] em28xx #0:     card=32 -> Supercomp USB 2.0 TV
[    4.504733] em28xx #0:     card=33 -> Elgato Video Capture
[    4.504748] em28xx #0:     card=34 -> Terratec Cinergy A Hybrid XS
[    4.504763] em28xx #0:     card=35 -> Typhoon DVD Maker
[    4.504777] em28xx #0:     card=36 -> NetGMBH Cam
[    4.504790] em28xx #0:     card=37 -> Gadmei UTV330
[    4.504804] em28xx #0:     card=38 -> Yakumo MovieMixer
[    4.504817] em28xx #0:     card=39 -> KWorld PVRTV 300U
[    4.504832] em28xx #0:     card=40 -> Plextor ConvertX PX-TV100U
[    4.504846] em28xx #0:     card=41 -> Kworld 350 U DVB-T
[    4.504860] em28xx #0:     card=42 -> Kworld 355 U DVB-T
[    4.504875] em28xx #0:     card=43 -> Terratec Cinergy T XS
[    4.504890] em28xx #0:     card=44 -> Terratec Cinergy T XS (MT2060)
[    4.504905] em28xx #0:     card=45 -> Pinnacle PCTV DVB-T
[    4.504919] em28xx #0:     card=46 -> Compro, VideoMate U3
[    4.504934] em28xx #0:     card=47 -> KWorld DVB-T 305U
[    4.504948] em28xx #0:     card=48 -> KWorld DVB-T 310U
[    4.504962] em28xx #0:     card=49 -> MSI DigiVox A/D
[    4.504976] em28xx #0:     card=50 -> MSI DigiVox A/D II
[    4.504990] em28xx #0:     card=51 -> Terratec Hybrid XS Secam
[    4.505005] em28xx #0:     card=52 -> DNT DA2 Hybrid
[    4.505019] em28xx #0:     card=53 -> Pinnacle Hybrid Pro
[    4.505033] em28xx #0:     card=54 -> Kworld VS-DVB-T 323UR
[    4.505048] em28xx #0:     card=55 -> Terratec Cinnergy Hybrid T USB XS (em2882)
[    4.505064] em28xx #0:     card=56 -> Pinnacle Hybrid Pro (330e)
[    4.505079] em28xx #0:     card=57 -> Kworld PlusTV HD Hybrid 330
[    4.505094] em28xx #0:     card=58 -> Compro VideoMate ForYou/Stereo
[    4.505109] em28xx #0:     card=59 -> (null)
[    4.505123] em28xx #0:     card=60 -> Hauppauge WinTV HVR 850
[    4.505138] em28xx #0:     card=61 -> Pixelview PlayTV Box 4 USB 2.0
[    4.505153] em28xx #0:     card=62 -> Gadmei TVR200
[    4.505167] em28xx #0:     card=63 -> Kaiomy TVnPC U2
[    4.505181] em28xx #0:     card=64 -> Easy Cap Capture DC-60
[    4.505196] em28xx #0:     card=65 -> IO-DATA GV-MVP/SZ
[    4.505210] em28xx #0:     card=66 -> Empire dual TV
[    4.505223] em28xx #0:     card=67 -> Terratec Grabby
[    4.505237] em28xx #0:     card=68 -> Terratec AV350
[    4.505252] em28xx #0:     card=69 -> KWorld ATSC 315U HDTV TV Box
[    4.505267] em28xx #0:     card=70 -> Evga inDtube
[    4.505281] em28xx #0:     card=71 -> Silvercrest Webcam 1.3mpix
[    4.505296] em28xx #0:     card=72 -> Gadmei UTV330+
[    4.505310] em28xx #0:     card=73 -> Reddo DVB-C USB TV Box
[    4.505325] em28xx #0:     card=74 -> Actionmaster/LinXcel/Digitus VC211A
[    4.505340] em28xx #0:     card=75 -> Dikom DK300
[    4.505354] em28xx #0:     card=76 -> KWorld PlusTV 340U or UB435-Q (ATSC)
[    4.505371] em28xx #0:     card=77 -> EM2874 Leadership ISDBT
[    4.505386] em28xx #0:     card=78 -> PCTV nanoStick T2 290e
[    4.505400] em28xx #0:     card=79 -> Terratec Cinergy H5
[    4.505415] em28xx #0:     card=80 -> PCTV DVB-S2 Stick (460e)






It's supposedly a kworld 2800USB, so i'll try 8

modprobe -r em28xx
modprobe em28xx card=8


doesn't work, hangs on Resizing pre_capture buffer to 1 items - which i think is an improvement. card=19 doesn't work either, same error - although i have a feeling that's how it has turned up in the past.







New drivers?

cd /home

mkdir stuff

wget http://aur.archlinux.org/packages/pe/perl-proc-processtable/perl-proc-processtable.tar.gz


wget http://aur.archlinux.org/packages/pe/perl-proc-processtable/PKGBUILD

makepkg --asroot -s

pacman -U perl-proc-processtable-0.45-3-any.pkg.tar.xz

pacman -S patchutils

cd /home

git clone git://linuxtv.org/media_build.git

cd media_build

./build


the build failed on smiapp-core.c
at this point I  make menuconfig and start removing stuff
then try to make it again.

make install 


 this seemed to work now

reboot 


but the driver still doesn't. I'm giving up on this board for a while.

Monday, 22 October 2012

Cue light repeater

A cue light repeater

a photo transistor;

http://uk.farnell.com/vishay/tept5600/phototransistor-sensor-ambient/dp/1497673

a red led

http://uk.farnell.com/cml-innovative-technologies/cmd5055/led-5mm-red/dp/1139562


some circuit diagrams;

http://home.cogeco.ca/~rpaisley4/PhotoDetectors.html


When the male XLR shell housing the photo transistor is mounted over a cue light, and the cue light comes on, then the LED comes on.



Monday, 3 September 2012

enabling the gpio on the beaglebone

Currently in the process of building the hardware for the first beaglebone bufocam. The 1-wire and RTC clock have been mounted on some prototyping board (ebay). Cheapest supplier I found for board headers was rapid electronics - buy the larger ones and cut them down.

I want to add a couple of LED's to the inside of the box to give some user feedback that something is really happening. There are lots of guides already for this;

http://www.nathandumont.com/node/250
http://ninjablocks.com/blog/2012/1/20/setting-up-gpio-on-the-beaglebone.html
http://www.youtube.com/watch?v=SaIpz00lE84&feature=fvwrel

http://akademii.blogspot.co.uk/2012/02/beaglebone-gpio-testing.html
http://blog.makezine.com/2009/02/03/blinking-leds-with-the-beagle-board/

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License