Giter Site home page Giter Site logo

bb-cp's Introduction

Welcome to my open source libraries. The aim of my efforts is to bring speed and unexpected features to all devices, big and small.

Larry's GitHub stats

bb-cp's People

Contributors

bitbank2 avatar thehonestmaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bb-cp's Issues

Use VFB for "headless" Opi0 and NanopiDuo?

Since Orange Pi Armbian (20.05? Kernel 5.4.x) has basically made TV-out's Framebuffer impossible to activate now, (also Notro's FBTFT is getting more difficult to work with because the DTB instructions are getting unwieldy, not to mention it's been "orphaned" in the mainline kernels) CVBS-only SBCs like OpiZero and NanoDuo are almost out of luck in using SPI LCDs.

However, if we compile our own customized kernels, could we activate the Virtual framebuffer (VFB) and use BB-CP from that frame buffer to the ili9341? The default resolution seems to be 640x480, and if I'm not mistaken BB-CP can reduce resolution from 640x480@16bpp?

I know this circumvents the Mali400 video processor in the h3/h2+, but it's better than nothing right now... unless someone knows of a recent distro that still maintains CVBS out?

Add support for signal handling

Request to support signal handling. This would allow the application (launched during boot) to be cleanly closed if needed.

Currently applications exits and error message is printed
DATECODE sigHandler: Unhandled signal 2, terminating

Adding bbcp from startup and available for Retropie

Hi @bitbank2 ,

Thanks for pointing me to BB-CP yesterday. I'm able to have it working from the command line, no problem at all.

I've added this line to /etc/rc.local:

sudo /home/pi/BB-CP/bbcp --spi_bus 0 --background --flip

But it freezes the startup (somewhere around the Samba SMB setup). Have I missed something?

Thanks!

Run at startup?

Hi(again :P), i have manged to get the display working it was just a matter of recompiling :P but now i am stuck at launching it at boot :(

i added this at /etc/rc.local
sudo /boot/disp/BB-CP-master/bbcp --spi_bus 0 --lcd_dc 18--lcd_rst 22 spi_freq 46000000 --flip
it does show me whatever it is on the console but only that frame like once :P

LCD_ORIENTATION_LANDSCAPE ???

BB-CP is using the undefined LCD_ORIENTATION_LANDSCAPE:

main.c: In function ‘InitDisplay’:
main.c:277:23: error: ‘LCD_ORIENTATION_LANDSCAPE’ undeclared (first use in this function)
  spilcdSetOrientation(LCD_ORIENTATION_LANDSCAPE);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~

Where in spi_lcd only the following are defined:

spi_lcd.h:#define LCD_ORIENTATION_NATIVE 1
spi_lcd.h:#define LCD_ORIENTATION_ROTATED 2

Attempting to get working with Waveshare 3.5 480x320 + OrangePiPCPlus

Hi there ;

a few things are not evident from the readme

  1. Is the fbtft module required to be loaded or unloaded
  2. The GPIO definitions refer to which allocation - sysfs is deprecated ; and I am using gpiod formatting (which provides block access). Sysfs is still there for the time-being I compiled with the gpiogeneric define for the SPI_LCD part - was this the right one to use as none of the other options seem available for sunxi/h3 SoC's?
  3. I usually using the following init for the fbtft driver module options

`root@ruao01:~/SPI_LCD/pigpio#

cat /etc/modprobe.d/fbtft.conf
options fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25`

Which I translated as:

`root@ruao01:~/SPI_LCD/BB-CP#

./bbcp --spi_bus 0 --spi_freq 16000000 --lcd_rst 7 --lcd_dc 166`

But I get :

`root@ruao01:~/SPI_LCD/BB-CP#


> 
>  ./bbcp --spi_bus 0 --spi_freq 16000000 --lcd_rst 7 --lcd_dc 166
> Error setting SPI mode
> Error setting SPI speed
> Failed to open the SPI bus
> Error initializing the LCD/display`
> 

As the result when trying to launch

  1. The bbcp program assumes that fb0 is the drm/hdmi output - but in the case where ONLY the spi screen is connected this is not a valid assumption. Currently I have to plug an HDMI 'dummy' capture card in at boot to enumerate correctly. It would probably be useful to accept a mirror --from --to option.

Some general info/diags of the system under test follows:

`Linux


 ruao01 4.14.67-sunxi #130 SMP Sun Sep 2 22:03:18 CEST 2018 armv7l armv7l armv7l GNU/Linux
root@ruao01:~/SPI_LCD/BB-CP# gpiodetect 
gpiochip0 [1c20800.pinctrl] (224 lines)
gpiochip1 [1f02c00.pinctrl] (32 lines)
root@ruao01:~/SPI_LCD/BB-CP# gpioinfo
gpiochip0 - 224 lines:
        line   0:      unnamed       unused   input  active-high 
        line   1:      unnamed       unused   input  active-high 
        line   2:      unnamed "fb_ili9486"  output  active-high [used]
        line   3:      unnamed       unused   input  active-high 
        line   4:      unnamed       unused   input  active-high 
        line   5:      unnamed       unused   input  active-high 
        line   6:      unnamed       unused   input  active-high 
        line   7:      unnamed       unused   input  active-high 
        line   8:      unnamed       unused   input  active-high 
        line   9:      unnamed       unused   input  active-high 
        line  10:      unnamed       unused   input  active-high 
        line  11:      unnamed       unused   input  active-high 
        line  12:      unnamed       unused   input  active-high 
        line  13:      unnamed       unused   input  active-high 
        line  14:      unnamed       unused   input  active-high 
        line  15:      unnamed "orangepi:red:status" output active-high [used]
        line  16:      unnamed       unused   input  active-high 
        line  17:      unnamed       unused   input  active-high 
        line  18:      unnamed       unused   input  active-high 
        line  19:      unnamed       unused   input  active-high 
        line  20:      unnamed       unused   input  active-high 
        line  21:      unnamed       unused   input  active-high 
        line  22:      unnamed       unused   input  active-high 
        line  23:      unnamed       unused   input  active-high 
        line  24:      unnamed       unused   input  active-high 
        line  25:      unnamed       unused   input  active-high 
        line  26:      unnamed       unused   input  active-high 
        line  27:      unnamed       unused   input  active-high 
        line  28:      unnamed       unused   input  active-high 
        line  29:      unnamed       unused   input  active-high 
        line  30:      unnamed       unused   input  active-high 
        line  31:      unnamed       unused   input  active-high 
        line  32:      unnamed       unused   input  active-high 
        line  33:      unnamed       unused   input  active-high 
        line  34:      unnamed       unused   input  active-high 
        line  35:      unnamed       unused   input  active-high 
        line  36:      unnamed       unused   input  active-high 
        line  37:      unnamed       unused   input  active-high 
        line  38:      unnamed       unused   input  active-high 
        line  39:      unnamed       unused   input  active-high 
        line  40:      unnamed       unused   input  active-high 
        line  41:      unnamed       unused   input  active-high 
        line  42:      unnamed       unused   input  active-high 
        line  43:      unnamed       unused   input  active-high 
        line  44:      unnamed       unused   input  active-high 
        line  45:      unnamed       unused   input  active-high 
        line  46:      unnamed       unused   input  active-high 
        line  47:      unnamed       unused   input  active-high 
        line  48:      unnamed       unused   input  active-high 
        line  49:      unnamed       unused   input  active-high 
        line  50:      unnamed       unused   input  active-high 
        line  51:      unnamed       unused   input  active-high 
        line  52:      unnamed       unused   input  active-high 
        line  53:      unnamed       unused   input  active-high 
        line  54:      unnamed       unused   input  active-high 
        line  55:      unnamed       unused   input  active-high 
        line  56:      unnamed       unused   input  active-high 
        line  57:      unnamed       unused   input  active-high 
        line  58:      unnamed       unused   input  active-high 
        line  59:      unnamed       unused   input  active-high 
        line  60:      unnamed       unused   input  active-high 
        line  61:      unnamed       unused   input  active-high 
        line  62:      unnamed       unused   input  active-high 
        line  63:      unnamed       unused   input  active-high 
        line  64:      unnamed       unused   input  active-high 
        line  65:      unnamed       unused   input  active-high 
        line  66:      unnamed       unused   input  active-high 
        line  67:      unnamed       unused   input  active-high 
        line  68:      unnamed       unused   input  active-high 
        line  69:      unnamed       unused   input  active-high 
        line  70:      unnamed       unused   input  active-high 
        line  71:      unnamed "fb_ili9486"  output  active-high [used]
        line  72:      unnamed       unused   input  active-high 
        line  73:      unnamed       unused   input  active-high 
        line  74:      unnamed       unused   input  active-high 
        line  75:      unnamed       unused   input  active-high 
        line  76:      unnamed       unused   input  active-high 
        line  77:      unnamed       unused   input  active-high 
        line  78:      unnamed       unused   input  active-high 
        line  79:      unnamed       unused   input  active-high 
        line  80:      unnamed       unused   input  active-high 
        line  81:      unnamed       unused   input  active-high 
        line  82:      unnamed       unused   input  active-high 
        line  83:      unnamed       unused   input  active-high 
        line  84:      unnamed       unused   input  active-high 
        line  85:      unnamed       unused   input  active-high 
        line  86:      unnamed       unused   input  active-high 
        line  87:      unnamed       unused   input  active-high 
        line  88:      unnamed       unused   input  active-high 
        line  89:      unnamed       unused   input  active-high 
        line  90:      unnamed       unused   input  active-high 
        line  91:      unnamed       unused   input  active-high 
        line  92:      unnamed       unused   input  active-high 
        line  93:      unnamed       unused   input  active-high 
        line  94:      unnamed       unused   input  active-high 
        line  95:      unnamed       unused   input  active-high 
        line  96:      unnamed       unused   input  active-high 
        line  97:      unnamed       unused   input  active-high 
        line  98:      unnamed       unused   input  active-high 
        line  99:      unnamed       unused   input  active-high 
        line 100:      unnamed       unused   input  active-high 
        line 101:      unnamed       unused   input  active-high 
        line 102:      unnamed       unused   input  active-high 
        line 103:      unnamed       unused   input  active-high 
        line 104:      unnamed       unused   input  active-high 
        line 105:      unnamed       unused   input  active-high 
        line 106:      unnamed       unused   input  active-high 
        line 107:      unnamed       unused   input  active-high 
        line 108:      unnamed       unused   input  active-high 
        line 109:      unnamed       unused   input  active-high 
        line 110:      unnamed       unused   input  active-high 
        line 111:      unnamed       unused   input  active-high 
        line 112:      unnamed       unused   input  active-high 
        line 113:      unnamed       unused   input  active-high 
        line 114:      unnamed       unused   input  active-high 
        line 115:      unnamed       unused   input  active-high 
        line 116:      unnamed       unused   input  active-high 
        line 117:      unnamed       unused   input  active-high 
        line 118:      unnamed       unused   input  active-high 
        line 119:      unnamed       unused   input  active-high 
        line 120:      unnamed       unused   input  active-high 
        line 121:      unnamed       unused   input  active-high 
        line 122:      unnamed       unused   input  active-high 
        line 123:      unnamed       unused   input  active-high 
        line 124:      unnamed       unused   input  active-high 
        line 125:      unnamed       unused   input  active-high 
        line 126:      unnamed       unused   input  active-high 
        line 127:      unnamed       unused   input  active-high 
        line 128:      unnamed       unused   input  active-high 
        line 129:      unnamed       unused   input  active-high 
        line 130:      unnamed       unused   input  active-high 
        line 131:      unnamed       unused   input  active-high 
        line 132:      unnamed       unused   input  active-high 
        line 133:      unnamed       unused   input  active-high 
        line 134:      unnamed       unused   input  active-high 
        line 135:      unnamed       unused   input  active-high 
        line 136:      unnamed       unused   input  active-high 
        line 137:      unnamed       unused   input  active-high 
        line 138:      unnamed       unused   input  active-high 
        line 139:      unnamed       unused   input  active-high 
        line 140:      unnamed       unused   input  active-high 
        line 141:      unnamed       unused   input  active-high 
        line 142:      unnamed       unused   input  active-high 
        line 143:      unnamed       unused   input  active-high 
        line 144:      unnamed       unused   input  active-high 
        line 145:      unnamed       unused   input  active-high 
        line 146:      unnamed       unused   input  active-high 
        line 147:      unnamed       unused   input  active-high 
        line 148:      unnamed       unused   input  active-high 
        line 149:      unnamed       unused   input  active-high 
        line 150:      unnamed       unused   input  active-high 
        line 151:      unnamed       unused   input  active-high 
        line 152:      unnamed       unused   input  active-high 
        line 153:      unnamed       unused   input  active-high 
        line 154:      unnamed       unused   input  active-high 
        line 155:      unnamed       unused   input  active-high 
        line 156:      unnamed       unused   input  active-high 
        line 157:      unnamed       unused   input  active-high 
        line 158:      unnamed       unused   input  active-high 
        line 159:      unnamed       unused   input  active-high 
        line 160:      unnamed       unused   input  active-high 
        line 161:      unnamed       unused   input  active-high 
        line 162:      unnamed       unused   input  active-high 
        line 163:      unnamed       unused   input  active-high 
        line 164:      unnamed       unused   input  active-high 
        line 165:      unnamed       unused   input  active-high 
        line 166:      unnamed         "cd"   input  active-high [used]
        line 167:      unnamed       unused   input  active-high 
        line 168:      unnamed       unused   input  active-high 
        line 169:      unnamed       unused   input  active-high 
        line 170:      unnamed       unused   input  active-high 
        line 171:      unnamed       unused   input  active-high 
        line 172:      unnamed       unused   input  active-high 
        line 173:      unnamed       unused   input  active-high 
        line 174:      unnamed       unused   input  active-high 
        line 175:      unnamed       unused   input  active-high 
        line 176:      unnamed       unused   input  active-high 
        line 177:      unnamed       unused   input  active-high 
        line 178:      unnamed       unused   input  active-high 
        line 179:      unnamed       unused   input  active-high 
        line 180:      unnamed       unused   input  active-high 
        line 181:      unnamed       unused   input  active-high 
        line 182:      unnamed       unused   input  active-high 
        line 183:      unnamed       unused   input  active-high 
        line 184:      unnamed       unused   input  active-high 
        line 185:      unnamed       unused   input  active-high 
        line 186:      unnamed       unused   input  active-high 
        line 187:      unnamed       unused   input  active-high 
        line 188:      unnamed       unused   input  active-high 
        line 189:      unnamed       unused   input  active-high 
        line 190:      unnamed       unused   input  active-high 
        line 191:      unnamed       unused   input  active-high 
        line 192:      unnamed       unused   input  active-high 
        line 193:      unnamed       unused   input  active-high 
        line 194:      unnamed       unused   input  active-high 
        line 195:      unnamed       unused   input  active-high 
        line 196:      unnamed       unused   input  active-high 
        line 197:      unnamed       unused   input  active-high 
        line 198:      unnamed       unused   input  active-high 
        line 199:      unnamed       unused   input  active-high 
        line 200:      unnamed       unused   input  active-high 
        line 201:      unnamed       unused   input  active-high 
        line 202:      unnamed       unused   input  active-high 
        line 203:      unnamed       unused   input  active-high 
        line 204:      unnamed "usb0_id_det" input active-high [used]
        line 205:      unnamed       unused   input  active-high 
        line 206:      unnamed       unused   input  active-high 
        line 207:      unnamed       unused   input  active-high 
        line 208:      unnamed       unused   input  active-high 
        line 209:      unnamed       unused   input  active-high 
        line 210:      unnamed       unused   input  active-high 
        line 211:      unnamed       unused   input  active-high 
        line 212:      unnamed       unused   input  active-high 
        line 213:      unnamed       unused   input  active-high 
        line 214:      unnamed       unused   input  active-high 
        line 215:      unnamed       unused   input  active-high 
        line 216:      unnamed       unused   input  active-high 
        line 217:      unnamed       unused   input  active-high 
        line 218:      unnamed       unused   input  active-high 
        line 219:      unnamed       unused   input  active-high
        line 220:      unnamed       unused   input  active-high
        line 221:      unnamed       unused   input  active-high
        line 222:      unnamed       unused   input  active-high
        line 223:      unnamed       unused   input  active-high
gpiochip1 - 32 lines:
        line   0:      unnamed       unused   input  active-high
        line   1:      unnamed       unused   input  active-high
        line   2:      unnamed  "usb0-vbus"  output  active-high [used]
        line   3:      unnamed       unused   input  active-high
        line   4:      unnamed       unused   input  active-high
        line   5:      unnamed       unused   input  active-high
        line   6:      unnamed       unused   input  active-high
        line   7:      unnamed      "reset"  output   active-low [used]
        line   8:      unnamed       unused   input  active-high
        line   9:      unnamed       unused   input  active-high
        line  10:      unnamed "orangepi:green:pwr" output active-high [used]
        line  11:      unnamed       unused   input  active-high
        line  12:      unnamed       unused   input  active-high
        line  13:      unnamed       unused   input  active-high
        line  14:      unnamed       unused   input  active-high
        line  15:      unnamed       unused   input  active-high
        line  16:      unnamed       unused   input  active-high
        line  17:      unnamed       unused   input  active-high
        line  18:      unnamed       unused   input  active-high
        line  19:      unnamed       unused   input  active-high
        line  20:      unnamed       unused   input  active-high
        line  21:      unnamed       unused   input  active-high
        line  22:      unnamed       unused   input  active-high
        line  23:      unnamed       unused   input  active-high
        line  24:      unnamed       unused   input  active-high
        line  25:      unnamed       unused   input  active-high
        line  26:      unnamed       unused   input  active-high
        line  27:      unnamed       unused   input  active-high
        line  28:      unnamed       unused   input  active-high
        line  29:      unnamed       unused   input  active-high
        line  30:      unnamed       unused   input  active-high
        line  31:      unnamed       unused   input  active-high
root@ruao01:~/SPI_LCD/BB-CP# gpioinfo |grep "\[used"
        line   2:      unnamed "fb_ili9486"  output  active-high [used]
        line  15:      unnamed "orangepi:red:status" output active-high [used]
        line  71:      unnamed "fb_ili9486"  output  active-high [used]
        line 166:      unnamed         "cd"   input  active-high [used]
        line 204:      unnamed "usb0_id_det" input active-high [used]
        line   2:      unnamed  "usb0-vbus"  output  active-high [used]
        line   7:      unnamed      "reset"  output   active-low [used]
        line  10:      unnamed "orangepi:green:pwr" output active-high [used]
root@ruao01:~/SPI_LCD/BB-CP# modprobe ads
ads1015         ads7828         ads7846_device  ads7871
root@ruao01:~/SPI_LCD/BB-CP# modprobe ads7846_device
root@ruao01:~/SPI_LCD/BB-CP# gpioinfo |grep "\[used"
        line   1:      unnamed "ads7846_pendown" input active-high [used]
        line   2:      unnamed "fb_ili9486"  output  active-high [used]
        line  15:      unnamed "orangepi:red:status" output active-high [used]
        line  71:      unnamed "fb_ili9486"  output  active-high [used]
        line 166:      unnamed         "cd"   input  active-high [used]
        line 204:      unnamed "usb0_id_det" input active-high [used]
        line   2:      unnamed  "usb0-vbus"  output  active-high [used]
        line   7:      unnamed      "reset"  output   active-low [used]
        line  10:      unnamed "orangepi:green:pwr" output active-high [used]

root@ruao01:~/SPI_LCD/BB-CP#`

The spi screen I am using is this one:
https://www.waveshare.com/3.5inch-rpi-lcd-a.htm

NanoPi Duo2 Pins Mapping

Hey!
Great work on this by the way.

I am trying to get this working on a NanoPi Duo2 but I cant seem to get them right, I looked at your mapping table in the spi_lcd.c file, chose NanoPi Duo2 as that has the same GPIO Pin out.

Any help where to map the final 2 pins of DC/X and Reset would be most helpful.

Thanks in advance.

bbcp prints help when called with no parameters

Since all parameters are same as default for my setup, there is no need to pass parameters. BB-CP prints help and exits.

Suggested solution would be to follow Linux standard and print help only with '-h' or '--help' options.

Segmentation fault

I have Segmentation fault error running in orange pi zero.

root@orangepizero:/BB-CP# ./bbcp --spi_bus 0 spi_freq 46000000 --flip --lcd_dc 0 --lcd_led 3 --lcd_rst 1
Segmentation fault
root@orangepizero:
/BB-CP# uname -a
Linux orangepizero 4.14.14-sunxi #1 SMP Thu Jan 25 12:20:57 CET 2018 armv7l GNU/Linux

root@orangepizero:~/BB-CP# cat /boot/armbianEnv.txt
verbosity=1
logo=disabled
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
overlays=spi-spidev usbhost2 usbhost3
rootdev=UUID=a2c25aee-d15d-4aa7-8f41-ab6bb511776f
param_spidev_spi_bus=0
param_spidev_max_freq=100000000
rootfstype=ext4
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

root@orangepizero:~/BB-CP# ls /dev/spi*
/dev/spidev0.0

My wiring.

TFT OPIZERO


SCLK (SCK) - 23
MOSI (SDA) - 19
MISO - 21
CS - 24
DC (AO) - 13
RST - 11
VCC - 4
GND - 25
LED - 15

Regards.

Please add fbtft bgr=1 option

All the blue colors are orange in OrangePiZero when using sudo ./bbcp --lcd_led 12 --spi_bus 1. I know that this is an orange pi :-)

Notro's fbtft supports an option bgr=1 to "flip" the blue colors back from orange/red. Without this option the blue colors are all red on the screen. This is what appears to be missing in the bbcp command. Could you please add this option or provide some hints on how to add this? Thanks.

How to get this working with Waveshare 240x240

Please help me! I a was wondering how to get this working with 240x240 Waveshare hat on Armbian? Please tell, I am getting pretty desperate trying to get it to work! Also, I am using a Banana Pi Zero

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.