Tuesday, March 30, 2021

Canon T7i-Astrophotography Mod

I bought a refurbished Canon T7i with the intention of modifying it (removing the IR cut filter) to make it suitable for nebula gas emission astrophotography. I tried buying all these external astronomik special filters (e.g. UHC EOS APS-C Clip filter, and CLS EOS APS-C Clip Filter) to filter out city lights - this helped a lot, but never compared to the top notch photos on the internet. I've got the itch for full spectrum! That was it. I set out on the scary attempt at removing the built-in IR cut filter (voiding my warranty):

I roughly followed the guide by Gary Honis on:

  • http://dslrmodifications.com/rebelmod450d1.html
  • https://www.youtube.com/watch?v=7huA4R9rXrQ
Guide deviations for T7i
This was reasonably close to the T4i guides. 
  1. I found that there was screw hidden under the T7i logo instead of needing to peel back the rubber grommet material as described in the guide(it's permanently attached - so don't do that).  There were several other screws that didn't quite match the guides. I deduced it carefully, and recorded my whole process. I may publish a written/video guide later.
  2. I installed the Astonomik MC-Klarglas EOS1000D filter. It was a tight squeeze and fractured the edges a little bit as I snapped the metal housing back on it - glad it was crack resistant (at least in my case).
  3. There were a lot more connectors, and using the toothpick was great for gently handling the connectors. It's definitely an art to manipulate. I damaged one of the black connectors... even with a toothpick!!! Sheesh, fragile hardware. (I later touched it with a soldering iron momentarily to reseat it - slide board discoloration)
Now to test it on some nebula tomorrow!

First moment firing it up. You can see infrared light from TV remote in the camera, but not on the iPhone!


Lots more connectors

(Hidden Screw behind logo)





Monday, March 1, 2021

Mars is cool!

 https://mars.nasa.gov/resources/curiositys-1-8-billion-pixel-panorama/?site=msl

This is probably worth a look! Things I noticed:

  • Can see that the tire has a hole in it. Some interesting material science considerations there. Maybe make it metal next time? Although compliant materials, have likely better traction.
  • You can see some sort of conglemerate/sandstone rocks nearby. Probably telling about history of mars. Compaction? Fluid? Did it ever get exposed to lava, or a fluid flow to make this rock?
  • Dust accumulation on curiousity... it's definitely been in some weather events.
  • Aruco Fiducials all over the rover for camera calibration - cool! I wish I knew the dimensions of those markers.
  • It's also interesting that kapton tape is just all over the wire bundles without any additional protection!


Unity Namespaces - passing variables

In a unity project I was working on, I was having a heck of a time passing variables between a 3rd party plugin I'd downloaded and was splicing into (ROS Sharp) because I was trying to make some custom ROS messages. The problem is a default unity project script doesn't have a default namespace, so I defined some public static variables in the 3rd party plugin scripts where I needed to handle my custom message. defining some get/set methods enabled me to access it from my project (which others had touched and was filled with a cluttered set of related scripts that I really didn't want to try and encapsulate in its own namespace.)

Anyway the solution was found here:
https://stackoverflow.com/questions/740937/accessing-variables-from-other-namespaces


Key Lessons for Unity Projects:
  • Own Namespace (best practice) - Probably good practice to change default unity project script with its own namespace. This is probably good so you don't have conflicts when you bring in 3rd party assets and c# plugins. Probably annoying to setup, but i can imagine this helping tons in big multi-user projects (like the one i'm working on)
  • static variables - sort of like a global variable that shouldn't change much, and here's the kicker - can be accessed everywhere. "A static class cannot be instantiated. All members of a static class are static and are accessed via the class name directly, without creating an instance of the class." This is handy because I don't want to instantiate the class a million times.


PS - I need to play around with https://catlikecoding.com/unity/tutorials/flow/texture-distortion/