-
Design process transparency
07/21/2017 at 22:32 • 0 commentsThe glider currently has had two main design iterations. The first version of the glider was the completed version within the smaller tubing and was primarily a design concept. The second generation of the glider developed from the first generation and will take it to a functional prototype. However, the second generations did not involve a complete redesign so the design is clunky in some places where the glider transitioned from a smaller tube to larger tubing. The third generation of the glider will be a functional glider with a complete redesign to fit the larger tubing, complete with thorough assembly instructions and documentation.
The first two generations of the glider have been modeled using Solidworks, which is a closed sourced and expensive CAD package. As I intend to redesign every component of the glider for the third generation, I'm looking to transition to using Onshape, an online CAD package which is free to use.
With regards to circuit design, I used Eagle to design the first version of the PCB, but this is closed source and provides a limited feature set when used for free. I will have a look at KiCad because this would provide an alternative to Eagle that is an open-source package and is completely free.
I have also updated the "links" section to include a link to a Dropbox folder which is the working folder that I use to store all files related to the glider (Design files/datasheets/screenshots/everything). The main workings are currently within "Glider_version_2".
-
Buoyancy engine updates
07/20/2017 at 16:25 • 0 commentsI have been able to retrofit the syringe buoyancy engine designed for the older tubing into the newer Blue Robotics tubing and this is now watertight. There are a couple of areas where the length of the buoyancy engine has increased; notably the piping has increased the length as I originally intended for each syringe to connect to the exterior, but this would have increased the number of seals to the exterior (increasing chance of leaking) so I instead joined the syringes together which increased the length of the buoyancy engine.
The test setup:
Testing of the buoyancy engine running underwater, first pushing out air and then taking in water:
The current buoyancy engine has a couple of potential downsides. The current rate of change is approximately 3 grams per second with a total mass change of about 160 grams. The new tubing requires a total glider mass of approximately 11kg, so a mass change of 0.16kg gives the buoyancy engine little control authority over the glider and a greater variable mass will be more effective.
Using a larger syringe is not possible as larger medical syringes are not produced, so a custom syringe would have to be made which would introduce the problems associated with dynamic seals. Alternatively a peristaltic pump could be used to move liquid (oil/water) from an internal bladder to an external bladder and the variable mass amount would be dictated by the bag size. A peristaltic pump based buoyancy engine would also reduce the length of the engine so it would be more compact. In order to increase the rate of change of mass on the current buoyancy engine (so the glider is more effective at shallower depths as it can transition between ascending/descending states more quickly), the motor has to rotate more quickly or the threads on the screw have to be larger, but both of these options will slightly reduce torque. I will explore the option of a peristaltic pump based buoyancy engine in the near future.
-
Exams are over
07/06/2017 at 16:47 • 1 commentNow that the exam period is over I am able to start spending more time developing the glider. This is a quick update about the development over the last week or so.
The Blue Robotics order arrived and the components are of a very high quality and a significant improvement over previous hardware. The new tubing has an internal diameter of 100mm, whereas the previous tubing had an internal diameter of 84mm. In order to produce a proof of concept quickly, I will use the internals designed for the smaller tubing and use spacers so that the internals do not move around within the new tubing. I have currently fitted the backend of the internals within the new tubing using spacers. Blue Robotics also produce endcaps which forms a watertight seal with their tubing and you can easily print components that bolt onto the endcaps.
I uploaded the arduino bootloader to the ATMEGA328P so that it can now be programmed standalone and was able to test the stepper motor drivers on the board and they function perfectly. However, I was unable to solder another board with the IMU (LSM9DS1) attached using the hotplate method as the pins were too close together. I was going to order another IMU and solder it at a hackerspace with a hot air soldering station, however the component is out of stock until November. A workaround is using the SDA and SCL pads on the PCB to attach another IMU (MPU6050).
I have produced a battery holder for the lithium ion batteries using battery spring contacts and printed holders which snap the batteries into place. The batteries are protected using a 3 cell protection circuit. This battery holder will also accommodate steel rods on the underside to act as the movable mass which is used to control roll and pitch.
-
​Waterproofing problems
06/09/2017 at 10:09 • 1 commentThe current state of the glider is not capable of performing underwater testing (It’s likely to currently be IP66 rated without sealants, i.e. very much not sufficiently sealed). The poor performance is due to a mixture of design flaws and fabrication difficulties. For instance, the design uses multiple o-rings where fewer would suffice, increasing the chance of failure. Moreover, the dimensions of the printed o-ring grooves vary by minute amounts between test prints, making it hard to produce reliable seals as the grooves between layers allows water to pass through.
To solve this issue, I am currently I am looking at purchasing a watertight enclosure (above, but with a custom length tube) from BlueRobotics. All of their hardware has been purposefully designed to withstand underwater conditions for ROVs and the enclosure I am looking at purchasing is rated to a 100m depth. The enclosure and associated parts are relatively affordable compared to commercial solutions, however they are expensive enough that they could put off hobbyists looking to build the glider (The order I am looking at placing is ~$500 including shipping to the UK). I feel like this is justified to produce a working prototype more quickly, with effort spent on getting to a stage where I can demonstrate underwater movement, rather than spending time on producing a watertight enclosure. In the longer term, I will revisit the printed endcaps, to reduce the cost and to increase accessibility to the design, using the Blue Robotics endcaps as a drop in option for those without access to a printer of a high enough quality to produce watertight seals or those wanting to go to a greater depth.
Once I have recieved the parts, I will post an update showing the parts I have purchased (I’m still finalising the order) and any thoughts I have concerning the enclosure.
-
PCBs and soldering
05/30/2017 at 22:07 • 0 commentsI received the boards a few days ago and as I had already purchased the surface mount components, I was able to produce a partially assembled board relatively quickly.
I soldered the surface mount components using my trusty hot plate, which seemed to do a good job on the 0.45mm pitch atmega QFN package. The power regulator, resistor and headers were hand soldered. The resistor is due to a design error using an incorrect resistor package size and will be corrected for the next board revision.
The board pictured does not have the IMU soldered on as I wanted to test the microprocessor first (flash firmware and simple stepper motor control), as the IMUs are relatively expensive (~£6 for 1). Once I have validated the microcontroller circuit, I will assemble another board with all the components.
This is what the board looks like with the three stepper motor drivers attached:
The next step is flashing the atmega and porting over the control software and making the glider standalone. I also plan on publishing an update concerning water sealing soon.
-
PCB Design
05/18/2017 at 11:18 • 0 commentsI was able to import the glider board outline design into Eagle with relative ease using the inbuilt DXF importer. This includes mounting holes on the board to attach it to the glider.
I have allocated spare I/O pins from the ATMEGA to a set of male headers. Battery connections are seen at the bottom of the board. The three stepper motor drivers are in a row, with each having the motor connections nearby.
I have updated the files section to include the eagle board. I will also purchase a series of boards over the next few days, so I receive them within a few weeks.
-
Testing specifications
04/30/2017 at 23:51 • 0 commentsI have produced a table of various specifications that the underwater glider must pass in order to fully function as intended. The specifications listed range from absolutely necessary for the glider to glide (watertight etc.) to requirements that allow it to function as an autonomous data-logging drone (way point navigation and a functioning sensor array)
Some requirements I am will be able to achieve relatively easily (function without external connections etc) but some are beyond my current capabilities (inertial navigation, for instance).
UPDATE: An up-to-date version of this table will be maintained in the dropbox folder.
Specification requirement Details How to achieve this Motors and movement assemblies The stepper motors should be able to control the
movement assemblies easilyIf the motors are incapable of moving, reduce resistance. (One source of high resistance could be poorly meshing gears, which could be fixed by increasing clearance or adding
lubrication)Functions without external cables The final glider should operate underwater, without
external cables for power or control signalsAll electronics should be inside the glider and should run off of lithium ion batteries Watertight No water should enter the glider whilst operating,
otherwise this will damage electronics and cause the glider to sinkIf the glider is not watertight, change the seal dimensions and add sealant to ensure the central compartment is water
sealedNeutrally buoyant The glider should be able to become both positively buoyant and negatively buoyant by being neutrally buoyant when the buoyancy engine is half full Add/remove pewter ballast until the glider is neutrally buoyant when the buoyancy engine is half filled with water Descends and ascends through water If neutrally buoyant, the glider should descend and ascend through the water if the buoyancy engine is full/empty respectively If the glider does not change depth, look at increasing the capacity of the buoyancy engine so that there is a greater density differential Responds to gyroscope inputs The glider should be able to maintain a constant angle of attack whilst underwater Test the glider’s response whilst above water, the mass assembly should move to oppose a change in angle of attack, to keep the angle of attack constant whilst gliding. Moves forwards The glider should be able to dive forwards whilst descending, allowing it to travel between two points The center of mass should maintain a constant angle of attack and the hydrofoils will provide forward thrust Turning
The glider should be capable of turning whilst gliding, so that it can go between waypoints that are not in a line By rotating the central mass assembly, the glider should be capable of turning (albeit with a very large turning radius). Lowering the centre of mass of the mass assembly increases the moment and reduces the turning radius (by increasing roll) Waypoint navigation The glider should be capable of autonomously navigating between pre-deteremined waypoints By using a GPS module, the glider should be capable of finding location whilst at the surface (GPS signals do not penetrate water). By gliding in the correct direction, the glider will be capable of moving between waypoints Inertial navigation The glider should know its position whilst underwater Using the gyroscope and accelerometer inputs, the glider should be capable of calculating its position whilst underwater, between GPS readings Sensor array As the glider will be an autonomous environmental monitoring drone, it should be capable of recording gas levels, pH, temperature, light levels Attach the sensor array and program the microcontroller to record data inputs to non-volatile memory Data mapping The sensor data should overlay onto a map indicating location of the data By recording location when recording sensor readings, the data can be overlayed onto a map -
Schematic creation
04/30/2017 at 10:01 • 0 commentsAs I have had a small amount of prior experience using Eagle, I decided to develop the PCB within Eagle. The initial schematic was relatively quick to produce as the microcontroller and IMU both had schematics available online that were suitable. The majority of the schematic is taken up by headers to connect the FTDI/A4988s.
There are many barebones Arduino tutorials available, so I was able to quickly produce a circuit for the atmega. Using the internal oscillator (8MHz) and only allowing it to be programmed via an FTDI cable, I was able to reduce the number of components massively.
The LSM9DS1 IMU has a open-source breakout board produced by SparkFun which I used in tandem with the IMU datasheet to produce an sub-system circuit quickly. The IMU eagle library can be found on SparkFun's GitHub here. The ATMEGA328P-MU package is found in the library by element 14, found here. (This requires an account to download).
I intend for the PCB to be produced on a board that fits within the glider tubing; above is a DXF board outline that will be imported into Eagle. Over the next couple of weeks I'll produce the control board and update the project as it becomes complete.
-
Component selection
04/26/2017 at 15:16 • 0 commentsI am now at a stage where I can start to think about the PCB/control board, and I shall use this project log to outline each major component and its reasoning.
For the central microcontroller, I intend to use an Atmel Atmega microprocessor as it can easily be programmed with the Arduino IDE. The design of the control board should also be straightforward, as there are many tutorials on producing a barebones board. As I do not require many inputs/outputs, I have decided upon the Atmega328P (specifically the MLF package for its small footprint, which is smaller than its through-hole/TQFP counterparts).
With regards to the gyroscope, I plan to use an IMU (inertial measurement unit) which will provide the glider with an accelerometer and magnometer, allowing for inertial navigation later on without the requirement of designing new hardware. I selected the LSM9DS1 after looking on the Sparkfun website, and I will now make use of the schematic diagrams they provide for their breakout boards; these will allow me to check my circuit against theirs to produce a board that I am sure will function. Additionally, the LSM9DS1 is an LGA package, so has a very small footprint (3.5x3mm – should be fun to solder).
There are some components which will require a 3.3v CMOS supply, so the control board will use an LM1117 voltage regulator for the supply from the batteries. To control the stepper motors, I will be using the A4988 drivers as they are readily available and feature in many tutorials with hookup guides and programming examples.
As I hope that the glider will be capable of waypoint navigation at some point, I will also provide pins to connect a GPS module. I found this suitable product from SparkFun at an affordable price. A tutorial for this particular module can be found here.
After looking in the Eagle libraries, I realise I will have to create a footprint for the LSM9DS1, but the other components are relatively standard and have footprints available. I should have a schematic for the board produced within a couple of weeks or so.
-
Testing movement assemblies
04/22/2017 at 11:22 • 2 commentsAs I have printed all of the components and assembled the glider, I was able to hook up the stepper motors to A4988 stepper motor drivers and an Arduino and test the movement assemblies of the glider.
Below is a video showing the movement of the movement sub-systems.
The code that was ran on the Arduino is found on the project's GitHub page here.
Over the next couple of weeks, I'll select components to use and produce another build log outlining the rationale for selecting the components, before going on and producing the schematics/PCB.