Jump to content

Pin2Dmd Real Pinball Support


lucky1

Recommended Posts

Hi,

No I did not create the palletes.dat file yet because I have not built the display yet. I am just working on the editor to see what the results should be like.

When I run the animation I don't see the pallet swap happen.

Should I be able to see it happen in the editor?

The updated palette is only visible on the dmd ;)

let us check it for you :D

 

Greets,

Dom

Link to comment
Share on other sites

  • Replies 227
  • Created
  • Last Reply
  • 2 weeks later...

Hi .

I now have all my parts together.

However I don't see anything on my display.I followed the Programming firmware document and did see the BUILD Successful message but all the following before it

 

GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.9 2015q3\bin

compile:

[mkdir] Created dir: C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\pin2dmd\Debug\bin

[mkdir] Created dir: C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\pin2dmd\Debug\obj

[cc] 40 total files to be compiled.

[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -std=c99 -c -DSTM32F407VG -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\lo_level_ub -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\include -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_boot -IC:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_syscfg.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_core.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\spi_out.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_usr.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_usart.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\diskio.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_boot\startup\startup_stm32f4xx.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_winusb.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_core.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\framebuffer.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_ub_fatfs.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_rcc.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_ub_systick.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\display.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_desc.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_ub_spi2.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\rgb_out.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\lo_level_ub\stm32_ub_sdcard.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_gpio.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\lo_level_ub\stm32_ub_usbdisk.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_flash.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\md5.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_boot\system_stm32f4xx.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\syscalls\syscalls.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_dma.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_bsp.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_req.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_dcd_int.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\lo_level_ub\stm32_ub_atadrive.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\fatfs\ff.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_spi.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_exti.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\misc.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_dcd.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\matrix.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_ioreq.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\spi_in.c C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\cmsis_lib\source\stm32f4xx_tim.c

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_winusb.c: In function 'WINUSB_SendData':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\stm32_winusb.c:77:5: warning: implicit declaration of function 'USBD_WINUSB_SendReport' [-Wimplicit-function-declaration]

[cc] if(USBD_WINUSB_SendReport (&USB_OTG_dev, USB_WINUSB_IN_BUF, WINUSB_IN_BUFFER_SIZE)!=USBD_OK) {

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c: In function 'LedSet':

[cc] void LedSet(pin, val) {

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c:80:6: warning: type of 'pin' defaults to 'int'

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c:80:6: warning: type of 'val' defaults to 'int'

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c: In function 'write_file':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c:266:4: warning: implicit declaration of function 'WINUSB_SendData' [-Wimplicit-function-declaration]

[cc] WINUSB_SendData(0x00,1);

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c: In function 'GottliebLoop':

[cc] ^

[cc] if(WINUSB_GetStatus()==USB_WINUSB_CONNECTED) {

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c: In function 'PinMameRGBLoop':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c:857:7: warning: unused variable 'showDebug' [-Wunused-variable]

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\main.c:569:5: warning: implicit declaration of function 'WINUSB_GetStatus' [-Wimplicit-function-declaration]

[cc] bool showDebug = false;

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_desc.c:102:1: warning: excess elements in array initializer

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_desc.c:102:1: warning: (near initialization for 'USBD_OSStrDesc')

[cc] };

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c: In function 'USBD_WINUSB_DataOut':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c:259:54: warning: passing argument 2 of 'USB_OTG_ReadPacket' makes pointer from integer without a cast

[cc] USB_OTG_ReadPacket((USB_OTG_CORE_HANDLE*)pdev, *USB_WINUSB_OUT_BUF, WINUSB_OUT_BUFFER_SIZE);

[cc] ^

[cc] In file included from C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_dcd.h:12:0,

[cc] from C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_core.h:12,

[cc] from C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_ioreq.h:14,

[cc] from C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.h:14,

[cc] from C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c:9:

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usb_core.h:270:17: note: expected 'uint8_t *' but argument is of type 'uint8_t'

[cc] void* USB_OTG_ReadPacket (USB_OTG_CORE_HANDLE *pdev ,

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c:270:11: warning: implicit declaration of function 'memcpy' [-Wimplicit-function-declaration]

[cc] ^

[cc] memcpy(rxbuf+rxbuf_ptr,USB_WINUSB_OUT_BUF,USB_WINUSB_RecData_Len);

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_winusb_core.c:270:11: warning: incompatible implicit declaration of built-in function 'memcpy'

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_req.c: In function 'USBD_VendDevReq':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_req.c:113:15: warning: unused variable 'ret' [-Wunused-variable]

[cc] ^

[cc] USBD_Status ret = USBD_OK;

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\ub_lib\usb_lolevel\usbd_req.c:134:1: warning: control reaches end of non-void function [-Wreturn-type]

[cc] }

[cc] ^

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\spi_in.c: In function 'DMA2_Stream0_IRQHandler':

[cc] C:\Users\mario\Documents\Pin2Dmd\Rev1.21\PIN2DMD-master\firmware\source\src\spi_in.c:670:7: warning: unused variable 'foo' [-Wunused-variable]

[cc] int foo = SPI1->DR;

[cc] ^

[cc] Starting link

[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -g -nostartfiles -Wl,-Map=PIN2DMD.map -O0 -Wl,--gc-sections -LC:\CooCox\CoIDE\configuration\ProgramData\PIN2DMD -Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\PIN2DMD/arm-gcc-link.ld -g -o PIN2DMD.elf ..\obj\stm32f4xx_syscfg.o ..\obj\usb_core.o ..\obj\spi_out.o ..\obj\usbd_usr.o ..\obj\stm32f4xx_usart.o ..\obj\diskio.o ..\obj\startup_stm32f4xx.o ..\obj\stm32_winusb.o ..\obj\usbd_core.o ..\obj\main.o ..\obj\framebuffer.o ..\obj\stm32_ub_fatfs.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32_ub_systick.o ..\obj\display.o ..\obj\usbd_desc.o ..\obj\stm32_ub_spi2.o ..\obj\usbd_winusb_core.o ..\obj\rgb_out.o ..\obj\stm32_ub_sdcard.o ..\obj\stm32f4xx_gpio.o ..\obj\stm32_ub_usbdisk.o ..\obj\stm32f4xx_flash.o ..\obj\md5.o ..\obj\system_stm32f4xx.o ..\obj\syscalls.o ..\obj\stm32f4xx_dma.o ..\obj\usb_bsp.o ..\obj\usbd_req.o ..\obj\usb_dcd_int.o ..\obj\stm32_ub_atadrive.o ..\obj\ff.o ..\obj\stm32f4xx_spi.o ..\obj\stm32f4xx_exti.o ..\obj\misc.o ..\obj\usb_dcd.o ..\obj\matrix.o ..\obj\usbd_ioreq.o ..\obj\spi_in.o ..\obj\stm32f4xx_tim.o

Program Size:

74496 9372 107964 191832 2ed58 PIN2DMD.elf

text data bss dec hex filename

 

BUILD SUCCESSFUL

Total time: 9 seconds

 

You can see above many warnings.

I connected the displays and STM board as show in the documents using an add on board.

I inserted a BLANK sd card into the microSD card reader.

Should it not be blank?

The Red LED next to the reset button is lit. When I press and hold the reset button it goes out but comes back on after releasing the reset button.

The LD1 led on the STM board is flashing about 1 time per second.

I don't have a PC connected to the STM board.

Just External power and HUB75 cable to Led displays. The 5V power supply is rated at 10Amp.

Link to comment
Share on other sites

  • Content Provider

What do you mean with "an add on board" ? Is it selfmade ? LED status as described is O.K.

Most likely your SD-Card is not supported. I assume you uploaded the firmware.

Please check the cabeling to the display.

Link to comment
Share on other sites

Hi Lucky,

Thanks for this fantastic project. I have had some success.

First yes I have had some Shield PCB's made. I used Uncle sashs Eagle files he put on his site. I don't use eagle so I converted them to Design Spark 7.1 and moved things around a little and created the manufacturing Gerber files and sent to manufacturer.

It was my mistake on the board I soldered the 16 pin IDC socket with the positioning notch on the wrong side.

I just made a different cable and its working now.

The shield and the stm32 will mount onto the acrylic plate I cut out to fit the displays. they fit perfectly into my WPC era machines.

The three attached images show my progress.

 

post-10115-0-72847700-1453965615_thumb.jpg

post-10115-0-97426600-1453965825_thumb.jpg

post-10115-0-60409800-1453965865_thumb.jpg

Link to comment
Share on other sites

Hi,

Next step connect to real pinball machine Failed.

I put the pin2dmd.dat file on three different microSD cards.

For two of the microSD cards when the machine is on the DMD just displays the PIN2DMD logo and the phrase VIrtual Pinball at the bottom of the screen.

For the other microSD card when the machine is on the DMD jus displays the PIN2DMD logo BUT the word WILLIAMS appears at the bottom of the screen instead of the phrase Virtual Pinball.

 

The second card is a 2GB  card and the first two are 1GB cards.

Any ideas?

Link to comment
Share on other sites

Hi Lucky,

SUCCESS!!!!!!!!!!

I had already changed the cable around but did not check blue light. I changed it back again to make standard DMD run but after your suggestion I went again and changed the cable around, you can see it in my pictures below. After that it worked see images. Now just have to do a nice colorisation with the editor and its awesome.

I can build 2 of these for the price it would cost me to buy 1 standard DMD in Australia.

Thanks again.

post-10115-0-30005400-1454068820_thumb.jpg

post-10115-0-61554200-1454068851_thumb.jpg

post-10115-0-17504100-1454068881_thumb.jpg

post-10115-0-93575900-1454068909_thumb.jpg

 

Link to comment
Share on other sites

Hello! Testing the board with a real pinball Addams Family, is it enought to copy the file pin2dmd.dat to the SD ? to make it work for example in blue ? Once I put the SD in the panel the "virtual pinball" changes to "williams" all in blue, so the SD card is working. What happens if I don't copy the file palettes.dat ? I have the real pinball far away from where I'm testing, I have to send to my friend via post office. Thanks a lot !!!

Link to comment
Share on other sites

If that is what you wanted to have (Williams and blue) that should be all.

Which Version do you have installed ? We had some problems due to reworking the code with

real pinball machines.

Thanks for your answer. I think the last, that is 1.27 is correct ? or should I use an older version ?

When I use the tool pin2dmd.exe I can write the pin2dmd.dat that sets "williams" ok on display and the colour I choose, but no palettes.dat is generated, is that normal ?

And if I send him the vga mode (rgb) instead of blue, just the pin2dmd.dat file without palettes.dat is he going to see in colour the dmd ?

Thanks!

Link to comment
Share on other sites

  • Content Provider

The palettes.dat file is only needed when you want a custom palette. If you set the vga palette the wpc will use colors 0,1,7,15 of it.

I haven´t tested the 1.27 with wpc machine, but will do that tomorrow, just to make sure it works.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...