Sunday, 24 January 2016

Project Popsicle Stick: General schematic

General schematic and header layout. The PCB will have:
  • 17 Pins for STM32F070CBT6
  • 36 Pins for ICE40HX1K-TQ144
  • 4 Pins for SWD programming and debugging
  • 1 LED
  • 1 Micro USB

Project Popsicle Stick: ICE40HX1K-TQ144

  • ICE40HX1K-TQ144
  • CDBU0520

  • Programmable logic
  • Drive outputs on headers
  • Interface with STM32F070CBT6

Friday, 22 January 2016

STM32F070CBT6 Pin information

General pin Information:
  • VDD: Voltage source 3.3V
  • VSS: Ground
  • VDDA: Analog voltage source 3.3V
  • VSSA: Ground
  • BOOT0: Ground to boot from flash
  • OSCIN: High speed external clock
  • OSCOUT: High speed external clock
  • OSC32IN: Low speed external clock (optional for RTC)
  • OSC32OUT: Low speed external clock (optional for RTC)
  • NRST: Reset STM32
  • PA12: USBD+
  • PA11: USBD-
  • SWDIO: Debug/programming
  • SWCLK: Debug/programming

Project Popsicle Stick: STM32F070CBT6

  • STM32F070CBT6
  • NDK NX3225SA-32.000MHZ-STD-CSR-1
  • Push button

  • Interface with SPI
  • Program ICE40HX1K-TQ144 with SPI
  • Interface with pins
  • Programmable through USB

Project Popsicle Stick: Power System

  • LD1117S33CTR
  • LD1117S12CTR
  • C_0603
  • C_0805
  • R_0603
  • 150080VS75000

  • Produce 1.2V, 3.3V
  • Input 5V

Thursday, 21 January 2016

Project Popsicle Stick

Project Popsicle Stick 

ICE40 + STM32 development board
Popsicle STick

Main components:
  • STM32F070CBT6
  • ICE40HX1K-TQ144
  • 5V Micro USB connector
  • Crystal oscillators
  • Linear voltage regulators

  • Power from 5V Micro USB
  • Program STM32 using USB 2.0 or JTAG
  • Configure FPGA from STM32 using SPI
  • 96 IO pins for FPGA
  • 37 IO pins for STM32

Friday, 8 January 2016

Xilinx Vivado on unsupported Linux OS

How to install Xilinx Vivado on unsupported Linux OS.

Change permissions

chmod 777 ./Xilinx_Vivado_SDK_2015.4_1118_2_Lin64.bin

Run as root

./Xilinx_Vivado_SDK_2015.4_1118_2_Lin64.bin --confirm

Proceed and get the /tmp/selfgz4324 location.

Edit the xsetup

sudo vim /tmp/selfgz4324/xsetup


if [ "$(uname -i)" != "x86_64" ]; then


if [ "$(uname -m)" != "x86_64" ]; then


Friday, 1 January 2016

DLCS 1.1.X and JointJs

I am abandoning DLCSim for DLCS as DLCSim is a bit too complex. DLCSim has grown too large for a single library. Many parts of DLCSim could be reused in other project and libraries. So I am going split it up and make general libraries out of them. DLCSim will be split into 3 parts.

The smaller libraries:
  • funary . General purpose arbitrary binary operations library. For use of manipulating binary using arrays.
  • DLCS . Core simulation library. For calculating the values and properties of the simulation.
  • DLCS.Utils . Library for integration of DLCS and JointJS. This is used for bridging DLCS and JointJS. This will also handle other third party libraries.

From DLCS 1.1.X onwards will be focused on integrating DLCS and JointJS.