Close
0%
0%

Rimer SBC

A real single-board computer: complete stand-alone Cortex-M4 playground.
Based on ATSAMD51J20A, with 320x240 LCD and 40-key keyboard.

Public Chat
Similar projects worth following
This is one of my hobby projects built a few years ago for fast Cortex-M4 application development, and I used it in my lab. My friends suggested I make it available to the public due to its versatility and unlimited usage. Many Cortex-M4 development platforms are available on the market, but they all need a PC to get programmed and operated. This SBC has an LCD and keyboard, making it stand-alone. It runs a FreeRTOS-based operating system with a CLI and can run simple scripts and Basic language programs.

*** The description is constantly updated; please ask your questions in the chat ***

Rimer SBC is based on Microchip's ATSAMD51J20A microcontroller and utilizes most of the peripherals available in the TQFP64 package: high-speed SPI for the LCD, SD/MMC card, I2C-based keyboard scanning, and EEPROM for configuration. Analog I/O is buffered and routed to a 3.5mm audio jack.

Firmware + apps 

** It is still in continuous development, so I'm open to suggestions **

  • ucosR - an operating system based on FreeRTOS. It provides control of the program blocks called interfaces. The CLI has command history (no search yet), looping and piping ability, simple script support and a basic text editor. ucosR repository
  • Basic-D - a Basic language interpreter with a complete line editor and syntax colouring. 
  • ZX Spectrum 48K emulator, with a debugger, .z80, and .sna snapshots support.

Implemented Interfaces:

  • sys : system hardware control (reboot, off ...)
  • utl : command line utility (hex, delay ...)
  • set: system settings (colours, volume, font ...)
  • aio: analog IO ports control (dac, adc ...)
  • dio: digital IO port control (pwr, dir, pin ...)
  • sio: serial IO ports control (mode, tx, rx ...)
  • eep: EEPROM utilities.
  • sd: SD FAT control (ls, rm ...)
  • bas: Basic-D interpreter.
  • mem: RAM utilities.
  • zx: ZX Spectrum 48K emulator.

uCU

 ATSAMD51J20A running at 120 MHz. It has 1 MB of flash and 256 kB of RAM.

LCD

 3.2 inch 240x320 IPS TFT LCD with ST7789 controller. It's controlled by SPI, later deserialized and fed to the parallel port, reaching up to 60 fps. The firmware uses a frame buffer, which is transferred to the LCD by DMA. 

KEYBOARD

  A 40-switch mechanical keyboard (Kailh low-profile Choco) was originally designed to be compatible with the ZX Spectrum layout. The default stickers have more common secondary character sets but can be easily customized. The keyboard is scanned by an I2C GPIO expander and connected to the microcontroller by the I2C bus:

GPIO

An ESD protected GPIOs are routed to three 2.54mm connectors (4+8+8 pins)

Rimer SBC portATSAMD51J20A GPIOSERCOMTCTCC
Port0, J6.1PB02SERCOM5.PAD0--
Port0, J6.2PB03SERCOM5.PAD1--
Port1, J7.2PA16SERCOM1.PAD0--
Port1, J7.3PA17SERCOM1.PAD1--
Port1, J7.4PA18SERCOM1.PAD2--
Port1, J7.5PA19SERCOM1.PAD3--
Port1, J7.6PA20--TCC0.WO0
Port1, J7.7PA21--TCC0.WO1
Port2, J8.2PA12SERCOM2.PAD0--
Port2, J8.3PA13SERCOM2.PAD1--
Port2, J8.4PA14SERCOM2.PAD2--
Port2, J8.5PA15SERCOM2.PAD3--
Port2, J8.6PA00-TC2.WO0-
Port2, J8.7 PA01-TC2.WO1-

 Three I/O connectors are wired to the SERCOM ports: one is limited to two serial lines (I2C and UART), and two others have full 4-pin ports. Two TC and two TCC channels are routed to GPIO connectors.

 All GPIO ports have separate power controls with the current limits: Ports 1 - 125mA, Ports 2 and 3 - 300mA.

... to be continued ...

View all 2 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates