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.
- 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
- 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
- Fix CAN Bus freezing under high load (wpilibsuite/SystemcoreTesting#342)
- Fix CAN Bus frame drops under high load (wpilibsuite/SystemcoreTesting#342)
- Fix latency spikes during CAN Bus RX Frame Processing (wpilibsuite/SystemcoreTesting#342)
- Enable can frame coalescing by default for 1Mbps Can 2.0 and Motioncore CAN FD
- Fix CAN utilization metrics in Web UI and Driverstation
- Add FPS, Sample point, Nominal bitrate (FD ONLY) to the hardware snapshot window
- Display warning when user exceeds max utilization recommendation (90%) for any of the 5 primary CAN Buses
- 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
- Add "CHECK CAN BUS" to UI header in all windows to make CAN Bus health warnings as visible as possible
- 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
- 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)
- 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.
- 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.
- 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
- 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.
- 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 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
- 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
- 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)
-
Packages with
X-Httpsenabled in their control files will force the Systemcore UI to present https URLs. -
Packages with
X-Servicespopulated 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
-
Add RT priority, CPU affinity, nice values, RT scheduler policy to each process in the Process View
-
Fix some rev canbus spec values parsing with incorrect endian-ness
- Improved RT Subsystem watchdog reset handling
- Add canbusloadmon, canbussniffer
- License text included with public releases (wpilibsuite/SystemcoreTesting#188)
- Automatically apply new wlan0 and eth0 configurations (wpilibsuite/SystemcoreTesting#79) (wpilibsuite/SystemcoreTesting#182)
- 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)
- Can bus load metrics are far more accurate (wpilibsuite/SystemcoreTesting#73)
- Add Can Bus Monitor. Upload DBC or REV JSON decoder spec files to decode can frames in real-time (wpilibsuite/SystemcoreTesting#131)
- Group by device in "FIRST" Mode
- See decoded signals in frame detail pane.
- Video: https://vimeo.com/1146967580?share=copy&fl=sv&fe=ci
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
- 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)
- 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
- 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
- Addresses runaway control inputs during disconnections wpilibsuite/SystemcoreTesting#176
- Addresses systemcore user permissions issues (I2C, USB Serial, USB Devices) wpilibsuite/SystemcoreTesting#174 wpilibsuite/SystemcoreTesting#173
- Robot program terminated with SIGKILL after one second timeout post SIGTERM wpilibsuite/SystemcoreTesting#168
- Release 168->169: Bump image name to limelightosr-alpha-7
- 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
- Fix Journal Log errors due to timezone changes as a result of DS connectivity
- Increase accuracy of can bus load calculation
- Add CAN Bus faults to faults viewer
- Fix WiFi disablement wpilibsuite/SystemcoreTesting#112 wpilibsuite/SystemcoreTesting#107
- Fix ssh login password expiry wpilibsuite/SystemcoreTesting#90
- dhcpcd ignores all can interfaces wpilibsuite/SystemcoreTesting#113
- New LED API supporting ledcount and ledoffset for increased flexibility. (requires WPILIB Alpha 2) wpilibsuite/SystemcoreTesting#104
- 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.
- 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
- 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)
- PWM Input: provide period
- PWM Output: On-the-fly period adjustment. Better funcitonality overall
- 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
- 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
- Fix installation of packages larger than 50MB
- /usr/lib/os-release (and /etc/os-release) updated. Addresses wpilibsuite/SystemcoreTesting#85
- Allow package overwriting. Addresses wpilibsuite/SystemcoreTesting#82
- [WPILIB] Update date & time functionality. May address wpilibsuite/SystemcoreTesting#81
- Update CAN Hearbeat
- 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
- Add routes for all web interface views. Addresses wpilibsuite/SystemcoreTesting#72
- More obvious dropdown UI in System Tab. May address wpilibsuite/SystemcoreTesting#65
- Remove go cache and some miscellaneous files from toolchain. Addresses wpilibsuite/SystemcoreTesting#70
- Add go compilation example to OS repo
- Default Wi-Fi configuration changed to 5Ghz with automatic channel selection. Likely increases boot time.
- Fix available memory estimate. Addresses wpilibsuite/SystemcoreTesting#16
- Add euler_flat, euler_landscape, euler_portrait to system NT server. Fill out legacy euler array with euler_flat values. Addresses wpilibsuite/SystemcoreTesting#26
- More reliable USB Automounting and Hotplug support. May address wpilibsuite/SystemcoreTesting#31
- Add automatic restart to CAN Bus interfaces. Addresses wpilibsuite/SystemcoreTesting#59
- 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
- Add units to plots and plot tooltips. Addresses wpilibsuite/SystemcoreTesting#16
- Fix CAN bus utilization plots. Add selected bitrate, add UP/DOWN indicator, add bus availability indicator, add FD indicator. Addresses wpilibsuite/SystemcoreTesting#18
- New mount orientation preview UI
- Display OS release string in web interface. Addresses wpilibsuite/SystemcoreTesting#32
- IO types are now properly displayed in the web interface. More improvements to come. Addresses wpilibsuite/SystemcoreTesting#48
- Add USB Drive Ejection UI. Further addresses discussion in wpilibsuite/SystemcoreTesting#31
- 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
- Initial Alpha Release
- Add USB automounting and hotplug support (/U, /V, etc)
- Polish web interface
- Remove hardcoded and prebaked packages.
- Robot service waits for all can buses to be configured (15 sec timeout)
- 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
- Update MRCComm
- Heartbeat module handles new MRCComm spec
- Heartbeat module exposes new read-only sysfs interfaces for matchdata, controldata
- 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
- Add .mp4 package icon support
- SocketCan Timing Patch
- Add docker for docker-based packages (enables ROS, custom environments, etc)
- New A/B Partition layout. Will need some adjusting to improve flashing speeds.
- CI test with latest cross compilation resources
- 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
- Wifi Configuration improvements
- 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





















