Skip to content

Latest commit

 

History

111 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

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

NEW IMAGES MUST BE FLASHED WITH HARDWARE MANAGER VERSION 2.0.7 OR LATER (See SystemcoreTesting Repo)

  • Beta builds are for Beta Hardware. Beta Hardware units have configuration buttons.
  • Alpha builds are for the original Alpha Hardware.

Alpha 14 and Beta 14 (In Progress) (REQURIES WPILIB ALPHA 7, CURRENTLY UNRELEASED)

Changes

  • 802.11w suppoort
  • EMMC Health added to UI Header's fault report window
  • Add storage usage to UI header
  • Update Storage Devices page
  • Remove RSL Unplug/Fault state and count from faults window
  • IMU mount orientation tester change from radio buttons to drop down
  • Significant reducion in cpu utilization of io and diagnostics services
  • Add tooltips for all header information and all fault types
  • Add tooltips around System Snapshot page
  • Remove live graphs from System Snapshot page
  • Add live robot program log and connectivity summary tile to System Snapshot page
  • Add heavily throttled system log prints when RAM exceeds threshold
  • Canbus watchdog is robust against rapid failures in succession
  • Cameras Tab: Add button to bring user to a full-screen video stream viewer
  • Config Tab: Add ability to reset all vision pipelines for any any of the four USB vision instances.
  • Config Tab: Add ability to disable USB camera capture for individual USB ports
  • Add support for the third known Logitech C270 variant
  • Guard against failures caused by mis-identified cameras.
  • Fix duplicate package descriptions in Package Tile tooltip and package manager
  • Fix 2MP cameras crash looping in some cases
  • Red calibration page banner if truly generic/random calibration is in use (EG unsupported USB camera without LL default cal).
  • Display "Default Calibration for if LL default cal is in use for supported USB camera.
  • Quell warnings caused by buggy MJPEG implementation on some C270 models
  • Add 'Download Log' button to each service row
  • Add Ports, Firewall system views
  • Full screen camerastreams page supports camera name routes
  • Fix snapshot thumbnail caching in vision instances
  • Add UI translations
  • Address C270 edge case failure that occurs when sharpness, contrast, and saturation are maxed-out simultaneously
  • Update 3D model in IMU visualizer

Add default calibrations for:

  • Arducam OV9281 USB
  • Arducam OV9782 / goBILDA Global
  • Arducam OV2311 USB
  • Innomaker OV9281 USB
  • Waveshare OV9281 USB
  • UC60 / goBILDA Rolling
  • Logitech Brio 101
  • Logitech Brio 100
  • Logitech C270 (960p, Model A)
  • Logitech C270 (720P, Model B)
  • Logi C270 HD (720P, Model C)
  • Logitech C310
  • NexiGo N60 FHD
  • Microsoft LifeCam HD-3000
  • Sony PS3 Eye (blue-dot lens)
  • ThriftyBot ThriftiestCam
  • Logitech C930
  • Logitech C920 Family
  • Logitech C922 Pro Stream
  • Logitech 1080P Pro Stream

Can Bus Updates

CAN Bus Web UI Updates

  • Fix CAN utilization metrics in Web UI and Driverstation
  • Add FPS, Sample point, Nominal bitrate (FD ONLY) to the hardware snapshot window canutil
  • Display warning when user exceeds max utilization recommendation (90%) for any of the 5 primary CAN Buses can100
  • Display warning when user approaches frame rate limit for any individual CAN Bus or CAN Bus pair
  • Display warning when CAN BUS controllers report dropped frames canhoverwarning
  • Add "CHECK CAN BUS" to UI header in all windows to make CAN Bus health warnings as visible as possible checkcanbus

Vision Updates

  • Fix flickering gray pixel regions while using certain high-throughput video modes such as 1MP 90FPS. (wpilibsuite/SystemcoreTesting#348)
  • Fix some logitech cameras mis-reporting gain sliders (wpilibsuite/SystemcoreTesting#350)
  • Add on-screen info regarding practical exposure limits, gain slider behavior during auto exposure for certain cameras, and so on. (wpilibsuite/SystemcoreTesting#357)
  • Clicking on a camera tile creates a new browser tab (wpilibsuite/SystemcoreTesting#354)
  • Add "Reset to Default" Buttons to most sliders that enable when the user has modified value such that it no longer matches the default value
  • Add "Reset Pipeline" button to vision instance headers to reset all pipeline configurations (wpilibsuite/SystemcoreTesting#355)
  • Thriftiest Cam Support (this camera will not support Auto Exposure for now)
  • NexiGo F60 UHD Camera Support

Other

  • Add the ability to change SmartIO types in the hardware snapshot pages. When a user enables IO type editing, robot code is stopped. Robot code restarts when the user is finished editing. (wpilibsuite/SystemcoreTesting#312)
  • Reduce CPU utilization of io and diagnostics services
  • Disable WiFi powersave features
  • Hailo 4.23.0 -> 4.24.0
  • OTA Update UI now presents options to retain team number, wifi settings, vision pipelies, and so on (defaulted true)
  • Add rate/velocity and velocity window to rising/falling edge counters (pending wpilib update)
  • Robot service startup cleanup (wpilibsuite/SystemcoreTesting#290)

OTA Updates

  • If you are running alpha/beta 11, you can update to this release using the .llupdate file and the new OTA (over-the-air) update feature in the Web UI's 'settings' tab.

Vision

  • Add USB 2.0 camera support to all four USB Ports. Navigate to the "cameras" tab in the SC UI to view attached cameras and Hailo accelerators.
  • See the LimelightVision.md file in SystemcoreTesting for more information on the new vision API.
  • Add Limelight Smart Camera support. Support USB Limelights (LL3A, LL3G) and ethernet Limelights (LL4, LL3, LL2, etc)
  • The built-in elastic package supports WEBRTC Streams from all USB cameras and Limelights
  • The cameras tab serves as a portal for all attached usb cameras and limelights (robot.local/cameras)
  • The camerastreams page provides a full-screen stream interface for robot operators (robot.local/camerastreams)
  • Streams and pipeline UIs should work no matter how Limelights are connected (eth/usb) and how DS hardware is connected (eth, usb, wifi).
  • Add 18 curated USB cameras
  • Hand-selected video modes
  • Fixes for various UVC firmware bugs
  • On-screen warnings for cameras that won't perform well (Some C270 models, for example).
  • Per camera default calibrations not complete
  • All USB cameras, whether curated or non-curated, present normalized control slider values.
  • Add Hailo support for cameras attached to USB Ports 0 and 1.

Performance

  • Drop IO Update frequency to 500hz.
  • canbussniffer drops to 0% CPU Util in paused state
  • motioncorevisualizer drops to ~0% cpu util unless motioncore is attached
  • Decrease cpu utilization of several built-in services
  • Enable CPU frequency scaling
  • Reduce Systemcore idle temperature

Misc

  • Fix canbus util percentages in new Driver Station
  • Support a301 release 15 decoding in Motioncorevisualizer
  • Add ability to control A301 from RHWC without Driverstation enablement
  • Smoother cpu util graphs/reading in web UI
  • Motioncore UI improved with proper resizing on both axes, reduced visual noise, and an improved color scheme.

Firmware

  • Unwrapped/wrapped, trimmed/untrimmed imu fused yaw readings are now available (pending wpilib update)
  • IMU faults addressed
  • Add Quadrature encoder support (pending wpilib update)

OS

  • OS Flash time reduced: 6 minutes -> ~46-48 seconds on windows
  • Unzipped image size reduced: 14.5GB -> 1.8GB (closes wpilibsuite/SystemcoreTesting#230)
  • Image download size reduced: 1.05GB -> ~580MB
  • rootfs partitions expand on first boot
  • Add venv support and pip support to system python
  • Add common python package dependencies (gunicorn, flask-sqlalchemy, requests)
  • Update system wpilib, scservices, and mrccomm to latest
  • WiFi Improvements
    • 5GHz access point now supports (working) selectable channel widths: 20, 40, and 80 MHz. Defaults to 20 MHz.
    • Correct HT40 (40 MHz) and VHT80 (80 MHz) operation, including the proper secondary-channel offset (HT40+/−) and 80 MHz center-frequency.
    • Validated 20/40/80 MHz operation end-to-end on beta hardware; 80 MHz negotiates real VHT80 client rates (>=390 Mbit/s).
  • Boot Time Improvements
    • Shave 9 seconds off WiFi AP automatic channel selection
    • Shave additional 9-10 seconds off AP initialization in both automatic channel and static channel configurations
    • Shave 3.5 seconds off general system readiness time (canbus, systemd)
    • Boot->AP readiness with automatic channel selection time reduced by ~19 seconds
    • Boot->AP readiness with static channel selection reduced by 9-10 seconds

Web Interface

  • Channel Width selector presents explicit 20 / 40 / 80 MHz options and is positioned above channel selection.
  • Channels that cannot anchor the selected width are grayed out and labeled incompatible. Widening the channel auto-snaps an incompatible manual channel back to Auto.
  • "Channel" is relabeled "Primary Channel" at 40/80 MHz, with a tooltip explaining that wider channels select the primary 20 MHz sub-channel within a fixed block.
  • Editor displays the channel block, center frequency, primary channel, HT40 mode, and secondary channel for the current selection.
  • Wireless view (System Tab) now shows the active channel block, HT40, etc.
  • Wireless view notes when radio relocates the primary channel within block during coexistence scan

selector

  • 20MHz:
    • 20
  • 40MHz:
    • 40
  • 80MHz:
    • 80
    • 80noswap

OS

  • Linux 6.6.45 with preemption patches → 6.12.77 with built-in preemption
  • 4k page size → 16K page size
  • Java 21 → Java 25 (adoptium)
  • GCC12 → GCC14
  • Python 3.12 → Python 3.13.12
  • TensorFlow 2.5 → 2.16.1
  • Flatbuffers 2 → 23
  • Update WiFi driver binaries
  • Enable kernel module compression
  • Removed EEE patches (mainlined)
  • Add 2GB storage to each user partition, reduce out-of-the-box storage utilization
  • 2.4Ghz WiFi is locked to 20mhz channel widths to minimize interference in congested environments.
  • Systemcore USB-Ethernet IP Addresses have changed: 172.26.0.1 for Windows users, 172.27.0.1 for Linux and MacOS users.
  • New partition layout
  • Can Bus Sniffer shutdown hang fixed (ttps://github.com/wpilibsuite/SystemcoreTesting/issues/223)

Web Interface

  • Packages with X-Https enabled in their control files will force the Systemcore UI to present https URLs.

  • Packages with X-Services populated with a comma-delimited list of services will present with restart and stop buttons that reset and stop the listed services

  • Check packagemanager health before allowing package installation. Users are warned to check power/connectivity to Systemcore if health check fails. Addresses UX issue where user attempts package install on a cached web interface without Systemcore connectivity

  • Add Live package install logs

  • Add initial "Wireless" view to the System Tab to present diagnostic info pertaining to WiFi and Bluetooth

  • wireless

  • Add RT priority, CPU affinity, nice values, RT scheduler policy to each process in the Process View

  • rt

  • rt1

  • Fix some rev canbus spec values parsing with incorrect endian-ness

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

About

Systemcore OS and SDK

Resources

Stars

29 stars

Watchers

10 watching

Forks

Releases

Contributors

Languages