Troubleshooting FAQs
For any questions related to the new Yocto OS, please see this page.
All of the questions answered on this page are listened in the table of contents on the right. Just click on your question to be taken straight to the answer.
Why is Spoke.Zone not connecting?
Section titled “Why is Spoke.Zone not connecting?”Spoke.Zone requires an internet connection and valid access credentials. In addition, the app needs a certain setting to be enabled.
First, make sure the app is configured correctly:
- Go to Menu > Unit Config 1.
- Make sure the Cellular setting is enabled. The app will not connect to S.Z if it is disabled.
Next, make sure the display has an internet connection:
- Go to Menu > Diagnostics > Network.
- Run the internet and modem tests.
- If either of the tests fails, the issue lies there.
If internet is connected successfully, the next step is to make sure the access token is up-to-date. Tokens expire every 7 days, and while the app should handle automatically refreshing the token, it’s easy to make sure it’s valid:
- Go to Menu > Diagnostics > Network.
- Press the Token Exp button to manually refresh the token if it is expired.
- If the expiration date changes, Spoke.Zone should reconnect immediately.
How do I remotely upload log files?
Section titled “How do I remotely upload log files?”The app logs what it is doing to specific output files that are uploaded to S.Z on a regular basis. There are times at which you may want to upload these files manually; for example, if something is going wrong in the pump operations, you might want to upload logs to try and figure out what the app was doing and what might have went wrong.
Manual log uploads can be easily triggered from a S.Z dashboard:
- Create a new “Single Button” widget in your dashboard.
- For the command to send, use
ctrl/remotely_upload_logs. - When you press the button, the app will upload all the log files currently on the device, which can then be found in the data files page.
You can also trigger a manual upload in the app by going to Menu > Diagnostics > General and pressing the Upload Logs button.
For more information about data files, check out the S.Z docs.
Why can’t I update the CAN controllers?
Section titled “Why can’t I update the CAN controllers?”NOTE: this feature only works for app version 1.18.0 and newer.
The app talks to the controllers via the CAN bus. To re-scan the bus, go to Menu > Unit Config 1 > Update > Modules and press the Refresh button.
If the modules still are not showing up, check the hardware connections to make sure everything is hooked up correctly.
Why can’t I update the co-processor?
Section titled “Why can’t I update the co-processor?”NOTE: this feature only works for app version 2.1.0 and newer.
The app talks to the co-processor via the CAN bus, but it’s a different bus than the CAN controllers. The co-processor is on the same CAN bus as the CI panel.
All CAN busses require two terminating resistors, so the co-processor won’t show up if one is missing.
The CI panel contains one of these resistors. Make sure the CI panel is connected properly!! If it is not, the app will not be able to communicate with the co-processor.
Why aren’t USB updates working?
Section titled “Why aren’t USB updates working?”First, make sure your USB is correctly plugged in to the display. You can try pulling it out and plugging it back in to be sure.
If packages are not showing up in the app, verify that they’re stored in the proper format on the USB. All packages should be located in the updates/all folder on the USB and be named as follows:
- On Yocto,
bambauer_X_X_X.deborpowerpack_X_X_X.deb, whereX.X.Xis the version number- See here for more Yocto troubleshooting help
- On Buildroot,
bambauer_X_X_X.ipkorpowerpack_X_X_X.ipk, whereX.X.Xis the version number
If the updates are stored on the USB correctly, but the app is still not finding them, then it’s possible the OS isn’t handling the USB correctly. Do the following:
- Run
lsblkto see if the USB is mounted properly. - If not, follow these steps to manually mount the USB.
If your device is on Buildroot, it is possible that the OS is not configured to auto-mount USBs. To avoid this in the future, run the following commands:
# Create a new systemd service (already exists, but in the wrong location)cp /lib/systemd/system/systemd-udevd.service /etc/systemd/system/# Update service configssed -i -e 's/MountFlags=slave/MountFlags=shared/g' /etc/systemd/system/systemd-udevd.service# Reload and restart services to make changes take effectsystemctl daemon-reloadsystemctl restart systemd-udevdUnplug the USB and plug it in again. Run lsblk and verify the USB was automatically mounted at the proper location.
Why does my display have the wrong time?
Section titled “Why does my display have the wrong time?”It is possible for the system clock on the display to have a slight amount of drift over time. This usually isn’t a big problem, but it can be a bit of a nuisance when debugging or testing something.
To reset the system clock to the right time, you’ll need to be able to use the command line. Follow these steps to change the time.
How do I get the CPU ID of my display?
Section titled “How do I get the CPU ID of my display?”The CPU ID of the display is used as part of the device’s credentials for Spoke.Zone authentication. It is unique to each display and cannot be modified, which is why it works well for identification.
To get the CPU ID, run the following commmand:
# Paste this directly in the terminal and run it from any locationecho 0x$( echo "$( cat /sys/fsl_otp/HW_OCOTP_CFG1 )$( cat /sys/fsl_otp/HW_OCOTP_CFG0 )" | sed 's/0x//g; s/\n//g; s/\r//g' )Basically, the CPU ID is defined as 0x + <contents-of-CFG1-file> + <contents-of-CFG0-file>, removing all unneeded characters from the contents of both files. This is exactly what is sent up to Spoke.Zone.
What do I do if the app doesn’t appear on the screen?
Section titled “What do I do if the app doesn’t appear on the screen?”If you recently downgraded the app to an older version, then it is possible that some necessary environment files were removed. Downgrades from any version >=3.0.0 to any version <3.0.0 will prevent the app from showing onscreen.
If this is the case, please refer to the steps for downgrading the app for the fix.
If this is not the case, something else is broken. Please contact Bennett at MRS Electronics immediately.
What do I do if my display goes into read-only mode?
Section titled “What do I do if my display goes into read-only mode?”A display’s filesystem will go into read-only mode if there is no more space left in the OS memory partition. The dominant cause of this in the past was an overload of journal files that filled up the memory.
This is a big problem because the app cannot save settings, write GPIO outputs, or log app behavior while in read-only.
To check the filesystem usage, run the df command. The line for the filesystem /dev/root, mounted on /, is the relevant one.
To get the display out of read-only:
-
Run the following command to get rid of corrupted files:
Terminal window fsck -fy /dev/mmcblk1p2 -
Wait for the program to finish.
-
We will only be able to create new files if the filesystem got out of read-only. To test this, run the following:
Terminal window # Attempts to create a new file.touch testfile# Check the contents of the current directory for the existence of the file.ls -
If the file was created successfully, you can safely power cycle the display and operate as normal. DO NOT POWER CYCLE IF THE FILE WAS NOT CREATED!
-
Failing to create the file means that more involved fixes will need to be used. Please contact someone at MRS Electronics as soon as possible.
What do I do if my display freezes?
Section titled “What do I do if my display freezes?”Freezes have been documented to occur from time to time because of some deeply rooted issues in the operating system.
If your display freezes, power cycle it as soon as possible. Verify everything works normally after being power cycled.