Skip to content

homelith/pico_sign_sipf_xmodem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pico_sign_sipf_xmodem

README (日本語)

system overview

fig.1: horizontal scrolled image output on 480x1920 display at 20Hz where image can be updated via LTE

(picture on loading derived from http://panoroman.nao3.net/72/img_0485/)

what is this ?

building hardware (breadboard-based)

breadboard build

fig.2: experimental setup on breadboard

build software

  • prepare environment

    • some linux based distros (tested under native ubuntu 20.04 LTS and WSL2 ubuntu 20.04 LTS)
    • sudo apt install git gcc make cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential golang
  • compile uf2 binary

    • you'll get sw/build/app/pico_sign_board.uf2 after compilation
$ git clone --recursive git@github.com:homelith/pico_sign_sipf_xmodem.git
$ cd pico_sign_sipf_xmodem/sw
$ make
  • convert source image
    • prepare width 60px x height 1280px image as ${FILENAME}.png
    • confirm generated binary has exactly 153600 bytes of size
$ cd pico_sign_sipf_xmodem/sw/tools/png2array
$ make
$ ./png2array -m rgb565 -f bin ${FILENAME}.png > ${FILENAME}.bin

run on device

  • download uf2 on Raspberry Pi Pico

    • power on Pico with BOOTSEL button pressed to make Pico run on USB mass storage device mode
    • place pico_sign_board.uf2 file on Pico-emulated USB storage root directory
    • you will see "Pico Bitbang DVI" sample images scrolled horizontally
  • update signboard image

    • assume SCM-LTEM1NRF module associated with a Mono Platform project and websocket service adapter on your SAKURA Cloud account.
    • From project tab, upload ${FILENAME}.bin to associated project (fig.3)
    • From service adapter tab, issue "send message to device" command (fig.4)
      • parameters : tags;{any 8bit hex value}, type;variable length string, value;${FILENAME}.bin
    • Pico polls any new messages on every 3 minites by default or you can trigger it immediately by pressing tactile switch to drive Pico GP6 pin to GND.
    • Once Pico found new messages with ${FILENAME}.bin, xmodem downloader will be initiated and the image will be updated consequently.
  • update signboard scroll speed

    • default scroll speed 16 pixel/frame can be update via Mono Platform message struct
    • assume SCM-LTEM1NRF module associated with a Mono Platform project and websocket service adapter on your SAKURA Cloud account.
    • From service adapter tab, issue "send message to device" command.
      • parameters : tags;{any 8bit hex value}, type; int16 value, value; from -32768 to 32767
    • Pico polls any new messages on every 3 minites by default or you can trigger it immediately by pressing tactile switch to drive Pico GP6 pin to GND.
    • Once Pico found new messages with int16 value, scroll speed will be updated to {int16 value} pixel / frame.

Mono Platform control panel project tab

fig.3: upload sign_board.bin on SAKURA Mono Platform project tab

Mono Platform control panel service adapter tab

fig.4: sending message on SAKURA Mono Platform service adapter tab, notifying device filename to be downloaded

About

horizontal scrolled LCD signboard where image can be updated via LTE

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published