Troubleshooting
Hardware Debugging
Connection issues
- Ensure you performed the checks in Unpacking & Hardware Overview
- If your computer doesn't see the PyCubed board as a mass storage device
(but the RGB is cycling through a rainbow of colors
as described)- Confirm the USB port on your computer isn't a "power only" port by plugging another USB device (like a flash drive) into that port.
- If your computer doesn't recognize PyCubed and there is no rainbow LED as described.
- It's likely the board isn't getting power.
- Confirm the USB port is working on your computer by plugging another USB device into that port.
- Visually inspect the board for any foreign debris that may be causing a short-circuit on the board.
- It's likely the board isn't getting power.
My board isn't generating 3.3V
- Did you build the board yourself? Check that the USB port properly soldered on and plugged into a known-working USB port on your computer.
- Are the mechanical inhibits shorted as described here?
- Inspect the board for any debris that may be causing an unwanted electrical short.
- A short between 3.3V and ground will trigger the primary 3.3V regulator's short-circuit protection (thereby disabling the 3.3V rail).
The green "CHRG" LED blinks when I plug my board into my computer
This is because the PyCubed hardware hasn't been initialized since powering the board via USB
- Opening the REPL and sending
from pycubed import cubesat
should make the blinking stop.
- Usually this is handled by
main.py
sincefrom pycubed import cubesat
is typically one of the first things we do.
The blinking is the USB charger saying it doesn't see a battery attached.
- Opening the REPL and sending
My board restarts when I try to transmit using the radio
This indicates the radio is starved for power which results in the 3V3 rail dropping.
Solutions:
- If you're powering the board via the USB cable and just trying to transmit for testing purposes:
- Make sure the RF regulator is disabled.
📄 Because of the global chip shortage of 2021, the RF regulator can be either U7 or U21. Instructions on disabling the RF regulator in software:
- If your board has U7 populated, your regulator should be disabled by default, but double check by confirming
/lib/pycubed.py
line 107 says the following:self.enable_rf.switch_to_output(value=True)
- OR if your board has U21 populated, your regulator is enabled by default. Disable it by changing
/lib/pycubed.py
line 107 to say the following:self.enable_rf.switch_to_output(value=False)
- If your board has U7 populated, your regulator should be disabled by default, but double check by confirming
- Make sure the RF regulator is disabled.
- If you're attempting to transmit using maximum output power (
max_output=True
):- Ensure you have a 2S li-ion battery (7.2-8.4V) attached.
- If you're testing on the bench, ensure that your
High Side
andLow Side
inhibit connectors are bypassed. See 🔓Inhibits & RBF Header for more details
(you'll want the "Benchtop Testing - With Battery" configuration)
- Confirm that you have an antenna securely attached to the "Radio #1" connector. See 📡Antennas for more details.
- Ensure your RF regulator is enabled:
📄 Because of the global chip shortage of 2021, the RF regulator can be either U7 or U21. Instructions on enabling the RF regulator in software:
- If your board has U7 populated, your regulator should be disabled by default, enable it by changing
/lib/pycubed.py
line 107 to say the following:self.enable_rf.switch_to_output(value=False)
- If your board has U21 populated, your regulator should be enabled by default, but double check by confirming
/lib/pycubed.py
line 107 says the following:self.enable_rf.switch_to_output(value=True)
- If your board has U7 populated, your regulator should be disabled by default, enable it by changing
High Power Radio Output
- If you're powering the board via the USB cable and just trying to transmit for testing purposes:
My RGB LED (neopixel) is acting weird
We've noticed lot-variability of RGB LEDs (P/N WS2812-B) from the manufacturer (Worldsemi). Particularly, we've seen some (but not all!) LEDs start acting strange after applying a strong normal force to the top of the LED, possibly causing damage to internal wirebonds (specifically the bond interface).
- One fix is to apply a SMALL amount of heat to the LED package (either via a hot air hand piece or touching a soldering iron to each lead). Iterate between applying small amounts of heat and then testing the LED. This fixed about 90% of the LEDs we tried.
- We will switch manufacturers once our supply of RGB LEDs is depleted (or we encounter more of these misbehaving LEDs).
Software
General software development
- Make sure to work through all of the quick start pages: ⚡Hands-On Quick Start
- Visit 🖥️Code Examples
- Visit Example Flight Software
Trouble with Mu
- If you get a Mu-specific error, ensure you followed the instructions in Download Mu.
- Restart your computer after installing Mu.
- Board not recognized?
Prior to Mu 1.1.0-beta-4 release, Mu Editor did not recognize PyCubed as a CircuitPython device. If you encounter this, try reinstalling Mu.
Still not recognized?
try an earlier release for Mu: https://github.com/mu-editor/mu/releases
How to manually add valid board types to Mu
(no longer necessary)On Mac
- Close Mu (if it's open) and navigate to the Mu installation directory (might look something like this:
/Applications/mu-editor.app/Contents/Resources/app/mu/modes
)
- Open the
/adafruit.py
file in a text editor and add(0x04D8, None),
to the thevalid_boards
list (somewhere around line 54) and save. The file should now contain something like:... (0x1B4F, 0x8D22), # SparkFun SAMD21 Mini Breakout (0x1B4F, 0x8D23), # SparkFun SAMD21 Dev Breakout (0x04D8, None), # PyCubed related boards ]
On PC
- Follow the same steps as for the mac, except the adafruit.py (it might also be called circuitpython.py) file will be located in a directory similar to...
C:\Users\USERNAME\AppData\Local\Mu\pkgs\mu\modes
(make sure to change 'USERNAME').
Can't find the
circuitpython.py
file?If you're on PC, try looking for the install location:
MU-INSTALL-PATH\pkgs\mu\modes
- Close Mu (if it's open) and navigate to the Mu installation directory (might look something like this:
Firmware
Atmel Studio 7 is unable to communicate to the microcontroller via SWD (JTAG)
- Make sure the enable resistor for the external watch dog timer (WDT) is not soldered on to the board (R42).
- Check the voltage on
3V3
. See this troubleshooting section if it does not read 3.3V +/- 0.2V.
Still having trouble?
- Check the 💬 PyCubed Forums
- Check the❔FAQ