Make your own base station to communicate with satellites!
These set up procedures expect that your base station is fully assembled and your ESP32 is flashed with Micropython firmware. If not, check the NyanSat website for detailed steps on how to assemble your hardware, plus some tips on avoiding common pitfalls.
NyanShell provides a convenient shell interface to communicate with your NyanSat base station. To install this interface, simply type sudo make nyanshell
in the project directory.
Once your host is set up, you can install NyanSat on your ESP32. Before anything, make sure you have a fully erased, freshly flashed micropython installation on your ESP32.
First, determine which serial port corresponds to your ESP32. Then from the project directory, run make nyansat SERIAL=<your ESP32 serial port>
to install it on your ESP32. During this process, you will be asked for your WiFi SSID and Password; this is to establish an internet connection for upip, which will install some dependencies. Towards the end of the install process, the script will ask you to setup webrepl on the ESP32.
To enter NyanShell, type the following in a terminal window:
python3 -m nyansat.host
If your pin configuration is different from the default values, you can easily change to them by running the setup <profile_name>
command. This command creates a new profile with your given name and switches to it.
If you have multiple pin configurations on the ESP32, you can switch between them using the switch <profile_name>
command. This command switches to your chosen profile, leaving the original one intact, but not in use.
The NyanShell interface puts key metrics front and center from your base station. The interface displays the azimuth, elevation, and (if equipped with GPS module) your ground coordinates.
Calibrating IMU's are difficult; the BNO055 is especially tough. NyanShell provides a calibration command to easily poll the calibration status of your BNO055. If the IMU is not calibrated, the command guides you through the process with on screen instructions and real time feedback on the calibration status. To start, simply type calibrate
into the shell and follow the instructions until your IMU is calibrated.
If you have a predefined configuration with an IMU calibration profile, you can use the profile management commands to load the IMU calibration values.
While servo motors can take a position as input and try to reach it, the motor will not exactly reach that position. Using the IMU, the motortest
command cross references the position change of the motor with the measured change from the IMU. This allows you to see how accurately the motor assumes the desired position.
General:
- Python >= 3.6
NyanShell:
- MPFShell
- TUI-DOM
NyanSat:
- Logging
- PCA9685 Adafruit Library
- BNO055 Adafruit Library, adapted for use in Micropython by Peter Hinch
- SSD1306