CoreSam3x - small format Due compatible

Hello everyone, who wants a smaller Due?

This project spawned from the MicroDue project, which appears to be dormant. I didn't want to reuse the "MicroDue" name, as that project may get revived, and anyway my version is a little different, so I am calling this "CoreSam3x".

My goal was to create a smaller Due retaining as many features as possible.

  • Board is 2 layer 50x50mm max dimension to take advantage of cheap PCB service.
  • Components are 0603 or larger, 0402 are two small for my DIY skills!
  • self contained board, so can be programmed and run with just USB cable
  • compatible with "Due" board target in Arduino IDE, no extra support required

There are also JTAG pins and 6 pins for serial programming header.

This is a DIY Open Hardware project, I am not planning to make a commercial offering, if anyone wants to make and sell it please go ahead! But please wait until the design is finalised :slight_smile:

Features:

  • all Due pins broken out
  • 2 extra GPIO extra pins broken out
  • Ethernet pins broken out
  • Battery backup pins broken out
  • JTAG pins broken out
  • on board USB (OTG, ie. device or host)
  • on board 3.3V regulator
  • buttons for reset/erase
  • LED!
  • RTC crystal
  • 0.1" pitch pins
  • mounting lugs for M2.5
  • dimensions : 2" by 1.6" (51x41mm) excluding mounting lugs

I'll be refining the layout over the next few days and will probably get a batch of 10 PCBs ordered next week. I'll have a few spare boards available if anyone is interested. I haven't done a BOM, I would guess component cost would be around £15 for 1-10 quantity.

The board is pretty much full, at a pinch could squeeze some more on. I'll push the design and gerbers to my github repo soon.

If you have any comments/suggestions please let me know!

Schematic.pdf (215 KB)

Hi,

I'd be VERY interested in a working version of this. How far away are you from completion? At a price point of £15 I'd be willing to take the punt but I'll obviously need the full layout to ensure pin numbers etc work correctly.

Also, I'm assuming you've dropped the 5v regulator that takes 9-15v?

From prototyping before, I can tell you that LEDs are extremely useful for debugging. Will you be able to include a power, pin13 LED and maybe a usb serial tx rx? I'm assuming your plan is to program the board through the native usb port? As opposed to having a secondary chip for usb serial?

Good luck! I'll be watching this thread closely,

JW

Add another interested person to the list. I like the fact you broke out the RTC battery pins. Is the AREF pin easily accessible, too? I'd definitely need coordinates for the headers to embed this on a shield.

Jon

Hello bobcousins and nice initiative besides Val's small-footprint Due.

http://forum.arduino.cc/index.php?PHPSESSID=s2ui0jt0hjim94lukn0ea7aka1&topic=233091.0

I have a similar mini-Due footprint pet project that I'd like to make time to do one of these days. Imho, your last goal aspect regarding compatibility with Due and Arduino IDE is one of the most important ones. I mention this given that in the past I've been able to program a bare SAM3X8E using bossac with a .bin file from Atmel Studio 6 via 'native' USB. It works OK, but to me, it is a very 'naive' way to program it having all that potencial (Due libraries and examples) in the Arduino IDE. It's just a thought and good luck with your CoreSam3X.

p

Thanks for your comments !

@JWScotSat I've managed to squeeze on another LED for 3.3V rail, there is already a LED for D13. Given the size, I couldn't fit a 5V regulator.

For programming, there are several options, JTAG, serial, USB. A 3.3V FTDI 6 pin connector will allow programming by serial, if the chip is erased via erase button. For full automatic programming, the TAIJIUINO Due programming board can be used http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=72_73&products_id=2213

@stratosfear I've added an external AREF pin.

@Palliser I guess Val is busy with other stuff but maybe he will come back to it. I had a look around and couldn't find any similar "micro" designs for Due, they tend to be bigger rather than smaller. AVR has plenty of micro-nano-mini designs so I figured there was a niche to fill.

There is a smaller SAM3X chip, but it is still 100 pins, and I felt keeping close to Due compatibility was useful.

I've now managed to utilise all but 4 pins on the SAM3X. Two of those pins are for the External Bus Interface, which means I am very close to having the full EBI available, and I have an obvious place for 2 more pins, that seems like an opportunity too good to miss!

At this stage I am still in prototype phase, it may take a couple of iterations to iron out problems.

Remember that the Arduino/Atmel team still cooking the Zero (48-pins SAMD21) with host capabilities. I also have ported a TFT LCD and camera libraries that use all the EBI pins. I think I am not the only one waiting for the Zero or a smaller Arduino SAM solution. Anyway at the end of the day I am very happy with the Arduino Due! Good luck with your prototyping.

p

I think the Zero could be a good addition, when it arrives!

I've sent gerbers off to Itead and uploaded Kicad design files to my repo at bobc_hardware/CoreSam3x at master · bobc/bobc_hardware · GitHub

I've also uploaded a BOM, component cost comes to just under £15 if you are building 10 off.

Image rendered with latest version of Kicad, which sadly is still severely broken (as is this forum!)

Hi,
great .. it was the thing , I had been looking for a long time. many thanks for sharing.. reha

Bob, I don't see any decoupling caps, are they on the reverse?


Rob

Graynomad:
Bob, I don't see any decoupling caps, are they on the reverse?

Yes, on reverse.

Here is top, bottom and schematic for reference.

Schematic.pdf (249 KB)

That be more like it :slight_smile:

Nice project.


Rob

Yes, I have a good feeling about this project :slight_smile:

I've started thinking about a motherboard, with stuff like a 16MB RAM, parallel TFT and ethernet. I don't really want to reinvent the ATSAM3X-EK, but I am tempted to add the Wolfson codec and revive my music player project.

bobcousins,

This is great. I have been looking around for a small footprint Due.

I can't find where the SDA and SCL lines are broken out. Which header are they on? I'd like to modify your board and add some sensors using I2C. Are you able to share the files you used to make the board? I have been using Eagle.

Thanks

paperslammer:
I can't find where the SDA and SCL lines are broken out. Which header are they on? I'd like to modify your board and add some sensors using I2C. Are you able to share the files you used to make the board? I have been using Eagle.

There are both I2C channels on pins 38 & 40, and 20 & 86. The attached symbols show all pins available, I will create a better pin out diagram soon.

The design files are in Kicad (version BZR4022 or so) at bobc_hardware/CoreSam3x at master · bobc/bobc_hardware · GitHub

Here is a pinout diagram for current version :

CoreSam3x_pinout by donotdespisethesnake, on Flickr

The light blue labels are Arduino digital pin numbers, special functions are also named according to Arduino convention (e.g. RX1 is Arduino RX1).

Doing this I discovered I have missed off one Due pin, D73 which is one of the LEDs on the native USB. Possibly not too important, but for completeness I will probably swap bonus pin PB24 for PA21 (D73). I don't think PB24 is important, and I would like to keep the Port C pins for the EBI.

Just realised the SAM3X8E does not support SDRAM, so that nobbles the idea for a 16MB add on :frowning: SRAM is supported though, and a 2MB static RAM is not too expensive. I guess even 1MB would be nice addition.

Does anyone have a need for NAND Flash?

Bob,
the question you ask (Does anyone have a need for NAND Flash?) is just like asking "medicine to sick person" :wink: .. At least I really need it.. reha

bobcousins:
The design files are in Kicad (version BZR4022 or so) at bobc_hardware/CoreSam3x at master · bobc/bobc_hardware · GitHub

Bobcousins, thank you very much for these files. I am having some trouble opening them. I downloaded and installed BZR 4022 as well as all the files in your gihub profile (except .pdfs and .pngs). I didn't download any gerber files. When I open some of the files, I get an error saying that it is "not an Eeschema file". The .cmp files error says that it "doesn't appear to be a valid component link file"

This is my first time running this so I'm sure it's some setting / library I don't have. Any ideas?

Thanks

reha:
the question you ask (Does anyone have a need for NAND Flash?) is just like asking "medicine to sick person" :wink: .. At least I really need it.. reha

That's a yes then :slight_smile: Is there any particular size or type you are interested in? I am thinking of 1GB chip MT29F1G08ABADAWP:D TR Micron Technology Inc. | Integrated Circuits (ICs) | DigiKey

paperslammer:
This is my first time running this so I'm sure it's some setting / library I don't have. Any ideas?

That's a puzzle, I tried installing on a different PC direct from web, and it worked as expected. If you are new to Kicad, it has some non-obvious features, I recommend following one or more of the tutorials STARS77 - Pilih Platform Slot Online Aman & Terbaik - Stars77 Menanti!

To use my github projects, you will also need the "KiCAD_libraries" folder. Without using git, the best way to get a snapshot of a git repo is to download as a zip, there is a button on home page of each repo - in this case the link is https://github.com/bobc/bobc_hardware/archive/master.zip That ensures you have got everything needed.

Bob,
many thanks for asking.. 1GB is great for me. reha

The PCBs have nearly arrived (post services from China have been slow recently due to customs crackdown!).

While waiting I have identified some issues with the board, in particular one causing a problem with External Bus (discussed in some detail before Parallel library for Due External Memory Bus/Static Memory Controller - Arduino Due - Arduino Forum)

I think I have worked out a way to get everything working, but there is still a clash between external RAM and hardware SPI. To counter that there is support for 4-bit SD card interface which should make faster SD access, it might be necessary to use software SPI for other peripherals.

I have designed a base board to test out enhanced features, this is really designed as a test platform, but can act as a reference design. It has following features:

  • 2MB SRAM
  • 512MB NAND Flash
  • sockets for elechouse Ethernet module
  • connector for HY32D 3.2" LCD
  • serial programming header
  • JTAG connectors
  • microSD card using 4-bit interface
  • 5V voltage regulator

Hopefully the Core boards are waiting in the post office for me to pick up...