- The most common cause is using a charge-only USB cable rather than charge-and-sync. Try swapping out for a different cable.
- If you’re not getting the CIRCUITPY filesystem: have you installed CircuitPython on the board to initialize the drive the first time? See CircuitPython instructions below.
- If you can’t access the bootloader (MASKM4BOOT or HALLOWM4BOOT drive), it might be the timing of the reset double-tap. Try a little slower or a little faster.
There is an extremely small but nonzero chance of a glitch that wipes the board’s flash filesystem. No eyes, just a flashing red LED. We’ve yet to track down the source of this bug. Fortunately it’s pretty rare, and usually just when loading a new design.
If this happens with your board, you’ll need to completely wipe and reinstate the flash filesystem. Any files on your board are lost … it’s strongly recommended to maintain a backup of any customized files.
To recover from this situation:
- Visit the CircuitPython download page and search for your board — either MONSTER M4SK or HalloWing M4 (not M0).
- Download two files there: a CircuitPython “UF2” installer (current stable release), and bootloader updater UF2 (further down on the same page).
- Connect board to computer with USB cable, set switch to “on” position, and double-tap the board’s reset button. After a few seconds, you should see a small flash drive called MASKM4BOOT or HALLOM4BOOT.
- Drag the bootloader UF2 file to the boot drive. That drive will go away for about 10 seconds while the software works, and then reappear once it’s finished.
- Drag the CircuitPython UF2 file to the boot drive. That drive will go away and is replaced in a few seconds with one called CIRCUITPY. You should see some text on the board’s display now.
- Reload eye graphics files to the CIRCUITPY drive, either one of the ready-made designs, or from a backup of your customized files.
- Download and install the M4 EYES firmware as explained on this page. This is another double-tap-drag-UF2 sequence, like we did above.
Everything on your board should be factory fresh now.
If the eyes used to work but after editing have reverted to flat-colored blue irises, that’s almost always a JSON syntax error…usually a missing or extra comma. The “Customization Basics” page has more tips for ensuring proper syntax.
Occasionally the eyes might go crossed and stay that way. The software thinks the “nose booper” is being held and this is its attempt at being funny.
This false booping can happen when the battery is running low and its voltage starts to drop.
Occasionally though…it just gets a false reading, maybe due to gradual changes in temperature, humidity or other unknown factors. Tap the reset button (or toggle power off and on) and this should clear up…the booper calibrates it’s un-booped state on start-up.
If you see one or more of your texture maps show up as multicolored snow/noise, it may be an indication that you've run out of texture memory and will need to reduce the file size of some of your maps.
If the entire screen is snow, it usually means you’ve run out of RAM, and the most likely culprit there is the
eyeRadius setting. Larger eyes require geometrically more RAM. Dial it back until everything fits.
If your board has a filesystem problem that’s not fixed by the troubleshooting steps up top, you can try a more thorough QSPI flash initialization. Download the UF2 file linked below, then plug in your M4SK and double-click the reset button. You'll see a M4SKM4BOOT drive show up on your computer. Drag the M4SK_QSPI_Eraser.UF2 onto that drive. After a few moments, the board's drive will disconnect. Double-click reset to put the board back into bootloader mode. Then follow the CircuitPython, graphics and eye firmware steps above.
Want to see some stats on your M4SK? Double-click the board's reset button to get to bootloader mode, then drag the M4SK_Diagnostics.UF2 onto the M4SKM4BOOT drive!
You might find over time that the foam tape holding one or both screens softens up…or the tape is fine, but the thin plastic light diffuser behind the LCDs is giving way. Use a toothpick to add dots of a pliable glue like E-6000 or Duco Cement between the PCB and side edges of the screen. Will usually need to dry overnight…follow directions and safety guidance on the glue packaging.