Skip to content
Snippets Groups Projects
README.md 8.16 KiB
Newer Older
Henk Buursen's avatar
Henk Buursen committed
 Friday
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- machine families
   - Squidworks
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - http://cba.mit.edu/docs/theses/20.02.read_draft.pdf
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - Jubilee
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - https://github.com/machineagency/jubilee/wiki
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - Fellesverkstedet
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - https://github.com/fellesverkstedet/fabricatable-machines/wiki
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - OpenBuilds, RobotShop
- Urumbu
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - rename folder
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - mechanism
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - flexure? cam? belt? rack-and-pinion?
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - -> flexure!
           - cam? rack-and-pinion?
           - Denis
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - motor control
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - Kris
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - https://gitlab.fabcloud.org/academany/fabacademy/2020/bootcamp/spicy/tree/master/minimill/motor-node/kicad/minimill-motor-node
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - two-sided rivets
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - microstepping
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - fiber laser
      - Sibu tests
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - Trotec
Neil Gershenfeld's avatar
Neil Gershenfeld committed
          - daily cleaning lens cleaning
          - reflection damage
Neil Gershenfeld's avatar
Neil Gershenfeld committed
          - checking stepover/direction
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - two-sided?
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - Lynx can measure trace widths
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - ARM
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - reset circuit 
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - ~10 kHz Python-USB-D11C-LED
Neil Gershenfeld's avatar
Neil Gershenfeld committed
          - Henk
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - ATtiny 1-series
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - ? ~kHz
Neil Gershenfeld's avatar
Neil Gershenfeld committed
          - Henk
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - USB-serial
      - D11C
         - http://academy.cba.mit.edu/classes/embedded_programming/D11C/hello.D11C.serial.3V3.png
      - MCP2221A
         - 14-SOIC (0.05 pitch)
         - internal termination
         - 460800 baud
         - 8N1 only
      - UPDI
         - 8E2
      - FT230XS
         - 16-SSOP (0.025 pitch)
         - 3 Mbaud
         - 78OEMSN12
         - external termination
Neil Gershenfeld's avatar
Neil Gershenfeld committed
         - hot air reflow (hot air, soldering iron)? heated solder sucker? solder paste?
            - Jani: Best option seems to be "drag soldering", fast and easy technique to solder small pitch chips.
Jani's avatar
Jani committed
                -Example here: https://www.youtube.com/watch?v=wUyetZ5RtPs
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - ESP32
      - Web REPL
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - https://gitlab.fabcloud.org/academany/fabacademy/2020/bootcamp/spicy/blob/master/esp32_notes.md
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - file senders
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - Python -> USB
           - serialserver + timing
Neil Gershenfeld's avatar
Neil Gershenfeld committed
           - Neil
Neil Gershenfeld's avatar
Neil Gershenfeld committed
       - embedded
Neil Gershenfeld's avatar
Neil Gershenfeld committed
           - ESP32? D11C?
Neil Gershenfeld's avatar
Neil Gershenfeld committed
               - -> ESP32
               - Rodney
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - tests
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - initally hard-coded
Neil Gershenfeld's avatar
Neil Gershenfeld committed
      - line
      - accel/decel line
      - accel/decel square
      - diagonal
      - circle
- Fabworld
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - bootcamp documentation
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - hello world project
       - https://gitlab.fabcloud.org/pub/helloworld
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - Jani doc
   - Henk gitlab
Henk Buursen's avatar
Henk Buursen committed
       - http://henk.buursen.fabcloud.io/gitlab-bootcamp-2020/
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - Santi gitlab eval
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - Fab Academy Kerala
Neil Gershenfeld's avatar
Neil Gershenfeld committed
   - bootcamp review
Neil Gershenfeld's avatar
Neil Gershenfeld committed
# fiber laser

Neil Gershenfeld's avatar
Neil Gershenfeld committed
- corner cutting setting
- Cu deposition - checking with Trotec

Neil Gershenfeld's avatar
Neil Gershenfeld committed
# USB-serial
Neil Gershenfeld's avatar
Neil Gershenfeld committed
# AVRtiny 1-series

Neil Gershenfeld's avatar
Neil Gershenfeld committed
- blink working
- KSUM firewall
- cable/not superspeed/not -> test termination
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- ~Mbps computer -> FTDI -> t1614 -> LED
Neil Gershenfeld's avatar
Neil Gershenfeld committed
# ARM

Neil Gershenfeld's avatar
Neil Gershenfeld committed
- 5V regulators in 3.3V
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- reset? yes
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- added pull-ups
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- try adding RC filter cap: works
- compare speed test: ~10 kHz USB bytes -> LED
Neil Gershenfeld's avatar
Neil Gershenfeld committed
# Minimill

Neil Gershenfeld's avatar
Neil Gershenfeld committed
- name?
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - Urumbu
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- function
    - 2D draw
- construction
    - print farm
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- user interface
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - Suhas
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- path planning
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - Neil
    - design -> path
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- motion control
    - Neil 
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - path -> steps
- embedded controller
    - replace PC
    - ESP32
    - Syed
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- network
    - Nicolas
francisco's avatar
francisco committed
    - Fran
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - (I2C, SPI, ...) -> multi-drop serial
    - speed test
        - host -> USB -> serial
        - host -> USB -> serial -> node -> LED
            - interrupt handler: receiver byte, make step
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- motor control
    - Kris
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - serial -> stepper
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- power
    - Duaa
- drives, motion
    - Denis
yuichitamiya's avatar
yuichitamiya committed
    - Yuichi
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - belts? rack-and-pinion? core-xy?
    - bearing, carriages, flexures
Neil Gershenfeld's avatar
Neil Gershenfeld committed
- end effectors
    - spindle
Neil Gershenfeld's avatar
Neil Gershenfeld committed
    - pens
    - Pradnya
- mechanical design
    - system integration
    - Beno

## Programming with EDBG Atmel ICE

Once you have your [hello.serial-UPDI.FT230X](http://academy.cba.mit.edu/classes/embedded_programming/index.html#programmers) or [hello.CMSIS-DAP.4.D11C](http://academy.cba.mit.edu/classes/embedded_programming/index.html#programmers) ARM programmer board ready, use [EDBG](https://github.com/ataradov/edbg). Clone it with `git`, install dependencies and run `make all` to compile it. It will produce an executable `edbg` in its home folder. 

> **On Mac** you might have a missing dependency `libhidapi`. Install it with `brew install hidapi`.

If you have an Atmel ICE with the board connected, use a modified version of the command below to program the ARM board. This assumes that you have added the EDBG repository to your path.

```
edbg -t samd11 -bpv -f free_dap_d11c_mini.bin -s J41800032510
```

`-t` stands for your ARM chip type. In this case it is D11C or samd11. You can check it from the datasheet. You can check all the EDBG supported types by running `edbg -t list`.

`-b` stands for verbose output.

`-p` stands for program, to program the chip.

`-v` stands for memory verification.

`-s` stands for the serial number of your programmer. 

`-f` stands for the binary file that you want to flash to your chip.

You can download the [bin file here](http://academy.cba.mit.edu/classes/embedded_programming/SWD/free_dap_d11c_mini.bin)

### Serial Number

You can tell the serial number of your programmer as follows. 

**On Linux** use `dmesg` command.

**On Mac** use `lsusb` command. Use `brew install lsusb` in case you do not have it.

Try to disconnect your programmer, run the command, connect it and run the command again to compare the output and find the correct device and its serial number.

## Mods, Python and MDX-20

We have been using the original USB cable for the MDX-20 at the KSUM Fab Lab. To be able to drive it via `mods`, we use the DSR/DTR mode. In order to be able to use that, we need to use the Python server.  

It does not matter if you use the MIT or COMMUNITY version of Mods. Both have a file called `py/pythonserial.py` that should be used. First check your `python3` installation. It should come together with `pip3`. To install it and needed Python dependencies do the follwing.

**On Mac**
```
brew install python3
brew postinstall python3
pip3 install pyserial
pip3 install websockets
```

**On Linux (Ubuntu)**
We use `sudo` here to avoid the server not being able to access the serial port.
```
sudo apt install python3
sudo apt install python3-pip
sudo pip3 install pyserial
sudo pip3 install websockets
```

**Run the server** with the following command. Use `127.0.0.1` as the address and port `1234`. These values you will need to use in the Mods interface later (they are there by default, but in case you want to use your own numbers).

```
python3 py/pythonserial.py 127.0.0.1 1234
```

**Linux (Ubuntu)**
```
sudo python3 py/pythonserial.py 127.0.0.1 1234
```

Server should be running now. The rest of it is running Mods in your browser. Refer to [instructions](https://github.com/fabfoundation/mods#running-mods-locally-in-your-computer) on the community repository of mods.

> Replace the `serial` module with `pyserial` in the community version of mods. 

Make sure you know the device identifier of MDX-20 your computer assigns to it. To find it out, use the following.

**Mac**
```
ls /dev/tty.*
```

**Linux**
```
ls /dev/ttyUSB*
```
Enter the device identifier into the **serial device** part of the Mods serial module. Use 9600 as the baud rate. Press the **open** button. You should see a port open message.
If you hit the **move to origin** button in the **Roland MDX-20 milling machine** module, the machine should move to the supplied coordinates. 

## Motor Control

We will use a modified version of the FTDI chip board and slave motor boards, all connected with a 4-wire serial cable. We are going to send 8 bits at a time from a computer program via the FTDI chip board and each of the boards will pick up 2 bits and translate them into the following actions.

```
00 do nothing
01 turn left
10 turn right
11 reply
```
## Board

The node board we are going to base off ATtiny1614 basic design that can be found [here](http://academy.cba.mit.edu/classes/embedded_programming/index.html).

## Notes on Milling Fine Traces

Climb versus Conventional in Mods.

**Climb** is the default in Mods and it leaves a cleaner finish, but it causes problems with the 25mil pitch parts such as the FTDI chip board we will be using this year.

**Conventional** leaves a rough finish and is not as precise as Climb. However **it is better for the 25mil pitch parts** as it does not pull the smaller copper pads off.