Using the Picaxe 20x2 to drive APA102

Electronics Learner 123

Well-known member
Hi all,

I am currently trying to drive the APA102 using the Picaxe 20x2.

I have read the following threads:
https://picaxeforum.co.uk/threads/apa102-rgb-led-strip-examples.30680/
https://picaxeforum.co.uk/threads/apa102-5050-rgb-led-with-integrated-driver.27509/
https://picaxeforum.co.uk/threads/controling-addressable-leds.29327/#post-302643

And I have used code that has been adjusted to work with the 20x2:

Code:
#picaxe 20x2
#no_table
#no_data

; =======================================================
; Example 7
; Set all LED modules on
; =======================================================

;          40X2                 5V -.-   Light strip
;     .-----__-----.                |
;     | RST    B.7 |                `--> RED +V
;     =            =  .--> SCK --------> BLU CK
;     | C.2    C.5 |--|--> SDO --------> GRN DI
;  .--| C.3    C.4 |  |             .--> YEL 0V
;  |  | D.0    D.3 |  |             |
;  |  | D.1    D.2 |  |         0V _|_
;  |  `------------'  |
;  `------------------'

; Set how many LED modules in the strip
Symbol HOW_MANY_LEDS = 144 '147/7

; Set the brightness of the LED while testing
; Use small values to keep current consumption low
Symbol BRIGHTNESS    = 10 ; 0 to 255 (full)

; Initialise the HSPI interface
#macro init()
  hspisetup spimode00, spifast
#endmacro

; Send a four byte packet out via HSPI
#macro sendPacket( n1, n2, n3, n4 )
  hspiout( n1, n2, n3, n4 )
#endmacro

; Send the start of data header
#macro head()
  sendPacket( $00, $00, $00, $00 )
#endmacro

; Send a LED controlling command
#macro send( red, green, blue)
  sendPacket( $FF, blue, green, red )
#endmacro

; Send the end of data tail
#macro tail()
  sendPacket( $FF, $FF, $FF, $FF )
  'sendPacket( $FF, $FF, $FF, $FF )
  'sendPacket( $FF, $FF, $FF, $FF )
#endmacro

PowerOnReset:

  ; Initialise the HSPI interface
  init

TurnAllLedsOn:
  ; Turn all LED modules on
   do
      head
      for w0 = 1 to HOW_MANY_LEDS step 6
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( BRIGHTNESS, BRIGHTNESS, $00        ) ; red + green
         send( BRIGHTNESS, $00,        BRIGHTNESS ) ; red + blue
         send( $00,        BRIGHTNESS, BRIGHTNESS ) ; green + blue
         'send( BRIGHTNESS, BRIGHTNESS, BRIGHTNESS ) ; white
         pause 50
         next
      tail
      head
      for w0 = 1 to HOW_MANY_LEDS step 6
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( BRIGHTNESS, $00,        $00        ) ; red
         send( BRIGHTNESS, $00,        $00        ) ; red
         'send( BRIGHTNESS, $00,        $00        ) ; red
         pause 50
      next
      tail
      head
      for w0 = 1 to HOW_MANY_LEDS step 6
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        BRIGHTNESS, $00        ) ; green
         send( $00,        BRIGHTNESS, $00        ) ; green
         'send( $00,        BRIGHTNESS, $00        ) ; green
         pause 50
      next
      tail
      head
      for w0 = 1 to HOW_MANY_LEDS step 6
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( $00,        $00,        BRIGHTNESS ) ; blue
         send( $00,        $00,        BRIGHTNESS ) ; blue
         'send( $00,        $00,        BRIGHTNESS ) ; blue
         pause 50
      next
      tail
      head
      for w0 = 1 to HOW_MANY_LEDS step 6
         send( $00, $00, $00) ; black
         send( $00, $00, $00) ; black
         send( $00, $00, $00) ; black
         send( $00, $00, $00) ; black
         send( $00, $00, $00) ; black
         send( $00, $00, $00) ; black
         'send( $00, $00, $00) ; black
         pause 50
      next
      tail
   loop
Which was kindly provided by TechElder,

However this doesn't seem to work on my apa102 as it gets the lights to light up but with no significant correlation to the code,
I would like to start off my simply controlling specific leds and updating them when I need to. (NOTE: I am using a 60led/m strip).

What I would like to achieve:
Variable ---> is variable 3?
---> is variable 2
---------------------------------------↑ I know how to do the above ↑------------------------------
 

Attachments

Electronics Learner 123

Well-known member
What I need to do is: (e.g.)
-------> if variable is 2 -----------> turn on led 4,5,6
but if variable changes to e.g. 3 then -------> turn on led 24,25,26
etc...
------------------------------------- ↑ I do not know how to control individual leds (APA102)----
Wiring:

Code:
;          40X2                 5V -.-   Light strip                           This is what I have seen from the APA102
;     .-----__-----.                |                                                 examples, however I changed a few things:
;     | RST    B.7 |                `--> RED +V                                                     |
;     =            =  .--> SCK --------> BLU CK                                               |
;     | C.2    C.5 |--|--> SDO --------> GRN DI                                            |
;  .--| C.3    C.4 |  |             .--> YEL 0V                                                     |
;  |  | D.0    D.3 |  |             |                                                                       |
;  |  | D.1    D.2 |  |         0V _|_                                                                 |
;  |  `------------'  |                                                                                   |
;  `------------------'                                                                                ↓

;          20X2                 5V -.-   Light strip                           On my APA102 the wire colours are different
;     .-----__-----.                |                                                 when I purchased it, it had no instruction to                                     
;     | RST    B.7 |                `--> RED +V                             which the wires meant so when experiment
;     =            =  .--> SCK --------> BLU CK                       I came to the conclusion:
;     | C.2    C.5 |--|--> SDO --------> GRN DI                    RED = 5V
;  .--| C.3    C.4 |  |             .--> YEL 0V                             BLACK = 0V  _|_
;  |  | D.0    D.3 |  |             |                                                GREEN = CLOCK (SCK)
;  |  | D.1    D.2 |  |         0V _|_                                           YELLOW = SDO
;  |  `------------'  |
;  `------------------'


;          20X2                 5V -.-   Light strip                           This still didn't work so:
;     .-----__-----.                |                                                I looked at the 40X2 data sheet and                     
;     | RST    B.7 |                `--> RED +V                             noticed that the pinout is different     
;     =            =  .--> SCK --------> BLU CK                                               |
;     | C.2    C.5 |--|--> SDO --------> GRN DI                                            |
;  .--| C.3    C.4 |  |             .--> YEL 0V                                                     |
;  |  | D.0    D.3 |  |             |                                                                       |
;  |  | D.1    D.2 |  |         0V _|_                                                                 |
;  |  `------------'  |                                                                                   |
;  `------------------'                                                                                ↓
View attachment 23761

As you can see SCK is C.3 and SDO is C.5 and this marries up with what the diagram says.... BUT.............

View attachment 23762

From this diagram I realised that the pins didn't match up but now it had to have:

SCK = B.7
SDO = C.1

I changed these around and it worked... slightly but there will still problems (I think to loose connections)

So is this right?


Code:
;          20X2                 5V -.-   Light strip                           ∴ B.5 goes to SCK
;     .-----__-----.                |                                                  + C.1 foes the SDO
;     | RST    B.7 |                `--> RED +V                                                 
;     =            =      .--> SCK --------> GREEN CK                                   
;     | C.2    C.1 |--|--> SDO --------> YELLOW DI                                 
;  .--| B.5          |  |             .--> BLACK 0V                                             
;  |  | D.0           |  |             |                                                                   
;  |  | D.1           |  |         0V _|_                                                             
;  |  `------------'  |                                                                               
;  `------------------'                                                                           

____________
__________________________________________________________________________________

To wrap this up:

Is my wiring right?
How will I control individual LEDs and update them when needed?
NOTE: For my real application the time (from DS3231) will affect which LEDs are lit
View attachment 23763
Although this isn't necessary for the question I thought it best to give some background information:
I will wire the LED light strips like this WHILST THE DIAGRAM ABOVE IS SLIGHTLY INCORRECT AS IT DOESN'T TAKE INTO ACCOUNT THE COLON : AND THERE SHOULD BE 2 LEDS FOR EVERYONE MARKED THERE (60 LEDS IN THE STRIP AND ONLY 28 SHOWN ABOVE)

EDIT: ASCII-Art drawings now in
Code:
 tags.[/I]
 
Last edited:

hippy

Technical Support
Staff member
How will I control individual LEDs and update them when needed?
First thing is to make sure the LEDs can be controlled and work as expected.

PE6 includes Basic sample programs for the APA102 using the 40X2. You can run those on a 20X2 by changing the #PICAXE directive. Ignore the diagram for 40X2 wiring; it should work provided you have wired things as shown above for the 20X2.

Make sure you have disconnected the DS3231 and anything which uses I2C.

Load "APA102_Example_1.bas" then change the #PICAXE directive, download to the 20X2 and see if the first four LED's light red, green, blue, white.
 

oracacle

Senior Member
just a quick note, if you plan on using I2C for the clock you are going to have to either bit bang the clock or the LEDs as HSPI sck and I2C scl are the same pins. I have 50+ APA 102 here, and s selection of picaxe chips, and is this is a project that I have thought about a few times in the past I can have a deeper look now that I have time later.

depending on how you plan on setting the time, and any additional features, this could be doable on a 08m2.
 

hippy

Technical Support
Staff member
just a quick note, if you plan on using I2C for the clock you are going to have to either bit bang the clock or the LEDs as HSPI sck and I2C scl are the same pins.
I think it's best to leave that issue for later, have focus on getting it working with HSPI first, then move to SPI bit-banging on the same pins, then bit-banging on other pins, then introduce I2C. It's easier to bit-bang SPI than I2C.

"APA102_Example_6.bas" shows how to do bit-banging, using the HSPI pins on the 40X2, though any PICAXE or pins can be used simply by changing the SYMBOL definitions. I recall I did test on an 08M2 just to make sure.

The example code was written with bit-banging in mind, to make doing it as easy as possible. It just requires changing the "Init" and "SendPacket" macros and the addition of a routine to bit-bang out a byte. Any of the examples should work with those changes.

It should, in theory, be possible to run HSEROUT in synchronous mode which delivers an 8-bit SPI-like clocked bit-stream which is faster than bit-banging. I don't think I tried that for APA102 but I'm sure I have had that working somewhere down the line.
 

hippy

Technical Support
Staff member
This is the project plan I would follow for getting the device to show the time -

Get HSPI controlling the LED strip
Determine which LED's are which and where on the display
Create a mapping from time digits to segments
Create a mapping from segments to LED's
Implement and test with faked time digits
Move HSPI to bit-banging on the same pins
Move to bit-banging on other pins
Add I2C RTC in, get it reading time bytes
Convert time bytes to time digits

And that should be it.

Sounds like a lot but should actually be fairly quick and easy to do. Being incremental it means there should only be one issue at a time to deal with and most of the increments are quite small.
 

Electronics Learner 123

Well-known member
Also,

Adding on to the project plan: I also intend for the clock to be controlled by my phone using an ESP8226 and I know that this can be done because Ibenson helped me to achieve this: https://picaxeforum.co.uk/threads/28x2-40x2-picaxe-web-server-with-esp-01-and-pi-javascript.31912/ (the finished product) and he later describes how I can do it on the 20x2, for this project I have attained 2 PICAXE microcontrollers the PICAXE 20X2 and the PICAXE 14M2- and if necessary we can use both.

For now, I agree with @hippy with the fact that I should take small steps/increments with the project. And should come to this element later.

Electronics Learner 123
 

Electronics Learner 123

Well-known member
Hi @hippy I have used example 1 of the APA102 Examples for the LED strip and it work great! The first 4 leds are lit and the wiring helped!

Kind Regards
Electronics Learner 123
23765

I am now going to map the LEDS on a diagram
 
Last edited:

lbenson

Senior Member
Great progress in laying out. So if you can figure out how to light the leds for each digit 0-9 for the first display, then the same number for the second display will be those led numbers plus 14; for the third, the same led numbers plus 30, and for the 4th, the same led numbers plus 44. LEDs 29 and 30 will always be on.
 

hippy

Technical Support
Staff member
Untested but this should show "12:34" with the colon flashing when run -
Code:
#Picaxe 20x2
#No_Data

; =======================================================
; Static 12:34 display with flashing colon
; =======================================================

;         20X2
;    .-----__-----.
;    | +V      0V |
;    =            =            5V -.-   Light strip
;    | C.2    B.5 |                |
; .--| C.1    B.6 |                `--> +V
; |  | C.0    B.7 |-----> SCK --------> CK
; |  `------------'  .--> SDO --------> DI
; |                  |             .--> 0V
; `------------------'         0V _|_

; Set how many LED modules in the strip
Symbol HOW_MANY_LEDS = 60

; Set the brightness of the LED while testing
; Use small values to keep current consumption low
Symbol BRIGHTNESS    = 1 ; 0 to 255 (full)

; Initialise the HSPI interface
#Macro Init()
  HSpiSetup SPIMODE00, SPIFAST
#EndMacro

; Send a four byte packet out via HSPI
#Macro SendPacket( n1, n2, n3, n4 )
  HSpiOut( n1, n2, n3, n4 )
#EndMacro

; Send the start of data header
#Macro Head()
  SendPacket( $00, $00, $00, $00 )
#EndMacro

; Send a LED controlling command
#Macro Send( red, green, blue)
  SendPacket( $FF, blue, green, red )
#EndMacro

; Send the end of data tail
#Macro Tail()
  SendPacket( $FF, $FF, $FF, $FF )
#EndMacro

; Set a piar of consecutibve LEDs
#Macro Pair( hm_tu, bitMask )
  b0 = hm_tu & bitMask Max 1
  b1 = b0 * BRIGHTNESS ; Red
  b2 = b0 * BRIGHTNESS ; Green
  b3 = b0 * BRIGHTNESS ; Blue
  Send( b1, b2, b3 )
  Send( b1, b2, b3 )
#EndMacro

;                        -ABCDEFG  ; .--A--.
Symbol SEG_A          = %01000000  ; F     B
Symbol SEG_B          = %00100000  ; |--G--|
Symbol SEG_C          = %00010000  ; E     C
Symbol SEG_D          = %00001000  ; `--D--'
Symbol SEG_E          = %00000100
Symbol SEG_F          = %00000010
Symbol SEG_G          = %00000001

Symbol reserveW0      = w0  ; b1:b0
Symbol reserveW1      = w1  ; b3:b2

Symbol hour           = b4  ; $00 to $23, BCD
Symbol mins           = b5  ; $00 to $59, BCD

Symbol hour_tens_bits = b6  ; %-ABCDEFG
Symbol hour_unit_bits = b7  ; %-ABCDEFG
Symbol mins_tens_bits = b8  ; %-ABCDEFG
Symbol mins_unit_bits = b9  ; %-ABCDEFG

Symbol colon_bit      = b10 ; %-------X

PowerOnReset:

  ; Initialise the HSPI interface
  Init

  ; Turn all LED modules off
  Head
  For w0 = 1 To HOW_MANY_LEDS
    Send( $00, $00, $00 ) ; 1 to last = Off
  Next
  Tail

MainLoop:
  Do
    Gosub ReadTime
    Gosub SetLedBits
    Gosub ToggleColon
    Gosub UpdateDisplay
    Pause 500
  Loop

ReadTime:
  hour = $12 : mins = $34
  Return

SetLedBits:
  b0 = hour / $10 : ReadTable b0, hour_tens_bits
  b0 = hour & $0F : ReadTable b0, hour_unit_bits
  b0 = mins / $10 : ReadTable b0, mins_tens_bits
  b0 = mins & $0F : ReadTable b0, mins_unit_bits
  Return

ToggleColon:
  colon_bit = colon_bit ^ 1
  Return

UpdateDisplay:
    Head

    Pair( hour_tens_bits, SEG_F ) ; 1  2
    Pair( hour_tens_bits, SEG_A ) ; 3  4
    Pair( hour_tens_bits, SEG_B ) ; 5  6
    Pair( hour_tens_bits, SEG_G ) ; 7  8
    Pair( hour_tens_bits, SEG_E ) ; 9  10
    Pair( hour_tens_bits, SEG_D ) ; 11 12
    Pair( hour_tens_bits, SEG_C ) ; 13 14
 
    Pair( hour_unit_bits, SEG_F ) ; 15 16
    Pair( hour_unit_bits, SEG_A ) ; 17 18
    Pair( hour_unit_bits, SEG_B ) ; 19 20
    Pair( hour_unit_bits, SEG_G ) ; 21 22
    Pair( hour_unit_bits, SEG_E ) ; 23 24
    Pair( hour_unit_bits, SEG_D ) ; 25 26
    Pair( hour_unit_bits, SEG_C ) ; 27 28

    Pair( colon_bit,      1     ) ; 29 30

    Pair( mins_tens_bits, SEG_F ) ; 31 32
    Pair( mins_tens_bits, SEG_A ) ; 33 34
    Pair( mins_tens_bits, SEG_B ) ; 35 36
    Pair( mins_tens_bits, SEG_G ) ; 37 38
    Pair( mins_tens_bits, SEG_E ) ; 39 40
    Pair( mins_tens_bits, SEG_D ) ; 41 42
    Pair( mins_tens_bits, SEG_C ) ; 43 44

    Pair( mins_unit_bits, SEG_F ) ; 45 46
    Pair( mins_unit_bits, SEG_A ) ; 47 48
    Pair( mins_unit_bits, SEG_B ) ; 49 50
    Pair( mins_unit_bits, SEG_G ) ; 51 52
    Pair( mins_unit_bits, SEG_E ) ; 53 54
    Pair( mins_unit_bits, SEG_D ) ; 55 56
    Pair( mins_unit_bits, SEG_C ) ; 57 58
 
    Pair( 0,              0     ) ; 59 60

    Tail
    Return

;           -ABCDEFG   ; 0  .--A--.
Table 0, ( %01111110 ) ;    F     B
                       ;    |     |
                       ;    E     C
                       ;    `--D--'


;           -ABCDEFG   ; 1        .
Table 1, ( %00110000 ) ;          B
                       ;          |
                       ;          C
                       ;          '

;           -ABCDEFG   ; 2  .--A--.
Table 2, ( %01101101 ) ;          B
                       ;    .--G--'
                       ;    E      
                       ;    `--D--'

;           -ABCDEFG   ; 3  .--A--.
Table 3, ( %01111001 ) ;          B
                       ;     --G--|
                       ;          C
                       ;    `--D--'

;           -ABCDEFG   ; 4  .     .
Table 4, ( %00110011 ) ;    F     B
                       ;    `--G--|
                       ;          C
                       ;          '

;           -ABCDEFG   ; 5  .--A--.
Table 5, ( %01011011 ) ;    F      
                       ;    `--G--.
                       ;          C
                       ;    `--D--'

;           -ABCDEFG   ; 6  .--A--.
Table 6, ( %01011111 ) ;    F      
                       ;    |--G--.
                       ;    E     C
                       ;    `--D--'

;           -ABCDEFG   ; 7  .--A--.
Table 7, ( %01110000 ) ;          B
                       ;          |
                       ;          C
                       ;          '

;           -ABCDEFG   ; 8  .--A--.
Table 8, ( %01111111 ) ;    F     B
                       ;    |--G--|
                       ;    E     C
                       ;    `--D--'

;           -ABCDEFG   ; 9  .--A--.
Table 9, ( %01111011 ) ;    F     B
                       ;    `--G--|
                       ;          C
                       ;    `--D--'
It's probably going to be a bit difficult and tedious counting down the LED strip to check each LED is lit as it's meant to be so the sensible thing would to be to construct the display or at least get the strip folded to give the actual 7-segment form.

You have two LED's spare if using a 60 LED strip so you might like to consider using those for some other functions; AM/PM indicator, Alarm On etc.
 

Hemi345

Senior Member
Hi @hippy I have used example 1 of the APA102 Examples for the LED strip and it work great! The first 4 leds are lit and the wiring helped!

Kind Regards
Electronics Learner 123
View attachment 23765

I am now going to map the LEDS on a diagram
I don't see the obligatory decoupling cap and programming resistors in your photo. Make sure you add those or you're going to have inconsistent behavior (and get seriously frustrated).
 

Electronics Learner 123

Well-known member
I don't see the obligatory decoupling cap and programming resistors in your photo. Make sure you add those or you're going to have inconsistent behavior (and get seriously frustrated).
Hi Hippy,

I am programming my Picaxe chip on the project board then I am moving it onto the breadboard- does this still require me to have a resistor and a decoupling capacitor on my breadboard?
 

hippy

Technical Support
Staff member
I am programming my Picaxe chip on the project board then I am moving it onto the breadboard- does this still require me to have a resistor and a decoupling capacitor on my breadboard?
Serial In ( leg 2 ) should be pulled down to 0V using a 1K-33K resistor. Decoupling capacitors would be recommended.
 

hippy

Technical Support
Staff member
For the breadboard. The project board presumably has the programming jack and download circuit resistors fitted.
 

lbenson

Senior Member
I am programming my Picaxe chip on the project board then I am moving it onto the breadboard- does this still require me to have a resistor and a decoupling capacitor on my breadboard?
You can program on the breadboard (and will probably find that much easier than going through the swapping routine) if you run three wires from the project board to the breadboard--SERIN, SEROUT, and 0V.

If you want to be able to run with those wires disconnected, connect a 100K resistor from SERIN on the breadboard to 0V on the breadboard. That should not interfere whether you have the project board programing wires connected or not.

Decoupling capacitor (100nF/.1uF) should be close to the power pins on any picaxe, and a 10uF or greater power reservoir capacitor as well.
 

Electronics Learner 123

Well-known member
You can program on the breadboard (and will probably find that much easier than going through the swapping routine) if you run three wires from the project board to the breadboard--SERIN, SEROUT, and 0V.

If you want to be able to run with those wires disconnected, connect a 100K resistor from SERIN on the breadboard to 0V on the breadboard. That should not interfere whether you have the project board programing wires connected or not.

Decoupling capacitor (100nF/.1uF) should be close to the power pins on any picaxe, and a 10uF or greater power reservoir capacitor as well.

When I purchased my breadboard adapter, I didn't realise at first but one of the metal pins at the back was snapped, unfortunately, I can't use it now so I have to use the swapping routine (@Ibenson) , unless you guys have a suggestion on how I could fix this?

Also I don't have a decoupling capacitor and won't be able to get one for a little while.23773
 
Last edited:

lbenson

Senior Member
I can't use it now so I have to use the swapping routine
If you are able to program the picaxe on the project board, then you are able to program the picaxe on the breadboard using the project board. Run those three wires from the project board to the breadboard, and you will be able to program the picaxe on the breadboard. I'm not familiar with that particular project board, but I've done that using an 08M proto board for over a dozen years.

I did it by just plugging 3 wires into the socket on the project board, but that might, in time, bend the socket connectors so that a plugged-in picaxe might have intermittent connections. Better might be to solder flying leads to the pins of the socket on the underside:
AXE117 14M2 Project board.jpg
 
Last edited:

Electronics Learner 123

Well-known member
If you are able to program the picaxe on the project board, then you are able to program the picaxe on the breadboard using the project board. Run those three wires from the project board to the breadboard, and you will be able to program the picaxe on the breadboard. I'm not familiar with that particular project board, but I've done that using an 08M proto board for over a dozen years.

I did it by just plugging 3 wires into the socket on the project board, but that might, in time, bend the socket connectors so that a plugged-in picaxe might have intermittent connections. Better might be to solder flying leads to the pins of the socket on the underside:
View attachment 23774
That sounds like a great idea, I will try it tonight.

@hippy will this also work on the PICAXE 20X2 project board?
 

hippy

Technical Support
Staff member
@hippy will this also work on the PICAXE 20X2 project board?
Which this is that ?

If you mean drivingthe RGB LED strip from the project board then it should. Just connect the CK and DI pins as you have on breadboard. Make sure the connections are direct to the PICAXE, the holes next to it. You might have to remove that ULN2803A from the board but possibly not.
 

Electronics Learner 123

Well-known member
Which this is that ?

If you mean drivingthe RGB LED strip from the project board then it should. Just connect the CK and DI pins as you have on breadboard. Make sure the connections are direct to the PICAXE, the holes next to it. You might have to remove that ULN2803A from the board but possibly not.
Hi Hippy, I apologise for not being more clear in what I meant: I wanted to know if you could
If you are able to program the picaxe on the project board, then you are able to program the picaxe on the breadboard using the project board. Run those three wires from the project board to the breadboard, and you will be able to program the picaxe on the breadboard.
23776
Like this? So I would solder wires underneath the project board underneath the ic socket and then connect these wires to the breadboard so that I don't need to constantly remove the Picaxe 20x2 from the project board and onto the breadboard?

I hope that this is more clear now?

Kind Regards
Electronics Learner 123

ps. thanks @Ibenson for the suggestion.
 

hippy

Technical Support
Staff member
So I would solder wires underneath the project board underneath the ic socket and then connect these wires to the breadboard so that I don't need to constantly remove the Picaxe 20x2 from the project board and onto the breadboard?
Yes, exactly as lbenson suggested. Take three wires from the PICAXE socket pins, to the bread board and then, when the jack is plugged in to the project board, it will actually program the PICAXE on the breadboard.

You have to remove any PICAXE from the project board, and don't need to apply power to the project board.
 
Top