3 ms·
We designed an architecture for replaceability during the summer for our UAV project. Our current architecture has been based on the Zynq-7000 which is a two AR
by pveierland 10y ago
We designed an architecture for replaceability during the summer for our UAV project. Our current architecture has been based on the Zynq-7000 which is a two ARM-core + FPGA SoC. Here we had custom logic for doing things such as controlling signals to the servos in the FPGA and then software drivers communicating with the FPGA through memory maps. This resulted in a tight coupling between the drivers on the compute platform and the IO hardware.
Our next hardware generation will have a dedicated FPGA handling the communication with the GPS, IMU, servos. The compute platform will communicate with the FPGA over Ethernet. This means that all hardware drivers can be written against a network based interface, resulting in a loose coupling between the compute and IO. This means that both the IO hardware and compute hardware can be replaced individually without breaking the setup, and without having to rewrite any drivers. It also results in high transparency for debugging IO, with the possibility of easily recording and playing back a scenario. You can also test the full flight software on a developer's desktop machine during development without the embedded compute platform.
As embedded compute platforms get better all the time, while the IO stays more stable, this will make it easy to replace the compute every 2-3 years.
- ferologics 10y agoThis is essentially what React Native has done for UI <~> Logic communication, allowing the latter (think iOS/Androind/Apple tv os/macOS etc.) to be replaced by any compute platform - even Compute Card in theory I think. You're applying the same mental model to hardware which can be seen in the similarity of tools that can be enabled on top of such abstraction. Way to go! The flexibility that emerges from decoupling our software and hardware solutions is a [recent] trend that will only gain on traction as more people become aware of it's implications to how we create solutions to technological problems. How can we evangelize this better? From my experience it's complicated to communicate this idea well. not sure if true, may be recency bias or the fact that I'm still young and inexperienced in many ways and lack historical background knowledge in tech
- ferologics 10y ago(put an asterisk before "[recent]" not knowing that it will format the comment. HN greenhorn)
- chocolatebunny 10y agoOut of curiosity, why are you going to communicate to the FPGA over Ethernet vs PCIe or SPI or USB? It seems like you'd have to do a lot of high level processing on the FPGA to get it behave nicely on an Ethernet network.
- pveierland 10y agoWith UDP and custom FPGA IP for handling the packets the processing works fine. Network behavior is made easier as the IO board will mostly be used in a dedicated point-to-point Ethernet connection. Our opinion is that Ethernet is easier to analyze using tools such as Wireshark, in addition to being easier to run in a cable between different PCAs. It also allows the IO board to be easily networked for communicating with development tools to reprogram the FPGA memory, debug issues, do testing from a developer machine etc without concern for driver issues on various host operating systems.
- owyn 10y agoSounds like an interesting architecture. What UAV project is this?
- pveierland 10y agoIt's the "LocalHawk" yearly summer project run by the Norwegian KONGSBERG group. https://www.youtube.com/watch?v=kUfp87cDaE0 https://www.youtube.com/watch?v=kUfp87cDaE0 (2016) https://www.youtube.com/watch?v=Prz7yc1i4ac https://www.youtube.com/watch?v=Prz7yc1i4ac (2014) Another of their summer projects this year was the "CoastalShark" autonomous jetski where they constructed a sophisticated autonomous surface vessel. For their demonstration they used it to pull a guy on water skis: https://www.youtube.com/watch?v=7T6jCyVF5j0 https://www.youtube.com/watch?v=7T6jCyVF5j0