Change log#
0.43.0#
Removed the deprecated API of accessing the visualizer as a remote node, i.e. samna.open_remote_node(viz_id, “visualizer”). Instead use the event-based visualizer API (
samna.ui.VisualizerConfiguration
).
0.42.1#
Fix the configuration order of clock registers for XyloAudio 3.
0.42.0#
Internal improvements to the build infrastructure.
Fix the bug where MacOS wheels were only generated for version 15.0.
0.41.2#
Fixing the address out of range of Delta32 fixup bug when using JIT.
0.41.1#
Add option to automatically read XyloAudio 3 input registers in Real-Time mode with
samna.xyloAudio3.DebugConfiguration.monitor_input_neurons_enable
.
0.41.0#
This version drops support for very old platforms. * Update minimum glibc version to 2.28 for Linux wheels. * Update minimum MacOS version to 13.0 for MacOS wheels.
0.40.0#
Upgrade compiler to clang-19. This compiler is also used for JIT compiled filters, so JIT filters can use all C++20 language features supported by the new version.
0.39.14#
Fixed a bug where the timestep counter was not reset for XyloAudio 3.
Move RAM access control to
samna.xyloAudio3.XyloConfiguration
instead of the model and use sane defaults.Use clock dividers relative to main clock instead of absolute frequencies in
samna.xyloAudio3.XyloAudio3TestBoardDefaultConfig
.
0.39.13#
Fixed a bug where the OUT0 pin was driving by XyloAudio 3 and FPGA at the same time leading to high IO power consumption. Requires firmware version 1.5.1 for the XyloAudio 3 Test Board.
0.39.12#
Avoid aliasing of power measurement results for XyloAudio 3 to improve accuracy when downsampling.
0.39.11#
Optimized
samna.graph.source_to
andsamna.graph.sink_from
functions by for cases where the target node is a device node, resulting in significantly faster script startup times.
0.39.10#
Made
<iostream>
header available in JIT filter. It is now possible to usestd::cout
debugging when developing a JIT filter.
0.39.9#
Fixed a bug where XyloAudio 3 ignored the configured clock frequencies.
0.39.8#
Support Direct Output mode of XyloAudio 3.
0.39.7#
Fix bug where get_stop_watch().stop would call start() instead of stop().
0.39.6#
Add 2nd synapse current for XyloAudio 3.
Disable unused memories for XyloAudio 3 to save power.
Simplify input source selection for XyloAudio 3.
0.39.5#
Add support for python 3.12 on Linux and MacOS.
0.39.4#
Improve XyloAudio 3 documentation.
0.39.3#
Add function to obtain I2c byte streams for XyloAudio 3 configuration.
Add functions to obtain SPI byte streams for Xylo-A2 core and AFE configurations.
0.39.2#
Add Recording mode to XyloAudio 3 for audio frontend output recording.
Improve
samna.unifirm.timestamp.StopWatch
interface.
0.39.1#
Optimize default configuration for XyloAudio 3 analog frontend for better performance.
0.39.0#
Official support for XyloAudio 3 with finalised configuration.
0.38.11#
Improve robustness of XyloAudio 3 startup.
0.38.10#
Fix configuration of analog registers
0.38.9#
Add check to verify communication with XyloAudio 3 board when initializing the board
0.38.8#
Allow receive wave status packet on Speck2fCharQiuciBoard.
0.38.7#
Fix code coverage build
0.38.6#
Add initial support for XyloAudio 3
0.38.5#
Update Samna compilation instructions
0.38.4#
the
set_waveform_length
doesn’t require sample number minus 1 anymore.
0.38.3#
Expose missing low-level functions for Speck2fQiuciBoard
0.38.2#
Fixed crash when Speck2e receives wrongly encoded data.
0.38.1#
Improve Speck2f DVS performance
0.38.0#
Drop support for python 3.6 and 3.7 on Linux and Intel MacOS
Add support for python 3.l1 on MacOS
0.37.11#
Waveform generator can trigger correct wave.
The
config_dac
ofsamna.unifirm.waveformGenerator.WaveformGenerator
only allow set one DAC value at a time.The minimal sample resolution is 3 microseconds for
set_sample_factor
ofsamna.unifirm.waveformGenerator.WaveformGenerator
.
0.37.10#
Support 4 * 4 noc for Speck2fCharQiuciBoard
Add waveform generator to Speck2fCharQiuciBoard
0.37.9#
Fix index url to install real samna.
0.37.8#
Add waveform generator.
0.37.7#
Fixed a bug that stopped uploading the package to pypi.
0.37.6#
Internal improvement.
0.37.5#
Do not make unneeded symlinks inside the python package directory
0.37.4#
Fixed a bug with local wheels introduced in version 0.37.3
0.37.3#
Fixed a bug with local wheels introduced in version 0.37.1
0.37.2#
Release memory when clear event on sinks
0.37.1#
Support local versions of wheels as defined by PEP440, marked by version numbers X.Y.Z+xyz
0.37.0#
Support Speck2fCharQiuciBoard for internal testing.
0.36.7#
Support setting base address of test binary and executing all tests at once in FPGA test runner
0.36.6#
Add Specksim types to Jit Headers.
0.36.5#
Fix the import samna fail problem
0.36.4#
Revert the changes in 0.36.3
0.36.3#
Do not throw exception if Speck2f apply configuration timeout. (BUG)
0.36.2#
Add
samna.speck2fBoards.Speck2fModuleLoulanBoard
for internal testing.
0.36.1#
Add packet hook to
samna.xyloImuBoards.XyloImuTestBoard
.
0.36.0#
Bring up XyloAudio3.
0.35.4#
No changes except fixing the tag mishandling from 0.35.3
0.35.3#
NOTE: this version was never deployed due to mishandling of tags * add optional to skip chip ready check in speck2f loulan board. * do not convert bootFromFlash to bootFromPc down the call stack in speck2f loulan board
0.35.2#
Remove edge detection control module in speck2f loulan board.
0.35.1#
Adapt testing module timestamp result structure to latest changes in unifirm
0.35.0#
Support Speck2f lcc84 Loulan Board.
0.34.0#
Support Xylo Audio3 testboard initially.
0.33.6#
Add timeout option for apply_configuration of speck2f.
0.33.5#
Internal improvement to CI environment
0.33.4#
It is not allowed to set CNN layer’s pooling to 8 on Speck 2f and Speck 2e
0.33.3#
Remove problematic Xylo-IMU example:
Xylo-Imu Convert Acceleration to Spike
.
0.33.2#
Prevent setting neuron threshold low to 0 on Speck2f and Speck 2e
Fix the doc string for
samna.speck2f.event.Spike
andsamna.speck2e.event.Spike
Add doc strings for
samna.speck2fBoards.UnifirmModule
andsamna.speck2eTestBoard.UnifirmModule
0.33.1#
Xylo-IMU update:
Fix an internal bug about fifo space control.
Add a demo to demonstrate how to convert acceleration events to input spikes by IMU_IF: Xylo-Imu Convert Acceleration to Spike.
0.33.0#
Add Specksim submodule (high performance speck simulator implemented), for more details, please refer to Sinabs.
0.32.3#
Fix samna version in Xylo-IMU examples.
0.32.2#
Add missing registered filter names to documentation.
0.32.1#
Xylo-IMU update:
Reset board automatically when openning the board.
Change
bpf_a1_values
andbpf_a2_values
attribute ofsamna.xyloImu.configuration.InputInterfaceConfig
from unsigned int to signed int.Modify values of the above two attributes from unsigned to signed in online examples of Xylo-IMU.
0.32.0#
The
SplittingNode
, deprecated since 0.30.0, has been removed. TheEventTypeFilter
andMemberSelectFilter
can be used instead.
0.31.9#
Add examples for Xylo-IMU to display how to use it in samna:
Add an introduction page Xylo-IMU.
Rename
HiddenSpike
tosamna.xyloImu.event.HiddenSpikeCount
and renameReadHiddenSpike
tosamna.xyloImu.event.ReadHiddenSpikeCount
in Xylo-IMU.
0.31.8#
Improved stretching behaviour of FramePlot and ActivityPlot. The plots maintain the height-width proportion when stretched.
0.31.7#
Rename
ReservoirSpike
tosamna.xyloImu.event.HiddenSpike
and renameReadReservoirSpike
tosamna.xyloImu.event.ReadHiddenSpike
in Xylo-IMU.
0.31.6#
Support
samna.xyloImu.event.Interrupt
event on Xylo-IMU andsamna.xyloCore2.event.Interrupt
event XyloA2. Everytime an interrupt emits from chip, anInterrupt
event comes out.
0.31.5#
Internal improvement.
0.31.4#
Internal improvement.
0.31.3#
Internal improvement.
0.31.2#
Xylo-IMU update:
Timestep of
samna.xyloImu.event.Readout
has been changed from to be processed timestep to last processed timestep, you could refer to Xylo-Imu Readout for updated demos.Accelerated mode and realtime mode now support
samna.xyloImu.event.TriggerProcessing
event to trigger specific count until target timestep reaches, you could refer to Xylo-Imu TriggerProcessing for demos.
0.31.1#
Give a warning when graph is destroyed while running or without any start.
0.31.00#
bump
libviz
version to 0.4.0Remove dependency of
samna
to openGL: image validation beyond filesystem checks is moved tosamnagui
, where an error window now pops up in case of invalid image.
0.30.27#
Extend
PacketSniffer
to a general purposeUnifirmHook
.
0.30.26#
Rename
timestamp
totimestep
insamna.xyloImu.event.Spike
.
0.30.25#
Fix online demos of
Dynap-CNN series
.
0.30.24#
Rename attribute names of
samna.xyloImu.event.Readout
.
0.30.23#
BasicSinkNode
supports key word argument and default argument.
0.30.22#
Internal improvement.
0.30.21#
Rename
set_auto_read_period
tosamna.unifirm.modules.mc3632.Mc3632.set_auto_read_freq
insamna.unifirm.modules.mc3632.Mc3632
which sets a frequency for auto reading.Enrich documentation to explain timestep/timestamp explicitly in Xylo-IMU.
0.30.20#
Refactor output event
samna.xyloImu.event.Readout
in Xylo-IMU to monitor network state and replaceNeuronStateSinkNode
.
Please refer to Xylo-Imu Readout for demos.
0.30.19#
Internal improvement.
0.30.18#
Introduce generic module configuration packet event
samna.unifirm.modules.events.WriteModuleConfig
. Currently, onlysamna.mooreaTestBoard.TestingModule
supports it.
0.30.17#
Xylo-IMU only reports fifo empty error when fifo empties instead of being empty.
0.30.16#
Add configuration_timeout to
samna.xyloImu.configuration.InputInterfaceConfig
to control how long samna waits for the configuration to finish.
0.30.15#
Increase the VIH voltage range from 1.2V to 3.7V on Speck2f characterization Board v1.3.
0.30.14#
Fixed a bug where python package is not removed properly by pip.
Note that the fix does not solve the problem in an environment if it has been caused by previous samna versions.
0.30.13#
Various improvements in
ImageReconstructFilter
filter.set_limits()
changed toset_limit_potentials()
requiring an extra parameter neutral_potential.Renamed
set_decay_contribution()
toset_decay_factor()
.
0.30.12#
Internal improvement of Xylo-IMU.
0.30.11#
Fix a bug on old visualizer api caused by tcp connection delay.
0.30.10#
Fix failure of
samna.xyloImuBoards.XyloImuTestBoard.reset_board_soft
on xylo imu.
0.30.9#
Fix bug about old visualizer api.
0.30.8#
Expose samna.xyloImuBoards.MeasurementChannels to python.
0.30.7#
Move Acceleration event from XyloImu to global
Acceleration
.samna.xyloImuBoards.XyloImuTestBoard.enable_manual_input_acceleration
is added to enable/disable manual input of acceleration data. setImuSensorEnable to replaced by it.getEvents of BasicSinkNode may throw out exception samna.SinkError with message and events members when there is any internal exception occurs in samna.
0.30.6#
Expose
MooreaTestBoardDefaultConfig
in python.Clarify documentation for
JitFunctionFilter
.
0.30.5#
Allow configuration on opening MooreaTestBoard with
MooreaTestBoardDefaultConfig
Default behaviour initializes the board for regular use with Speck3.
0.30.4#
Fix the failure of setting voltages in some cases on Speck2e, Speck 2f, Speck3, Xylo-IMU and Xylo-A v2 boards.
0.30.3#
Add power measurement to Xylo-IMU.
0.30.2#
Fix reset failure in some cases for Speck 2e/2f/3 boards.
0.30.1#
Internal improvement.
0.30.0#
Upgrade samnagui to use event-based interfaces. The old remote-node use of samnagui has been deprecated. For more information about the event-based interface look in the documentation for Visualizer.
0.29.7#
Visualizer now support a frame based plot
0.29.6#
Revert the changes in 0.29.4.
0.29.5#
Only return openable devices from flasher
get_programmable_devices
.
0.29.4#
Compensate the voltage drop on the input signals on the Speck2f characterization board v1.3
0.29.3#
Support Speck2f characterization Board v1.3.
0.29.2#
Allow get board serial number through flasher.
0.29.1#
Internal improvement.
0.29.0#
Support Xylo-IMU which integrates a Xylo-Core and a MC3632 sensor to detect acceleration.
0.28.4#
Update proximity deteciton demo of speck2f boards.
0.28.3#
Internal improvement.
0.28.2#
Internal improvement.
0.28.1#
Support Speck2f characterization board v1.2
0.28.0#
Added filter for image reconstruction for Speck series devices based on an accumulator algorithm. More details and usage can be found in the documentation of
ImageReconstructFilter
.
0.27.22#
Internal improvement.
0.27.21#
Internal improvement.
0.27.20#
Add some speck2f examples to documentation.
0.27.19#
Internal improvement.
0.27.18#
Internal improvement.
0.27.17#
Internal improvement.
0.27.16#
Invert order between stop packet dump and chip reset in testing module reset -> now the chip is reset after sending stop packet dump action code
0.27.15#
Allow open speck2f serial boards with default configurations.
0.27.14#
Fix the bug that apply configuration fails even if GPIO 7-10 is remapped to SPI_S
0.27.13#
Add method to get the board serial number from the board object for Speck 2e, Speck 2f, Speck 3.
0.27.12#
Fix the bug where, for MooreaTestBoard, reset_model now properly exposes the skip_is_ready_check boolean as an optional argument.
0.27.11#
Add clear_events function to
BasicSinkNode
.
0.27.10#
Fix the bug that get incorrect
ReadoutPinValue
on Speck2fModuleDevKit in some cases.
0.27.9#
Make
EventCropNode
supports cropping to only one pixel.
0.27.8#
Internal improvement.
0.27.7#
Automatically handles GPIO remap for Speck2fModuleDevKit
0.27.6#
Remove useless items from Speck 2f configuration
Improve the power consumption of IO power traces of Speck 2f
Fix the bug that the Speck2fDevKit can’t be accessed in Python
0.27.5#
Internal improvement.
0.27.4#
Fix bug about rgb frame encoding for Speck 2e.
0.27.3#
Internal JTAG improvement for Speck 2e.
0.27.2#
Internal improvement.
0.27.1#
Improve DVS performance on Speck 2f.
0.27.0#
Support Speck2fModuleDevKit, which is the dev kit with a Speck 2f optical module.
Support Speck2fDevKit, which is the dev kit with a CQFP80 packaged Speck 2f.
0.26.11#
Internal improvement.
0.26.10#
Internal improvement for Speck 2e/2f
0.26.9#
Implicitly reset chip every time an ExecuteTest event is sent to the testing module
0.26.8#
Implemented
DvsEventToViz
for Speck* series and DynapCNN-B, except for Speck.This can be used through JIT interface as
JitDvsEventToViz
.
0.26.7#
Added get_firmware_versions function to test boards and devkits to get Fxtree and Unifirm versions of the device.
0.26.6#
Add function configuration_to_flash_binary to speck2f.
0.26.5#
Support write/read board id.
0.26.4#
Update Speck 2e/2f sram timing default values
0.26.3#
Internal improvement.
0.26.2#
Fix bug that complie error when using
JitSpikeCount
andJitMajorityReadout
.
0.26.1#
Internal improvement.
0.26.0#
Support Speck 3 TestBoard
0.25.6#
Improve performance of
apply_configuration`
of speck2e, speck2f and speck3.
0.25.5#
Improve constructor performance of events.
0.25.4#
Pickle support for Speck 2f/3’s events
Keyword arguments support for Speck 2f/3’s events
0.25.3#
Do not throw if Speck 2f characterization board receive incorrect data but log an error message
0.25.2#
Internal improvement
0.25.1#
Add builtin two instances of
EventCrop
:Speck2eSpikeEventCrop
Speck2fSpikeEventCrop
0.25.0#
Support Speck 2f characterization board
0.24.1#
Internal improvement.
0.24.0#
Support Speck3 moorea test board.
0.23.4#
Add product id and vendor id for all supported devices in documentation.
0.23.3#
Add
IoControlModule
to write IO configurations to chip directly. This is only for internal debugging purposes.
0.23.2#
Internal improvement
0.23.1#
0.23.0#
TestingModule of MooreaTestBoard now has a source node that can be used to query the results of a test suite run.
0.22.7#
Internal improvement
0.22.6#
0.22.5#
Add source
in Speck2e DvsEvent
to tell where this event comes from.
If a Speck2e DvsEvent
object is constructed by users, the source
is default set to External
. If it comes from the chip, it is either
PreProcessorLayer
which means from the DVS pre-processor layer,
or Sensor
which means from the DVS raw event.
0.22.4#
Internal improvement
0.22.3#
Add functionality to speck2f:
Add option
low_pass_mode_enable
.Add function to generate the flash configuration.
Apply special memory address mapping to speck2f.
0.22.2#
Add
EdgeDetectionModule
to Speck 2e to receviceEdgeSync
events from FPGA.
0.22.1#
Bind complete types for all instances constructed via string in ~samna.graph.EventFilterGraph.sequential
calls. Fixed types are:
Speck2bInputEventTypeFilter
Speck2bMiniInputEventTypeFilter
Speck2bMiniInputMemberSelect
Speck2bMiniOutputMemberSelect
Speck2cMiniInputMemberSelect
Speck2cMiniOutputMemberSelect
Speck2dMiniInputEventTypeFilter
Speck2dMiniInputMemberSelect
Speck2dMiniOutputMemberSelect
0.22.0#
Add board object for moorea test board. Supports uploading test suite from a little endian byte stream, and executing a single test.
0.21.8#
Adapt Speck2eDevKit to board modification that increases range of power measurements (each power trace with \(\pm\) 50uW offset).
0.21.7#
Fix neuron address mapping for layer 0 and layer 1 of speck2e/t.
0.21.6#
Add
reset_board_soft
on Speck2eDevKit to reset FPGA and peripherals.Remove
reset_board_hard
on Speck2eDevKit.Fix the Speck2cMiniTestBoard’s
get_dac
, Speck2dMiniTestBoard’sget_dac
and Speck2eDevKit’sget_dac
to return the correct object.
0.21.5#
Internal improvement.
0.21.4#
- For Speck 2e only:
Change the default DVS direction for the Speck 2e DevKit
Add description about the spike decimator and congestion balancer
Specify the default values for configurations
Fix a typo in the name
output_mode_sel
Update the CNN destination layer description, the support values are [0, 8] for other CNN layers and 12 for the readout layer
Fix a typo in the name of
threshold
Update DVS
merge
,on_channel
,off_channel
settings’ description.
0.21.3#
Internal improvement.
0.21.2#
Fix a bug on speck2e flash configuration which causes dvs filter registers fail to write from flash.
0.21.1#
Update the Udev rules on Linux systems to support the Mother Board v2
0.21.0#
BREAKING CHANGES
BufferSinkNode
, already deprecated in version 0.10.5 in favor ofBasicSinkNode
, has been removed.
To migrate, simply swap BufferSinkNode_*
with BasicSinkNode_*
.
EventFilterGraph’s node instance methods
add_destination
,remove_destination
andget_input_channel
, deprecated since version 0.11.0, have been removed.
As further detailed below, the latter were used to connect the device model event sink or event source to an external node or a computational graph.
Getting events from a device
Previously, events from the model source node could be obtained as follows:
# create an external sink node of a known type, in this case a DynapCNN.
sink = samna.BasicSinkNode_dynapcnn_event_output_event()
# connect the model source to the sink with deprecated functions.
dev_kit.get_model_source_node().add_destination(sink.get_input_channel())
# read the events from the sink, an array of events will be returned.
events = sink.get_events()
In the new version, the preferred way of getting events from a device is to connect the corresponding device model source node to
a BasicSinkNode
whose type matches the events produced by the device. This can be done with the samna.graph.sink_from
function.
For example, to collect all the events generated by a device:
# get source node of model.
source = dev_kit.get_model().get_source_node()
# create a sink node and connect it to the source node of the model.
sink = samna.graph.sink_from(source)
# read the events from the sink, an array of events will be returned.
events = sink.get_events()
As is apparent from the above snippet, the sink_from
function automatically provides a sink instance of the correct type,
thus reducing the burden placed on the user. On the other hand, if the type of BasicSinkNode
is known, it is also possible
to create an instance of the sink node directly before forwarding it to the EventFilterGraph.sequential(...)
method along with the source node.
# Create an instance of the graph filter
graph = samna.graph.EventFilterGraph()
# Receive events from a DYNAP-CNN model source.
source, ..., sink = graph.sequential(dev_kit.get_model().get_source_node(), ..., samna.BasicSinkNode_dynapcnn_event_output_event())
# Start the computational graph
graph.start()
# read the events from the sink, an array of events will be returned.
events = sink.get_events()
Sending events to a device
Events can be sent to a device by using a BasicSourceNode
to stream events to its model sink node. Previously, these two nodes could be connected as follows:
# initialize a BasicSourceNode of a known type, in this case a DynapCNN.
source = samna.BasicSourceNode_dynapcnn_event_input_event()
# get sink node of model.
sink = dev_kit.get_model().get_sink_node()
# connect source node to sink node via deprecated functions.
source.add_destination(sink.get_input_node())
# write events to the source node.
source.write([evt1, evt2, evt3, ...])
To migrate to the new version, the samna.graph.source_to
function can create the appropriate source node for a given sink node, if a direct connection is needed:
# get sink node of model.
sink = dev_kit.get_model().get_sink_node()
# connect source node to sink node
source = samna.graph.source_to(sink)
# write events to the source node, it will stream events to the sink node automatically.
source.write([evt1, evt2, evt3, ...])
On the other hand, if the type of BasicSourceNode
is known, it is also possible to create an instance of the source node directly
before forwarding it to the EventFilterGraph.sequential(...)
method together with the sink node. Other filter nodes can be added between the source and sink nodes.
# Create an instance of the graph filter
graph = samna.graph.EventFilterGraph()
# Send events to a DYNAP-CNN model sink - additional filter nodes can be added in between the two
source, ..., sink = graph.sequential(samna.BasicSourceNode_dynapcnn_event_input_event(), ..., dev_kit.get_model().get_sink_node())
# Start the computational graph
graph.start()
# write events to the source node, it will stream events to the sink node automatically.
source.write([evt1, evt2, evt3, ...])
Please note
The removal of add_destination
, remove_destination
, and get_input_channel
methods does not concern any type used by the visualizer. More specifically, SplittingNode and the ZMQReceiverNode remain unaffected by this change.
0.20.10#
Internal improvement.
0.20.9#
Internal improvement - visualizer now communicates directly with PythonNode instead of the SamnaNode
0.20.8#
Add an example for displaying Speck 2e DVS events
Add Speck 2e brief specification in the documentation
0.20.7#
Fix import error.
0.20.6#
Internal improvement.
0.20.5#
Internal improvement.
0.20.4#
Internal improvement.
0.20.3#
Fix power measurement on Speck 2e devkit.
Change vendor id of Speck 2e devkit to 0x337d.
0.20.2#
Add speck3 model
0.20.1#
Add same FPGA test suite functions to speck2eTestBoard.fpgaTestSuite:
encode_events: convert events to raw packets;
get_pulse_slow_clk_packet: get a pulse slow clock packet.
0.20.0#
Support Speck2eDevKIt
0.19.23#
Internal improvement.
0.19.22#
Internal improvement.
0.19.21#
Fix the bug that PacketDataView access out of bounds.
0.19.20#
Internal improvement.
0.19.19#
Add function configuration_to_flash_binary to speck2e.
0.19.18#
Fix wrong default value of RGBConfig in speck2e.
0.19.17#
Internal improvement.
0.19.16#
Internal improvement.
0.19.15#
Do not move around TAP states between unifirm packets.
0.19.14#
Add Speck2f model.
0.19.13#
Internal improvement.
0.19.12#
Internal improvement.
0.19.11#
Internal improvement.
0.19.10#
support monitoring the 4 readout pins of Speck 2e.
SpeckConfiguration.readout
has a new member calledreadout_pin_monitor_enable
which enables the monitoring of the 4 readout pins. Once enabled and ifSpeckConfiguration.readout.enable
is also true, theReadoutPinValue
will be outputted if an interrupt happens. Default isFalse
.Fix the bug that the dual output mode of Speck 2e can’t be enabled
0.19.9#
Support spi-bridge mode for Speck2e.
0.19.8#
Remove libusb and use usbee.
0.19.7#
Internal improvement.
0.19.6#
Fix start up failure of new visualizer.
0.19.5#
Internal improvement.
0.19.4#
Internal improvement.
0.19.3#
Internal improvement.
0.19.2#
Internal improvement.
0.19.1#
Internal improvement.
0.19.0#
Introduce persistent cache for JIT filters. Code compiled with the JIT will be cached as object files in a hidden folder placed in the user’s home directory (~/.samna/jit_cache/PYTHON_VERSION-SAMNA_VERSION).
The cache can be flushed programmatically with the samna.jit.clear_jit_cache function:
samna.jit.clear_jit_cache()
0.18.16#
Add a check to the validation that Isyn2 can’t be monitored if synapse 2 is disabled.
0.18.15#
Internal improvement.
0.18.14#
Internal improvement.
0.18.13#
Fixed undefined behaviour when shifting bits past their integer widths.
0.18.12#
Fix the wrong type of dynapcnn input event type filter.
0.18.11#
Add CameraToSpeck2bInput to filters.
0.18.10#
Fix dvs plot flicker on speck2b.
0.18.9#
Fix a bug that append an unwanted bit when encode JTAG stream.
0.18.8#
Implement rgb input interface registers of speck2e/-t.
0.18.7#
Fix some wrong document and constants in Speck2e.
0.18.6#
Support sending frame data to dvp interface for Speck2e.
0.18.5#
Initial work for experimental event-based visualizer.
0.18.4#
Add DynapCNN-B model
0.18.3#
Internal improvement
0.18.2#
Internal improvement
0.18.1#
move samna.device.get_empty_devices to samna.flasher.get_empty_devices.
add a new function get_programmable_devices to samna.flasher to get all devices can be programed by program functions of samna.flasher.
add a new type flasher.DeviceInfo for all functions in samna.flasher to replace device.DeviceInfo.
0.18.0#
- Reworked device controller to be aware of devices opened in other processes.
get_all_devices()
returns all supported devices, even those in use by another process.get_unopened_devices()
does not return devices that are opened in any process.
The ID in the string overload of
open_device()
is now optional. Without ID the first available device of the given type is opened.daughter_board_num
has been removed fromsamna.device.DeviceInfo
For more information refer to the documentation
Note that FX3 firmware v0.5.6 or higher is required to work with the device controller. If the device is not recognised as the correct type, but just a generic
MotherBoardV0
, the firmware has to be upgraded.
0.17.25#
move samna.graph.nodes.Dynapse1NeuronSelect_dynapse1_dynapse1_event to samna.dynapse1.nodes.Dynapse1NeuronSelect_dynapse1_dynapse1_event
move samna.graph.nodes.Dynapse1NeuronSelect_dynapse1_dynapse1_event to samna.dynapse1.nodes.Dynapse1NeuronSelect_dynapse1_dynapse1_event
0.17.24#
Support embedded timestamp in ADC power measurements.
Automatically reset the timestamp after enable/disable the
samna.unifirm.timestamp.StopWatch
0.17.23#
- Add fast output mode for speck v2e
- Set factory_config.fast_output of speck2e.Configuration to True to enable. If enabled, at most one of these fields can be set to True:
dvs_layer.raw_monitor_enable
dvs_layer.monitor_enable
cnn_layers[0].monitor_enable
cnn_layers[1].monitor_enable
cnn_layers[2].monitor_enable
cnn_layers[3].monitor_enable
cnn_layers[4].monitor_enable
cnn_layers[5].monitor_enable
cnn_layers[6].monitor_enable
cnn_layers[7].monitor_enable
cnn_layers[8].monitor_enable
0.17.22#
Impove JIT filters compilation time.
0.17.21#
Internal improvement for Speck 2e/2e-t
0.17.20#
Update the jit filter example in Example JitFilter
0.17.19#
Internal improvement
0.17.17#
Improve accuracy of BackgroundNoiseRater.
0.17.16#
Allow kill pixels on Speck 2e-t
0.17.15#
Internal improvement for Speck 2e/2e-t readout monitor
0.17.14#
Add support for cameras as supported in OpenEB 3.0.2
0.17.13#
Fix memory leak of Dynapse1.
0.17.12#
- Add ClusterTrackerFilter to assign DVS events to clusters.
Only the Circular clustering algorithm is supported.
0.17.11#
Support JitEventCrop filter on speck2e.
0.17.10#
Support writing and reading daughter board info on mother board v1.
0.17.9#
Improve DVS performance of speck2e
Update configuration of speck2e
Add speck2e filters and fix error on init model of speck2e
update addresses of sram and readout register of speck2e
0.17.8#
Support discover mother board v1.0
0.17.7#
Internal improvement
0.17.6#
Internal improvement
0.17.5#
Internal improvement
0.17.4#
Internal improvement
0.17.3#
Add method to read/write
DaughterBoardInfo
and request the number of daughter boards.
0.17.2#
Internal improvement
0.17.1#
Internal improvement
0.17.0#
Support Speck 2e TestBoard
0.16.11#
Update Speck 2b dvs layer configuration, dvs_layer.monitor_enable controls the monitor of dvs pre-processing layer and dvs_layer.monitor_sensor_enable controls the monitor of raw dvs events from the sensor.
0.16.10#
Add unifirm module for speck2eTestBoard.
0.16.9#
Internal improvement
0.16.8#
Internal improvement
0.16.7#
Internal improvement
0.16.6#
Internal improvement
0.16.5#
Add method to request number of daughter board and daughter board info
0.16.4#
Fixed bug that prevented upgrading of samna from a version below 0.14.36
0.16.3#
Add
DvsEventClusterFilterNode
andDvsEventEfficientClusterFilterNode
.
0.16.2#
Internal improvement
0.16.1#
For Speck 2d-mini only:
support monitoring the 4 readout pins of Speck 2d-mini.
SpeckConfiguration.readout
has a new member calledreadout_pin_monitor_enable
which enables the monitoring of the 4 readout pins. Once enabled, theReadoutPinValue
will be outputted. Default isFalse
.
0.16.0#
Official support for Apple M1 wheels.
0.15.6#
Internal improvement for Apple M1 deployment.
0.15.5#
Add support for Apple M1.
0.15.4#
Internal improvement
0.15.3#
Internal improvement
0.15.2#
Improve samna’s wheel size on linux.
0.15.1#
Internal improvement
0.15.0#
Internal improvement
0.14.37#
Internal improvement
0.14.36#
Internal improvement
0.14.35#
Internal improvement
0.14.34#
Internal improvement
0.14.33#
Support new fx3 API.
0.14.32#
Internal improvement
0.14.31#
Fix Readout event decoding error in xyloa v2.
0.14.30#
Correct description of
set_rescaling_coefficients
of DvsEventRescale in doc.
0.14.29#
Improve safety when writing from multiple threads.
0.14.28#
For Speck 2b-mini/2c-mini/2d-mini only:
Improve DVS performance
Optimize configuration
SpeckConfiguration.readout
has a new member calledenable
(defaultFalse
) which enables the readout block of the chip. An external slow clk must be provided on SLOW_CLK pin ifSpeckConfiguration.readout.internal_slow_clk
isFalse
.SpeckConfiguration.readout
has a new member calledinternal_slow_clk
(defaultFalse
) which removes the need for external slow clk ifSpeckConfiguration.readout.enable
isTrue
.SpeckConfiguration.readout
has a new member callledmonitor_enable
(defaultFalse
) which lets the chip output ReadoutValue ifTrue
. However, if set toTrue
, you can’t monitor DvsEvent and Spike anymore.SpeckConfiguration.cnn_layers
has a new member calledleak_internal_slow_clk_enable
(defaultFalse
), which removes the need for external slow clk ifleak_enable
isTrue
.filter_bypass
ofSpeckConfiguration.dvs_filter
is replaced byenable
(defaultFalse
) for easier understanding. IfTrue
then the filter is enabled, but an external slow clk must be provided on SLOW_CLK pin ifinternal_slow_clk
isFalse
.SpeckConfiguration.dvs_filter
has a new member calledinternal_slow_clk
(defaultFalse
) which removes the need for external slow clk ifSpeckConfiguration.dvs_filter.enable
isTrue
.The Spike and DvsEvent monitoring is enabled by default now.
0.14.27#
Internal improvement
0.14.26#
Fix the bug that the
apply_configuration`
of Speck 2b-mini/2c-mini/2d-mini would hang forever if the network is too large.
0.14.25#
Fix the neuron values memory mapping for layer 0 of Speck 2b
0.14.24#
Do not override the configuration by default if the Speck 2b-mini/2c-mini/2d-mini boots from an external flash.
0.14.23#
Allow open DYNAP-SE2 Stack and DYNAP-SE2 DevBoard by
open_device
.
0.14.22#
Add spi test board.
0.14.21#
Add reset function to device models.
0.14.20#
Add SpikeCountNode and SpikeCollectionNode to speck mini series.
0.14.19#
open_device
function now returns the previously opened device on subsequent calls.Removed
get_open_device_by_info
function. Useopen_device
instead.
0.14.18#
Add documentation of xyloa v2.
0.14.17#
Internal improvement
0.14.16#
Internal improvement
0.14.15#
Add source node to ATIS module.
Change ATIS event to contain the raw data.
0.14.14#
Internal improvement
0.14.13#
Add documentation for DYNAP-SE1
0.14.12#
Allow using the
get_model_sink_node
in graph sequential method.
0.14.11#
Update default configuration for AFE2. Note:
The configuration option for enabling individual channels of the Xylo-A v2 AFE has been removed. All AFE channels will be enabled when the AFE is configured.
0.14.10#
Fix the bug that fail to erase sectors on some flash
0.14.9#
Internal improvement
0.14.8#
Fix calculation of number of bits for scan chain of speck 2b-mini/2c-mini/2d-mini
0.14.7#
Internal improvement
0.14.6#
Sort out the startup code for xyloa2.
0.14.5#
Internal improvement
0.14.4#
Fix encoding of configuration event of the internal test chip
0.14.3#
Internal improvement
0.14.2#
Internal improvement
0.14.1#
Internal improvement
0.14.0#
Add support to an internal test chip
0.13.15#
Add background noise rater for Speck 2c-mini and Speck 2d-mini
0.13.14#
Add xylo a2 testboard.
0.13.13#
Internal improvement.
0.13.12#
Add support for Speck2bReadout module
0.13.11#
Add afe2 unifirm module.
0.13.10#
Internal improvement.
0.13.9#
Add afe2 model.
0.13.8#
Internal improvement.
0.13.7#
Internal improvement.
0.13.6#
Add demo script to documentation
0.13.5#
Rename xyloAudio2 to xyloA2.
0.13.4#
Adjust the examples in documentation to the newest samna.
0.13.3#
Allow assignment of CnnLayerConfig to cnn layers in speck2b configuration.
0.13.2#
Internal improvement.
0.13.1#
Improve internal test structure.
0.13.0#
Add speck 2d-mini test board
0.12.5#
Internal improvement.
0.12.4#
Improve internal testing structure.
0.12.3#
Add HotPixelFilter and BackgroundActivityFilter.
0.12.2#
Allow device controller to return opened device handle by its device information.
0.12.1#
Add documentation for jit filters.
0.12.0#
Add support for user defined C++ filters and classes to specialize samna’s builtin filters.
0.11.11#
Add xylo core2 unifirm module.
0.11.10#
Make filter input and output collections constant to prevent unintended modification.
0.11.9#
Extend support of jit classes to single template classes and normal classes.
0.11.8#
Mark model tests as flaky, so they are repeated until they pass.
0.11.7#
Add default input type for flasher api: print_firmware_header_from_file.
0.11.6#
Rename SourceWrapper to JitSource and SinkWrapper to JitSink.
0.11.5#
Export PSEE plugins inside the wheel.
0.11.4#
Add support for
UartCtrl
unifirm module
0.11.3#
Add xylo core2 model.
0.11.2#
Fix race condition in unit tests
0.11.1#
Move the UI related components into the ui namespace
0.11.0#
Changed the return type of the graph’s sequential method from the list of node ids to a list of node handles.
The graph’s low level construction functions now operate with node handles instead of node ids.
0.10.34#
Fix the binary data generation from the Speck 2c-mini configuration.
0.10.33#
Improve internal dependencies structure.
0.10.32#
Improve printing format.
0.10.31#
Let device controller stores devices locally instead of using the store.
0.10.30#
Update for Speck V2c Mini:
Support connecting a CNN layer to the readout blocking
Support the hot pixel filtering feature
Support convert configuration object to a binary file
Update documentation
0.10.29#
Add example script to test power measurement.
0.10.28#
Clean up speck2.
0.10.27#
Fix a bug to display dvs.
0.10.26#
Add asynchronous API for usb devices.
0.10.25#
Add documentation for Speck 2c mini.
0.10.24#
Update the documentation structure for Speck and Dynap-CNN series.
0.10.23#
Refactor the power measurement interface.
0.10.22#
Erase an internal test.
0.10.21#
Make new samna compatible with old firmware.
0.10.20#
init_samna
can be called multiple times, subsequent calls will not overwrite the previous values.
0.10.19#
Discover devkits and test boards by device name.
0.10.18#
Add a blocking dequeue method for PacketQueue.
0.10.17#
Update for Speck V2c Mini:
Add events for readout settings
Rename
decodeMonitorBusEvents
todecodeOutputSerialInterfaceEvents
, and add the third argument for enabling readout decoding.Add
setReadoutDecodingEnable
to theioModule
, it should be used if we want to get readout events via async input interface.Add
resetBoardHard
to the board class.The
resetBoardHard
andresetModel
can accept a boolean to set if boot from pc.
0.10.16#
MemberSelectNode member can accept snake_case name.
0.10.15#
Fix integration tests.
0.10.14#
Add support for runtime sources and sinks.
In graph
sequential
function with thesource
andsink
wrappers.Standalone with the
source_to
andsink_from
functions.
0.10.13#
Refactor implementation of graph sequential function.
0.10.12#
List all basic packages that samna relies on.
Standardize the example code, make it run directly with a board.
Link samna documentation url in the pypi page.
Add note for USB-C cables must be USB 3.0 capable
Explain more details about device name.
Upgrade samna in examples.
0.10.11#
Improve stability of graph sequential function.
0.10.10#
Fix distribution versioning.
0.10.9#
Add support for native python samna components.
0.10.8#
Offer default value for autoYes input in flasher functions.
0.10.7#
Add support for Prophesee cameras.
Allow opening these devices through the DeviceController.
0.10.6#
Performance improvement
0.10.5#
Deprecate
BufferSinkNode
in favour ofBasicSinkNode
0.10.4#
Add Change log to documentation
0.10.3#
Update filter documentation
Change some descriptions of filters
Add more filters into the documentation
0.10.2#
Performance improvement
0.10.1#
Fix a bug that the
CustomReadout
node may gets stuck
0.10.0#
Support Speck2c Mini TestBoard
0.9.39#
Improve timestamper API, now the timestamper is controllered by
setTimestamperEnable()
of the board object.
0.9.38#
Support XyloDevKit
0.9.37#
Allow set timeout to
samna.init_samna()
0.9.36#
rename
AfeModel::disableSaerInterface
toAfeModel::setSaerInterfaceEnable
0.9.35#
Add documentation for flasher
0.9.34#
Refactor XyloTestBoard and XyloAudioTestBoard
Rename XyloTestboard to XyloTestBoard
Rename XyloAudioTestboard to XyloAudioTestBoard
Add methods to configure clock rate
Add method to do hard reset of board
Add method to disable the saer interface of AFE model
0.9.33#
Upgrade svejs to 0.2.11
0.9.32#
Boot FPGA automatically after flash FPGA firmware to flash.
Allow set
autoYes
argument to suppress the confirmations when flash firmware.Remove useless message when flash an empty board.
Include configuration ID when print header.
0.9.31#
Allow read/write a single SRAM address on Speck2b Mini test board.
Add method to decode Speck2b Mini test board async interface input event.
Add method to decode Speck2b Mini test board monitor bus output event.
Support power measurement on Speck2b Mini test board.
Add method to reset the Speck2b Mini chip on its test board chip.
Add method to configure the Speck2b Mini test board’s CLKs.
Set Speck2b Mini DVS default max originate to 63.
Add function to compute Speck2b Mini SRAM address from an event.
0.9.30#
Add method to reset the whole board for DynapcnnDevKit, Speck2bDevKit, Speck2bDevKitTiny, Speck2bTestboard.
0.9.29#
Add documentation for Speck2b series boards.
0.9.28#
Support set reject type in EventTypeFilter.
0.9.27#
Update documentation for visualizer:
samnagui
needs to be imported aftersamna
.
0.9.26#
Support send raw input events to Speck2bTestboard
0.9.25#
Rename pollen to xylo
0.9.24#
Support pip install driectly from pypi. Now samna can be installed with
pip install samna
.
0.9.23#
Minor bug fix.
0.9.22#
Update documentation about visualizer. Open visualizer in another shell.
0.9.21#
Minor bug fix.
0.9.20#
Fix image error in documentation
0.9.19#
Add documentation for visualizer.
0.9.18#
Fix JIT on Python 3.10
0.9.17#
Accept JIT filter node in the sequential construction of event filter graph
0.9.16#
Minor bug fix.
0.9.15#
Add basic description to DynapcnnDevKit in documentation
Add an example about connect DVS to DynapcnnDevKit and display the DVS events
Add an example about gesture recognition demo on DynapcnnDevKit
Add an example about sending recorded data to DynapcnnDevKit
Update filters in documentation
Update Dynapcnn and DynapcnnDevKit API reference
0.9.14#
Minor bug fix
0.9.13#
Bug fix for Speck2b Mini test board
0.9.12#
Bug fix for
CustomFilterNode
0.9.11#
Bug fix for afe model
0.9.10#
Minor bug fix
0.9.9#
Support JTAG interface on Speck2b Mini
0.9.8#
Fix a bug that the program stutters when logging too frequently
0.9.7#
Publish JIT node
0.9.6#
Fix a bug in logging
0.9.5#
Remove the output of unused message on xylo
0.9.4#
Minor bug fix
0.9.3#
Performance improvement
0.9.2#
Allow MemberSelect filter to copmare not only arithmatic types
0.9.1#
The first release of JIT filter
0.9.0#
Support Speck2b Mini test board
0.8.54#
Bug fix in
add_filer_node
0.8.53#
Add
sequential
method to replaceadd_filer_node
0.8.52#
Fix Samna on Python 3.5 on Mac
0.8.51#
Add speck2b Mini model
0.8.50#
Performance improvement
0.8.49#
Performance improvement
0.8.48#
Performance improvement
0.8.47#
Performance improvement
0.8.46#
Fix a bug that the Samna raise an error when the program exit
0.8.45#
Fix a bug that the
get_events()
method of a buffer sink node hangs
0.8.44#
Minor bug fix
0.8.43#
Performance improvement
0.8.42#
Fix a bug that the Speck2b input interface stucks if sending too much events
0.8.41#
Performance improvement
0.8.40#
Performance improvement
0.8.39#
Add documentation for Device Controller
0.8.38#
Fix a bug that the
open_device
throws an exception
0.8.37#
Refactor Device Controller:
Remove
OpenedDevice
structget_opened_devices()
return a list of pairs of the name of an opened device and itsDeviceInfo
Allow invoke
open_device()
in the format of DeviceType:ID and returns the device name if success orNone
if fails
0.8.36#
Add support for Speck2b DevKit Tiny
0.8.35#
Add support for Speck2b DevKit
0.8.34#
Performance improvement
0.8.33#
Fix a bug that the program hangs if the board disconnect before closing its
0.8.32#
Fix a bug that on some machine there is no image in visualizer
0.8.31#
Add color in logging messages
0.8.30#
Remove verbose messages from DynapSE 2
0.8.29#
Add logging
0.8.28#
init_samna()
return a reference to the internal samna node
0.8.27#
Make all filter name in camelCase
0.8.26#
Performance improvement
0.8.25#
Add
get_configuration()
to Afe, Dynapcnn, DVS128, Speck2b
0.8.24#
First release of documentation
0.8.23#
Support install Samna from pypi
0.8.22#
Add a filter node to calculate neuron traces for DynapSE 1
0.8.21#
Performance improvement
0.8.20#
Performance improvement
0.8.19#
Support writing waveform data to XyloAudioTestBoard
0.8.18#
Performance improvement
0.8.17#
Fix a bug in the dvs crop setting of Dynapcnn and Speck2b