CycleOps Pro300 PT to ANT+, Part 5, Step by Step

This post will be a tutorial to building your own CycleOps Pro300PT to ANT+ Adapter. For anyone who may have purchased one of these bikes many years ago and finds it sitting unused in a corner this is a great way to bring new life to your bike for use with Zwift, Golden Cheetah or any other ANT+ compatiable application. If you bike looks like the photo below and came with the computer shown below, this tutorial is for you.

  

The version I have has the power meter welded to the fly wheel so there is no chance to have Cycleops upgrade the hub. If you happen to have the style that is bolted to the flywheel Cycleops will upgrade the Power Cartridge (part 18849) for $339. This wasn’t an option for me as I have the welded style hub shown on the right

 

Disclaimer:

This post assumes you have basic electronics knowledge including

  • Soldering of wires, though hole and 0603 SMT components to a PCB,
    • Don’t worry if you don’t, this is a great project to learn on as the PCB has large spacing and is very forgiving in part misplacement.
  • Programming an Arduino, specificly the Pro Micro, see Pro Micro & Fio V3 Hookup Guide
  • Downloading code from GIT hub. All the code, CAD models and PCB files are kept at GitHub Repository
  • Buying parts from electronic suppliers such as Mouser or Digikey

Some great tutorials can be found on Sparkfun and Adafruit

Parts Required:

  1. The complete parts list in excel format can be downloaded from the GIT here
  2. Molex Micro-Fit, 4 Circuit Plug Housing and Pins
  3. A few of the parts are non-standard mouser parts and needed to be ordered from ebay or AliExpress these included
    1. PCB – I am happy to sell some of my extra, just put a comment below otherwise the gerbers are in the GIT if you want to make your own boards
    2. NRF24AP2 Networking Module
    3. Arduino Pro Micro, Ebay or Sparkfun. Just make sure to get the 3.3V version
    4. Project Box, Ebay
    5. Optional OLED Display, Ebay
    6. Battery 14500 3.7V Li-Ion, DX or Amazon or Ebay

Full Parts List for those who just want to skim without going to GIT

PartValuePackageDescriptionMouser Part #LinkDevice
C14.7uF0603-CAPCapacitor581-06036D475MAT4ACAP0603-CAP
C21.0uF0603-CAPCapacitor581-06036D105MAT2ACAP0603-CAP
C32.2uF0603-CAPCapacitor581-06036D225MAT2ACAP0603-CAP
C41.0uF0603-CAPCapacitor581-06036D105MAT2ACAP0603-CAP
C51.0uF0603-CAPCapacitor581-06036D105MAT2ACAP0603-CAP
D1REDLED-0603LEDs645-598-8010-107FLED0603
D2BAT20JSOD-323Schottky diodes in SFE's production catalog511-BAT20JFILMDIODE-SCHOTTKY-BAT20J
D3GREENLED-0603LEDs645-598-8070-107FLED0603
Q12.5A/30VSOT23-3Generic PMOSFET621-DMG2307L-7MOSFET-PCHANNELDMG2307L
R12.49K0603-RESResistor660-RK73H1JTTD2491FRESISTOR0603-RES
R210.0K0603-RESResistor660-RK73H1JTTD1002FRESISTOR0603-RES
R32000603-RESResistor660-RK73H1JTTD2000FRESISTOR0603-RES
R42000603-RESResistor660-RK73H1JTTD2000FRESISTOR0603-RES
R54700603-RESResistor660-RK73H1JTTD4700FRESISTOR0603-RES
R610K0603-RESResistor660-RK73H1JTTD1002FRESISTOR0603-RES
R71.43M0603-RESResistor71-CRCW06031M43FKEARESISTOR0603-RES
R81.0M0603-RESResistor652-CR0603FX-1004ELFRESISTOR0603-RES
R910K0603-RESResistor660-RK73H1JTTD1002FRESISTOR0603-RES
R104700603-RESResistor660-RK73H1JTTD4700FRESISTOR0603-RES
R114.7M0603-RESResistor660-RK73B1JTTDD475JRESISTOR0603-RES
R124.7K0603-RESResistor667-ERJ-3GEYJ472VRESISTOR0603-RES
R134.7K0603-RESResistor667-ERJ-3GEYJ472VRESISTOR0603-RES
U$1NRF24AP2NRF24AP2 Networking ModuleAliexpressF10644_NRF24AP2
U$253375-0253375-022.50MM 2P VERT HDR FRCTN POS LOCK538-53375-021053375-02
U1MCP73831SOT23-5Charge management controller579-MCP73831T-2ACIOTMCP73831
U2AP2112K-3.3VSOT23-5Voltage Regulator LDO621-AP2112K-3.3TRG1V_REG_LDOSMD
U4TPS78223DDCRSOT95P280X110-5NLow-Dropout Linear Regulator595-TPS78223DDCRTPS78223DDCR
B1PRO MICROSPARKFUN_PRO_MICROSparkFun Pro MicroEbaySPARKFUN_PRO_MICRO
Power SwitchMountain SwitchToggle Switches SPST OFF-ON108-0041-EVX108-0041-EVX
Reset SwitchMountain SwitchPushbutton Switches METAL BODY BLK103-1013-EVX103-1013-EVX
Project CaseEbay
OLED DisplayEbay

Build Instructions

Prepare the Cable

I’m going to take a guess and say for most people this is going to be the most challenging part. I happen to have access to the proper crimping tools for working with Molex Micro-Fit connectors at work. For most, you have 2 options. Cut the existing cable off of your wired head unit or using some needle noise pliers and solder do your best to crimp the pin onto the wire. I have used the pliers and solder method for years for a non-mission critical application like this you should have no problem. I’m following the pin out numbering as used on the Molex Data Sheet for the 43020-0400 4 pin housing, The image below shows a 6 pin, we will be using a 4 pin version. Don’t forget the heat shrink to keep things nice and clean. The completed end can be see below.

Going off of the colors of the wire I happened to have on hand, wire the connector as follows, substitute the color of wires you use as needed. I didn’t find any function for Pin 3 but I happened to be using 4 wire cable so just to keep things clean I connected all of the pins. You will see later that this pin goes to nothing at the PCB side. I am also using shielded cable. This is not necessary at all but at the PCB side I was able to solder the shield directly to the PCB to help strain relief the data, ground and signal solder joints

PinFunctionWire Color
12.95VGreen
2DataWhite
3NothingBlack
4GNDRed

Solder the Components

Time to take out the solder iron and the 0.015″ solder or some solder paste and hot air and get soldering. The layout of the board puts almost all of the SMT components on the back with lots of room to place them with tweezers and even enough room to hand solder them if you prefer. I suggest doing all of the SMT parts first then the through hole components after the SMT. Last solder all of the wired switches and data line. I put a small rubber grommet on the line that runs to the bike to give it a clean look when going though the project box. You will notice a large pad just above the connection for the bike data line. I used a cable with a shield. While this pad is grounded and in theory will help protect the wires from radiated noise my primary reason was to use the shield as strain relief for the wire. I didn’t want to solder directly to the OLED display to make it easy to remove the cover and work on the PCB if needed at a later date. I found a Molex 0022162040 to be the perfect fit to the pins and provide a nice right angle pin to solder the wire to. You can see this is the right most picture, its the white connector.

Prepare the Case

The case I used for this project was brought on Ebay Electronic Project Box/ Enclosure Instrument Case. A few modification are required for mounting of the power switch, 0 force calibration button, OLED display and access to the USB port. The location and size of the holes can be taken from the CAD model. The OLED Display was attached to the cover with hot glue at the 4 corners. I then put a sheet of transparency plastic on the outside to protect the OLED from the inevitable sweat that will fall on on it. I held the plastic on with some scotch magic tape but really need to find a cleaner solution.

 

 

Program Arduino

Before programming there is 1 small modification that must be done to the code. I am not able to provide the ANT+ network key with the code. Getting one is free and quick

  1. Go to //www.thisisant.com/
  2. Create a free account
  3. After you are logged in go to //www.thisisant.com/developer/ant-plus/ant-plus-basics/network-keys
  4. Find the line “The ANT+ network key is 8 hex values and is shown below”
  5. You will find 8 hexadecimal number, put each of the 8 numbers in order into this section of the code, replacing the XX with the numbers you are provided

Follow the instruction on Sparkfun for setting up the Arudino Pro Micro Pro Micro & Fio V3 Hookup Guide

Upload the code and apply power, on power up, even if not connected to the bike the OLED display should look like this.

 

By default I have the following items displayed on the screen

  • O: Torque (counts)
  • R: Torque (counts)
  • T: Torque (in-lbs)
  • P: Power (Watts)
  • C: Cadence (RPM)

Selling extra parts

If anyone is interested I have 4 extra PCBs that I would like to sell for $5 each, PayPal would be ideal method of payment. If interested let me know in the comments below and I’ll get in touch.

CycleOps Pro300 PT to ANT+, Part 4, Hand Wired Prototype

I’ve received a few requests for a step by step tutorial on how to build the circuit that I had talked about below. Sorry, this post won’t be that step by step guide but it will provide many of the tools. As a mid stop on my way to making a robust design others can copy I built a battery powered, hand wired, point to point monster that I could keep connected to the bike for my own personal winter training. At the same time I drew up the electrical schematic and laid out a PCB that would make it easy for others to build at home without doing painful point to point wiring. I had a few requirements for the finial design.

  1. Li-Ion Battery Powered
  2. Built in USB Charger for the battery
  3. Built in display to show, Torque, Power, Cadence and some parameters for debugging such as the current torque zero offset
  4. USB programmable for firmware updates and general messing with it at a later time without needing to use an In-Circuit Serial Programming (ICSP).

Battery: I’ve have a pile of 14500, 900mAh 3.7V Li-ion batteries laying around that fit perfectly in the corner of the project box. I’ve been using the bike about an hour a day for the last month and have yet to need to charge it. One of these days I’ll measure the power draw to get a rough idea of how long it should last. This first prototype has no ability to charge the battery. I’ll have to use one of my external chargers to do it for now

Display: I chose to use a small 128×64 OLED display that I had been playing around with. It has incredible view-ability, draws very little power and will run off 3.3V without any external components. It also has really easy to use libraries that made getting the data on the screen very quick to add to the code.

The hand wired unit I built does not have a built in charger but that is addressed in the final PCB design.

Just as before, the PCB design files and source code can be found in Github CycleOpsPro300PTtoANTPlus. SeeedStudio the PCB vendor I used has a minimum 5 board order so if there is any interest leave a comment below and I’m happy to send the extra to a good home $5 a board.

For anything following along at home the ANT+ module I had previously used doesn’t look to be available anymore. I found one that looks to be exactly the same NRF24AP2 Networking Module / 8-channel / Serial Interface / ANT Networking. This will be the unit I test with the PCB version of the design.

Photos of of the hand wired box and the PCB layout

Copyright blinkyme 2019
Tech Nerd theme designed by Siteturner