Newer
Older
- https://github.com/fellesverkstedet/fabricatable-machines/wiki
- https://gitlab.fabcloud.org/academany/fabacademy/2020/bootcamp/spicy/tree/master/minimill/motor-node/kicad/minimill-motor-node
- daily cleaning lens cleaning
- reflection damage
- 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
- 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.
- https://gitlab.fabcloud.org/academany/fabacademy/2020/bootcamp/spicy/blob/master/esp32_notes.md
- line
- accel/decel line
- accel/decel square
- diagonal
- circle
- Fabworld
- hello world project
- https://gitlab.fabcloud.org/pub/helloworld
- corner cutting setting
- Cu deposition - checking with Trotec
- blink working
- KSUM firewall
- cable/not superspeed/not -> test termination
- try adding RC filter cap: works
- compare speed test: ~10 kHz USB bytes -> LED
- function
- 2D draw
- construction
- print farm
- path -> steps
- embedded controller
- replace PC
- ESP32
- Syed
- (I2C, SPI, ...) -> multi-drop serial
- speed test
- host -> USB -> serial
- host -> USB -> serial -> node -> LED
- interrupt handler: receiver byte, make step
- belts? rack-and-pinion? core-xy?
- bearing, carriages, flexures
- 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.