Skip to the content
PCBKitNew board
2 layers19.9 × 30.4 mmDediprog2up, the printed circuit board in 3D

KiCad project for Dediprog 20-pin SF600/EM100 to UP Squared/Xtreme 12-pin adapter

Size
19.9 × 30.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
3
Nets
21
Pads
34
Tracks, vias
57, 2
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
4 Oct 2020
Updated
27 Dec 2023

Overview

Dediprog2up is an open-source printed circuit board by dhendrix, from the dhendrix/dediprog2up repository on GitHub, published under the CC-BY-4.0 licence. It is a 2-layer board of 19.9 × 30.4 mm with 3 parts on 21 nets, routed with 57 tracks and 2 vias.

It belongs with the interfaces and adapters boards of this library.

README

README.md

dediprog2up

This is an adapter intended to make firmware development easier on UP Xtreme and UP Squared motherboards using Dediprog SF600 and EM100.

This project started as I was thinking about playing with the system firmware (BIOS) on the UP Xtreme and trying to do a coreboot port. I had limited success at creating a custom cable with a 12-pin header on one side and a 20-pin header on the other to fit on a Dediprog ADP-SF600-254-TO-127-CB. It was difficult to split a fine-pitch ribbon cable and when I finally got one working it could only operate at 1.5MHz.

Using this adapter board I was able to read and write the ROM using an SF600 at 24MHz, which is also fast enough to use an EM100 for SPI flash emulation.

Action shot

Pinout

UP

The UP wiki has a good diagram of the header: https://wiki.up-community.org/BIOS_chip_flashing_on_UP_Squared

I probed all the pins to verify the UP wiki's pinout. I'm still not sure which pin is write-protect or if the extra 4 pins are used for anything (the flash chip only has 8 pins), so if you happen to know feel free to send a PR to update this README or file an issue to let me know!

The header is 2x6, pitch is 1.27mm.

PinSignalSignalPin
1GNDGND2
3GNDVCC4
5VCC/CS6
7CLKMISO8
9VCCGND10
11MOSI/HOLD12

Dediprog SF600/EM100

The header is 2x10, pitch is 2.54mm

The pinout is printed on the device, but here is a simplified version for our purposes:

PinSignalSignalPin
1NCNC2
3/CSVCC4
5MISO/HOLD6
7NCCLK8
9GNDMOSI10
11NCNC12
13NCNC14
15NCNC16
17NCNC18
19NCNC20

Fabricating the adapter

There are a few online PCB fabrication companies. For this project I used Oshpark since they make it super-easy to order boards that were made with KiCad. Just upload the .kicad_pcb file to their website and they'll do the rest.

Here is a project page at Oshpark where you can order directly: https://oshpark.com/shared_projects/HCAx2AVW

Additional Parts

Headers

12-pin header to plug cable into: https://www.chipquik.com/store/product_info.php?products_id=1900044

20-pin connector to plug into SF600/EM100: https://www.digikey.com/en/products/detail/sullins-connector-solutions/SFH11-PBPC-D10-ST-BK/1990090

Top with headers soldered on

Top view with headers soldered on

Bottom with headers soldered on

Bottom view with headers soldered on

Cable

One thing to keep in mind when working with SPI flash is that shorter cables are better. Up to 4 inches / 10 centimeters is generally OK, but above that you may need to slow down your programmer's clock frequency. If you can use a shorter cable then it's recommended that you do so.

The UP Xtreme's pin header is squeezed in between the HDMI/DP connector and the RTC battery header. You'll likely need to cut (e.g. using a Dremel) the sides of the receptacle on one end of the cable - be sure you do so on the side that plug into the board. This unfortunately makes it easy for the receptacle to fall apart, so be careful when handling the cable once it's plugged in.

Premade cables

12-pin 1.27mm pitch cables are somewhat rare and expensive, but come with some assurance of quality so it's not a bad idea to have one.

Here is a pre-made cable on Mouser: https://www.mouser.com/ProductDetail/200-FFSD06D04.0001N

DIY cables

It's somewhat easier to find the parts needed to make a 12-pin 1.27mm pitch cable than finding a premade cable.

Ribbon cable: https://www.mouser.com/ProductDetail/Wurth-Elektronik/63911215521CAB?qs=rrS6PyfT74fhArRJ3tCNFA%3D%3D

IDC header: https://www.mouser.com/ProductDetail/Harwin/M50-3300642?qs=lPIp2VBpF5j6R5jWq4Rd4A%3D%3D

Flash Chip

The flash chip on the UP Xtreme is a 1.8V W25Q256JWEQ. The flash chip on the UP Squared is a 1.8V W25Q128FW (according to the UP Wiki).

I've been able to successfully read it at 24MHz which is the highest speed the SF600 supports. It is recommended to read the chip several times and diff the output to ensure consistent readings. Inconsistent readings may indicate that your cable is too long or that there is a quality issue with your cable or soldering.

Here is how to read it using flashrom:

text
flashrom -p dediprog:voltage=1.8,spispeed=24M -r foo.bin

Related projects

Parts

3
QtyValueFootprintReferences
1Conn_02x10_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ2
1Conn_02x6_Odd_EvenConnector_PinHeader_1.27mm:PinHeader_2x06_P1.27mm_VerticalJ1
1Net-Tie_2NetTie:NetTie-2_SMD_Pad0.5mmGND1

Questions

How big is the Dediprog2up PCB?

It measures 19.9 × 30.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Dediprog2up use?

3 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Dediprog2up KiCad files?

From the dhendrix/dediprog2up repository on GitHub, at the commit this page was made from: the board is dediprog2up.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dediprog2up design in my own project?

Its repository publishes it under the CC-BY-4.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers40 × 30 mmBlinky, the printed circuit board in 3D

    Blinky

    earthtojake/text-to-cad

    Design physical products with AI

    3 parts26kMIT
  • 2 layers51.9 × 16 mmPassive2-rpi non standard adapter, the printed circuit board in 3D

    Passive2-rpi non standard adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    3 parts4.4kGPL-2.0
  • 2 layers16.3 × 16.3 mmSensor, the printed circuit board in 3D

    Sensor

    scottbez1/splitflap

    DIY split-flap display

    3 parts4.2k
  • 2 layersSub, the printed circuit board in 3D

    Sub

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    3 parts4kMIT
  • 2 layers85 × 30 mmDual stomp, the printed circuit board in 3D

    Dual stomp

    torvalds/GuitarPedal

    Linus learns analog circuits

    3 parts2.5kGPL-2.0
  • 2 layers124.5 × 33.7 mm172319-1 connector, the printed circuit board in 3D

    172319-1 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    3 parts1.2k
  • 2 layers10.5 × 83 mmProgrammingAdapter, the printed circuit board in 3D

    ProgrammingAdapter

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    3 parts1.1k
  • 2 layers21.2 × 51.3 mmPico reset, the printed circuit board in 3D

    Pico reset

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    3 parts1.1kMIT