SOCino-Ramps Available (Updated)

The SOCino-ramps board is available with this post. It is released under the GPL V3 (or later) version. A commercial license is available. This license does not override previous licenses. Because Infineon does not want psoc associated with a product name, (possibly due to trademark requirements), it is called SOCino-ramps, even though it only uses a psoc (at the moment). PSoC is a registered trademark of Cypress/Infineon.

It is in Eagle, the 7.x version, the last one that is not a yearly renewal fee. I may migrate to the KiCad at some point in the future, depending upon available ’round tuits.’

(Update: I found an unfinished trace on the board. Fixed in 1v4.) The zip file containing the Eagle files (board version 1v4) is here:

You can download it, open it, and load it into Eagle. Enjoy!

This board takes a CY8CKit-059 board from Cypress (Infineon) and makes it compatible with the RAMPS 1.4x board. I have successfully controlled a printer with it, although I have been short of time necessary to do in depth testing of the controlling firmware. Regardless, I feel confident enough to release this version (1v3) to the public.

A lot of time went into making this project accessible to the weekend engineer.

First, I wanted a board that could be built with a soldering iron and hand tools (including tweezers!)

Second, it had to use the inexpensive CY8CKit-059 without any modifications. (That board uses 0.1″ holes, ideal for single row pins available on amazon or at It worked!

The CY8CKit-059 can be used without modifications. Believe it or not, that cost quite a bit of personal sweat and tears and time. There are several caps on the CY8CKit-059 that are used for ADC and other things. Those can be removed, but the pin mapping and functionality used for those pins has overcome this limitation.

Third, there had to be enough user options so that it was not solely a Ramps board.

Fourth, it had to be limited to a double sided board to keep costs down.

Fifth, and finally, the board had to be usable as a Ramps 1.4x controller without modifications. I achieved that final goal, unless you need 12 volt ramps power option. If you must use 12 volts from your Ramps board to power this board, then you have to solder blob a jumper to bridge the 12v from the Ramps into the power supply portion of this board.

Here is the schematic for the SOCino-ramps board:

The board has a lot of solder jumper options for use with boards other than a Ramps 1.4x board. The Connection Map on the left hand side of the schematic maps the Arduino/Ramps board connections to the PSOC connections to the CY8CKit-059 connections. This is useful for writing firmware and troubleshooting by tracing signal paths.

That map has undergone many revisions, and I cannot guarantee it is 100% correct. One of the reasons is the Arduino community as organically grown, sometimes without a lot of consideration for clarity. As a newbie, it took a lot of time to find the information, much less turn it into a map.

The Arduino connector descriptions basically come from the MCU used in the original Arduino boards versions. This version has tried to be as compatible with the Arduino Mega version.

Here is an Eagle rendition of the top of the board:

You could actually use this board without any components other than the female 0.1″ spacing connectors installed. If you only wish to power from USB, it is best to use both USB connectors (the finger board and the micro-USB connector).

If you wish to power from 12v, you will need either the jack installed, or solder bridge the pad bringing power from the Ramps board. The 12v to 5v power supply will also need to be installed.

One thing to make note of: If you do not keep the “finger” board attached to the ‘059’ board, the space for the USB connector in-between the connectors at the right hand side (above) and the ‘059’ board is extremely cramped. I ended up using a right angle (swiveled) micro USB cable as shown in the following photo. With the swivel, it nicely exits between the end connectors, allowing the Ramps board to plug onto the SOCino-ramps with no issues. I purchased this connector from Amazon:

The entire board, from the top:

Some Thoughts

If you are running Windows 10, the easiest way to use this unit is to keep the Finger board Debugger attached, and use it to connect to the SOCino-ramps. That is because the drivers for Windows 10 automatically load, and it is immediately available.

Otherwise, if you wish to use the micro USB connector, you have to follow some instructions for using a Windows 10 driver. The 3d Printer code is not yet ready for prime time, but here is a snapshot of instructions on using the serial ports available to you from the ‘059’ board:

// The PSOC CY8CKit-059 is an (up to) 80mzh processor with built in USB.
// It also has a USB finger stub which can be broken off. (Not recommended for this project)
//--Finger STUB:
//  *IF YOU KEEP IT ATTACHED* you can communicate over the finger stub with an
//  additional serial port.  With that port, you can use the UART on it with 
//  TeraTerm or Putty, or a Linux or Mac machine (using "screen" or some other app).
//  Under Windows, the signed driver for the stub will automatically install
//  when it is plugged in.  In Linux or Mac, it will show up in /dev/tty (ls /dev/tty.*)
//  Macintosh 
//  The USB UART (micro-USB) connector on the CY8C-Kit059 is under /dev/tty.usbmodemxxxxx
//  or /dev/cu.usbmodemxxxxx as a tty device.  
//  Linux:
//  The USB UART (micro-USB) connector on the CY8C-Kit059 is usually under /dev/ttyACM0. 
//  It can be under ttyACM1, ttyACM2,...ttyACM9.
//  To make world usable under Linux, then
//  create the following file as root: /etc/udev/rules.d/50-local.rules
//  using "sudo nano" to write the file,
//  with the following 2 lines
//   KERNEL=="ttyUSB[0-9]*",MODE="0666"
//   KERNEL=="ttyACM[0-9]*",MODE="0666"
//  this will make the plugin of the /dev/ttyACMx world usable without
//  running as root. Easiest is to reboot the linux machine to make this work.
//  You can restart the udev services rather than reboot.    
// Windows
//  The USB UART (micro-USB) driver is automatically created by PSOC Creator, and can be installed
//  under Windows 7 (unsigned driver) or under Windows 10 (signed).  See
//  the following information:  
// for a discussion of Windows 7 Driver,
//  or
//     Windows 10 driver info: (cypress page)
//      (infineon page:)
//   The knowledge base article is here: (cypress page)
//     ( )
//      (infineon page)
//  or
//    Windows 7 driver info:
//  After programming the PSoC, plug in the USBUART using a USB cable. 
//  You can interrupt the install, but that takes as long as waiting for the 
//  installer to give up talking to Windows Update Server.  Select the local 
//  file location option, and browse to the driver file in the PSOC directory 
//  in your project. It will be at:  PROJECTNAME.cysdn\Generated_Source\PSOC5, 
//  assuming your project is named “PROJECTNAME.” Install that unsigned driver. 
//  You may have to Google allowing unsigned drivers for Windows 7. 
//  It should be functional after that. 
//    If not, try rebooting your VM if running under Mac or Linux or 
//    reboot your Windows machine if running natively.

// Hardware Notes, CY8CKit-059:
// The internal UART (RS232) port (pins 12[6], 12[7]) for SOCino is routed to the USB on the 
//    finger tab on the debug portion of the CY8CKIT-059 development "stick"
// To connect to the 059 kit when it is soldered into a carrier board, you  
// will likely need to use an "A to A" "USB Extender" cable from the computer 
// to the finger tab.  Those can easily be found on Amazon or other online store.
// Using the Finger Tab provides you a Windows 10 signed driver from Microsoft 
// without much hassle. Using the Micro-USB requires you to jump through hoops 
// on Windows 10, see notes above.

// Communication setup:
    [PC] is running software (i.e. cura, pronterface,octoprint, teraterm, putty)
    [PC] ---micro usb cable ---CY8CKit-059  
    [PC] -- debug USB finger -- CY8CKit-059 
    !!NOTE!! If you break off the debugger stub, debug USB finger is no longer an option for you,
    *unless* you wire directly from socino P12[6] and P12[7] to finger stub 12[6] and 12[7]
    as indicated on the bottom of the stub board.

Final Thoughts, Troubles are Here

Ignoring politics, the U.S.A. is in deep trouble, especially in terms of supply chain. Our corporations have taken the stance that Communist governments can be trusted not to abrogate agreements. Using that logic, they put most of the world’s semiconductor Fabrication Facilities within striking distance of the CCP. Specifically, Taiwan, Malaysia, and Singapore.

Unfortunately, as men age, their mental acuity declines. At 66, I am not as sharp as I was. Most world leaders are old enough for dementia to begin coloring their attitudes and decisions. That is true in Asia and in many Western Countries. Just read the headlines.

Some of the known side effects of dementia are increasingly aggressive behavior, increasing paranoia, and bouts of irrationality. I will leave it to you to read the news concerning Asian and Western Leader’s actions to see if you find those signs in play. I certainly do. I strongly suspect we will regret their actions soon.

The effects of dementia is also in play for corporate leadership. Even so, it is most likely the younger leaders that have the semiconductor industry “over a barrel.” There are some minor steps being taken to overcome this, but Fabs are being put in some of the worst places possible. Semiconductor Fabs use a tremendous amount of water during operations. Logically, that means you should NOT put them in desert locations. Unfortunately, that is exactly where the new ones are being built in the U.S.A. (Arizona, New Mexico)

Ford, GM, Chrysler (whoever they are owned by today), Toyota, and many other manufacturers of automobiles are having their production curtailed due to these decisions. This is directly affecting jobs in the U.S.A., and in the world.

In addition, due to supply chain issues, aluminum will not be as available for automotive (or other) uses due to the lack of magnesium, as noted recently on Zero Hedge. At my income producing job, common steels are becoming unavailable. (The “un-obtainium” of Avatar). I am talking about steel/iron mixtures of 1730, 4140, and other common metals. Inconel has almost always been in the un-obtainim category. We are seeing shortages across the board.

On the semiconductor front, Infineon and Cypress have previously decided a ‘fabless’ model of semiconductor manufacturing is the way to go, and purchased directly from South-East Asia. Cypress has a manufacturing assembly plant in Thailand.

Unfortunately, both of these companies (and most of the rest of the semiconductor industry) are now suffering from these decisions. I looked at, and found that some processors from Cypress/Infineon are over 1 year away from being available.

I don’t think these companies can see 1 year ahead. I don’t think they will ever deliver at that distance in time. Too many outside agents can change this outcome. It won’t even take governments to wreck these delivery decisions. Bad water filters, with unavailable replacement parts can devastate semiconductor production.

I strongly suspect Cypress and Infineon are about to go by the wayside. That is sad, because the PSOC 5 LP is one of the most versatile mixed signal processors on the market.

I do not know of a single mixed signal device that provides as much utility and sheer programmability for the price or package size. I have done Xilinx and Altera design work in the past. The sheer usefulness of the PSOC5LP eclipses those FPGA devices by an order of magnitude in the realm of custom mixed signal projects that need to turn on a dime.

So sad. I don’t think the manufacturers will wake up. Even if they wished to wake up, the regulatory framework in the U.S.A. almost forbids bringing manufacturing back to that country. Is this on purpose, or due to stupidity? You decide.

Next Time

Hopefully, next time I will start showing some of the code used in the 3d printer system. My biggest problem now is trying to queue up the instructions so there is no wait time between movement commands. There are some stupid decisions on my part in that code that I have not solved due to lack of round tuits.


Add a Comment

Your email address will not be published. Required fields are marked *