Jump to content

Does Teensy 4.0 and OctoWS2811 work with DOF?


Recommended Posts


Hi i bought a Teensy4.0 thinking it would be anm upgrade over the Teensy3.2 ( silly me, this has caused a problem)


I managed to compile code from github - from this dude has tried to submit a pull reqeust to support teensy4.0


Link here: https://github.com/D...ntroller/pull/7


He updated the software to work on teensy4.0 - i compiled and installed fine.

When i restart the Teensy it goes through about 8 colours on the leds, then the teensy starts blinking like it's listening for commands. (seems ok)


Only problem is i cannot get DOF to see the teensy.


My pc is windows 10 - and under device manager it shows USB Serial Device (COM4) which is the Teensy.


I have downloaded the DOF config with 2 leds, and a pinscape.


ports 1-3 is strip1, and ports 4-6 is strip2.



But, I'm getting this error in my DOF logs:




2020.10.12 00:17:40.475 DirectOutput Logger initialized

2020.10.12 00:17:40.476 DirectOutput Version 0.8.5307.1702 as of 2014.07.13 00:56
2020.10.12 00:17:40.476 Global config loaded from: K:\DIRECTOUTPUT\config\GlobalConfig_B2SServer.xml
2020.10.12 00:17:40.476 Loading Pinball parts
2020.10.12 00:17:40.476 Loading cabinet
2020.10.12 00:17:40.477 Will load cabinet config file: K:\DirectOutput\Config\Cabinet.xml
2020.10.12 00:17:40.543 Warning: Output controller type TeensyStripController not found during deserialization of data.
2020.10.12 00:17:40.573 0 output controller defnitions and 3 toy definitions loaded from cabinet config.
2020.10.12 00:17:40.573 Cabinet config file has AutoConfig feature enabled. Calling AutoConfig.
2020.10.12 00:17:40.574 Cabinet auto configuration started
2020.10.12 00:17:40.648 Cabinet auto configuration finished
2020.10.12 00:17:40.648 Autoconfig complete.
2020.10.12 00:17:40.648 Cabinet config loaded successfully from K:\DirectOutput\Config\Cabinet.xml
2020.10.12 00:17:40.648 Cabinet loaded
2020.10.12 00:17:40.648 Loading table config
2020.10.12 00:17:40.649 Warning: No table config file found. Will try to load config from LedControl file(s).
2020.10.12 00:17:40.649 Will try to load configs from DirectOutput.ini or LedControl.ini file(s) for RomName mm_109c
2020.10.12 00:17:40.651 Loading LedControl file K:\DIRECTOUTPUT\config\directoutputconfig30.ini
2020.10.12 00:17:40.709 EXCEPTION: Table with ShortRomName Galaxie_1971 has already been loaded (Exists more than once in ledcontrol file).
2020.10.12 00:17:40.709 EXCEPTION: Thread: 
2020.10.12 00:17:40.711 EXCEPTION: Table with ShortRomName Big_Shot_1974 has already been loaded (Exists more than once in ledcontrol file).
2020.10.12 00:17:40.711 EXCEPTION: Thread: 
2020.10.12 00:17:40.744 EXCEPTION: Table with ShortRomName SpotPool_1976 has already been loaded (Exists more than once in ledcontrol file).
2020.10.12 00:17:40.744 EXCEPTION: Thread: 
2020.10.12 00:17:40.769 1 directoutputconfig.ini or ledcontrol.ini files loaded.
2020.10.12 00:17:40.770 Config for RomName mm_109c exists in LedControl data. Updating cabinet and config.
2020.10.12 00:17:40.791 Table config loading finished
2020.10.12 00:17:40.791 Pinball parts loaded
2020.10.12 00:17:40.791 Starting processes
2020.10.12 00:17:40.792 Initializing cabinet
2020.10.12 00:17:40.795 Cabinet initialized
2020.10.12 00:17:40.797 Framework initialized.
2020.10.12 00:17:40.797 Have fun! :)
Here's my cabinet.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- This config file will set up two addressable LED strips orange on the right and blue on the left.  Each is 53 long and have the distal LED as the first in the array -->
<Cabinet xmlns:xsi="http://www.w3.org/20...chema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>MultiBall</Name> Cabinet Name
      <NumberOfLedsStrip1>144</NumberOfLedsStrip1>  Number of LEDs on the right playfield 
      <NumberOfLedsStrip2>144</NumberOfLedsStrip2>  Number of LEDs on the left playfield
      <ComPortName>COM4</ComPortName> You must look in device manager to see what port Windows assigned for the Teensy USB connection.
      <Name>PF Right</Name> This is the name that I gave the right playfield strip
      <Width>1</Width> These strips run as one long string as far as the Teensy board is concerned.  If you set the width to anything other than 1 it will give you funny results like the entire strip being LED 1
      <Height>144</Height> This is the length of the right playfield LED array
      <LedStripArrangement>TopDownLeftRight</LedStripArrangement> There are several choices that can be used here like BottomUpLeftRight.  This determines the order of LEDs that the Teensy sends out on its signal path.  If you use TopDown then the furthest LED from the connecting wires will be the first one in the segnal pathway.  I needed this because I wanted my Teensy Board in the back of the machine by the power supplies to make the shorted wiring runs.
      <ColorOrder>GRB</ColorOrder>  You must choose GRB not RBG with these strips to get them to correctly display the colors sent to them
      <FirstLedNumber>1</FirstLedNumber> This is the first strip so it starts with LED 1
      <FadingCurveName>SwissLizardsLedCurve</FadingCurveName> I didn't play with this setting so I can't tell you what this does but I suspect that this sets the protocol that DOF uses for lighting the strips.
      <Name>PF Left</Name> This strip is set up just like the other with exceptions in bold
      <FirstLedNumber>1</FirstLedNumber> Since this is the second strip its first LED is the next one after the last LED on the other strip so since my strips are 53 LEDs long it is LED 54.
       <Name>LedWizEquivalent 30</Name> This is the number assigned to the WS2811 controller by the online DOF config tool
          <OutputName>PF Right</OutputName> Name as defined above
          <LedWizEquivalentOutputNumber>1</LedWizEquivalentOutputNumber> This is the port number of the first set of combos set up In the online DOF Config tool so it is port 1
          <OutputName>PF Left</OutputName> Name as defined above
          <LedWizEquivalentOutputNumber>4</LedWizEquivalentOutputNumber> This is the port number of the second set of combos set up in the online DOF config tool so it is port 4
 <AutoConfigEnabled>true</AutoConfigEnabled> This needs to be set to true to work






Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

I’m curious if this ever got to working status? With the teensy 3.2 shortage, I’m thinking of getting the 4.0 if it “should work” 


im assuming the LC version does not have enough oomph to work?



i found a couple other posts that indicate they got it working with 4.0. I purchased one and will report back to confirm if it works or not. 

Edited by cmt26
Link to comment
Share on other sites

Well got the board, soldered the Octo on, did the basic test and all the leds light up. Unfortunately the teensycontroller will not upload as there are errors. I assume I did not compile correctly to the 4.0 teensy version, as I’m not much of a programmer. Any have the actual teensycontroller for 4.0 all compiled?



ok, figured it out, loaded and works, well, kind of, now need to configure it and test it out, but it did compile and uploaded to the teensy 4.0 and appeared to function with a quick test.



Edited by cmt26
Link to comment
Share on other sites

  • 3 weeks later...

I went to that link and looked at the 4.0 version files, you can view each file. I then copied the code and re-saved each one and named them accordingly.


Let me know if you have issues, I will try and gather the files I have, not sure when I will be in front of my cab though, so might not be until this weekend.

Link to comment
Share on other sites

I got mine to work on the 4.0.  I followed Major Frenchy's video on addressable LEDs. This is how I did it...

I went to the link referenced above, clicked on "TeensyStripController" at the top, then hit the green "code" button and downloaded the zip. The file you download is used at 18:31 in the video.

It worked fine for me.  I'm not a coder either, I just followed the directions.  I've seen others post that it wouldn't work for them. Good luck!


EDIT:  I believe this is the correct link to the code that works with the 4.0.  Just following my instructions above doesn't route there.


Version 1.04



Edited by Lepinstar
Clarify place to find info referenced.
Link to comment
Share on other sites

After downloading, copying and pasting 100 times with 10 different files from 3 different repos I kept getting compile errors - YOURS ABOVE WORKED!


(I will file compare to see difference or what I did wrong that might help others)


All I needed to do was change 144 to 288 since I have 2 strips on one output.


Thank you.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...