Skip to content

18. Project Development

Assignments:

  • Complete your final project, tracking your progress:
  • what tasks have been completed, and what tasks remain?
  • what’s working? what’s not?
  • what questions need to be resolved?
  • what will happen when?
  • what have you learned?
  • Project management:
  • triage.
  • documentation during development.
  • demand- vs supply-side time management.
  • spiral development, DevOps.
  • serial vs parallel tasks.
  • system integration.
  • finish quality.


Final result

I have managed to successfully achieve all I had planned for my puzzle box final project. The video below presents the successive steps to solve the puzzles :

Ideally I would have liked to use two RFID readers combined for a puzzle, and I had a SW ready for this (tested with Arduino environment) but it seemed to be pretty unstable and thus I decided to use only one RFID reader instead.

Everything is working, the only three limitations I encountered so far are the following :

  • It seems that the RFID reader (connected to the main PCB with SPI communication) is pretty sensitive to electromagnetic perturbations. Indeed, when I tried to twist the wires for my final integration, the reader was not responding any longer. After untwisting them it started to work fine again.
  • Also I sometimes had difficulties with one solenoid that would not open due to a power supply issue. Indeed for integration purposes I diverted the power supply connector to a side of my puzzle box, and connected it to my main PCB with simple Dupont cables (I did my best to make a clean and stable connection though). All the rest of the electronics always worked fine, and when I connected the power supply directly to my main PCB, both solenoids always worked perfectly fine. I had never encountered this issue when performing electronics integration tests (without the box frame) because I was always providing power directly to the main PCB. I solved the issue by soldering thicker wires between the diverted power supply connector and my main PCB. As the Dupont cables are quite thin, they were simply not suited for carrying the necessary current to open the solenoids (about 700mA).
  • The servomotor I was initially using (MG90D servomotor) was not stable and almost constantly performed micro rotations which generated an unpleasant noise. I have tried with another servomotor of the same type but the same problem occurs. When I replaced it with a bigger servomotor (MG995R servomotor) the issue vanished, however I am not keen on using an oversized servomotor for the basic application I need.


Questions to be resolved

Apart from the two instabilities mentioned above, no particular question needs to be resolved at this point.

The only question that I can think of is related to the time I should let players to solve the puzzle box. Currently I set it to 30 minutes but after a first group of friends played it seems that 40 o 45 minutes might be more appropriate. I will refine this once several groups of people will have played.


What will happen when?

As of wednesay, June 02, my puzzle box final project was already pretty advanced. Here is the calendar for this week, and the following days :

Date Plan
Wednesday, June 02 - Printing remaining 3D supports for electronics components
- Integration of all electronics components in the puzzle box
- Flashing SW with final adjustments (ex: countdown time, timers, etc)
- Testing and recording video sequences of the final product
Thursday, June 03 - Finalizing presentation slide (formatting + final product pictures)
Friday, June 04 - Working on presentation video (shortening video to ~1mn, and reducing size ~10Mb)
Saturday, June 05 Break
Sunday, June 06 Break
Monday, June 07 - Finalizing integration (soldering some wires, arranging wires into harnesses)
- Testing that everything is working as expected
Tuesday, June 08 - Working on week 18 + final project documentation
- First group of friends playing (Elise, Paul-Etienne, Jean-Marie)
Wednesday, June 09 - Finalizing presentation video (adding integration pictures + replacing lock mechanism sequences)
- Working on week 18 + final project documentation
- Second group of friends playing (Fanny and Benoit)
Thursday, June 10 - Working on final project documentation
Friday, June 11 - Final presentation

Next week I will probably still have to work a little bit to finalize my documentation.

I am very excited to have my friends and family trying to solve my puzzle box in the days to come especially as the first tests proved to be successful and that my friends who played it really enjoyed the experience.


What have you learned?

I have acquired many new skills during this FabAcademy program, the most important ones are the following :

Skill Knowledge before FabAcademy Knowledge after FabAcademy
Version control - Basic knowledge about it from colleagues developers working with it
Never used it myself
Can save and share my work on tools like Gitlab
2D drawings - Basic knowledge about vector images - Can easily design/adjust/convert images or drawings to my needs
Laser cutting - Had never used it - Can setup this machine very quickly
- Can produce PCB with it
- Can adjust parameters to cut/engrave different materials
- Understands that kerf needs to be considered before cutting
Vinyl cutting - Had never used it - Can cut basic materials with good results
3D modelling - Familiar with the principles
- Had never really designed objects
- Can design relatively complex parts pretty quickly
3D printing - Very limited knowledge
- Had never used it
- Can easily print parts using FDM or SLA technologies
- Can optimize print parameters and materials depending on the object to be printed
3D scanning - Had never used it - Can scan objects well suited to this technology
CNC milling - Had never used it - Can cut 2D/2.5D objects
- Can select appropriate end mills
Electronics - Theoretical knowledge from engineering school
- Little practice with soldering
- Use of GPIOs with Arduino environment
- Know how to read a microcontroller diagram
- Know how to use digital/Analog/PWM I/Os
- Can use different communication protocols (I2C, SPI, UART)
- Can efficiently use pull-up / pull-down resistors
- Can design and laser cut my own PCB
- Can solder tiny components like the ATmega 328P
- Can use a bunch of input and output devices (electromagnet, servomotor, stepper motor, DC motor, etc)
SW Programming - Knowledge of Arduino programming - Can flash SW with avrdude and FabTiny ISP
- Can make 2 PCBs exchange data with one another
- Can program basic functionalities in C code
- Can programmed basic functionalities in Assembly
Machine design - No knowledge at all - Can build a machine with a combination of structural parts and 3D printed parts
- Can control stepper motors with a multi-axis motion control system
- Can use/read basic GCode instructions
Molding and casting - No knowledge at all - Can design molds with air ducts
- Can read casting materials datasheet and select the appropriate one
- Can work safely with those materials
Interface programming - Simple knowledge as interface user - Can create a custom phone application interacting with an electronic system
Project development - Knowledge from engineering school + past work experiences - Can plan activities to deliver a quality project in a relatively short amount of time
- Can document my work efficiently


Documentation during development

In the first weeks of the FabAcademy program I was updating my documentation every day or every other day. Rapidly I felt more confident focusing on the design and realization of my weekly projects from thursday to monday and then updating my documentation every tuesday/wednesday. The main reasons for this choice are the following :

  • Making sure that I had a final product to present by the end of each assignment.
  • Saving time in compressing pictures/videos as I could post-process them all at once.
  • Facilitating the organization and thread of the content I wanted to expose.

This workflow permitted me to always deliver my documentation on time, with a very few exceptions.


Spiral development

Spiral development
Puzzle box - Spiral development


System integration

Integrating all the electronics components inside my puzzle box and distribute them on all the faces of the box was quite a challenge because of the considerable numbers of cables.

First I designed in Fusion 360 and 3D printed supports to fix all the electronic components on the box (from inside so that no screw is visible outside).

3D printed supports
Puzzle box - 3D printed supports

Once all components were positioned and fixed, I could connect electrical wires. Here is the result (front plate removed to show integration) :

Integration
Puzzle box integration - front plate removed

Of course, when the box is close, there is no cable visible to the end user apart from the power supply cable. Here below are presented all the faces of the puzzle box :

Front face
Puzzle box - Front face

Top face
Puzzle box - Top face

Back face
Puzzle box - Back face

Left face
Puzzle box -Left face

Back face
Puzzle box - Right face


Finish quality

I am really happy with the finish quality I achieved, and the first groups of friends who had the opportunity to play with my puzzle box all outlined this nice finish quality and loved the text and images I engraved on the different faces of the box.