ThunderFocus is an open-source telescope focuser developed by Marco Cipriani. The source code is available on GitHub and is issued under the GNU General Public License version 3.
Showcase of controllers and focusers on my website!
ThunderFocus is an all-in-one focuser and power box (dew heater controller) designed to be fully customizable and feature-rich. It has its own control software written in Java and is both INDI and ASCOM compatible.
The firmware can run on both Arduino and Teensy, with the only difference being the RTC support and the speed of the MCU. Thanks to the firmware configuration file, you can select only the features you need and remove the unnecessary: the control software will detect the available features and display only the options supported by the board, so you won't need to modify other files.
The user interface is platform-independent and works seamless across computers and boards like Raspberry Pi, with the only requirement being Java 15 (bundled in the Windows installer): in this way, you get the same experience no matter what OS you run. Moreover, it uses INDIForJava for INDI/KStars compatibility and a special ASCOM driver for Windows compatibility. As a bonus, it can also be controlled using the Telescope.Touch Android app when the INDI server is enabled!
- INDI/ASCOM compatibility, cross platform interface
- Full telescope focuser control
- Can control either one main telescope focuser or one guidescope/off-axis guider focuser
- Backlash compensation
- Precise micro-stepping control for pin-point stars
- Displays the focuser position in millimeters, ticks or any unit of your liking
- Remembers the last position
- Advanced dew heaters control, which can also turn on and off the telescope mount or other accessories.
- Various automatic modes: temperature, dew point, humidity, sunset/sunrise
- Manual control/override of outputs
- Completely autonomous after configuration: can work without a PC
- Restores the last state after power up
- High efficiency, does not require heatsinks or cooling
- Ambient monitoring
- Temperature, humidity, dew point
- Graphs of the whole observing night
Get the latest release and install it. You're done!
Skip the Java installation if you already have it installed!
Install the latest Java Development Kit available, version 17 or greater. On Ubuntu:
sudo apt update
sudo apt install openjdk-17-jdk
Raspberry Pi OS or Astroberry:
- Download the latest Eclipse Temurin build JRE or JDK (recommended: version 17, HotSpot JVM)
- Run
sudo mkdir /usr/java/
- Extract the archive using
sudo tar -zxf OpenJDK17_RELEASE.tar.gz -C /usr/java/
(change the filename accordingly to what you downloaded) - Run
echo 'export PATH=$PATH:/usr/java/' | sudo tee -a /etc/profile
Install Java version 17 or greater and then use the .jar
ThunderFocus release.
- Install Visual Studio Code and the PlatformIO extension
- Install the Arduino or Teensy core in the PlatformIO boards manager
- Open the
ThunderFocus-firmware
folder inside VS Code - Select the PlatformIO Project Environment (
nanoatmega328
,teensy40
, etc) from the status bar, or add a custom one inplatformio.ini
- Open
src/config.h
and enable one and only one board config file - Open the configuration file you enabled and make the appropriate changes (comments in the file will guide you)
- Select the pins according to your circuit
- Enable or disable features
- Eventual errors or incompatible combinations of features will stop the compilation
- Done! Upload the firmware
- Install a Java Development Kit, version 15 or greater
- Install IntelliJ IDEA community
- Open
ThunderFocus-GUI
inside IntelliJ - Just run the only configuration in the project, it will build the artifacts for you and place them in the right places
Requires the jar
files. Make sure to follow the previous step.
- Install Inno Setup and Visual Studio with Visual Basic .NET support
- Open
ASCOM.ThunderFocus
inside Visual Studio - Compile the Release configuration (do not run it)
- Extract a copy of the AdoptOpenJDK in the
JRE-bundle
folder- Recommended: OpenJDK 15 with HotSpot VM, Windows x64
- Open
InnoSetup.iss
and make the necessary changes to the file:- Replace
D:\ThunderFocus\
with the path to the ThunderFocus repository in your computer
- Replace
- Compile and run the Inno Setup file: it will create the Windows installer in the
Installers
folder
Requires the jar
files and a Debian installation with dpkg-deb
. Note: the Debian package will not include a bundled JDK. Make sure to install it and make the necessary changes to the PATH
env variable.
- Run
cd ThunderFocus-GUI/deb-builder
./build.sh
(requiresroot
access to set the appropriate permissions)- You're done, the installer will be located in the usual
Installers
folder
- Eclipse Temurin by The Eclipse Foundation, GPL v2 license with classpath exception
- INDIForJava by Marco Cipriani, Sergio Alonso and Richard van Nieuwenhoven, LGPL v3 license
- ASCOM .NET libraries by The ASCOM Initiative, ASCOM Open Source License
- jssc by java-native and scream3r, LGPL v3 license
- FlatLaf by JFormDesigner, Apache 2.0 license
- Gson by Google, Apache 2.0 license
- Material icons by Google, Apache 2.0 license
- Arduino Core APIs by Arduino, LGPL v3 license
- AccelStepper by Mike McCauley (with modifications), GPL v3 license
- Arduino Time Library by Michael Margolis, LGPL v2.1 license
- Adafruit BME280 Library by Adafruit Industries, 3-Clause BSD license
- Adafruit HTU21D-F Library by Adafruit Industries
- SolarPosition library by Ken Willmott
- Based on Arduino Uno and Solar Position Calculations, © David R. Brooks, issued under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
- Uses equations from the book Astronomical Algorithms by Jean Meeus, published by Willmann-Bell, Inc., Richmond, VA
- Telescope icon by Freepik, Flaticon license