![GitHub repo size](https://img.shields.io/github/repo-size/kelu124/un0rick?style=plastic)
![GitHub language count](https://img.shields.io/github/languages/count/kelu124/un0rick?style=plastic)
![GitHub top language](https://img.shields.io/github/languages/top/kelu124/un0rick?style=plastic)
![GitHub last commit](https://img.shields.io/github/last-commit/kelu124/un0rick?color=red&style=plastic)
[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/kelu124)
[![Kofi](https://badgen.net/badge/icon/kofi?icon=kofi&label)](https://ko-fi.com/G2G81MT0G)
[![Slack](https://badgen.net/badge/icon/slack?icon=slack&label)](https://join.slack.com/t/usdevkit/shared_invite/zt-2g501obl-z53YHyGOOMZjeCXuXzjZow)
[![made-with-Markdown](https://img.shields.io/badge/Made%20with-Markdown-1f425f.svg)](http://commonmark.org)
![](https://raw.githubusercontent.com/kelu124/un0rick/master/images/un0rick_black.png)
# un0rick
## Overview
This is a relatively simple single-channel ultrasound board. Block diagram below:
![](https://raw.githubusercontent.com/kelu124/un0rick/master/images/block-diagram.png)
## Step-by-step
1. Program the fpga using a open-source toolchain to synthetise the embedded firmware.
2. Control the board fully through SPI, be it [through USB](http://un0rick.cc/un0rick/usb-setup), a [Raspberry Pi](http://un0rick.cc/un0rick/rpi-setup), or even an [arduino](http://un0rick.cc/un0rick/m5stack) (though a cheap one may not have sufficient resources to do what you want do to).
3. Set up the acquisition sequence
4. Get the data back again
5. Process / visualize the acquistion
I recommend using RPi, particularly W for the wireless aspects, which then becomes the board server. There's a dedicated 20x2 header. Prepared is a [python lib](https://github.com/kelu124/un0rick/tree/master/pyUn0) as well. The v1.0.0 version is RPi4 proofed.
## Two control options: usb or raspberry
* [Tutorial : Controlling it with a GPIO ribbon](http://un0rick.cc/un0rick/rpi-setup)
* [Tutorial : Controlling it with usb](http://un0rick.cc/un0rick/usb-setup)
## Examples
* __With a Raspberry pi__
The board was connected to a single element piezo, in water, with a reflector a few centimers away, immersed in water. Pulser is set up at 25V high pulses. Control was done through a Raspberry Pi W which is used as a controler and server, another Rasbperry pi.
![](https://raw.githubusercontent.com/kelu124/echomods/master/matty/20190713/P_20190713_223932.jpg)
Acquisition is realized, with a small offset, between 32Msps and 64Msps. Data is explored a bit further.
![](https://raw.githubusercontent.com/kelu124/un0rick/master/images/P_20201009_194611.jpg)
* __With a M5Stack (or any microcontroller really)__
The board was also tested with a nice [m5stack board](http://un0rick.cc/UseCase/m5stack) ([ino file](https://github.com/kelu124/echomods/blob/4923d2af498ee07439468cc0e1ba58e79040f0c0/matty/m5stack/SPI.ino)). Below an example in image:
![](https://raw.githubusercontent.com/kelu124/echomods/master/matty/m5stack/calibration.gif)
## Specs (un0v1.1)
1. __FPGA__: Lattice iCE40HX4K - TQFP 144 Package
2. __Memory__:
* 8 Mbit SRAM, 10ns, 512 k x 16, equivalent to 65 full lines of 120us at 64Msps or 840 lines of 120us at 10Msps, 8 bits.
* 8 Mb SPI Flash for FPGA configuration
3. __Ultrasound processing__:
* __VGA__: AD8331 controled by DAC
* __Pulser__: MD1210 + TC6320
* __ADC__: 65Msps ADC10065
* __Data__ formatted over 2 bytes, with 10 bits / sample, 2 bits of line trackers, 4 bits of IOs (counters, ...) and 2 bits for tracking.
4. __Parameters__: Settings programable via USB or Raspberry Pi
* Type of acquisition (one line / set of lines)
* Number of lines
* Length of lines acquisitions
* Delay between acquisitions
* Pulse width
* Delay between pulse and beginning of acquisitions
* 200us time-gain-compensation programmable (8 bits, from 0 to Max), every 5us
5. __Extensibility__:
* 2 x Pmod connectors
* SMA plug for transducers
* RPi GPIO
6. __User Interfaces__:
* 2 x PMOD for IOs
* 4 x push button (with software noise debouncing)
* Jumpers for high voltage selection
* Jumpers for SPI selection
7. __Input Voltage__:
* 5 V from RPi or USB
* Uses 350mA-450mA at 5V (including RPi)
8. __Operating Voltage__:
* FPGA and logics at at 3.3 V
* High voltage at 25V, 50V, 75V
9. __Fully Open Source__:
* Hardware: [github repository](https://github.com/kelu124/un0rick)
* Software: [github repository](https://github.com/kelu124/un0rick)
* Toolchain: [Project IceStorm](http://www.clifford.at/icestorm/)
* Documentation: [gitbook](https://doc.un0rick.cc/)
## Latest sources
* Hardware resources are on github:
* [FPGA bin](https://github.com/kelu124/un0rick/tree/master/software) so far using Lattice's tools. A icestorm port is coming.
* Files for [v1.1](https://github.com/kelu124/un0rick/tree/master/hardware/v1.1) and [v1.01](https://github.com/kelu124/un0rick/tree/master/hardware) are available - on [upverter too](https://tools.upverter.com/eda/#tool=schematic,designId=c59550d3e0dcf944).
* FPGA files too:
* Single SMA: [v1.01](https://github.com/kelu124/un0rick/raw/master/bins/v1.01.bin)
* Two SMAs, large board: [v1.1](https://github.com/kelu124/un0rick/raw/master/bins/v1.1.bin)
* [Python lib too](https://github.com/kelu124/un0rick/blob/master/pyUn0/pyUn0.py)
## Orders
* The [board is available on Tindie](https://www.tindie.com/products/kelu124/un0rick-open-ice40-ultrasound-imaging-dev-board/) at around 489$.
* Send me a mail at __orders@un0rick.cc__ !
* Or wait for the [Tindie shop](https://www.tindie.com/stores/kelu124/)
# Others
## Changelog
* lit3rick v1.4
* Using AD8332 for more gain
* ADC: 12bits -> 10bits
* [lit3rick](http://un0rick.cc/lit3rick) __v1.3__
* lighter board
* 12bits ADC
* up5k based
* external HV modules
* un0rick dual _v1.2 - to be done
* Better HV generation
* SPI muxing to update
* Check USB too
* PMOD-compliant headers
* remove i2c header, but keep i2c to RPI (with PU)
* un0rick dual - __v1.1__
* Double SMA to possibly separate TX and RX path (for dual elements transducers)
* Still some issues with muxing
* un0rick - __v1.01__
* Rewired SPI
* Less MUXing
* The "matty board" __v1__
* First ice40 board - compatible with iceprog =)
* Only one in existence, had some SPI wiring issues
* HV module footprint reversed
## Tip: reaching 128msps
Playing with the trigger, it's possible to [interleave two signals](https://github.com/kelu124/echomods/blob/master/matty/20180814a/20180814a-Server.ipynb) and artificially double to acquisition speed, yielding clean images.
[Source experiment](https://github.com/kelu124/echomods/tree/master/matty/20180814a)
### Overview
![](https://raw.githubusercontent.com/kelu124/echomods/master/matty/20180814a/128Msps_20180813a-9-detail.jpg)
### In detail
It seems that the different series interleave quite nicely, even in the detail.
![](https://raw.githubusercontent.com/kelu124/echomods/master/matty/20180814a/128Msps_20180813a-9-fft.jpg)
## Useful links
* __Come and chat__ : join the [Slack channel](https://join.slack.com/t/usdevkit/shared_invite/zt-2g501obl-z53YHyGOOMZjeCXuXzjZow)
* The full [GitHub Repo](https://github.com/kelu124/un0rick) for the hx8k board.
* [Hardware files](https://github.com/kelu124/un0rick/tree/master/hardware)
* [Verilog for usb control](https://github.com/kelu124/un0rick/tree/master/usb) - with the [corresponding python module](https://pypi.org/project/un0usb/)
* [A version of the lib](https://github.com/kelu124/un0rick/tree/master/pyUn0) - with the [corresponding python module](https://github.com/kelu124/pyUn0-lib)
* The board's [Tindie shop](https://www.tindie.com/stores/kelu124/)
* The project [Hackaday](https://hackaday.io/project/28375-un0rick-an-ice40-ultrasound-board) page
* A [messy braindump](https://github.com/kelu124/echomods/) with all experiments, and a
没有合适的资源?快使用搜索试试~ 我知道了~
smallish ice40 / raspberrypi 超声硬件_Jupyter_python_代码_相关文件_下载
共604个文件
jpg:43个
bmp:41个
v:40个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 140 浏览量
2022-07-05
17:14:40
上传
评论
收藏 101.83MB ZIP 举报
温馨提示
概述 这是一个比较简单的单通道超声板。框图如下: 一步步 使用开源工具链对 fpga 进行编程以合成嵌入式固件。 通过 SPI 完全控制电路板,无论是通过 USB、Raspberry Pi还是arduino(尽管便宜的可能没有足够的资源来做你想做的事)。 设置采集序列 再次取回数据 处理/可视化采集 我推荐使用 RPi,尤其是无线方面的 W,然后它就变成了板级服务器。有一个专用的 20x2 标头。还准备了一个python 库。v1.0.0 版本经过 RPi4 验证。 两个控制选项:usb 或 raspberry 教程:使用 GPIO 功能区控制它 教程:用 USB 控制它 例子 用树莓派 该板连接到水中的单元素压电体,反射器在几厘米外,浸入水中。脉冲器设置为 25V 高脉冲。控制是通过用作控制器和服务器的 Raspberry Pi W 完成的,另一个 Rasbperry pi。 以 32Msps 和 64Msps 之间的小偏移量实现采集。数据被进一步探索。 更多详情、使用方法,请下载后阅读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
smallish ice40 / raspberrypi 超声硬件_Jupyter_python_代码_相关文件_下载
(604个子文件)
_mh_info 5B
simu.adf 985B
a.adf 960B
t.adf 750B
rpt_MATTY_MAIN_VHDL.areasrr 6KB
rpt_LED_VHDL.areasrr 5KB
wave.asdb 40KB
wave.asdb 4KB
t.aws 142B
a.aws 142B
simu.aws 94B
stdout.log.bak 2KB
img.bin 2MB
padded.bin 2MB
MATTY_un0rick_20180826.bin 132KB
un0rick_ms1_icecube2.bin 132KB
un0rick_ms2_icecube2.bin 132KB
MATTY.bin 132KB
v1.1.bin 132KB
v1.01.bin 132KB
v1.1.bin 132KB
MATTY_v1.1a.bin 132KB
usb.bin 132KB
un0rick_ms1_icestorm.bin 132KB
un0rick_pre_ms4_icestorm.bin 132KB
un0rick_ms4_icestorm.bin 132KB
usb_vga.bin 132KB
un0rick_ms3_icestorm.bin 132KB
usb_hvmux.bin 132KB
usb_hvmux_0.2.bin 132KB
un0rick_ms2_icestorm.bin 132KB
usb_newpulse.bin 132KB
old_usb.bin 132KB
usb_vga.bin 132KB
usb_hvmux.bin 132KB
0.bin 30KB
0.bin 30KB
layout_dynamic.bmp 1.37MB
example.bmp 900KB
g_gain.bmp 384KB
g_env.bmp 384KB
g_topturn3.bmp 96KB
g_topturn2.bmp 96KB
g_topturn1.bmp 96KB
g_env_x_axis.bmp 8KB
g_topturn_x_axis.bmp 4KB
t_ACQUISITION.bmp 2KB
t_INITDEL_=_0x.bmp 2KB
t_INTERW__=_0x.bmp 2KB
t_PONW____=_0x.bmp 2KB
t_POFFW___=_0x.bmp 2KB
t_INFORMATION.bmp 2KB
t_TOPTURN1.bmp 1KB
t_TOPTURN2.bmp 1KB
t_TOPTURN3.bmp 1KB
t_DACGAIN.bmp 1KB
t_100.bmp 566B
t_250.bmp 566B
t_200.bmp 566B
t_150.bmp 566B
t_50.bmp 406B
h_F.bmp 246B
h_3.bmp 246B
h_4.bmp 246B
h_1.bmp 246B
h_6.bmp 246B
h_9.bmp 246B
h_8.bmp 246B
h_E.bmp 246B
h_2.bmp 246B
t_0.bmp 246B
h_7.bmp 246B
h_A.bmp 246B
h_B.bmp 246B
h_0.bmp 246B
h_5.bmp 246B
h_C.bmp 246B
h_D.bmp 246B
lit3prog.cc 28KB
.cckTransfer 466B
compile.cfg 348B
compile.cfg 348B
compile.cfg 96B
library.cfg 70B
library.cfg 61B
library.cfg 61B
projlib.cfg 39B
projlib.cfg 30B
projlib.cfg 30B
MATTY_MATTY_MAIN_VHDL_timingviewer.cfg 0B
channels 1024KB
channels 1024KB
clean 100B
clean 53B
clean 45B
clean 31B
files.cmd 988B
vcom.cmd 664B
vcom.cmd 664B
.complist 327B
共 604 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- AT32与Sxx32/Gx32替换对照表
- STM32VET6单片机+XC3S250E(FPGA)+AD9708 DDS信号发生器MCU+FPGA源码+PDF硬件设计原理图
- SCIPOptSuite-9.0.0-win64-VS15.exe
- GIS10.4补丁文件
- fdgsfdgfdsgsf
- 基于CodeMirror5实现的mybatis+sql提示扩展功能,主要是用于在线设计开发场景中的动态sql部分.zip
- 计算机毕业设计-aSP.NET某中学学生成绩管理系统的设计(源代码+)-毕设源码实例.zip
- springboot集成mybatis动态sql.zip
- mybatis中的动态sql, 涉及 where trim set if foreach等
- 简单- 快递运输(Java & JS & Python & C).html
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功