Skip to content

Measter/NanoRL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NanoRL

A Rust port of CoreRL running on an Arduino Nano. A video can be found here recorded on glorious potato-cam.

Hardware

I ran this on an Arduino Nano clone with a CH430 USB-Serial chip. The display was a generic 128x64 SSD1306 OLED display over the I2C bus. For input I used four generic push-buttons, with the 328P's internal pullups enabled.

Peripheral implementation

I only implemented the peripherals I needed to get things working (though with a complete register definition), plus the USART which I used when debugging, but is not used in the final thing. The register abstraction is complete overkill for this.

Compiler, and Building

I used the x86-64 MSVC 2020-11-11 Nightly compiler to build this. The binary was built with the following command:

cargo build -Z build-std=core --target avr-atmega328p.json --release

After that it was the same commands used by the Arduino IDE to upload:

avr-objcopy -O ihex -R .eeprom .\target\avr-atmega328p\release\nano_rl.elf .\target\avr-atmega328p\release\nano_rl.hex
avrdude -C<path/to/>/avrdude.conf -v -patmega328p -carduino -PCOM4 -b57600 -D -Uflash:w:.\target\avr-atmega328p\release\nano_rl.hex:i

License

As the TWI and delay_microseconds implementations are based on the Arduino library those files are specifically licensed under LGPL 2.1.

About

A Rust Port of the CoreRL Game for the Arduino Nano.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors