Scan Sations - dlx-designlab/Attune GitHub Wiki
Manual Scan Station (scoPi)
- Bill of Required Materials (BOM)
- Raspberry Pi Setup Guide
- CAD Files (Fusion 360 Project)
- User Manual Video
- User Manual and Protocol
Robotic Scan Station (Jetscope)
- Bill of Required Materials (BOM)
- Asembly Breakdown
- Raspberry Pi Setup Guide
- CAD Files (Fusion 360 Project)
- User Manual Video
Assembly Manual
Detailed Photos can be found here
Pre-Assembly Fabrication
- Laser Cutting and 3D Printing:
-
3d print PLA parts:
- plate adaptor/spacer
- x-motor bracket
- y-motor bracket
- z-motor bracket
- z-axis microscope holder
- z-axis microscope holder spacer
- limit switch spacer (x2)
- TOF range sensor mount
- FTDI Board Adapter
- finger rest
- enclosure bottom/base
- back wall
- front frame right side
- front frame left side
- side panel left slider
- side panel right slider
- side panel left slider stop
- side panel right slider stop
- top compartment cover
- top compartment frame
- side panel pins x2
- temperature sensor
- step down support
-
Laser-cut acrylic parts:
-
Sand and drill 3D printed parts
-
Place 6 Inserts in the following parts:
- z-motor-bracket fastner hole
- z-axis scope holder fastner hole
- main plate limit switches mounting holes (4 inserts)
- Soldering
- Solder X and Y Motor cable extensions (~30cm 4 core cable)
- Make/Solder the DC Power Splitter
- Solder sensors to Grove cables
- Solder i2c cable to CNC shield.
IMPORTANT: Flip the SDA and SCL pins of the grove connector on the Pi-GRBL-CNC shield - Solder the 3x2 header pins to the CNC board (add image).
- Solder Reset Button / Solder Audio Jack and Socket
- Re-Solder the header pins on the CNC shield > Modify TX/RX pins on the CNC sheild not to touch the header pins on the jetson (as the Jetson TX/RX pins scramble the data). Solder 2 female jumper-wires to those pins to be attached to a FTDI (TX/RX to USB) converter.
:warning: IMPORTANT: Double-check the jumper position on the FTDI converter is on the 3V logic pins:
- Put together the Jetson and the CNC Shield assembly on the "Electric Assembly" acrylic plate.
- Connect Cables to the CNC shield green connectors
- For RapbperryPI/Jetson-Nano Only: Solder 5V Connector to PI CNC Shield (add pictures)
- For RapbperryPI/Jetson-Nano Only: Solder USB Breakout to Stepdown Converter (add pictures)
- For RapbperryPI/Jetson-Nano Only: Solder Stepdown Input cable (add pictures)
- For RapbperryPI/Jetson-Nano Only: Solder Pi Shield DC Power cable (add pictures)
- For RapbperryPI/Jetson-Nano Only: Solder DC input cable and connector to the splitter (add pictures)
- Software
- Setup the Jetson or the Pi
- Update the G-Scope Firmware
- Scope Tip diffuser Assembly (add pictures)
- Pi and Electronics Assembly (add video / pictures)
- TOF Sensor Holder Attachment (add pictures)
Mechanical Assembly
- Scope Stand Prep
-
Dissaembling Scope Stand
-
Scope Stand Bottom Hole Milling - see this scematic
-
Scope Stand Base Plate Drilling - see this scematic
-
Scope Stand X-Bracket Holes Drilling + Tapping - see this scematic and this Tapping Tutorial
-
Plate Adaptor Assembly
Make sure square nuts are pushed in as far as possible, and that they are not at an angle
-
Pre-Attach X,Y,Z Axis Motors to Brackets
*This is just an initial assembly - the screws shouldn't be fastened tightly. A precise calibration will be performed later
-
Y-Bracket Assembly on Stand Base
- The linear axis bars have a tight fit - they might require some jiggling to insert all the way.
- The central lead screw must be screwed in all the way. It might be a stuck in the beginning and the end - some pliers might be required.
- The set screws shouldn't be screwed in too tight. The torque required should be, more or less, half of the amount needed to unscrew the cap of water bottle.
-
X-Bracket Assembly
-
Z-Bracket Assembly
-
Z-Axis Scope Holder Assembly
-
Motors Fastening, Balancing and Manual Calibration
IMPORTNANT: Don't forget to fully fasten the 4 bolts on each motor after the calibration is done -
Acrylic Frame to Metal Stand + Temp Sensor Attachment
-
X, Y Limit Switches Assembly
-
Mount DC and audio sockets to Enclosure Bottom (add pictures)
-
Mount Mechanics to Enclosure Bottom Frame (add pictures)
-
Attach Enclosure Back To Enclosure Bottom (add animation)
-
Mounting Raspberry Pi (add pics / animation)
-
Wiring Pi to Assembly (add pics)
-
Fixing Scope in the Z-Axis Holder (add pics)
-
TOF Sensor Mounting (add pics)
-
Finger Rest Plate Assembly (add pics / animation)
-
Calibrating Motors - See the GRBL wiki page
-
Cable Management (add pics)
-
Printing + Applying Labels (add pics)
Enclosure Assembly
- Glue Rail Guides to Acrylic Walls (add pics / animation)
- Glue Front Rails together (add pics / animation)
- Glue Front 2 front Acrylic Plates to rails (add pics / animation)
- Glue Acrylic Walls to Base (add pics / animation)
- Assemble Inner Drawer and Attach to back wall (add pics / animation)
- Attach Top Cover (add pics / animation)
- Slide in Front Rails (add pics / animation)
- Insert Pins into side walls and front rails (add pics / animation)
Calibration and QA
The machine default settings are stored in the Attune/scope_control_app/scope_settings.json
file.
Use this file to optimize the default machine settings.
To calibrate and check the machine works as expected, test it with several users (10-20).
- Remove the machine front cover to get better visibility of the microscope position and motions.
- Turn on the machine and connect a control device (Laptop, Tablet or Phone).
- For each user repeat the following steps on the pinky, ring, middle and index fingers on both hands:
- create a new UUID (bottom left corner of the capture app)
- apply mineral oil to the finger and place it all the way in the finger rest
- make sure the finger is relaxed and not pressed against the finger-rest (to allow natural blood circulation in the finger)
- for better stability, make sure the user's elbow is resting on the table or on the chair arm-rest
- press the "find capillaries" button in the position control panel
- observe the process and make notes of any fail-points
- manually fine-tune the X,Y,Z, Focus position the to the middle of the nail-fold.
- check the distance of the microscope from the finger is within a few mm range
- if needed, adjust the image brightness and take note of the value
- take note of the X,Y,Z values at the middle of the nail fold
- capture a single picture
- capture a panorama
- record video (only one video for one of the fingers is enough, there is no need to record a video for each finger)
- After testing with several users adjust the default scope settings in the
scope_settings.json
file based on the notes you took during the tests, and keep testing. Here are some guidelines to help you adjust the settings:- "Absolute Focus": Higher value = the microscope needs to be closer to the finger. You need to find a good default value for the minimum possible distance from the user's finger (for better quality images - large capillaries) while preventing the microscope from touching the user's fingers.
- If the Find-Capillaries cycle fails before even moving along the Y-axis you might need to decrease the value of the
Absolute Focus
property or thescope_min_dist
property. Test those settings to make sure the microscope does not touch the user's finger at any point. - "Brightness" property should be as low as possible to decrease the noise in the image. You will have to increase it when setting lower
Absolute Focus
value or higherscope_min_dist
values. - "fnger_home_pos": The values of this property should be based on the average values you collected from the users during testing.
- x_pos: the average nail-fold center position
- y_pos: a good starting point for the automatic "find-capillaries" cycle. Slightly above the average oil-line where the nail texture is still well visible and not smoothed by the oil to allow an easy initial-focus.
- z-pos: the initial height from which the TOF sensor measures the finger size. Preferably as far as possible (min value is 1)
- If you find many users hit the Y-Axis-Limit check the Y-Axis motion range or consider re-adjusting the finger rest position
- panorama-size: adjust those properties if the captured panoramas are too small or too big. Make sure the values do not exceed the X-axis motion limits.
- Report any issues detected in the issues section