The World's Most Useless Arduino Platform.

Related tags

Arduino boot2duino
Overview

boot2duino

boot2duino serves no other purpose than to generate a bootable x86 floppy image using the Arduino IDE, which seemingly serves no purpose.

Watch it in action: writing a hello world; a very basic piano.

Examples

Video vid;

void setup() {
  vid.print("Hello world, from Arduino!");
}

void loop() {
  
}

boot2duino hello world example running inside QEMU

Other examples:

How to install

Linux :

mkdir -p ~/Arduino/hardware/boot2duino
cd ~/Arduino/hardware/boot2duino
git clone https://github.com/jeanthom/boot2duino

Windows :

mkdir %UserProfile%\Documents\Arduino\hardware
cd %UserProfile%\Documents\Arduino\hardware
git clone https://github.com/jeanthom/boot2duino

How to run

Using qemu:

qemu-system-x86_64 -drive file=boot2duino-demo.ino.x86-pc.img,index=0,if=floppy,format=raw -soundhw pcspk
Comments
  • Arduino IDE 1.8.19,

    Arduino IDE 1.8.19, "collect2 error: ld returned 1 exit status"

    Hi, guys, I wanted to try it but I'm not able to compile anything and I don't understand the problem. Here is the log message from the arduino IDE on my linux mint VM. I had to install g++, and i'm using version 9.3.0. Am i missing something? Need other information? To me, it seems a memory problem, but i set the VM with 8Gb RAM, and still have 12Gb of free space on HDD.

    /usr/bin/ld: warning: changing start of section .plt by 9 bytes /usr/bin/ld: warning: changing start of section .plt.got by 1 byte /usr/bin/ld: warning: changing start of section .gnu.version_d by 2 bytes /usr/bin/ld: warning: changing start of section .gnu.version_r by 2 bytes /usr/bin/ld: warning: changing start of section .dynsym by 2 bytes /usr/bin/ld: warning: changing start of section .gnu.hash by 3 bytes /usr/bin/ld: warning: changing start of section .plt by 9 bytes /usr/bin/ld: warning: changing start of section .plt.got by 1 byte /usr/bin/ld: warning: changing start of section .gnu.version_d by 2 bytes /usr/bin/ld: warning: changing start of section .gnu.version_r by 2 bytes /usr/bin/ld: warning: changing start of section .dynsym by 2 bytes /usr/bin/ld: warning: changing start of section .gnu.hash by 3 bytes /usr/bin/ld: section .dynamic LMA [0000000000007e00,0000000000007e8f] overlaps section .text LMA [0000000000007e00,0000000000007e26] /usr/bin/ld: section .interp LMA [0000000000007e27,0000000000007e39] overlaps section .dynamic LMA [0000000000007e00,0000000000007e8f] collect2: error: ld returned 1 exit status exit status 1 Error compiling for board Generic x86 computer.

    Btw I love this project, what about LPT implementation? could transform an old PC into a freaking super IPC micro-controller lol

    Thanks in advance

    opened by AndroidLeo01 5
  • Add license information

    Add license information

    Hello!

    I found this project from https://hackaday.com/2022/01/12/arduino-ide-creates-bootable-x86-floppy-disks/

    Could you please add information about the license of this repository — is it allowed to copy, change and use the code in any purpose? It would be great to see any popular open source license.

    opened by vazhnov 2
  • working gcc update procedure

    working gcc update procedure

    I used the procedure here to update gcc from v9 to v11 with the option to select either using update-alternatives and also installed the gui galternatives to help configure and select the default compiler.

    https://tutorialforlinux.com/2021/05/23/step-by-step-gcc-11-1-linux-mint-20-installation/

    The demos build and run using Qemu in Linux Mint 20.3, I have not yet tried using a floppy on a real PC.

    opened by DavidJRichards 1
  • recipe.preproc.macros pattern is missing Arduino 1.8.19

    recipe.preproc.macros pattern is missing Arduino 1.8.19

    recipe.preproc.macros pattern is missing Error compiling for board Generic x86 computer.

    Arduino would not recognize the new hardware folder until boards.txt was inside one of the subdirectories.

    Building on windows 7, can test on a linux system later if necessary, I figure this was just a misplaced file.

    opened by TroyFletcher 3
  • Could I boot into a boot2duino image from grub?

    Could I boot into a boot2duino image from grub?

    I have a bootable flash drive upon which I store ISOs of various Linux distributions and other tools. For example, I can boot into an Ubuntu ISO like this:

    menuentry "Ubuntu 20.04 [ejectable]" {
    	set isofile="/images/ubuntu-20.04.2-amd64.iso"
    	echo ">>> ISO file: ${isofile}"
    	loopback loop $isofile
    	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile setkmap=uk eject noprompt splash toram iso-scan/filename=${isofile} --
    	initrd (loop)/casper/initrd.lz
    }
    

    ....or memtest86+ like so:

    menuentry "Memtest 86+ 5.01" {
    	linux16 /images/memtest86+.bin
    }
    

    (I have a full tutorial on it here: https://starbeamrainbowlabs.com/blog/article.php?article=posts/389-multiboot-2.html)

    My question is this: Can I boot into boot2duino images using a similar approach from grub? If so, one could have many images on a single flash drive, and a nice menu to choose between them.

    opened by sbrl 1
Owner
Jean THOMAS
Hi!
Jean THOMAS
Arduino Arduino library for the CloudStorage server project. The library provides easy access to server-stored values and operations.

Arduino-CloudStorage Arduino/ESP8266 library that allows you to easly store and retreive data from a remote (cloud) storage in a key/value fashion. Cl

Gil Maimon 7 Jan 30, 2022
Arduino library for making an IHC in or output module using an Arduino

Introduction This is an Arduino library for making an IHC in or output module using an Arduino. (IHC controller is a home automation controller made b

Jens Østergaard Nielsen 2 Mar 26, 2020
ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT Cloud

ArduinoIoTCloud What? The ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT

Arduino Libraries 64 Dec 16, 2022
Arduino TopLevel Client for aliyun IoT Platform

运行于 arduino 的 阿里云 IoT 接入 SDK,在底层连接的基础上增加数据回调绑定、发送数据和事件等 api 的封装,免去自己解析数据的痛苦

芋头 119 Dec 13, 2022
Server side minimalistic HTTP protocol implementation for the Arduino platform.

ArduinoHttpServer Server side minimalistic Object Oriented HTTP protocol implementation for the Arduino platform. ArduinoHttpServer is a simple HTTP r

Sander 18 Oct 17, 2022
Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames.

107-Arduino-MCP2515 Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames. This library is prepared to interface easily

107-Systems 51 Nov 16, 2022
Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages.

107-Arduino-NMEA-Parser Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages. This library

107-Systems 15 Jan 1, 2023
Arduino library for providing a convenient C++ interface for accessing UAVCAN.

107-Arduino-UAVCAN Arduino library for providing a convenient C++ interface for accessing UAVCAN (v1.0-beta) utilizing libcanard. This library works f

107-Systems 54 Jan 2, 2023
A RESTful environment for Arduino

aREST Overview A simple library that implements a REST API for Arduino & the ESP8266 WiFi chip. It is designed to be universal and currently supports

null 1.2k Dec 29, 2022
Arduino web server library.

aWOT Arduino web server library. Documentation 1. Getting started Hello World Basic routing Application generator Serving static files 2. Guide Routin

Lasse Lukkari 246 Jan 4, 2023
Arduino, esp32 and esp8266 library for ABB (ex PowerOne) Aurora Inverter, implement a full methods to retrieve data from the Inverter via RS-485

ABB Aurora protocol You can refer the complete documentation on my site ABB Aurora PV inverter library for Arduino, esp8266 and esp32 I create this li

Renzo Mischianti 22 Nov 22, 2022
MCP2515 CAN Controller Driver for Arduino

MCP2515 CAN Controller Library for Arduino Compatibility with the ACAN library This library is fully compatible with the Teensy 3.x ACAN library https

Pierre Molinaro 47 Dec 13, 2022
Arduino library for the MCP2515 CAN Controller

MCP2515 CAN Controller Library for Arduino Compatibility with the ACAN library This library is fully compatible with the Teensy 3.x ACAN library https

Pierre Molinaro 4 Dec 18, 2022
Arduino CAN driver for MCP2517FD CAN Controller (in CAN 2.0B mode)

MCP2517FD CAN Controller Library for Arduino (in CAN 2.0B mode) Compatibility with the other ACAN libraries This library is fully compatible with the

Pierre Molinaro 13 Dec 22, 2022
Distribution of Arduino driver for MCP2517FD CAN controller (CANFD mode)

MCP2517FD and MCP2518FD CAN Controller Library for Arduino (in CAN FD mode) Compatibility with the other ACAN libraries This library is fully compatib

Pierre Molinaro 31 Dec 21, 2022
CAN / CANFD Arduino Library for Teensy 4.0

CAN Library for Teensy 4.0 / 4.1 It handles Controller Area Network (CAN) for CAN1, CAN2 and CAN3, and Controller Area Network with Flexible Data (CAN

Pierre Molinaro 12 Dec 9, 2022
Unified interface for selecting hardware or software SPI implementations on Arduino platforms

AceSPI Unified interface for selecting hardware or software SPI implementations on Arduino platforms. The code was initially part of the AceSegment li

Brian Park 1 Oct 22, 2021
Unified interface for selecting different implementations for communicating with a TM1637 LED controller chip on Arduino platforms

AceTMI Unified interface for communicating with a TM1637 LED controller chip on Arduino platforms. The code was initially part of the AceSegment libra

Brian Park 0 Feb 2, 2022
Unified interface for selecting different I2C implementations on Arduino platforms

AceWire Wrapper classes that provide a simple, unified interface for different I2C implementations on Arduino platforms. The code was initially part o

Brian Park 7 Dec 14, 2022