Shop OBEX P1 Docs P2 Docs Learn Events
Platform3 (testing prototype) — Parallax Forums

Platform3 (testing prototype)

RaymanRayman Posts: 15,955
edited 2026-01-11 18:54 in Propeller 1

Need a new P1 board for a battery powered full color E-Ink display...

Haven't made a P1 board in a very long time, so this is fun.
Here's the concept so far (see image).

Think the last "platform" board for P1 that we made was called "Express".
This is an expanded update.

USB connectors updated to USB-C
FTDI chip updated to FT231X.
Doing this in Eagle, think was ExpressPCB last time. That was smaller, this is full size...
Adding a QWIIC connector (cause that's an easy way to add peripherals).
Added two P2 style headers, not sure what will do with those yet.
Adding a middle proto area. This is where the E-Ink adapter will connect.
Could have two of them...
Adding a second USB-C connector for power only (no serial).
Adding two pull-up resistors to uSD, even though maybe not 100% needed.
Adding a couple blue LEDs.

Think that's about it...

Update: Here's initial layout...

Comments

  • If you have µSD, you can probably add a spot for a 23LC1024 RAM chip (sharing the same SPI pins). They're pretty neat for low-complexity volatile storage (P1 being of course super RAM starved at all times)

  • JonnyMacJonnyMac Posts: 9,604
    edited 2025-09-14 18:30

    Neat board, Ray.

    Do you have a power pin (PFET) to cycle power on the uSD?

    Is the Qwiic port shared with the EE I2C pins? One thing to be mindful of is that the P1 drives the clock line and the boot-up I2C frequency is a little over 250kHz. Devices that can only tolerate 100kHz (usually devices with small processors) can interfere with writing to the EE. I had this happen with a Sparkfun I2C 7-segment display and had to move it to its own set of pins.

  • RaymanRayman Posts: 15,955

    @Wuerfel_21 Maybe just use the same APS6404L PSRAM chip as P2 Platform and other P2 things? Seems to have an SPI mode...

  • RaymanRayman Posts: 15,955

    @JonnyMac Is there any P1 board with power pin for uSD? Could add one with option to bypass if need the pin.

    You might be right about I2C pins. Do not want anything messing with boot from EEPROM. Can add solder jumpers to disable the pullups. Actually, think most QWIIC things come with pullups. Is that true? Think so...

  • @Rayman said:
    @Wuerfel_21 Maybe just use the same APS6404L PSRAM chip as P2 Platform and other P2 things? Seems to have an SPI mode...

    That is a good question (and would be a boon as far as capacity goes), but those have the problem that they have a max. CE low time of 4µs (vs no limit on SRAM). This is not a lot if we consider SPI mode + slow P1 clocking (enough for a few bytes at a time only). Though IDK if the same limit applies to the slow 33MHz read command (P1 limit is 20MHz). Also, it's apparently not possible to reset the part into SPI mode if it got into quad mode and SIO2/SIO3 are not connected (consider the command table).

    The 23LC1024 I know works well and can be read/written from Spin even.

    The parts both have the same pinout though, so can easily try it both ways.

  • RaymanRayman Posts: 15,955

    @Wuerfel_21 ok thanks. Same pinout makes it easy…

  • Unrelated off-topic oddity: The AP datasheet claims max. higher clock speeds for 3.0V vs 3.3V -> might make sense (on P2 boards) to regulate that whole VIO bank down to 3.0V

  • JonnyMacJonnyMac Posts: 9,604
    edited 2025-09-14 23:02

    @JonnyMac Is there any P1 board with power pin for uSD?

    I created a P2-type accessory that works with the P1 and the P2. Having power control requires an extra pin, but given the tricky nature of uSD cards, might be worth it.

    Actually, think most QWIIC things come with pullups. Is that true? Think so...

    I think you're right. You might put light pull-ups (e.g., 47K) on the EEPROM so that if nothing is plugged into the Qwiic port (assuming it's shared), things don't get too stiff (though that's usually not a problem in my experience).

    1920 x 1030 - 183K
  • Don't need power switch if you're just going with SPI mode, don't think I ever saw a lock-up even under extreme access patterns. It is needed for native SD mode, since if you enter it once, you can never ever get back out of SPI mode without a hard reset, but we're not doing that on P1. Also the pull-ups for the SD data pins need to be behind the power switch for it to work 100% properly, which would be annoying for secondary use of the SPI bus.

  • RaymanRayman Posts: 15,955

    Here's an initial design. Don't see room for PSRAM. But, think have plenty of memory boards for P1 Platform in the stash somewhere...

  • RaymanRayman Posts: 15,955
    edited 2025-09-23 18:12

    Added connectors for bluetooth (HC-05), wifi (ESP-01), and ultrasonic distance (HC-SR04). Haven't used any of these before, think they might work.

    Added a coin cell battery connector on the bottom.

    Also added a place for a large capacitor in case want to connect servos...
    The second USB-C power can be isolated from main power so that servos can't take down the P1 with power glitch.

    Think it's in good shape now...

  • RaymanRayman Posts: 15,955
    edited 2025-12-03 22:06

    Got these boards in...
    Hope it works...

    480 x 640 - 281K
  • A nice PCB, good luck with your project!

  • RaymanRayman Posts: 15,955
    edited 2025-12-27 23:52

    Want to get some made next week... We'll see...

    Like to use the pick and place these days and that takes a while to set up...

  • RaymanRayman Posts: 15,955
    edited 2026-01-06 16:26

    Finally put one mostly together :)
    Seems made a rather bad copy and paste error from P2... Seems P1 doesn't have P62/P63 for RX/TX... :(

    Works with jumpers, but have to get this fixed...

    360 x 480 - 67K
    2229 x 1384 - 36K
  • Great work! Thanks for sharing the progress with your PCB, it's looking good!
    I'm interested in adding USB comms and power to a future version of my P1 project 'MIDIBEAT1'.

  • RaymanRayman Posts: 15,955
    edited 2026-01-11 18:56

    About to test the mosfet controlled power to uSD. Maybe the need for it is questionable, but it is there if needed and can be bypassed with solder switch if not needed.

    But, one reason maybe to want it is when operating P1 off of a coin cell. Actually, have to make sure uSD will work with coin cell 3.0 V...
    Anyway, to save power might be good idea to turn off power to uSD and the pullups.

    Was looking around the web and seems that idle current draw in SPI mode may or may not be something to worry about... It's not 100% clear to me...

    The default state is to not use P4 for power control. One would need to flip the solder switch to enable it...

  • JonnyMacJonnyMac Posts: 9,604
    edited 2026-01-11 19:54

    I use a PFET in my new designs. This is my P2 code, but it easily converts to P1. It has worked well in our Battle Tower product.

      if (sd_inserted(sddet) == false)
        return false
    
      repeat 5
        sd_power(sdpwr, true)
        waitms(50)
        mount_sd()
        if (mounted == true)
          quit
        else
          sd_power(sdpwr, false)
          waitms(50)
    

    I got the power cycle timing from ChatGPT and then made it a bit longer.

  • RaymanRayman Posts: 15,955

    Hmm... Delays and retry after cycling power sounds like good ideas, should use that.

    For now have:

    CON 'uSD card pins
            SD_MISO = 0
            SD_CLK = 1
            SD_MOSI = 2
            SD_CSn = 3
            SD_POWER = 4 'Set to -1 if not used
            SD_BufferSize = 1000
    
    PUB MountSD|i
        ser.str(string("Attempting to mount SD card",13))
        waitms(100)
    
        'Turn on uSD power via mosfet if enabled by constant, SD_POWER
        if (SD_POWER>0)
          outa[SD_POWER]:=0
          dira[SD_POWER]:=1
    
        repeat   'try forever to mount the SD card
           i:=\sd.mount_explicit(SD_MISO, SD_CLK, SD_MOSI, SD_CSn)
           if i==0
              quit  'mounted, so exit
           waitcnt(cnt+clkfreq/4)
           ser.tx(".")
    
        ser.str(string("SD card mounted.",13))
    

    This seems to work, but should improve with the @JonnyMac way

  • JonnyMacJonnyMac Posts: 9,604
    edited 2026-01-11 20:01

    250ms is a long time. I think I started with 100 based on some of your demo code (I'm using your P2 port of FSRW with a small fix I made). Some suggest that power-cycling is not required in SPI mode, but I think it's worth the pin and, so far, I've had no issues. I put the power-controlled circuit on my on P2 Accessor pcb and have used in on my P1 Eval board.

  • RaymanRayman Posts: 15,955

    There are two USB-C connectors on this board, one for programming and regular power and one for alternative power (to power things like servos without messing up P1).

    One hope was to be able to power both of these using USB power banks. Was thinking of using two little ones for a robot...

    Just discovered two issues. One is that the FTDI USB circuit won't power on unless talked to by a computer. Thought maybe having the two 5.1K resistors there would override that, but power is controlled by a mosfet connected to the PWREN# signal from FTDI chip.
    But, can fix this with a solder jumper that grounds the mosfet gate. That way, USB power is negotiated by the 5.1K resistors and it's all good.

    Not really sure we need the FTDI to negotiate power with USB-C. Probably could just skip the mosfet all together. But, will keep it this way for now, to work the same as older circuits, or the new way, via solder jumper.

    The other issue is that power banks seem to turn themselves off if don't see a load of some level. This is a pain. I see there are some with "Always On" mode, but they are expensive, at least with a quick search...
    The easy way around this is to put two 100 Ohm resistors between 5V and ground. This seems to suck enough power to keep my bank on. Not sure how universal that is going to be though.
    Still think will add this with another solder jumper. Definitely don't want that connected when powering board by coil cell...

    Might look to see if there's another load that would keep it going. Maybe a couple NeoPixels would be enough. Robot needs lights anyway...

  • JonnyMacJonnyMac Posts: 9,604
    edited 2026-01-18 19:40

    I was recently looking for an always-on 5v power bank for my friend's cosplay. You're right, they're not cheap, but considering what she spent on the rest of the costume, this is not too much -- and will power her LED circuit for a very long time, and leave room for future options.
    -- https://www.amazon.com/Voltaic-Systems-Formerly-Battery-Samsung/dp/B07ZS3WYZY

  • RaymanRayman Posts: 15,955

    Thanks @JonnyMac thats 2/3 the price of the one I found. Still 2x the small ones…

Sign In or Register to comment.