Jump to content

Banner.jpg.b83b14cd4142fe10848741bb2a14c66b.jpg

Mobai (Mobile Observatory Automation Interface)


Euan

Recommended Posts

A few different things I have on the go have now been collated into one system, Mobai (Mobile Observatory Automation Interface). I've had a lot of people asking me how to do observatory automation so what I am trying to do with this is to make an open source alternative to ACP and other remote automation interfaces. I'm hoping that by allowing people to use the code that it will expand to include different devices / interfaces as the control protocol is really simple.

There is one unavoidable hardware prerequisite so far. In order to enable the communitation to the interface, and all the I/O control needed, it has to be built on an AMX Netlinx controller.

lg_f4df2a55d61dfe.jpg

The good news is there are a lot of second hand ones going for a few hundred quid:

AMX NI-2000 NetLinx Integrated Controller AXT-CA10 10" | eBay

I have it running on my iPhone 4 just now, but its quite a lot of info to get one one page, so it really needs the new iPad if it brings a retina display or I may have to split this into different tabs. The majority of stuff is there just now, except the CCD Commander logs which are just mirrored off the Maxim ones so far. It also runs in a Windows interface quite well.

6031791145_5ed2d4ac59_b.jpg

So, I will try and sum up exactly what you get from this....

The hardware interface (Netlinx)

The controller (depending on model) has a good number of RS232, digital and relay ins and outs. These can be used in a variety of ways to control sensors, power, other controllers, switches, other controllers, etc. This acts as the "brain" of the system and can be kept indoors with the advantage of external monitoring that won't be affected by external power problems.

This controller also connects over the network to the Observatory PC where a client is running connected to various automation programs. I am currently using CCD Commander, MaximDL, ASCOM and the Aurora Cloud Sensor, but with the open code this can adapted to any COM device in Windows and the Netlinx can talk to any other external network device. The client on the Observatory PC sends information back and forth to the controller.

The controller can then run code based on events either from the touch interface itself or from communication from the client. This allows just about any combination you can think. For example:

  • Parking the scope and closing the roof when rain is detected
  • Alerting you to errors via email, sound alerts, any way to can think of
  • Monitoring switches and sensors for security
  • Monitoring power status
  • Switching power On and Off via X10 or contact closures
  • Giving the user detailed info on device statuses

The touch interface (Windows, iPhone / iPod Touch, iPad)

This acts as the user end of the system. The controller will send updates to the interface based on device status, on anything that the controller can read either via it's own I/O or from the client.

At the moment I only have a summary page, but the touch interface can also have buttons which can fire events on the controller. These can either be related to I/O or they can also cause events to happen on the Observatory PC via the client.

The interfaces can run on three device types: a Windows client, the iPhone/iPod touch and an iPad. It uses a program called iRidium to simulate an AMX touchpanel in software. This allows really easy manipulation of the interface via the Netlinx, as well as being able to have the three interfaces running simultaneously. There is a licensing cost of this, I don't know what it is in £ as I have a developer key but I suspect it will be £100-£200

The one thing occurred to me straight away is that this is perfect if you want to go out and about with a visual setup and still connect back home. I have this running on the iPhone over the 3G connected back into the house and it works really well. As there isn't much data going back and forward it updates really fast.

I will update this threads with more brain dumps and further progress....

Link to comment
Share on other sites

Here is an example of a much more compressed skin, it's really easy to have different custom skins using the same objects. I've also changed the client app from a console application to forms and will package it all

6033179056_20d48ee023_b.jpg

Link to comment
Share on other sites

Appreciate there is a cost, but you generally get what you pay for, so....

You do in this case if you buy them second hand, the brand new cost is four figures :smiley:

They are seriously capable units, and the ability to add various touchpanels makes it super slick for observatory automation. I can see the hardware purchase being the main stumbling block for most people though, as it takes a bit of commitment up front to get into. The backend could still be something like an Ethernet enabled Arduino, but it becomes a lot more difficult to build an interface for it then, and it would be a lot more basic.

I've started a Yahoo Tech group for this and uploaded all the source files if anyone wants to have a play. I will try and get up some documentation and schematics later.

Mobai : Mobile Observatory Automation Interface

Link to comment
Share on other sites

I've updated the client to make it a bit smarter, it now does a lot more error handing and does a full update when it connects to the controller.

I've also now done the CCD cooler variables, which is driving me nuts as Maxim doesn't report any changes in the set point cooling level when changed via it's own interface, it's something that has been pointed out in the tech group but I just can't see what it doesn't want to? In the picture below the set point was moved to 5°C but it seems that the COM object will only report it when it first connects, so only when the client first runs :smiley:

Anyway, I've figured out how to do all the CCD cooling control via the touch interface, which could come in handy

6038832211_c6c6ab4009.jpg

Link to comment
Share on other sites

I've now added the CCD Commander feedback, which was a bit of a challenge as I had to use FileSystemWatcher() in .NET to monitor the CCDC log files, and on a change (addition to the newest log), copy the log, and then work out what lines were new and then send them to the controller.

The nice thing about this is, there is no way in the Maxim COM object to find out info on the current exposure, but when running all the scripts via CCDC, it all comes up in the log file. So I was able to re-create the exposure details and bar graph you get in Maxim on the interface.

Next stop ASCOM mount control then I will be pulling as much as I can from the client, then it's on to bi-direction traffic and maybe even launching scripts via the interface... :smiley:

6041194641_2386a326f1_b.jpg

Link to comment
Share on other sites

Now added a cooler set point control popup. At least the cooling set this way will still report OK via the COM object instead of going in via the user interface.

I'm now looking at how I can incorporate all of this is an IIS web interface. This will take a *lot* of learning as I've never done any web coding before, but the client and the control protocol ready it should just a case of translating it into an interface. At least then it will take the hardware investment out of the system just now, there may be other ways to do with either a K8055 or Arduino straight from the client using .NET

6050300004_cd406421d3_z.jpg

Link to comment
Share on other sites

Full mount statistics now done. The missing part to the right of the pier side is a slew notification that will light up when the mount is asked to move.

This works directly from the EQMOD object, but can also go via the chooser and work with other ASCOM compliant mounts.

6053387575_7a64882471_m.jpg

I might also add a "Time to / from Meridian" which will be really handy for keeping an eye on the timing of pier flips

Link to comment
Share on other sites

Added in the Aurora Cloud Sensor and it's really taking shape now. Just a few sensors to hook up in the obs and it's ready to use as a summary interface, will just take a little bit of extra work to put in the comms back into the client for remote control....

I just noticed something a bit daft, the two log feeds have slightly different timings, this is due to the Netlinx time-stamping the Maxim feed at the top and the CCD Commander log feed is already time-stamped on the bottom as the strings are being pulled straight from the log file. Need to sync up these two clocks.

6054146756_cd5bd1e07e_b.jpg

Link to comment
Share on other sites

Power management now added. This is being done via CM11 X10 serial interface, being controlled straight from the Netlinx. Each of the power controls is an X10 Application Module.

x10-interface-usb__32431_std.jpg

It was previously on the Obs PC being controlled via Homeseer, but this way the Netlinx can control all power, even the PC power, allowing it to boot up remotely. It's great being able to switch the mount off at the end of an imaging run, just in case it doesn't park properly and keep tracking (which has happened to me before)

6083269789_ece1b4a82f_b.jpg

This system seen it's first light the other night. I'm still running some tests with the 101ED and the SGL motorfocus, I only have one sub so far but I thought it's about time this thread had some actual imaging on it. :rolleyes:

Unfortunately I need to do some work on the EQ6 as there was loads of trailing after this one. Will have to re-do the drift alignment.

It was great being able to see everything running away, especially having weather and guiding stats in the same place. It brought up some glitches in the code to iron out though.

6077993080_d36f4a6f30_b.jpg

Link to comment
Share on other sites

Craig (blinky) has done some nice work making a user interface from the same client code. Based on this I've knocked up a schematic for discussion on how best to layout the software to cope with different demands. Craig is using it as a remote client / potential web interface, and I am using it with a controller. There is no reason why these should not be selectable and interchangeable using the same master client.

6092802223_11b20979b7_b.jpg

Here is a quick test layout based on Craig's forms, this can be populated with all the same info available in the iPhone interface, as well as extra controls that come in handy on the Observatory PC.

6092361347_a4efa4c7bf_b.jpg

Link to comment
Share on other sites

I will add the Maxim and CCD Commander objects tonight if I get the chance.

I should be able to add them in OK, I need to translate some of the Netlinx code to get it to recreate the touch interface in the client so no point you trying to figure this bit out if I already have it

Can you have a look at the receive part of Net.Sockets? If you use the latest version of the client on the Yahoo Group you should be able to connect to anything, you could run Visual Studio in the house and see if you can get it reading the strings the Netlinx would be getting?

Seriously impressive :) but as you say the hardware is expensive even secondhand :(

We're working on it, once the remote client is ready you shouldn't need the hardware, in fact there are ways to re-create the same functionality using something like the K8055 (which Craig has to run tests with)

Link to comment
Share on other sites

Can you have a look at the receive part of Net.Sockets? If you use the latest version of the client on the Yahoo Group you should be able to connect to anything, you could run Visual Studio in the house and see if you can get it reading the strings the Netlinx would be getting?

:) Will do -hopefully tonight

Link to comment
Share on other sites

  • 2 weeks later...

Pretty big update of this. Most of the functionality of the touchpanel interface has been transferred over to the Windows app.

We have changed how this behaves with external connections. It now also acts more as a server side app rather than a connecting client. You can set it to listen for incoming TCP requests, and when connected will open up a stream of info from any of the three different apps. (Shown in Putty on the right hand side). This is also able to receive data although there are no events in it yet to control anything.

Next is to add in the CCD status reporting, change the mount select to use the ASCOM chooser and potentially look at the K8055 to execute external I/O based on various events.

This is now a lot nicer to use, you can connect to whatever app you want info from, connect the external client and then just minimise it to the system tray and forget about it.

Source code in the Yahoo group link in my sig for anyone who wants to have a play

ZNvVm.png

Link to comment
Share on other sites

  • 2 years later...

Reviving a thread from the past...

That looks like exactly what I'm after. I need to look into that Yahoo group for more info (waiting for my "Membership Approval")...

Have you done much more work on this amazing tool?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.