Skip to content

LimelightVision/systemcore-os-public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Access to the latest SystemCore OS builds and cross-compilation resources. Releases are automatically published and may contain bugs.

  • Beta builds are for newer Beta Hardware. Beta Hardware has a configuration button.
  • Alpha builds are for the original Alpha Hardware.

OS

Firmware

  • PWM outputs will never enable unless robot is enabled and not browning out.
  • PWM outputs set to 1500us for 60ms (interruptible) and then turn off after brownout, robot disable, or broken host USB connection (100ms)

Web Interface

canbusmonitor

Alpha 8 & Beta 8 (BETA RELEASE 7 FOR NEW BETA HARDWARE, ALPHA RELEASE 177 FOR ORIGINAL ALPHA HARDWARE)

OS FOR ALPHA HARDWARE: https://github.com/LimelightVision/systemcore-os-public/releases/tag/Limelight_SYSTEMCORE-177

OS FOR BETA HARDWARE: https://github.com/LimelightVision/systemcore-os-public/releases/tag/Limelight_SYSTEMCOREBETA-7

OS

  • Picoflasher runs in a loop and ignores non-internal RP2350s. Works alongside new RP2350 watchdog reset behavior. (wpilibsuite/SystemcoreTesting#185)
  • Rewritten USB automount script. Directories are created and removed alongside USB Drives, all delays have been removed, and lowercase symlinks have been added to match the roboRIO. The new beta hardware is required for solid USB 3 drive mounts. (wpilibsuite/SystemcoreTesting#155)
  • Add user-space CAN Bus watchdog service to handle bus-down states (disable kernel auto-restart functionality). (wpilibsuite/SystemcoreTesting#163)
  • USB IP Addresses & DHCP Servers changed to avoid conflict with existing devices. 172.26 and 172.27 subnets for Systemcore on Windows and Mac/Linux respectively.
  • Potentially faster WiFi channel selection (tbd)
  • Add timesyncd for monotonic system logging (wpilibsuite/SystemcoreTesting#203)
  • Robot service waits for robot executable instead of crash-looping (wpilibsuite/SystemcoreTesting#153)
  • Add OSS licensing info to releases (wpilibsuite/SystemcoreTesting#188)

Firmware

  • Auto detect different hardware variants
  • Support for new beta hardware
  • Add hardware version to bottom right corner of screen
  • Add third spinner to represent usb connectivity to host
  • Auto restart if USB connectivity is not established quickly after boot. Improvement over previous RP2350 watchdog behavior which required an initial connection. (wpilibsuite/SystemcoreTesting#185)
  • Never dim the screen if there are IMU faults (wpilibsuite/SystemcoreTesting#172)
  • RSL Faults do not trigger the red status light. The new hardware treats an unplugged RSL as a 'fault' and FTC does not currently require an RSL

Web Interface

  • RSL Faults do not trigger the blinking red fault indicator. They are subdued within the faults dropdown.
  • Remove UNII2 Channels from Wifi 5ghz channel selection

Alpha 7 (Relase 169)

Release 167 (Unstable)

  • Changes the glibc requirement from 2.38 to 2.35 to allow for module and application cross-compliation on older linux systems. Teams should continue to use Alpha 5 / Release 166
  • Robot service runs as systemcore user

Alpha 5 (Release 166)

OS

Web Interface

  • Add new system log viewer. View, filter, and download complete system logs from the web interface. Inspired by volunteer and team experiences at IRI. wpilibsuite/SystemcoreTesting#88
  • Add "No Faults" green checkmark to web UI header
  • Styling updates
  • Further reduce CPU utilization of Hardware Snapshot page wpilibsuite/SystemcoreTesting#41
  • Simplify interface configuration. Users can disable/enable Wlan0, but other controls have been disabled.

Firmware

  • Increase theoretical max LED count to 6144 (1024 unique). May be limited in a future release
  • Allow digital output control while disabled wpilibsuite/SystemcoreTesting#116

Alpha 4 (Release 163)

OS

  • Write journal logs to disk (max 10). Addresses wpilibsuite/SystemcoreTesting#88
  • Remove /etc/timezone. Addresses wpilibsuite/SystemcoreTesting#102
  • Disable green ethernet support and move ethernet irq to core 1. May address wpilibsuite/SystemcoreTesting#94
  • [WPILIB] Fix DS release display. Addresses wpilibsuite/SystemcoreTesting#93
  • Add /sys/vbrownout and /sys/vrecovery (millivolts). Brownout behaviour currently zeros digital outputs and sets pwm outputs to servo neutral 1500us
  • Add /io/leds bytearray for LED control. Max size 1024x3, 3 bytes per pixel, RGB
  • Add "ledcount" to each io pin subtable. Max 1024 per pin, max 1024 aggregate.
  • Fault report publishing for brownouts, IO/I2C, USB, RSL, Display, and IMU.:

    /sys/faults table contains active fault flags, and /sys/faultcounts contains historical fault counts.

  • Get duty cycle sensor period (periodget) (microseconds)
  • Set pwm output period (periodset) (enumeration)

Firmware

  • PWM Input: provide period
  • PWM Output: On-the-fly period adjustment. Better funcitonality overall

Video: https://vimeo.com/1099708743?from=outro-local

  • Brownout and recovery functionality. Defaults to 6750 mV brownout and 7500mV recovery
  • WS2812 support on all IO pins. Up to 1024 LEDs total and per-pin

  • Smoother screen dim and wake-up sequences
  • More sensitive tap-to-wake functionality
  • Fast red LED blink during brownouts

Web Interface

  • Display period on web interface for each pwm in/out IO pin.
  • Confirm webgl availability before displaying 3D models, handle all 3D-related exceptions. Addresses wpilibsuite/SystemcoreTesting#101
  • Significantly reduce CPU usage of most web interface pages. Addresses wpilibsuite/SystemcoreTesting#41
  • Add fault report warning.
    • Gray - No active faults. Faults have occured since boot
    • Blinking red - Active faults
    • Invisible - No active faults. Faults have not occured since boot

Alpha 3 Hotfix (7/2/25) (Release 162)

  • Fix installation of packages larger than 50MB

Alpha 3 (7/1/25) (Release 161)

OS

Firmware

  • Restore battery voltage measurement accuracy. Addresses wpilibsuite/SystemcoreTesting#75
  • Reduce default display brightness
  • Add automatic display dimming and disablement after 10 seconds of no-motion
  • Add automatic display enablement after light motion such as a tap
  • Display can now properly display IP Addresses with 3 digits in all octets. Addresses wpilibsuite/SystemcoreTesting#74

Web Interface

Other

Alpha 2 (6/28/25) (Release 159)

OS

Firmware

  • IMU in-motion improvements for higher accuracy during matches
  • Analog Input raw readings are now integer millivolts (0 to ~3300) instead of 0 to 4096 raw adc readings. Addresses wpilibsuite/SystemcoreTesting#44
  • Fix Digital Input latching HIGH in certain situations.
  • Status light: Slow blink indicates a Display fault, Fast blink indicates CAN Bus fault (a CAN Bus is either unavailable or available and DOWN)
  • Tweak display communications to increase reliability
  • New display CAN bus health indicators. Addresses wpilibsuite/SystemcoreTesting#66
For each bus:
CAN Not available - Single Pixel, Flashing Red Status Light
CAN Available and DOWN - Empty Box, Flashing Red Status Light
CAN Available and UP - Blinking Box

Web Interface

  • New mount orientation preview UI

  • Optimize home page cold load time.
  • Reduce web interface bandwidth usage. Some tabs were using over 1Mbps. The home page now uses < 0.02 Mbps, and the advanced metrics tabs should not use more than ~.2Mbps. Addresses wpilibsuite/SystemcoreTesting#45 and wpilibsuite/SystemcoreTesting#41
  • Fix network interface bandwidth measurement units in UI. Addresses wpilibsuite/SystemcoreTesting#43
  • Disk statistics page auto-refreshes once per second to better support hotplug, hotremoval, and ejection
  • Fix I2C Port Order

Release 157

  • Initial Alpha Release
  • Add USB automounting and hotplug support (/U, /V, etc)
  • Polish web interface
  • Remove hardcoded and prebaked packages.

Release 155

  • Robot service waits for all can buses to be configured (15 sec timeout)

Release 154

  • Heartbeat module filters CAN interfaces by name before latching
  • Expose entire control data value via sysfs attribute
  • UI System Tab cleanup
  • Far more verbose logs during package installation
  • Fix copy-to-clipboard button across UI
  • Add OS commit hash to the bottom of the settings tab
  • Fixed window titles for homepage and terminal window
  • Progress on OTA procedure

Release 150

  • Update MRCComm
  • Heartbeat module handles new MRCComm spec
  • Heartbeat module exposes new read-only sysfs interfaces for matchdata, controldata

Release 149

  • CAN txqueuelen increased to 1000 to handle larger bursts
  • CAN Buses reordered - starting from the left side of the device : can_s0, can_s1, can_s2, can_s3, can_s4
  • Previous ordering: can4, can3, can2, can1, can0

Release 147

  • Add .mp4 package icon support

Release 146

  • SocketCan Timing Patch

Release 145

  • Add docker for docker-based packages (enables ROS, custom environments, etc)

Release 144

  • New A/B Partition layout. Will need some adjusting to improve flashing speeds.

Release 140

  • CI test with latest cross compilation resources

Release 139

  • Package Manager - drag-and-drop packages via home page & package manager tab
  • Add examples for auto-start and click-to-start (socket-activated) packages
  • Add c++ application and kernel module cross compilation examples
  • Strict Wifi SSID and Password Verification
  • Lock various advanced WiFi configuration options

Release 134

  • Wifi Configuration improvements

Release 133

  • Improve WiFi Configuration, especially 5GHZ configuration
  • Add locator service V2 to interface with HardwareManager 0.2.0
  • Add SystemCore 3D model to IMU visualizer
  • Double-click IMU visualizer for full-screen visualization
  • Add opkg-utils
    • opkg-build
    • opkg-buildpackage
    • etc
  • Add git
  • Add vim