• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1================================
2Teensy 3.1 SPI + LPC/FWH Flasher
3================================
4
5Note: this was made for the Teensy 3.1, but 3.2 should be compatible too.
6
7Hardware
8========
9
10.. image:: 300px-Teensy31_lpcspi_flasher.jpg
11
12The hardware is made of a `Teensy 3.1 <https://www.pjrc.com/teensy/teensy31.html>`_ and a shield-like PCB over it.
13Schematic and board files for the PCB can be found `in the github <https://github.com/urjaman/frser-teensyflash/tree/master/hardware>`_.
14The PCB is also shared `at OshPark <https://oshpark.com/shared_projects/izukIxq8>`_.
15
16Other components required:
17
18* pin headers (total 28, but get more)
19* a DIL8 socket (if you want to use SPI DIL8)
20* a PLCC32 SMD socket (if you want to use LPC/FWH)
21* optional: small SMD capacitor - pad exists under the shield PCB
22
23Assembly
24--------
25
26* start by installing the SMD cap (if available) and the DIL8 socket on the shield PCB
27* split appropriate strips of pin headers for the teensy and solder them on the teensy, you can use the shield pcb to align them
28
29  * my arrangement was as pictured in order to have more ground clearance under the teensy for the prog button
30
31* push the shield pcb only a little bit on the pin headers, just so the headers dont come over the top of the PCB
32* solder two corner pins to keep the shield PCB in place, these can be done from above
33* solder the rest of headers from the underside while watching that you dont flood the topside with too much solder, especially for the ones close to the PLCC socket
34* in order to solder the SMD PLCC32 socket, you'll need to break out the middle plastic bit, but keep it safe
35
36  * to protect from solder bridges forming between the pin headers and PLCC socket, i placed a very thin tape over the pin header holes on the pcb during the soldering
37  * notice that the PLCC footprint isnt centered on the PCB, meaning dont try to align the PLCC socket exactly on the PCB
38
39* after soldering the PLCC socket, i installed the plastic bit back with a little bit of glue
40
41Software
42========
43
44Firmware for the Teensy is available at https://github.com/urjaman/frser-teensyflash
45
46Also see the README in that directory, both it or this document might be outdated ;)
47
48As of writing the setup would be:
49
50* download arduino, extract it somewhere where you have write access
51* download the `Teensyduino thingy <https://www.pjrc.com/teensy/td_download.html>`_
52* run it on that arduino tree
53* install the udev rules provided in the above url
54* compile and install the `teensy_loader_cli <https://www.pjrc.com/teensy/loader_cli.html>`_ in your path
55
56  ::
57
58    git clone --recursive https://github.com/urjaman/frser-teensyflash.git
59    cd frser-teensyflash
60    nano Makefile # Edit the TEENSYDIR path to include your arduino directory
61    make
62    make program-cli # If this waits you need to press the PROG button on the teensy
63
64After this you should be able to use it with flashrom serprog, for speedups and enhancements to serprog before they're upstreamed
65I'd suggest to use this flashrom tree: https://github.com/urjaman/flashrom/tree/sp-upstream3
66
67Device should be something like /dev/ttyACM0 and the baudrate doesnt matter::
68
69  flashrom -p serprog:dev=/dev/ttyACM0:2000000
70
71ISP Usage
72---------
73
74The same software could be used on a bare teensy 3.1 for ISP SPI programming - this is untested and also the 3.3V supply in the teensy is not strong, so beware, but the SPI pins used would be:
75
76* CS: "Pin 2", PD0
77* SCK: "Pin 14", PD1
78* MOSI: "Pin 7", PD2
79* MISO: "Pin 8", PD3
80
81See https://forum.pjrc.com/threads/25643-Combined-Pin-Assignments-card for a good Teensy pinmap picture.
82