Welcome, Guest
Username: Password: Remember me
20 Aug 2017
INDI development team is happy to announce the release of INDI Library v1.5.0. This new exciting release builds on the maturity of INDI Library and comes with many new supported devices and fixes for existing drivers.
Read More...
  • Page:
  • 1

TOPIC: Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 1 year 3 days ago #10900

  • NickK
  • NickK's Avatar Topic Author
  • Offline
  • Expert Boarder
  • Expert Boarder
  • Posts: 80
  • Thank you received: 10
I thought I'd just introduce my 'embedded' system - on the ODroid C2.

I'm running a 64 bit build from the bleeding edge on Ubuntu using C2 + eMMC local storage.
* Kstars
* Ekos
* astrometry.net + 32GB of astrometry.net indices on SSD
* separate INDIServer instance
* indi NEQ6 eqmod control
* indi atik camera drivers (Peter's) with Titan, 383L, 420. The little 16IC has been retired.
* indi atik efw2 driver
* own Yet-Another-Rob-Focuser (YARF) arduino + DRV8825 controller with own firmware to control the focuser
* Garmin Gecko 302 GPS via USB serial connection

Performance wise - the quad cores have got enough oomph to run everything. I use a remote desktop to control via WiFI connection.




With annotation switched on astrometry was about 4minutes.. but with annotation switched off it's 13seconds - just using a single core (so that the system can continue to guide etc).
Attachments:

Please Log in or Create an account to join the conversation.

ODROID C2 Ubuntu
Last Edit: by NickK.

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 1 year 2 days ago #10912

Hi :)

this is a veru good job ! I have exactly the same devices but... I needed to reinstall in 32 bit in order to use Atik things. (So I've install a odrobian not supported by "odroid" so each update is a pain.)

Could you explain here or somewhere how you install all this ?
-> I've read another post where you detailled what you've done. Have you scripted it ? or write it down somewhere ?

WHat about "indiseparate server", could you explain this please ? -> I've read your post : you launch indi on command line : OK

Please Log in or Create an account to join the conversation.

Last Edit: by djibb.

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 1 year 2 days ago #10915

  • NickK
  • NickK's Avatar Topic Author
  • Offline
  • Expert Boarder
  • Expert Boarder
  • Posts: 80
  • Thank you received: 10
So the build sequence is:

-> 64bit OS Ubuntu
-> Virtual desktop install
-> download cfitsio from NASA and build 64bit and 32bit.
-> Follow the instructions to build INDI & kstars in 64bit -> you will need to pulldown the KDE development framework which is quite large plus other dependencies (should all be 64bit ARM v8), following the 3rd party drivers you will find that one set of drivers doesn't work (they're v7 32bit binary blobs) so tell the build to ignore these
-> astrometry.net built should be 64bit.

Now comes the fun part..
1. Indiserver and kstars is 64bit. However because the indi_atik_ccd driver is a seperate process it will run, as compiled, as 32bit. The runtime linker will need to be told where to find the 32bit cfitsio shared library. As the system 64bit installed library will be ignored.
2. use setenv FD_LIBRARY_PATH = $FD_LIBRARY_PATH:. (where . is the directory holding the 32bit version of cfitsio shared library)
3. start the indiserver as normal from the command line using indiserver then the drivers (most will be 64bit)) but the indi_atik_ccd and indi_atik_filterwheel (IIRC that's what it's called) will run as 32bit and will now correctly use the FD_LIBRARY_PATH to find the corresponding 32bit cfitsio shared library dependency.
4. start the 64bit version of kstars ..
5. setup an ekos profile to look external (but on the local machine) rather than have ekos start the indi server and drivers.
6. taadaah! cameras, kstars, action!
The following user(s) said Thank You: knro, djibb

Please Log in or Create an account to join the conversation.

ODROID C2 Ubuntu

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 11 months 4 weeks ago #10961

Hi :)

could you explain a little bit more :
1) why you did not use kstars-bleeding from jasem ppa ?
2) how you compile cfitsio in 32 bit ? (I'm really not a multiarch guru) (I've still compil it in 64 bits ;)
3) about using cfitsio 32, you call setenv, then start indiserver ? (or it is on the same line)

Thanks for all ;)

Please Log in or Create an account to join the conversation.

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 11 months 4 weeks ago #10964

  • NickK
  • NickK's Avatar Topic Author
  • Offline
  • Expert Boarder
  • Expert Boarder
  • Posts: 80
  • Thank you received: 10

djibb wrote: 1) why you did not use kstars-bleeding from jasem ppa ?

The C2 is an ARM 64bit v8 architecture, compiling with a compiler that knows how to optimise and build for it results in more efficient and faster performance. It's using all of the capabilities of each core rather than being generic. At the time there were no 64bit ARM v8 builds (may this year)..
Having 64 and 32 binaries of everything gets complicated and bloated due to the need for duplicate dependencies.. so 64bit for everything.

djibb wrote: 2) how you compile cfitsio in 32 bit ? (I'm really not a multiarch guru) (I've still compil it in 64 bits ;)

You can tell the ./configure command to make for different architectures - including 32 and 64bit. EKos uses the 64bit build I've built into the system.. the indi_atik_ccd process then needs to runtime link against the 32bit version - hence FD_LIBRARY_PATH on linux gives a list of locations for the runtime linker to search.. you could add both 64bit and 32bit. The linker will reject the 64 bit, then continue to search for a 32bit and will then find it.

djibb wrote: 3) about using cfitsio 32, you call setenv, then start indiserver ? (or it is on the same line)

Yes.
I create a shell terminal session, then set FD_LIBRARY_PATH to add the new 32bit cfitsio location and then execute the indiserver on the command line - actually I do this with all my drivers.

When indiserver executes it runs as process and starts the other drivers as a process with just a socket connection between to communicate. This means that the indiserver and other drivers can be 64bit .. and other drivers can be 32bit without needing all to be one or the other.

Lastly - you may find that, on 64 bit, the astrometry.net solver python script incorrectly identifies the precision in the FITS image file - the is because it's attempting to dynamically identify the type at runtime and gets it wrong (it seems the type identification differs between 32 and 64bit python - bad programming!). The simple way to solve this is to save in a PNG and the problem is solved :D

Please Log in or Create an account to join the conversation.

ODROID C2 Ubuntu
Last Edit: by NickK.

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 11 months 4 weeks ago #10969

  • NickK
  • NickK's Avatar Topic Author
  • Offline
  • Expert Boarder
  • Expert Boarder
  • Posts: 80
  • Thank you received: 10
Just got a new iPhone for my birthday (old one was 2009 3GS!).. VNC client app and hey presto!

Attachments:
The following user(s) said Thank You: knro

Please Log in or Create an account to join the conversation.

ODROID C2 Ubuntu

Odroid C2 (64bit) + KStars + Ekos + INDI + ATIK cameras 11 months 3 weeks ago #11042

  • NickK
  • NickK's Avatar Topic Author
  • Offline
  • Expert Boarder
  • Expert Boarder
  • Posts: 80
  • Thank you received: 10
So one issue with the 64bit version and the latest "numpty" is that the issue with the astrometry script and the rule changes in numpty about dynamic casting:
TypeError: Cannot cast ufunc add output from dtype('int32') to dtype('uint16') with casting rule 'same_kind'

So saving in a PNG for the tests was the initial work around but it looks like this can be done:
stackoverflow.com/questions/14269164/why...-computers-in-python

It appears that according to that comment that the change was reverted.. so perhaps a python/numpty update will sort it out. It looks like ".astype()" needs using in the script: docs.scipy.org/doc/numpy-dev/release.html

Default casting rule change
Default casting for inplace operations has changed to 'same_kind'. For instance, if n is an array of integers, and f is an array of floats, then n += f will result in a TypeError, whereas in previous Numpy versions the floats would be silently cast to ints. In the unlikely case that the example code is not an actual bug, it can be updated in a backward compatible way by rewriting it as np.add(n, f, out=n, casting='unsafe'). The old 'unsafe' default has been deprecated since Numpy 1.7.


This leads to this: github.com/astropy/astropy/issues/4588

So the same issue impacts all users.. but the last link has more info/investigation.
The following user(s) said Thank You: knro

Please Log in or Create an account to join the conversation.

ODROID C2 Ubuntu
Last Edit: by NickK.
  • Page:
  • 1
Time to create page: 0.254 seconds

Login

3rd Party

Choose from the numerous 3rd party INDI drivers to suit your needs!

Got Problem?

Check out the FAQ, the forum, and the bug tracking system to resolve any issues you might have!
You can also subscribe to INDI newsletter and development mailing lists to get the latest updates on INDI!


Gallery

Replica

Why INDI

Replica