Teeces Logics Lights

The Teeces Lights is an openly available PCB board set for the Front and Rear Logics and the PSI displays on a R2 dome.
There is also a pre-build run available currently (April 2017):

 An Arduino Pro Mini, Arduino Micro, or Sparkfun Pro MicroArduino plugs into the back of the board and controls the set through a program (sketch) that's downloaded to it. I have made a new sketch for the Teeces Arduino module that allows it to respond to the R2 Touch app. When programmed with my new sketch, the Teeces plugs in right where the JEDI Display used to go. You can use my sketch with the Teeces hardware even if you don't use the R2 Touch/MarcDuino system. It should be an improvement over the standard universal sketch in most respects.

CuriousMarc Teeces Sketch Demo

Building your Teeces Hardware

The Teeces hardware is not my design. It was designed by John Vannoy, who used the username Teeces on the Astromech forum. There is Wiki page on Astromech.net that explains the Teeces


The PCB boards can be bought there


A very good manual that explains how to assemble these is on JoyMonkey's Teeces website, and is available for download at the bottom of this page too:



And the components needed are below.

Item Qty DigiKey Part # Mouser Part # Newark # SparkFun # Notes
5-board PCB set 1

see http://store.oshpark.com/collections/droid-parts/
Logic bezels set 1

usually available from http://joymonkey.com/run
3mm LEDs for Logic Displays 225

preferably flangleless. 60 red, 62 green, 13 yellow, 54 white, 37 blue
5mm LEDs for PSI's 55

13 each Red, Blue, Yellow and Green (for PSI) plus 3 white (for HP)
DIP24 300 mil socket 7 3M5466-ND 517-4824-3000-CP 34P8054
these accept the MAX7219CNG chips
DIP24 600 mil socket 1 3M5467-ND 517-4824-6000-CP 19M1530 PRT-09095 this accepts the Arduino Pro Mini
MAX7219CNG 7 MAX7219CNG+-ND 700-MAX7219CNG 68K5009 COM-09622 Can be found on eBay very cheap. Order extras as the eBay ones can be faulty.
cap 10uF 5 445-2863-ND 810-FK24X5R0J106K

or 445-2874-ND
cap 0.1uF 5 490-5369-ND 810-FK28X7R1H104K

each board requires one. More common electrolytic caps could also be used.
resistor 24k for FLD 2 24KQBK-ND 660-MF1/4DCT52R2402F 59K8357

resistor 28k for RLD 1 28.0KXBK-ND 660-MF1/4DCT52R2802F 94C5024

resistor 10k for PSI 2 10.0KXBK-ND 660-MF1/4DC1002F 38K0328

screw terminal 100 mil 1 A98333-ND 571-282834-2 12H8386 PRT-10571 for connecting power to the RLD
double row header strip 1 S2012EC-40-ND 571-5-146261-4 52K4398
typically sold in strips of 40+ pins; break off groups of 5. alternatively use 2 single rows.
single row header strip 1 A26509-40-ND 649-68004-236 93K5737 PRT-00116 can be found cheaply on eBay or from ThaiShine
jumper wire, 5-pin, 8" or 12" 2

connects RLD to Rear PSI and FLD to Front PSI
jumper wire, 5-pin, 24" 1

connects RLD to FLD
jumper wire, 5-pin, 4" 1

PRT-10365 connects the two FLD boards together
jumper wire, 2-pin, 8" or 12" 3

PRT-10372 for connecting the HP LEDs to the PSI boards
Arduino Pro Mini - 5V 1

FTDI Basic Breakout - 5V 1

DEV-09716 you'll need this to program the Pro Mini board, since it doesn't have onboard USB
Regulator (LM7805) 1 LM7805CT-ND 512-LM7805CT 34C1092 COM-00107 needed if powering from a 12V source
1uF capacitor 1 UVR1H010MDD1TD-ND 647-UVR1H010MDD1TD 70K9698
goes with the LM7805 regulator
10uF capacitor 1 P5178-ND 667-ECA-1HM100 63K2677 COM-00523 goes with the LM7805 regulator
Arduino :
Arduino Pro Micro - 5V 1

Arduino Micro - 5V 1

AdaFruit # 1086. This is similar to Sparkfun's Pro Micro, but has more pins
Arduino Pro Mini - 5V 1

FTDI Basic Breakout - 5V 1

DEV-09716 you'll need this to program the Pro Mini board, since it doesn't have onboard USB

Here are the differences between the three Arduinos that you can plug into the board. I highly recommend to use an Arduino Pro Mini and it's attendant FTDI programmer. The two "micro" versions of the Arduino have USB on board. But the Arduino Micro is too large and the Sparkfun Pro Micro is much too difficult to upload by a beginner (or in my case, an advanced) user - it's a driver, file extension and reset mess. Once you get it to work it's OK, but it took me a day. No such issues with the Mini. That said, they all work with my sketch.

Installing and configuring the CuriousMarc Teeces code

You'll need the Arduino Environment program to configure and upload the code. Download and install from here. I used 1.0.5:


Run it once so it asks you to create your sketch folder.

WARNING: You will need to download TWO files below, which will expand into two folders:

  • The TeecesControl folder is a library, and should go into your into a Library folder inside your Arduino sketch folder (i.e. the Library folder should end up next to the Teeces_CuriousMarc folder you'll create below, not in it).
  • The Teeces_CuriousMarc is the sketch that you need to open and download to the Arduino after you have configured it, the whole folder goes into your Arduino sketch folder.

Open the Teeces_CuriousMarc sketch inside the folder by double clicking it, it should launch the Arduino environment. Scroll down a few lines until your reach the configuration lines that look like this:

Make sure you change the BOARDtype to match your board (in my case I use a SparkFun Pro Micro, I'd have to change it to 2). Also there are older boards for the PSI with different LED arrangements. If you have one of them, change the PSItype to the correct one. 2400 is the right baud rate to connect to the current (v.1.5) version of the MarcDuino HP Controller, so you can leave that alone.

Next you will need to upload your code. If you are unfamiliar with this step, refer to the Arduinio website. Basically, make sure you go into the Tools->Board menu and select your correct board type. Next, if you use a FTDI programmer, go to the Tools->Serial Port menu and make sure you select the COM port to which your FTDI programmer has attached itself. The click on the green circle arrow pointing to the right to compile and upload your code. The Teeces lights should come on right after the upload is finished.

Connecting the Teeces lights to the MarcDuino

The Teeces connects to the slave MarcDuino HP board right where the JEDI Display used to go (see here: Connecting the MarcDuino Slave Board). There are only two wires to connect:

  • One between the two grounds of the Teeces and MarcDuino. If you power the two using the same source, this ground wire is not even necessary.
  • The other wire goes from the PC0 ouput on the MarcDuino HP to the wire marked RXI or RX0 on your board. I do not control the HP lights from the Teeces, so connect these directly to the MarcDuino as in the diagram above.
That's it, your Teeces logics and PSIs should respond to all the regular R2 Touch app commands and effects.

CuriousMarc's Teeces Command Reference (advanced)

When running my sketch, the Teeces Lights responds a full set of JawaLite commands. You can use the Teeces with the R2Touch and MarcDuino bords, or with your own Arduino based system. If using your own system, send commands via serial (at a pokey 2400 bauds to be backwards compatible with the JEDI display).

This section describes the implemented commands. Most JawaLite commands found on the JEDI display are implemented, completed by a few CuriousMarc's Teeces commands that add more functionality.

The command reference, available within the sketch, is reprinted below (as of version 1.1):

// Command language reference - JEDI JawaLite emulation

JawaLite command syntax uses plain text format, followed by a carriage return.
Format is address - command letter - value:

where xx= address (one or two chars), Y=command letter, zzz=optional argument, <cr>= carriage return character ('\r'=0x13)

The address field is interpreted as follows:
0 - global address, addresses all the displays that support the command
1 - TFLD (Top Front Logic Dislay)
2 - BFLD (Bottom Front Logic Display)
3 - RLD  (Rear Logic Display)
4 - Front PSI
5 - Rear PSI
6 - Front Holo (JEDI only, not implemented in Teeces)
7 - Rear Holo  (JEDI only, not implemented in Teeces)
8 - Top Holo   (JEDI only, not implemented in Teeces)

Implemented commands (indicated durations are the sketch defaults, they are adjustable, see below):

Command T
0-5T0     - test (switches all logics to on)
0-5T1      - display to normal random
0T2     - flah, same as alarm
0T3     - alarm for 4 seconds (flashes displays on and off)
0T4     - short circuit (10 seconds sequence)
0T5     - scream, same as alarm
0T6     - leia, 34 seconds (moving horizontal bar)
0T10     - Star Wars. Displays "Star Wars" on RLD, "STARS" on TFLD, "WARS" on BFLD
0T11     - March (alternating halfs of logics, 47 seconds)
0-3T92   - spectrum bargraph displays. Runs forever, reset by calling 0T1
0-3T100  - Text display. Displays text set by the M command below
6T1, 7T1, 8T1 -> holos on  - JEDI HP lights wired to and controlled by MarcDuino boards.
0D, 6D, 7D, 8D -> holos off  - not implemented, HP lights wired to and controlled by MarcDuino boards.

Command M, set message for the text. 0= all logics, 1=TFLD, 2=BFLD, 3=RLD
0-3Mmessage - where "message" is an ASCII string to be displayed. Only uppercase implemented.

Command P, character set
0-3P61    - swtich display to aurabesh characters
0-3P60    - switch display to latin (e.g.english) characters

Extended "CuriousMarc Teeces" commands:

Extra command T to turn displays off

Command R, adjusts random style appearance:
0-3Rx where x=0 to 6.

Command S, PSI state
0,4-5S0  - PSI all on (same as 4-5T0)
0,4-5S1  - PSI normal mode (same as 4-5T1)
0,4-5S2  - PSI first color
0,4-5S3  - PSI second color
0,4-5S4  - PSI off

See downloads below.
You need to download BOTH TeecesControl and put that in the library folder, and one version of the Teeces_CuriousMarc_v1.x.

Revision History:
v1.4 Member Eebel fixed the light pattern for PSI of type 3. Thanks Eebel!
v1.3 Member Budi67 and I added version 1.3 with the numbers 4 to 9 now showing correctly in the Latin alphabet. I have not fixed the Aurabesh numbers yet, only number 2 will show in that alphabet.
Curious Marc,
Nov 28, 2013, 11:52 PM
Curious Marc,
Nov 29, 2013, 1:07 AM
Curious Marc,
Apr 4, 2015, 11:57 PM
Marc Verdiell,
Jan 9, 2017, 10:32 PM
Marc Verdiell,
Jan 29, 2018, 10:29 PM