Hexsoon EDU650 with ROS 2 - A beginners guide


I thought I’d share all the details for creating my first hardware platform to run ROS 2 and test out ArduPilot’s new DDS interface (part of 4.5). This will be a running log of how I built up the platform, tested it, and can be used for anyone trying to add ROS 2 to their vehicle.

Parts List


  • CubePilot has sponsored the EDU650, the flight controller, and the Here3.

Build gotchas

  • The EDU650 PDB needed zip ties and double sided VHB tape to hold it on the bottom because the PDB rivets would come loose
  • I connected the secondary PSU port of the Cube to the PDB, and used another battery monitor to have dual power supllies to the flight controller. The wiki didn’t mention that the PDB had a built in voltage regular suitable for a PSU, but it’s a good idea to have both connected in case one fails
  • I added a wire tap (XT-30) off of the 12V supply for the Pi power supply when it’s ready
  • Install the GPS IStand before putting the plates together
  • There isn’t a great spot for the voltage regulator and attaching it to a Y splitter for XT60 dual batteries. I’m working on a better solution - for now it’s zip-tied but would quickly wear on the sharp edge of the frame if this flew a while
  • I don’t yet have nice mounting for the flight controller. For now, VHB tape will work.

Configuration gotchas

  • Copter’s motor order is not well documented on what to change if you want to differ from the default - I’ll be issuing a wiki patch for that
  • The wiki didn’t make it that clear that you might need to reverse the pitch channel on your transmitter. I issued a PR to make that clearer
  • There are no docs for the power module I have, and the reported voltage is not correct. I haven’t yet gotten a recommendation from CubePilot or anyone on discord. In the mean time, I have battery failsafe disabled and will use a battery beeper on the balance plug to prevent draining it too much

Flight 1 - Plan to hover in stabilize

  • Motor orders were not correct - I should have check ABCD! Broke a prop, fixed the ordering, and flew again

Flight 2 - Repeat, and test loiter if it works

  • Pitch control was reversed. I was able to fly it fine with reversed pitch and landed safely with no damage. I fixed the reversal and issued a wiki PR
  • I tested loiter (GPS hold) and it worked, but the vertical gain tune seems bad and the copter is jerky. I’ll need to chase this down (vibration, tuning, etc)

Flight 3 - Test fixed pitch control, and estimate flight time

  • ITest I fixed the pitch control
  • Drain the battery to 3.5V a cell to estimate flight time (determine how bit of a mission I can do)
1 Like

To make sure other can duplicate your setup and learn from it, would you be willing to use the Methodically configure and tune ArduCopter Blog post and the GitHub - ArduPilot/MethodicConfigurator: A clear ArduPilot configuration sequence software and post here the .zip file that it automatically creates at the end of the process?

1 Like

Yep! The guide looks great, I’ll do my best to run through it.

Flight 3 - Test fixed pitch control, and estimate flight time

  • The test went well, but I still don’t have the battery voltage monitoring working well, so I only flew a few minutes.
  • Tested the tune with some rapid movements in XY in stabilize, as well as max ascent/descent in loiter. Overall, it seems ok, no ESC problems, and I have logs now.