Advanced Search
Search Results
188 total results found
Testing with udp_client
Dev Environment Setup
Known Limitations
Setup of Embedded Ethernet
This page: How to set up ethernet. Introduction Ethernet is the protocol used to communicate between all the components. It uses the auto-generated Ethernet driver code from cubeMX to use the physical Ethernet peripheral. It also uses LWIP to do the lowest l...
UDP Forwarder and ROS2 Publisher
udp_forwarder_node.cpp This is the main file running the communications logic on Jonny Boi's side. It is a ROS2 node that simultaneously acts as a UDP server and a ROS2 publisher/subscriber. Its primary responsibilities are: Receiving raw encoded PBEnvelope pa...
Ethernet Testing
Send Testing Requirements STM32Ethernet CableWireshark Testing Send testing is easy. The only thing you have to do is upload the setup and sending code to your STM32 and connect it to your PC/laptop using an Ethernet cable. Then you can go into Wireshark, look...
Extra Functions
Introduction This documentation is about extra functions, that are not necessary to get it running, but can be used if need be. Non-deprecated functions ETH_setup_MAC_address_filtering This function is used for perfect mac address filtering. It is used by giv...
Debugging
Introduction This documentation gives some tips on how to debug the Ethernet Driver. Debug Flags By setting the flag " LWIP_DEBUG" to 1 in the cubemx main file, you will get extra lwip debug messages in your terminal. Hard Faults While debugging, it is easy t...
STM32CubeMX Sensor Configuration
This page documents the current STM32CubeMX configuration for the Sensor Board firmware and explains how to extend it for sensor interfaces (UART/I2C/SPI/ADC) in a way that is safe for code generation. IOC File: components/sensor_board/firmware/firmware.iocGen...
Main
src/driving_board/main.c contains the main firmware entry point and runtime logic for the driving board. The system is built on FreeRTOS (CMSIS-RTOS v2) and runs multiple tasks concurrently. Initialization init_board() This function initializes the full sy...
Issues
Introduction There are some issues with ethernet. Those are described here. The Issues Arp Table removement The ARP function will fail when Ethernet is not started properly yet. Current fix is retry_count that retries the arp x amount of times.
Protobuffers
Driving Board Protobuffers
This page: each driving_board protobuffer explained. The protobuffers for the driving_board are passed between software, control and embedded. DrivingBoardDiagnostics.proto Embedded → Software / Debugging This file contains the full diagnostic state of the...
Design
This page explains rules that apply to all protobuffers, and a bit on how we use them. PBEnvelope All protobuffers are wrapped in the PBEnvelope message, which contains metadata we need in all protobufs. Lost packets & throttling In every line of communication...
map_commands.rs and map_processor.rs — 3D Map Rendering & Coordinate Transforms
map_processor.rs + map_commands.rs — 3D Map Rendering & Coordinate Transforms Converts 3D map files into top-down orthographic PNG images coloured by height (Z), and exposes coordinate transforms so the frontend can convert pixel clicks back to real-world metr...
Frontend — lib Structure
Location: src/lib/
stores/ — Stores
Svelte writable stores used for state that needs to be shared and persisted across route navigations within the same session. stores/samples.ts — samples: Writable<Sample[]> Holds the list of science samples collected during the current task. Persists across n...
components/ — Components
A component is a reusable self-contained block of code that encapsulates HTML, CSS and JavaScript that belong together, written into a .svelte file. The documentation for them is here.