Freeboard Stuff

Freeboard is one of these things that works really well and you want to bite the back of your hand when you get stuff working.

I had this issue though when developing some local web services with SparkJava and testing them on my local machine with localhost

I was using Chrome. Seems like Chrome doesnt support CORS on localhost. I used IE and Edge and it worked. I was building some simple web services and Java and by adding the following headers it worked fine.

res.header(“Access-Control-Allow-Origin” ,”*”);
res.header(“Access-Control-Allow-Credentials”,” true “);
res.header(“Access-Control-Allow-Methods”,” OPTIONS, GET, POST”);
res.header(“Access-Control-Allow-Headers”, “Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control”);

http://stackoverflow.com/questions/3136140/cors-not-working-on-chrome
http://stackoverflow.com/questions/10883211/deadly-cors-when-http-localhost-is-the-origin

Advertisements

DAXCAD Lives on Ubuntu 14.10

My good friend John Lawson is planning to port DAXCAD to the Raspberry Pi..  I have ported this  now  https://bitbucket.org/DaveRobertson/daxcad/branch/LinuxPort – I’ll merge it all back again when I get it fully working..  The current version of gfortran 4.9 looks good and on a Linux machine the whole thing builds in less than a minute.  I seem to remember a full build on an Apollo DN400 would be at least an hour.  Anyway still a testament to Fortran and C for being reasonably portable.

DAXCAD on Ubuntu 14
DAXCAD on Ubuntu 14

Install Documentum 6.7 on Linux

Everything looks good but do these please

yum install libXtst.i686 libselinux.i686 audit-libs.i686 cracklib.i686 db4.i686 pam.i686 libstdc++.i686 zlib.i686 ksh -y

yum install bc

bashrc

# Uncomment the following line if you don’t like systemctl’s auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl
export TNS_ADMIN=/u01/app/oracle/product/11.1.0/db_1/network/admin
export LC_ALL=C
export JAVA_HOME=/home/ec2-user/documentum/shared/java/1.6.0_17
export DOCUMENTUM=/home/ec2-user/documentum
export DM_HOME=/home/ec2-user/documentum/product/6.7
export DOCUMENTUM_SHARED=$DOCUMENTUM/shared
export CLASSPATH=$DOCUMENTUM_SHARED/dctm.jar:$DM_HOME/dctm-server.jar:$DOCUMENTUM_SHARED/config
@

Amazon EC2 – putty timeouts

I’m getting into this EC2 stuff – its pretty good. But on a putty session – the default session timeouts are like 2-3 mins after inactivity.

I added this to an Ubuntu 13.10 build

sudo vi /etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 5

Works…

DAXCAD 2013 – Eclipse

I have been working a bit on Daxcad this year – if only to get it into GIT and Bitbucket.  My repo is here

https://bitbucket.org/DaveRobertson/daxcad/overview

So I have an eclipse project set up with the original source -this is for CYGWIN 32 bit only -so you will need to download Cygwin with X although other X servers can be used – I used this one as well as cygwin X server which is actually quite good if you use their seamless mode ( startxwin )

http://mobaxterm.mobatek.net/download-home-edition.html

Eclipse Kepler - 2013 using CDT and Fortran perspective
Eclipse Kepler – 2013 using CDT and Fortran perspective

Daxcad drawings are supplied in the build – you can read in DXF and IGES… not for the faint of heart – mind you never was.  This picture is from the mobXterm server.  Looks fast enough.

Daxcad drawing from around 1989
Daxcad drawing from around 1989

Updated RoboSapien IR Control – Arduino

There is a brilliant hack for these http://playground.arduino.cc/Main/RoboSapienIR.  I wired this up – but I ended cutting up the poor thing – so I thought I could try it with an IR transmitter instead to do the same thing.  Also means you dont have to ruin your soldering iron punching a hole through the body 🙂

I decided to use the Ken Shirriff IR library.  Its  work of genius.

http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

But it didnt have one for Robosapien. The way it works is pretty cool – but you need a couple of days hack time to figure it out.  The codes from the sapien controller seemed to be in single bytes – so with some effort I managed to get it to transmit those codes.  I tried it on 6 sapiens I bought for a school project.

I updated three of the library files.  I have not included the whole library – just the updated files – so best way is to downloaded Ken’s library and then just replace with these files here

You’ll need an IR Transmitter with an Arduino board.  Something like this http://emartee.com/product/42200/  This project looks like the sort of thing you want to do: http://jerrylparker.com/?p=94

Wire it up with Pin 3 and make sure you hold the transmitter close to the Robots head.  These arduino ones dont have much power and I found the transmitter needed to be within 10-15cm.  However the idea is to be able to replace the onboard controller with Arduino – so you can still do that and without hacking up the toy.

I mapped out the buttons to codes – so in the Arduino sketch – use commands like  irsend.sendRSV1(142);  The sketch is at the bottom.  Its pretty simple.  I had done two types – ones where you have a set sequence.  The other was to initiate the sequence from a PC.  Hence the Serial.read().  I use Processing for that stuff – its amazing as well.

This was done in Excel – which you can download here.  This is the simple pasted version.

 

Button Controller Function Presses Arduino Code
12 Red Turn Right 1 128
1 Red Right Arm Up 2 129
4 Red Right Arm Out 2 130
5 Red Tilt Body right 1 131
2 Red Right Arm Down 2 132
3 Red Right Arm In 2 133
11 Red Walk Forward 2 134
15 Red Walk Backwards 2 135
14 Red Turn Left 1 136
6 Red Left Arm Up 2 137
9 Red Left Arm Out 2 138
10 Red Tilt Body Right 1 139
7 Red Left Arm Down 2 140
8 Red Left Arm In 2 141
13 Red Stop 1 142
19 Red Master Command Program 1 144
20 Red Program Play 1 145
16 Red Right Sensor Program 1 146
18 Red Left Sensor Program 1 147
17 Red Sonic Sensor Program 1 148
12 Green Right Turn Step 1 160
1 Green Right Hand Thump 1 161
4 Green Right Hand Throw 1 162
5 Green Sleep 1 163
2 Green Right Hand Pickup 1 164
3 Green Lean Backward 1 165
11 Green Forward Step 1 166
15 Green Backward Step 1 167
14 Green Left Turn Step 1 168
6 Green Left Hand thump 1 169
9 Green Left hand Throw 1 170
10 Green Listen 1 171
7 Green Left Hand Pickup 1 172
8 Green Lean Forward 1 173
13 Green Reset 1 174
19 Green Master Command Program 1 176
20 Green Wake Up 1 177
16 Green Right Sensor Program Execute 1 178
18 Green Left Sensor Program Execute 1 179
17 Green Sonic Sensor Program Execute 1 180
12 Orange Right Hand Strike 3 1 192
1 Orange Right Hand Sweep 1 193
4 Orange Burp 1 194
5 Orange Right Hand Strike 1 195
2 Orange High 5 1 196
3 Orange Right Hand Strike 1 197
11 Orange Bulldozer 1 198
15 Orange Oops 1 199
14 Orange Left Hand Strike 3 1 200
6 Orange Left Hand Sweep 1 201
9 Orange Whistle 1 202
10 Orange Left Hand Strike 1 203
7 Orange Talk Back 1 204
8 Orange Left Hand Strike 1 205
13 Orange Roar 1 206
19 Orange All Demo 1 208
20 Orange Power Off 1 209
16 Orange Demo 1 1 210
18 Orange Demo 2 1 211
17 Orange Dance Demo 1 212

/*

Based on IRSend demo from ken Shirriffs library - this sends simple commands to a RoboSapien V1 using
and IR Transmitter with Arduino

*/

#include <IRremote.h>

IRsend irsend;
IRrecv irrecv(11);

void setup()
{
Serial.begin(9600);
}

void loop() {

irsend.sendRSV1(142);
delay(1000);

if (Serial.read() != -1) {

Serial.println("started");
irsend.sendRSV1(129);
irsend.sendRSV1(199);

/*
irsend.sendRSV1(129);
irsend.sendRSV1(129);
delay(1000);
irsend.sendRSV1(169);
delay(2000);
irsend.sendRSV1(162);
delay(2000);
irsend.sendRSV1(173);
delay(2000);
irsend.sendRSV1(196);
delay(2000);
irsend.sendRSV1(206);
delay(2000);
irsend.sendRSV1(199);
delay(2000);
Serial.println("Done");
*/

}

}

Mac with Windows

I have been experimenting with the best way of having both Windows and MAC.  Linux is great for servers – but you dont need it for apps.  I’ve got Lion on a 27 Inch iMac.  So I loads up Oracle VirtualBox.  Its like VMWare except its free and its amazing.  So within maybe 1/2 hour I got Windows 7 running in a seamless mode – which means I really do have the best of both.  I need Mac for development and xcode – but I can also run the Windows sessions on Visual Studio – works like a charm.

https://www.virtualbox.org/ – you can get the Mac version here.  It’s really very easy to set up.

I am going to get a 4Gb upgrade for starters – I put Windows 64 bit on as well – so it makes sense to have a bit more.  But you can’t do two things at once so VB seems to allow you to reallocate.  I really like the seamless mode – just works together very nicely.