Releases: alanbjohnston/CubeSatSim
Pico Beta v0.40
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.3 and later Pico PCB. Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/ The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipicow.v0.40.uf2 is included with this release and should work with a Pico or Pico W board. To install it, follow these steps:
Plug your Raspberry Pi Pico or Pico W into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency or using the offset option 'O' it can transmit on 434.875 MHz.
Changes since v0.39
- Added frequency offset option 'O' which changes the transmit frequency from 434.9 MHz to 434.875 MHz. This is useful for running multiple CubeSatSims in the same location, such as in a classroom. This uses the new v0.4 version of the modified Adafruit_SI5351_Library, included below.
- The offset is stored in the config file, so it will survive reboots and stay until the offset is removed.
- Updates to hardware
What's Changed
- Pico v0.34 by @alanbjohnston in #251
Full Changelog: v0.39...v0.40
Pico Beta v0.39
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.3 and later Pico PCB. Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/ The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipicow.v0.39.uf2 is included with this release and should work with a Pico or Pico W board. To install it, follow these steps:
Plug your Raspberry Pi Pico or Pico W into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
##New to this release:
- Fixed more pushbutton bugs. Now the pushbutton should work reliably
- Fixed bugs with the serial input. Input is queried only every 8 seconds, so there can be a delay, but this increases quality overall.
- SSTV quality is improved
- A + is printed on the serial monitor log every 8 seconds, except in SSTV mode where it causes dropouts in the image. This helps you see if the serial monitor is working or if it needs to be closed and reopened.
- Increased the time it tries to get an image from the camera to 10 seconds. The previous release was too short.
- Increased the delay on boot from 5 seconds to 10 seconds to see if it helps the ESP32-CAM boot better.
- Simulated telemetry now works with a seeded random generator
- CPU temperature is read from analog input of GPIO 29 and included in telemetry and used to seed random number generator
##Known Issues:
- When changing modes, the serial monitor log doesn't always output the last few lines
- The 8 second period between input queries can cause some latency
- Sometimes a serial input is ignored due to the serial port needing to be closed and reopened. If you see + printed every 8 seconds, it usually means that serial input will work. Worst case, close the serial port then type the command again.
What's Changed
- V0.39 by @alanbjohnston in #264
Full Changelog: v0.38...v0.39
Custom Libraries Needed:
- lib-v0.32 of Arduino-APRS-Library
- pico-lib-v0.5 of picosstvpp
Pico Beta v0.38
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.3 and later Pico PCB. Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/ The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipico.v0.38.uf2 is included with this release and should work with a Pico or Pico W board. To install it, follow these steps:
Plug your Raspberry Pi Pico or Pico W into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
Note: the v0.37 was an experimental only release.
New to this release:
- Fixed several bugs in the pushbutton code that prevented mode changes
- Moved pushbutton reboot functionality from press and release to press and hold until slow blinks.
- Added full debug to the Camera debug mode 'C' which now prints all serial messages received from the ESP32-CAM . The version number of the ESP32-CAM code is now logged
- Reverted to the ESP32-CAM code from v0.35 that works quite well
- Added print of version number to help display 'h'
- Added back telemetry to APRS mode packets
Known issues:
- Some APRS packets are not decoded
- SSTV is a bit wavy, with colored bands down the sides
- ESP32-CAM runs continuously, which draws more current than it should
- Sometimes the Camera sends an image of size 15360 which doesn't decode as a JPG, so the black background stored image is transmitted instead.
- Occasionally on boot, the Camera doesn't blink and then SSTV only sends stored image. Power cycle usually fixes it
What's Changed
- Pico v0.36 fix4 by @alanbjohnston in #259
- Pico v0.38 all by @alanbjohnston in #260
Full Changelog: v0.36...v0.38
Pico Beta v0.36
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.3 and later Pico PCB. Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/ The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipico.v0.36.uf2 is included with this release and should work with a Pico or Pico W board. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- Detects if the board is a Pico or Pico W and displays it in the log on boot.
- Built in LED works with both Pico and Pico W board.
- Camera debug mode which displays the image bytes received from the ESP32-CAM as hex bytes along with the total bytes and the CRC check. If you copy and paste the hex string into https://tomeko.net/online_tools/hex_to_file.php?lang=en and save as a jpg, you can view the image on your computer. In SSTV mode, the bytes are displayed each time a photo is taken. In all other modes, selecting this menu option will immediately take a photo and show the bytes.
- You can connect to your WiFi network if you have a Pico W. You will be prompted to enter the SSID and password. That's all it does so far, but you can see the effect in SSTV and BPSK modes
- Checks for 3.3V on the GPIO header, and if it detects it (such as a Pi Zero is plugged in), sets all GPIO pins to input and runs payload only code
- Help menu h now displays all the commands and also the current mode
- Outputs a binary zero on the ENABLE_CAMERA GPIO 15 pin which in the future will be used to wake the ESP32-CAM from sleep. Do not use the ESP32-CAM software in this release as it is experimental and has issues.
Known issues:
- After you connect to the WiFi, you will see red and blue speckles in the SSTV, and the BPSK mode will fail to decode
- If no ESP32-CAM, the initial check is very long before it gives up
- ESP32-CAM code in this release does not work yet - use the ESP32-CAM code from the previous release
What's Changed
Full Changelog: v0.35...v0.36
Pico Beta v0.35
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.4 Pico PCB (also works with the v0.3 PCB). Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.4 The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipico.v0.35.uf2 is included with this release. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- SSTV now sends just 5 seconds after photo
- Pushbutton and serial input should work in all modes including SSTV mode
- In APRS mode, sends a short simple APRS packet for testing
- Reverted to previous FSK code
- I2C issues causing long read times are now detected and sensor is deactivated. This was causing issues where the pushbutton was unresponsive
- New I2C scan option with 'S' that scans both I2C busses and lists all devices present.
Known issues:
- FSK seems to have I2c bus 1 issues - sensors on I2c bus 1 often get turned off with the new I2C issue detection code. Doesn't happen in any other mode as far as I can tell.
- In SSTV there are colored bands down the sides of the image
- Sometimes the Camera sends an image of size 15360 which doesn't decode as a JPG, so the black background stored image is transmitted instead.
- The camera image needs to be mirrored. Camera code to sleep when not in SSTV mode still needs to be done.
What's Changed
- Pico v0.35 i2c by @alanbjohnston in #252
- Pico v0.35 i2c by @alanbjohnston in #253
- add jpeg_decode conditional by @alanbjohnston in #254
Full Changelog: v0.34...v0.35
Pico Beta v0.34
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.4 Pico PCB (also works with the v0.3 PCB). Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.4 The code is compiled using the Arduino software.
The binary UF2 file cubesatsim.ino.rpipico.v0.34.uf2 is included with this release. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- Resistors for the presence of the BPF and SR_FRS FM module are now used. You can see the results in the log at boot. If no BPF indicated by no R1, only the CW ID is transmitted - nothing after that. If no SR_FRS module present indicated by R9, CW is transmitted using the Clockgen board, so a weak CW carrier signal is sent for the CW ID and the CW mode. So you don’t have to unsolder your resistors, you can try the UF2 files that force no BPF but SR_FRS present (cubesatsim.ino.rpipico.v0.34.no_bpf.uf2), and no SR_FRS but BPF present (cubesatsim.ino.rpipico.v0.34.bpf.no_sr_frs.uf2).
- Mode change button presses or serial input now work as the software initializes. When you press and hold the pushbutton, you sound not have to wait more than 2-3 seconds until the green LED starts blinking.
- The QSSTV auto mode should now always select Scottie 2 now. Since I tweaked the period, I haven’t seen the ML280 decode - let me know if you see it in SSTV mode and how often.
- FSK mode is now stronger and a cleaner signal. However, I2C readings aren’t accurate anymore and a frame is received about every 10 seconds instead of every 5 seconds. If you set to simulated telemetry mode using 't' you will see frames every 5 seconds. I hope to be able to fix this in the future.
What's Changed
- Pico notjpg by @alanbjohnston in #229
- Pico v0.33 serial by @alanbjohnston in #242
- delay 5, print blink by @alanbjohnston in #243
- set sys clock to 133 by @alanbjohnston in #245
- Pico v0.34 by @alanbjohnston in #246
- Pico pf by @alanbjohnston in #247
- Pico v0.34 by @alanbjohnston in #248
- Pico sr by @alanbjohnston in #249
- Pico by @alanbjohnston in #250
Full Changelog: v0.33...v0.34
Pico Beta v0.33
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.4 Pico PCB (also works with the v0.3 PCB). Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.4 The code is compiled using the Arduino software.
The binary UF2 file is included with this release. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- Change mode should now work correctly even in SSTV mode
- The v1 SSTV image sequence of first white AMSAT logo, then camera images if present or black stored image repeating
- Formatting now automatically reboots and should work
Known issues:
- Takes about 65 seconds to generate an SSTV image. This can hopefully be reduced in the future
- When holding pushbutton to change modes, it can take up to 4 seconds for the green LED to start blinking. There have been times in FSK and BPSK mode where it seems to take even longer - let me know if you see this.
- Sometimes the Arduino Serial Monitor stops displaying after a mode change. Closing and reopening the Serial Monitor seems to fix it.
- Sometimes QQSSTV on the Pi Ground station in Auto mode locks on ML mode instead of Scottie 2 - the image colors are wrong and repeated twice. Stopping and starting usually fixes this.
What's Changed
- Pico format by @alanbjohnston in #240
- Pico v0.33 debug by @alanbjohnston in #241
Full Changelog: v0.32...v0.33
Pico Beta v0.32
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.4 Pico PCB (also works with the v0.3 PCB). Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.4 The code is compiled using the Arduino software.
The binary UF2 file is included with this release. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- SSTV now used the ported PicoSSTVpp using PWM sine waves
- Now used Scottie 2 format just like Pi Zero CSS
- APRS and CW are back to square wave, for now.
- A new serial input command F to reformat the flash memory on the Pico. Sometimes, a file gets corrupted or too big and reformatting is the only way to get things to work again. After entering F in the Serial Monitor, you will then need to power cycle the Pico to get running again. The default configuration including FSK mode will then run.
Known issues:
- SSTV image has a diagonal stripe of R G B pixels across it
- Takes 50 seconds to process a SSTV image
- Only one stored SSTV image - black background
- Sometimes QSSTV on the Pi Ground Station in Auto Mode thinks it is ML280 instead of Scottie2. You can force it decode by stopping, Mode S2 then start. A reboot will often fix it too.
- Hardware issue: Camera stops blinking and then only sends stored image. Power cycle can fix it.
- Won’t immediately change mode while transmitting SSTV image. Mode change happens at end. Will change mode immediately while rendering SSTV image. Sometimes, mode changing stops working after using SSTV mode. Sometimes it is the pushbutton change, other times it is the serial monitor change. If you find a clear pattern of how this fails, let me know as it is some kind of very annoying timer/interrupt interaction.
Full Changelog: v0.31...v0.32
Full Changelog: v0.30...v0.32
Pico Beta v0.31
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.4 Pico PCB (also works with the v0.3 PCB). Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.3 The code is compiled using the Arduino software.
The binary UF2 file is included with this release. To install it, follow these steps:
Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
Drag the .UF2 file from this release to the Pico flash drive
You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- Instead of square waves for generated audio, PWM is used to approximate a sine wave. Sample rate is 22kHz - more tuning is possible. This is generated a by a new pico_dds library which is then used in CW, SSTV, and AFSK modes
- CW now uses a sine wave
- AFSK/APRS now uses a sine wave
- SSTV now uses a sine wave and also has better synchronization and decoding.
- SSTV no longer rotates camera image - an extended camera ribbon cable will be used to do the rotation
- In SSTV mode, the top half of the JPG image to be transmitted is output to the serial monitor log as hex digits. if you copy and paste them into https://tomeko.net/online_tools/hex_to_file.php and save as a file, you can the upload the file in https://rawpixels.net/ with these settings: predefined format: RGB24, width: 320 and then you can view the top half of the image for debugging.
- A second SSTV stored image (black background) is transmitted if no camera is detected or JPG doesn't open
- Added Pico v0.4 PCB files under hardware
Known issues:
- The header row on the SSTV image is missing - will be added back
- The non-rotated image needs to be mirrored - will be fixed in the ESP32-CAM software in a future release
- Sometimes the JPG image is not received from the camera so it transmits a stored image
What's Changed
- Pico notjpg by @alanbjohnston in #229
Full Changelog: v0.30...v0.31
Pico v0.30 Beta
This is a beta release of the CubeSatSim code ported to the Raspberry Pi Pico for the v0.3 Pico PCB. Here is the info on this board: https://github.com/alanbjohnston/CubeSatSim/tree/pico/hardware/pico/v0.3 The code is compiled using the Arduino software.
The binary UF2 file is included with this release. To install it, follow these steps:
- Plug your Raspberry Pi Pico into your computer using the micro USB port while holding down the BOOTSEL button (white button on the Pico). It should mount as a drive RPI-RP2.
- Drag the .UF2 file from this release to the Pico flash drive
- You can monitor the serial output using Arduino or a terminal emulator such as PUTTY to see the log files or make configuration changes.
This code transmits on the usual 434.9 MHz frequency
New to this release:
- Lots of updates to INA219 code including the following:
- Don't query 5V bus sensor, only query sensors that are present, missing sensors are logged
- Location of INA219 displayed (e.g. +X), non-queried sensors set to 0
- Set bus 1 and bus 2 status based on at least one INA219 present
- If takes longer than 1 second to read INA sensors
- Logs message saying there is a problem
- Remove I2C address for BME since it started failing for some reason
- Program radio during setup, add 0.5 sec delay between commands
- Only try to connect with Camera once at the start
- Set Payload OK in FoxTelem correctly if either BME or MPU is present
What's Changed
- Pico no prog by @alanbjohnston in #191
- Pico i2c by @alanbjohnston in #225
Full Changelog: v0.25...v0.30