week 2

ok the days past so fast and im not sure if i even got the chronology correct anymore but based on our chat messages… 

22 Aug

Anita – finished up code, Done with permanent wiring, troubleshooting

Jing Rui and Zheng Xun – further software updates and finishing 

Emily – powerpoint slide & content furnishes


23 Aug 

Anita & Emily – connections of battery to the components + 3D printing frame to secure boat 

Jing Rui & Zheng Xun – further software updates and finishing 


24 Aug 

Emily – 3D printing fixing + test battery 


25 Aug

Emily – short detour to lab to crimp wires and connections to the mosfet / pwm 


26 Aug 

Full strength! 

Filmed some videos for the presentation, tested components, furnished codes and connections 

 


27 Aug 

Full strength – Zoom meeting to discuss powerpoint slides 

updates

I guess this is going to have to be a weekly thing… 


16 Aug

Anita (Arduino, battery connections): Finished connecting all the cables + done with coding
—things to do: learn to read the code (can finish in a day)
—gg lab on this wednesday to clean up the battery connections
Jing Rui (some simple webpage stuff)
—adjusted main title, navi-cam and openbtn to be adjustable to fit viewport size
Emily (hardware)
—correspondence and emails 
—body of boat 
—filing of metal brackets 


17 Aug

Emily (hardware)
—3D prints and cuts for holding aluminum profiles together

REMINDER: CHECK ON CAR BATTERY CONNECTION + CABLES TO BUY


18 Aug

Zheng Xun (software)

—found how to add images (transparent backed) to a button
—set button to be transparent
—add <img> tag inside button,
—put image inside templates folder of flask app
—link it via {{url…}}
—to make an image transparent, save it as png
—resize accordingly
—figured out how to nest inverted commas in javascript
—just standardise the type of inverted commas inside, dont alternate
—eg “<img src= ‘{{url_for(‘static’, filename=’off.png’)}}’ height=’100%’ width=’100%’>”
—button now works 🙂
—added a screenshot button which does take screenshot (ss), but requires user to manually download it as image; presentation needs improvement

References: https://www.geeksforgeeks.org/how-to-take-screenshot-of-a-div-using-javascript/ and https://stackoverflow.com/questions/48471887/how-to-set-size-of-rendered-image

Webpage file


19 Aug

[Physical Meeting] 

Antia
—Done connecting most of the cables.
—Done coding arduino
—Done neatening the wires
—things to so: Something wrong with the voltage for solar controller hence need to do some rewiring

Jing Rui & Zheng Xun
—renamed and resized cameras to be adjustable
—preset camera
—finalised screenshot feature
—added borders and resized buttons to be adjustable (except sidebar stuff)
—add bottom and front view labels

Emily
—Checked on 3D print — half failed, half success? Realised that the hole is offset by 5mm because I forgot to account for the thickness… 
—Re-do 3D prints

but the top part still fits nicely! 

—soldered some wires 

(red is before, black is after heat shrinking an insulator)

batteries, the pool and irreversible decisions

The days past so quickly I dont have time to catch up to all the events that happened, but here’s an attempt to bring you up to speed…

So Anita and I have specialised hardware roles now, with her having the secondary school to JC physics background, and the half of the team that sat for the circuitry lesson, she was the natural candidate for learning circuits. Meanwhile, given my heavy biology background and little to no knowledge of circuits plus sitting for the 3D printing lesson, I took up the 3D print of parts… 

Not sure if I was clear enough about our battery issue, but in essence, the output voltage is much higher than what our components can withstand, so we will require a ‘buck’ or a ‘boost’ or, well a ‘buck-booster’ to fix the output– and Anita explains just that: 

And here are Anita’s notes: Battery connections notes  and her workspace…

On the previous day, we had tested the water-proof-ability (?) of the dome, and found out that there were still gaps where the water could enter :(, mainly at the points where the screws were. 

This is because I instinctively thought you should avoid the holes when applying silicon, so that the screws could still go through. Unfortunately, that is not the case. I should have carried on and “sealed” the hole, so that there is sufficient gel around the edges. Thankfully enough, there was a solution to that: 3D printing caps.

<b-roll>

 

It took less than 2hours to print all 16 pieces, and after applying excessive amounts of silicon gel, I left it to dry overnight. 

Alas, we had to go to the pool due to a prior booking, and while Anita finished up, we made our journey there: <cues more b-roll>

“wah this is like going to the gym”

And when we finally reached… someone ran up to us and said “IT’LL NEVER FLY” (jokingly, of course) 

And because it’s now “modular”, we tried to assemble it as fast as we can. 

But we soon quickly learnt that, well, in theory, it was a lot faster than reality. 

timelapse of assembling boat

part II below when Anita managed to join us (and when Zheng Xun had to rush off to ethics class…):

…and where Jing Rui and I left halfway to get the bricks as weight for our boat. 

When we were finally done, we sent it into the water! 

And then yet another issue cropped up: rotational force that we did not account for.

and here are some pictures for a clearer illustration: 

 

Confused, we came back to lab and tightened every screw we could (in fact, I actually reached the point of being capable of overtightening screws till Justin had to help drill it out…), and asked Limzy for advice. He suggested 3D printing a longer bracket so that there is more support at the joints to prevent hinging.


In other news, here is how you remove an overtightened screw:


But the next day after further discussion with Tony, it was decided against because a 3D printed part is naturally weaker than the metallic structure, and we should instead reconfigure the boat rather than 3D print the bracket. So it was back to the drawing board, again.

This itself, took me a whole afternoon, trying out different suggestions from Tony and Dr Ho. In the end, it was agreed this problem would be avoided if we had just used the original design of a long profile across the frame instead. The “irreversible decision”,  coined by Dr Ho, in cutting the long profile to make shorter ones left us with yet another problem: we didn’t have a long enough profile… luckily, Limpsy was able to find a long one somewhere in the lab. 

The story is still unfolding… in the meantime, b-roll! 

Here’s featuring Zheng Xun hard at work with the software, a part of the blog that is sadly under-documented. (Jing Rui and Anita were working in the morning, and were busy in the afternoon.) Nonetheless, here are some screenshots! 

Its quite insane to watch how proficient the guys are getting at coding considering they had little to no knowledge of the coding language… 

battery and buck booster

“eh where is the rest of your group?”

Starting school and finishing up MnT project is quite a challenge. Jing Rui and Zheng Xun were busy settling online codes and the front end of the webpage, leaving Anita and I to figure out the hardware. One pressing concern was how the batteries were going to power the entire system in time for the pool test, ideally on Thursday. 

Having pulled out at the last minute twice due to code failures and lack of preparedness, sticking to this booking of the swimming pool was something that we intend to keep, functional code or not… 

Unfortunately, Anita was busy, and so that left me to fend for myself at the lab… Thankfully wifi connectivity has allowed communication to be so efficient, I could access my team mates any time! 

And so with a new group dynamic, the first thing we completed was the placement of our components:

<b-roll>

this was the inital layout, where I placed the router together with the NVR, thinking that due to the LAN cable required to be connected for the 2, this would prevent a lot of sprawling cables.

But Tony mentioned that masking taping over the vents was a poor idea, and that cables can be arranged anyway, and since the router antenne needs to be out of the boat — it was a better idea of attach them individually. 

this is the set up getting ready to test the pumps for the battery! 

the next thing i was able to complete was creating an insulator for the cables. Without the appropriate size of heat shrink cable protector, the next alternative was using the glue gun…

so after removing the temporary masking tape, it was time to exercise some workmanship! 

<insert after photo> 

and finally, the batteries, which Tony was kind enough to guide me through the entire way. And also, point out the problem. 

The problem with the battery is the input of 14V results into a 14V output as well. But the problem is that our NVR can only take 12V maximum. 

Or at least, we were trying to verify that — Limsy used a microscope to try and read the chip, and alas, Google for the first time, didn’t have any search results. 

^ the microscope! 

So that meant we didnt have a power source… Tony suggested using a buck booster (or, bulk booster?) 

which hopes to limit the output to a fixed 12V. The problem now is how soon we can get our hands on this, since it is not something commonly found in hardware shops… 

Tomorrow, its Anita’s turn to take over as my day is packed, and another story to unfold! 

countdown and code

We planned to go to the swimming pool. Especially after a week of correspondence and confirmation with the staff at the SRC — anticipation was at its climax. 

But we had a few problems that remained unsettled… for a start; we had yet to seal the dome with silicon, and silicon takes a day at least to dry… and a lot of skill to apply an even layer without air bubbles… its a whole team effort.

<image of dome, unsealed.>

<the 3-men operation>

or at least, that was how it was for the first dome.

Then we realised we also had to settle placement of the electrical components — the RPi, the wiring, the mosfet channels… which required some hot glue and a long piece of cardboard; recycled from an unwanted piece sitting in a dusty corner in the lab. We took turns settling that part of the hardware, and before we knew it, it was time to set out for the pool. 

The only thing stopping us was, well, Tony. The silicon wasn’t dry, we hadn’t found a good source of battery, and our pumps remained untested. Tony wisely advised us not to go. We were not ready. And it was a good thing we listened too, because the sequence of events that followed thereafter really highlighted that our boat was not yet prepared for the trip. 


Justin found us a lithium battery that had enough watts to power the RPi, but not necessarily the pumps. Without testing the pumps with the new battery, we made a difficult and painful team decision to reschedule the pool “party”… and continue the lab “party”. 

 

On the plus side, we learnt a lot more about planning ahead — other than getting permission early. And also how to solder! 

Learnt a little from DnT back in secondary school, but never really understood the use of it; or went any further than circuits.

This time, we soldered an electrical component and wires, and basically glued it while keeping the circuit “electrically functional” (if, I’m making sense at all…I realise I really am bad at trying to describe or communicate an idea for others to understand me…) 

Justin guided us and demonstrated the first half — and then the challenge was to repeat it on the other side.

 

I was so “skilled” that I burnt the component on the first try and we had to do it again… 

In other news — another skill! “Heat shrinking”! The use of this cool rubber thing that shrinks when exposed to high heat and results in a snug piece of insulation. 

On hindsight, glad to have missed the swimming pool to learn this cool thing you can do in the lab! 


After 4hours it was finally time to test the battery and the pump — and then the second challenge hit: the pumps wouldn’t turn on despite the code having been tested before. Something went wrong, and we were at a loss with what the difference between battery and power source could have done… 

 

Software development in a nutshell: 

Justin even double checked that there was a current running through… 

Being beginners at coding; especially for the websites and using unfamiliar codes like html and java, we were bummed. But thanks to Justin’s investment in our project and his experience in coding, it wasn’t long before he was able to pinpoint the problem, guide us, and then delete all his work to ensure that we could do it on our own — by ourselves. 

And once we finally figured it out, it was about time we called it a day. 

silicon gel

Today was a mix of 3D printing, coding, and finally a family get-together figuring out how silicon gel works. 

Who knew you needed a gun to extract the gel out? and that you needed 3 people? or at least, we were all helping out at some point until we realised we were redundant… I guess that is how efficiency comes about. 

Above is the end result of Anita leathering a healthy amount of silicon onto the piece… and below, a snapshot of us at work.

In other news, we have also successfully installed the pumps onto the holders! 

In the words of Tony, 

“Work smart not hard.”

Also Tony: “Please clean the pipes they’re so dirty.” For the longest time we thought he was joking until he actually passed us the alcohol spray… 


With that; here are some more B-roll of 3D printing — no matter how ‘lame’ the design is, I always get excited when our print is being made… I think I speak for the rest of the team when I say its mesmerizing to watch how something digital can become physical and tangible with a spool and nozzle… squirting out an intricate pattern layer by layer… into the thing we need.  

software inferface

After a long and arduous hours at the MnT lab and consulting the mentors tirelessly, the boys have finally emerged… well, the first battle is won. 

this is what we plan for the interface to look like. But of course, its taking a lot of willpower and brainpower — thank you guys — to get past the steep learning curve of figuring out codes and how to code… 

updates on software side:
—adjustable water pump power
—added an accelerator, halfway through
—VPN concept for remote network control

—Justin helped and guided us for VPN
—we managed to pass a value from frontend to backend, and connected the pumps to the slider dynamically
—we made the website nicer (with a new font, and a full background)

Definitely not an easy feat, and as the team member working on the hardware side its mad respect to watch them sit themselves down and determined to finish what they set out to do at the start of the day! 

In other news, its time to get more pumps and mosfet channels… 

mickey mouse

In honour of Tony who likes to call the arrangement of our pipes a mickey mouse…

This time, we checked and re-checked and triple checked and took the necessary precautions and — 

here’s an incoming photo collage… 

Thanks to Limsy’s suggestion to print out the actual dimensions on A4 sheets so we could test our dimensions and reduce waste of material and time! It took us at least 3 times to get something we finally wanted, and to think we nearly wasted 3 prints… 

Here is us reusing the scrap material from the print job outline hehehe~ 

and after a long wait, it was finally done! and it fit snugly into the pipes! what a pleasant delight~

the next step was to test if the pumps would attach to the holder, and if it might come out of the holder

below is a snapshot of the wiring… 

side track: here is Zheng Xun giving us a sneak peak into the interface of our controls!

initially, we thought that a potential concern would be that the pump would be too strong to be held by a thin metal cable tie… but alas, our fears were proven unfounded as the strength of the jet was not strong enough for such a scenario.

nor was it strong enough to move the 2.5kg bracket… which would pose a major concern to the mobility of the boat…

the learning experience

We were too idealistic with the print, and it came out with too many gaps such that it wouldnt hold the pipes tightly. We were then stuck with either adding amendments, or redo the entire print. 

it felt like a waste, especially having troubled Tony and the team to power up the large printer for us. But Tony kindly said otherwise, that it was a learning experience! #positivethinking 

 

and so with that we got to work on a new design

but first, a quick test of the various dimensions that could fit — something we didn’t want to do initially, but realized the importance of doing so. We thought this step could be omitted because its a waste of materials, and takes time in itself to print — but we learnt the hard way that there is greater wastage when the dimensions are imprecise… 

 

daily pilgrimage

Fridays are the days where most groups are taking a break

but because our group takes turns to take a break on different days, we pretty much came everyday… 

With the arrival of the solar panels, we went to test it out in the open, and it worked surprisingly well, generating a voltage of 14.4V even under a cloudy sky. 

The next problem was how to attach it to the existing frame. 

After some thought and consideration, we changed the orientation from flat right on top of the boat to a roof-like structure. This will prevent it from collecting water at the top, allow drainage if it were to rain.

Taking inspiration to make the boat more modular so that assembly will be easier,  we came up with another grand plan. 

Now what is left is to make the frames to hold the pipes; which will involve 3D printing and the dreaded use of Fusion 360 once more…

Things to do: (by priority)
- 3D print for the 4inch pipe
- 3D print for the hole in the polycarbonate 
- 3D print for 2inch to the alumnium profile

aim is to print all by tmr (or at least by the cmg wk) so we can secure all of them on weds