April 03, 2026, 05:42:26 PM

Recent posts

#61
FPGA / Re: Problem getting simplest o...
Last post by LubOlimex - February 16, 2026, 08:52:31 AM
Each GateMate-EVB is tested here, one of the tests is empirical. LEDs are checked. Chances of a faulty board are close to zero. Something else is wrong.

I've now uploaded here the .bit file and top.ccf and top.v for the blinking LED so you can compare:

https://github.com/OLIMEX/GateMateA1-EVB/tree/main/SOFTWARE/blinking-led-bit-source

Important! For boards with SPI flash:

Before programming make sure that DIP switches are in ON - ON - OFF - OFF position

After programming, disconnect the USB and move DIP switches in OFF - OFF - OFF - OFF position. Then reconnect the USB and see if the LED blinks.
#62
FPGA / Problem getting simplest of ex...
Last post by PaulUK_DE - February 14, 2026, 10:43:44 AM
I just got the GateMate-EVB.  After trying the Blinky example modified for the Olimex board and getting no LED blinking, I took a step back and tried to just make the LED turn on, but I don't get any activity at all.  I had to search for information as for the commands to use since the GateMate quick start is out of date and Olimex does not provide any guides for getting started, only a brief hardware manual.  A comprehensive getting started guide is absolutely essential for something like this.

I use Windows 11 and the latest oss-cad-suite, from this week.
First I had to install the driver for the board to be recognized as a DirtyJtag device.  I set the four configuration switches to 1100 (on on off off).

I will list the commands below after I show the Verilog of the top module and configuration file showing how the led is assigned.

top.v  file:

module top(
output wire led
);
assign led = 1'b0;
endmodule

blinky.ccf

Pin_out "led" Loc = "IO_SB_B6";

After running start.bat, I ran the following commands and each finished without errors:

yosys -p "read_verilog top.v; synth_gatemate -top top -luttree -nomx8; write_json blinky.json; write_verilog blinky_netlist.v"

nextpnr-himbaechel --device=CCGM1A1 --json blinky.json -o ccf=blinky.ccf -o out=blinky.txt --router router2

gmpack blinky.txt blinky.bit

openFPGALoader --index-chain 0 -b olimex_gatemateevb blinky.bit

That should be all I need but the LED does not light despite getting the message "Done" after I think I upload.  There seems to be no check.

I get absolutely nothing.  However if I run the command:
openFPGALoader --index-chain 0 -b olimex_gatemateevb --detect
I do get some info about the FPGA, so there must be some life there.

I have spent two days searching out this information and trying it and have run out of time.  I would appreciate it if you can see if I'm doing something wrong, if not then I have a faulty board.  I also use an Alchrity FPGA board and that worked immediately.

How do I use the SPI flash memory option?  Is that via USB or do I need some other cable?  Thank you.
#63
New Products release / Magnify glass for PCB inspecti...
Last post by olimex - February 13, 2026, 12:41:47 PM
SMT components are getting smaller — but your precision doesn't have to. Whether you're in production, repair, or quality control - upgrade your inspection process with the right optical tools. https://olimex.wordpress.com/2026/02/13/smt-components-are-getting-smaller-but-your-precision-doesnt-have-to/ #pcb #inspection #magnify #glass
#64
Neo6502 / Re: Upload via Serial Problem
Last post by LubOlimex - February 13, 2026, 10:14:33 AM
I'd try with simpler USB-serial cable. Something like:

https://www.olimex.com/Products/USB-Modules/Interfaces/USB-SERIAL-F/

Or anything you can find from local shops, just make sure the data signals are at 3.3V.

If the issue remains post in the neo6502-firmware repo, it is more likely to get help there.

#65
Neo6502 / Upload via Serial Problem
Last post by fdimmling - February 12, 2026, 02:52:42 PM
I tried to upload programs from an Raspberry Pi 5 to the neo6502pc via the Mod-USB-Rs232 board. I use the Morpheus 1.0.0 firmware preinstalled. On the host side I tried nxmit.py, which gives a success message, but on the 6502 board no reaction. I suppose that I have to give some mon command to make the neo6502 receive the data but I could not find any information about the monitor commands in general and the serial receive in particular. Connecting via CuteCom Terminal on the Pi gives an UEXT Error message in response to typed in characters, thus the connection should be established, only the morpheus software cannot handle the received data. Any help is welcome.
Best regards, Friedrich
Update: Entering / at the command line does not work. It opens the serial connection which is closed as soon as a file is send or anything typed in a terminal program
#66
ESP32 / Re: New ESP32-POE-ISO - was I ...
Last post by LubOlimex - February 12, 2026, 01:58:55 PM
You guessed correct. It is the yellow arrow. The component you found at mouser is the proper one, yes.

You can also confirm it if you open the design files with KiCAD and open the board design file. Then it is clear which is U7 and which is L2. The white print label had been moved there due to other components situated nearby. Here is the BRD view:

#67
PIC / Re: PIC-USB-4550 program does ...
Last post by LubOlimex - February 12, 2026, 01:47:16 PM
It can be added in the code too, probably adding this will lead to success (without warnings):

#pragma config PLLDIV   = 5        // 20 MHz crystal /5 → 4 MHz for PLL
#pragma config CPUDIV   = OSC1_PLL2// CPU clock = 96MHz / 2 = 48MHz
#pragma config USBDIV   = 2        // USB clock = 96MHz / 2 = 48MHz

#pragma config FOSC     = HSPLL_HS // HS oscillator, PLL enabled
#pragma config FCMEN    = OFF
#pragma config IESO     = OFF

#pragma config PWRT     = OFF
#pragma config BOR      = OFF
#pragma config VREGEN   = ON       // USB voltage regulator ENABLED (IMPORTANT)

#pragma config WDT      = OFF
#pragma config WDTPS    = 32768

#pragma config MCLRE    = ON
#pragma config LPT1OSC  = OFF
#pragma config PBADEN   = OFF
#pragma config CCP2MX   = ON

#pragma config STVREN   = ON
#pragma config LVP      = OFF
#pragma config ICPRT    = OFF
#pragma config XINST    = OFF

#pragma config CP0      = OFF
#pragma config CP1      = OFF
#pragma config CP2      = OFF
#pragma config CP3      = OFF

#pragma config CPB      = OFF
#pragma config CPD      = OFF

#pragma config WRT0     = OFF
#pragma config WRT1     = OFF
#pragma config WRT2     = OFF
#pragma config WRT3     = OFF

#pragma config WRTB     = ON       // Boot block write protected (IMPORTANT)

#pragma config WRTC     = OFF
#pragma config WRTD     = OFF

#pragma config EBTR0    = OFF
#pragma config EBTR1    = OFF
#pragma config EBTR2    = OFF
#pragma config EBTR3    = OFF
#pragma config EBTRB    = OFF
#68
New Products release / New PCB-Mount AC/DC & DC/DC Po...
Last post by olimex - February 12, 2026, 01:36:21 PM
New PCB-Mount AC/DC & DC/DC Power Modules Now Available! We are expanding our power solutions portfolio with several new PCB-mount AC/DC and DC/DC modules designed for global deployment and reliable operation in demanding environments. https://olimex.wordpress.com/2026/02/12/new-power-supply-modules-for-pcb-mounting-in-stock/ #acdc #power #pcb
#69
PIC / Re: PIC-USB-4550 program does ...
Last post by LubOlimex - February 12, 2026, 11:58:17 AM
They are probably not set in the code, but from MPLAB. You can just change them in MPLAB. Search for "MPLAB Viewing and Setting Configuration Bits"
#70
PIC / Re: PIC-USB-4550 program does ...
Last post by emil_bbb - February 11, 2026, 07:43:33 PM
I have studied the souce code from PIC_USB_4550_BLINKING_LED and I cannot figure out where are those values are set.

//PROGRAMM FOR BLINKING LED
//
// PROCESSOR : PIC18F4550
// CLOCK    : 20MHz, EXTERNAL

#include   <p18cxxx.h>

#define      BUT         PORTBbits.RB4
#define      LED_ON      PORTDbits.RD3 = 1
#define      LED_OFF      PORTDbits.RD3 = 0
#define      TOGGLE_LED   PORTD ^= 0x08
#define      INPUT      1
#define      OUTPUT      0
#define      LED_DIR      TRISDbits.TRISD3
#define      BUT_DIR      TRISBbits.TRISB4

/** V E C T O R  R E M A P P I N G *******************************************/
extern void _startup (void);        // See c018i.c in your C18 compiler dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset (void)
{
    _asm goto _startup _endasm
}
#pragma code

#pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
void _high_ISR (void)
{
    ;
}

#pragma code _LOW_INTERRUPT_VECTOR = 0x000818
void _low_ISR (void)
{
    ;
}
#pragma code


//Just simple delay
void Delay(unsigned long cntr) {
   while (--cntr != 0);
}

// Main function
void main(void) {
   

   INTCON    = 0x0;         // Disable inerupt
   CMCON    = 0x07;          // Comparators Off
   ADCON1  = 0x06;         // Port as Digital IO
//   RDPU    = 0;         // Disable pull ups
   PORTEbits.RDPU = 0;      // Disable pull ups   
   CCP1CON = 0;          // P1B, P1C, P1D assigned as port pins
   LED_DIR = OUTPUT;      // Led pin as output   
   BUT_DIR = INPUT;      // Button pin as insput


   // loop forever - echo
   while(1) {

      // Toggle led
      TOGGLE_LED;
      // Simple delay
      Delay(50000);
   }   
}