diff --git a/img/fomu-memory-layout.png b/img/fomu-memory-layout.png new file mode 100644 index 0000000..8ee48d6 Binary files /dev/null and b/img/fomu-memory-layout.png differ diff --git a/img/ice40-ledd.png b/img/ice40-ledd.png new file mode 100644 index 0000000..13c2984 Binary files /dev/null and b/img/ice40-ledd.png differ diff --git a/img/ice40-lut.png b/img/ice40-lut.png new file mode 100644 index 0000000..0ad62cf Binary files /dev/null and b/img/ice40-lut.png differ diff --git a/img/tomu-fpga-evt-1-small.jpg b/img/tomu-fpga-evt-1-small.jpg new file mode 100644 index 0000000..47e049e Binary files /dev/null and b/img/tomu-fpga-evt-1-small.jpg differ diff --git a/index.html b/index.html index b2a222b..e436e4e 100644 --- a/index.html +++ b/index.html @@ -89,43 +89,37 @@
- Fomu (with case): an FPGA in your USB port. Crowdfunding now! One week to go. t.xobs.io/fomu + Pre-order now on Crowd Supply! t.xobs.io/fomu
Sean Cross - https://xobs.io/ - @xobs
+ Fomu aims to be accessable on three levels: +
- An FPGA is like a hardware emulator. It can change itself so that it can take on the characteristics of any other digital logic. -
-- FPGAs are measured in resources called LUTs or LCs. -
+ +
+ module DFF (output reg Q, input C, D, R);
+ always @(posedge C)
+ if (~R) begin
+ Q <= 1'b0;
+ end else begin
+ Q <= D;
+ end
+ endmodule
+
+ +
+ +
- sean@PAZUZU ~\Code\Fomu\foboot\releases\v1.8.1 master ≢ [10:45]
-❯ dfu-util -l
-dfu-util 0.9
-
-Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
-Copyright 2010-2016 Tormod Volden and Stefan Schmidt
-This program is Free Software and has ABSOLUTELY NO WARRANTY
-Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
-
-Found DFU: [1209:5bf0] ver=0101, devnum=16, cfg=1, intf=0, path="1-1.1.2", alt=0, name="Fomu DFU Bootloader v1.7.2", serial="UNKNOWN"
-sean@PAZUZU ~\Code\Fomu\foboot\releases\v1.8.1 master ≢ [10:45]
-❯ dfu-util -D .\pvt-installable.dfu
-dfu-util 0.9
-
-Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
-Copyright 2010-2016 Tormod Volden and Stefan Schmidt
-This program is Free Software and has ABSOLUTELY NO WARRANTY
-Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
-
-Match vendor ID from file: 1209
-Match product ID from file: 5bf0
-Opening DFU capable USB device...
-ID 1209:5bf0
-Run-time device DFU version 0101
-Claiming USB DFU Interface...
-Setting Alternate Setting #0 ...
-Determining device status: state = dfuIDLE, status = 0
-dfuIDLE, continuing
-DFU mode device DFU version 0101
-Device returned transfer size 1024
-Copying data from PC to DFU device
-Download [========= ] 36% 38912 bytes
+ $ dfu-util -l
+Found DFU: [1209:5bf0] name="Fomu DFU Bootloader v1.7.2"
+$ dfu-util -D evt-installable.dfu
+Download [========= ] 36% 38912 bytes
Download done.
-state(7) = dfuMANIFEST, status(0) = No error condition is present
-state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
-Done!
-sean@PAZUZU ~\Code\Fomu\foboot\releases\v1.8.1 master ≢ [10:45]
-❯ dfu-util -l
-dfu-util 0.9
-
-Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
-Copyright 2010-2016 Tormod Volden and Stefan Schmidt
-This program is Free Software and has ABSOLUTELY NO WARRANTY
-Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
-
-Found DFU: [1209:5bf0] ver=0101, devnum=14, cfg=1, intf=0, path="1-1.1.2", alt=0, name="Fomu DFU Bootloader v1.8.1", serial="UNKNOWN"
-sean@PAZUZU ~\Code\Fomu\foboot\releases\v1.8.1 master ≢ [10:47]
-❯
-
+$ dfu-util -l
+Found DFU: [1209:5bf0] name="Fomu DFU Bootloader v1.8.1"
+$
- Fomu aims to be accessable on three levels: -
dfu-util -l
- dfu-util -D update.bin
+
+$ dfu-util -l
+Found DFU: [1209:5bf0] name="Fomu DFU Bootloader v1.8.1"
+$ dfu-util -e # Boot current program
+$ dfu-util -D new-image.dfu # Load new program
+ 5b f0
mudfu-util -D micropython.dfu
+ $ dfu-util -D micropython-fomu.dfu
screen /dev/cu.usbserial*
+ screen /dev/ttyACM*
+ Teraterm
+ MicroPython v1.10-296-g0a5a77a on 2019-06-18; fomu with vexriscv
+>>>
+ >>> import fomu
+ >>> rgb = fomu.rgb()
+ >>> rgb.mode("error")
+ >>>
+
>>> rgb.write_raw(0b0001, 255)
+>>> rgb.write_raw(0b1010, 14)
+>>> rgb.write_raw(0b1011, 1)
+>>>
+