OctoPROBER ADC working!


Finished programming the ADC which is a MCP3021. It is a 10bit i2c compatible ADC with one channel. A limited ADC but perfect for measuring battery voltages.

Operation is very simple. Just request a word from the device using 10011011 as the device ID and it will spit out the analog value. I had some issues with the i2c driver I used though.

The ADC is supposed to return the 10bit value like so 0000XXXXXXXXXX00. I was receiving XXXXXX000000XXXX. The upper and lower bytes where transposed. Fixed by swapping them around.

OctoPROBER REV 0 board works!*


*With hardware fixes

I was having an issue with the FT230X being active while the 3.3V rails being turned off. The FT230X would backfeed voltage down the TXRX lines into the propeller which would power the 3.3V rail to ~2.7V causing the soft power switch circuit to turn on. I fixed this by running the RESET pin of the FT230X to the propeller and pulling it up to the switched 3.3V rail. The propeller can control whether the FT230X is in suspend mode or is active. Pulling RESET low will HI-Z the TXRX pins and allowing the propeller to turn off the soft power circuit completely without voltage backfeed.

Changed the 16×2 char display from running in 4-bit parallel mode to serial com. This saves 2 I/O lines and is much faster then the 4-bit mode.

Since the main way of charging the OctoPROBER is over USB I needed a way to disable the auto reset. Don’t want the device to reset when its taking samples and low battery warning pops up! This is cause when a computer connects to the FT230X it sends a reset signal to the FT230X which is connected to the reset line on the propeller. Disconnected that and routed the FT230X signal to a free I/O line. This way the prop can control whether or not to reset upon connecting to a computer.

Couple more hardware systems to test then REV 1 boards will be ordered!


OctoPROBER REV0 boards arrive from OSH Park


Three boards arrived from OSH Park today. First 4-Layer board I have ordered from them. Quality is pretty good. Silkscreen is a bit weak but that is probably due to me running the weight of the text to thin.


Internal two layers are GND and 3.3V. Outside two layers are signals.


Close up of the kickass OctoPROBER logo.


Character display mounts on the back of the PCB. This way the PCB can be mounted to the front of the case without silly long button caps on the tact switches.

Part List for OctoPROBER

Full parts list for the OctoPROBER. Turned out a bit more expensive then I thought. Might turn the MAX31855KASA+ chips into socketable modules. That way you only add as many channels as you need which will get the initial cost down.

Part  Value                 
BATT1 MIKROE-1120           
C1    0.1uF                 
C2    0.1uF                 
C3    0.1uF                 
C4    0.1uF                 
C5    0.1uF                 
C6    0.1uF                 
C7    10uF                  
C8    10uF                  
C9    0.1uF                 
C10   0.1uF                 
C11   0.1uF                 
C12   0.1uF                 
C13   0.1uF                 
C14   0.1uF                 
C15   0.1uF                 
C16   0.01uF                
C17   0.1uF                 
C18   0.01uF                
C19   0.1uF                 
C20   0.01uF                
C21   0.1uF                 
C22   0.01uF                
C23   0.1uF                 
C24   0.01uF                
C25   0.1uF                 
C26   0.01uF                
C27   0.1uF                 
C28   0.01uF                
C29   0.1uF                 
C30   0.01uF                
C31   10uF                  
C32   10uF                  
C33   10uF                  
C34   0.1uF                 
C35   0.1uF                 
C36   10uF                  
C37   0.1uF                 
C38   0.1uF                 
C39   0.1uF                 
D1    598-8070-107F         
D2    598-8070-107F         
D3    PMEG6030EP,115        
D4    NUP2105LT1G           
D5    NUP2105LT1G           
D6    NUP2105LT1G           
D7    NUP2105LT1G           
D8    NUP2105LT1G           
D9    NUP2105LT1G           
D10   NUP2105LT1G           
D11   NUP2105LT1G           
J1    10118193-0001LF       
J2    26-60-4020            
L1    MI0603K300R-10        
L2    BK1005HM471-T         
L3    BK1005HM471-T         
L4    BK1005HM471-T         
L5    BK1005HM471-T         
L6    BK1005HM471-T         
L7    BK1005HM471-T         
L8    BK1005HM471-T         
L9    BK1005HM471-T         
L10   BK1005HM471-T         
L11   BK1005HM471-T         
L12   BK1005HM471-T         
L13   BK1005HM471-T         
L14   BK1005HM471-T         
L15   BK1005HM471-T         
L16   BK1005HM471-T         
L17   BK1005HM471-T         
OP1   ACPL-227              
P1    TC33X-2-103E          
R1    10K                   
R2    10K                   
R3    10K                   
R4    10K                   
R5    10K                   
R6    10K                   
R7    10K                   
R8    10K                   
R9    10K                   
R10   22                    
R11   22                    
R12   330                   
R13   330                   
R14   10K                   
R15   10K                   
R16   10K                   
R17   1.18K                 
R18   1.13K                 
R19   10K                   
R20   10K                   
R21   10K                   
R22   10K                   
R23   10K                   
R24   100K                  
R25   10K                   
R26   100K                  
R27   300K                  
R28   120                   
R29   100K                  
R30   254K                  
SD1   502570-0893           
SW1   101-0134-EV           
SW2   EVQ-Q2203W            
SW3   EVQ-Q2203W            
SW4   EVQ-Q2203W            
SW5   EVQ-Q2203W            
TC1   282834-2              
TC2   282834-2              
TC3   282834-2              
TC4   282834-2              
TC5   282834-2              
TC6   282834-2              
TC7   282834-2              
TC8   282834-2              
U$1   LHE_FRAME             
U1    P8X32A-M44            
U2    CAT24C512WI-GT3       
U3    ADP3338AKCZ-3.3-RL    
U4    FT230XQ-R             
U5    BQ24075RGTT           
U6    74HC2G04GV,125        
U7    MAX31855KASA+         
U8    MAX31855KASA+         
U9    MAX31855KASA+         
U10   MAX31855KASA+         
U11   MAX31855KASA+         
U12   MAX31855KASA+         
U13   MAX31855KASA+         
U14   MAX31855KASA+         
U15   PMV22EN,215           
U16   PMV22EN,215           
U17   PMV160UP,215          
U18   DS1340Z-33+           
U19   MCP3021A5T-E/OT       
X1    ATS060CSM-1           
X2    ABS25-32.768KHz-1-T   

Mouser Part List

TQ-100 test placement on a Madell DP2600-2 Pick and Place

The Pinheck Pinball System uses a PIC32MX795F512L-80I/PT mcu. It is a 32bit mcu running at 80MHz with 512KB of program space. Plenty fast enough for pinball. The only reasonable package it comes in however is TQ-100 package which has a pitch width of 0.5mm. This pushes the limit of the vision system of the DP2600-2 but I managed to get the system dialed in to make the placement.


The PIC32MX795F512L-80I/PT is a tray part so the machine does not pick the part up from a feeder. Instead you line up all the chips in a row and the machine knows where to look for it. Uses the vision system to find and locate the part.


After picking up the chip the machine takes it over to the “Uplook” camera. Here is can make sure the part is oriented correctly and lined up.


The machine then moves on over to the part location on the PCB and places the part. In the image you can see the dark areas between the shiny leads of the PIC32. The dark areas are the solder mask showing through which means the part was placed correctly and straight.