<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lemilica</title>
	<atom:link href="http://lemilica.com/feed" rel="self" type="application/rss+xml" />
	<link>http://lemilica.com</link>
	<description>How-To Community</description>
	<lastBuildDate>Fri, 14 Jan 2022 08:26:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>ULX4M-LS &#8211; NLnet funded FPGA board</title>
		<link>http://lemilica.com/archives/3237</link>
					<comments>http://lemilica.com/archives/3237#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Sun, 28 Nov 2021 14:41:52 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3237</guid>

					<description><![CDATA[At start of the year NLnet decided to sponsor development of modular FPGA, for now we will call it ULX4M as first version should have everything that ULX3S already has. https://radiona.org/ulx3s/ Goal is to make board modular and add more peripherals. We are specially interested in adding fast SerDes peripherals that are now missing on ULX3S. Along with that future plans are also to create modules with multiple FPGA vendors so we can do more vendor neutral coding. https://nlnet.nl/project/ULX3S/ It all started with selecting connectors &#8211; you can check story here http://lemilica.com/archives/3158 We ware also interested in blender so Paula joined team &#8211; her story is here http://lemilica.com/archives/3141 After we selected connectors and decided to go with CM4 IO compatible pin-out we have started to disassemble ULX3S and create new smaller modular board that will fit into CM4 IO carrier boards. http://lemilica.com/archives/3204 But along with the work HW bugs arrived. On ULX4M v001 we had two &#8220;big&#8221; issues, and few smaller ones that needed a fix&#8230; First problem was that I did not know that a small board needs to provide 3.3V to a big board, so I did not connect 3.3V to the CM4 IO connector. On v001 this was fixed with a bit of wire, but that was first fixed on v002. Second big problem was that the connectors did not fit perfectly in the slot.On v002 I have moved connectors apart just a bit to get distance as described in the datasheet. Next big thing but not issue was to get better routing to SDRAM.Matching SDRAM lines is not not super important and it was working, but as we want a version with DDR3 this board is great first try to check how to do better routing.But before routing we needed to switch to a 6 layer board.On the 4 layer board it was already visible that we cannot get a perfect ground plane below all lines.So on v002 it was time to switch to a 6 layer board. Switching to 6 layers was not so problematic.I first deleted all ground polygons, then I selected power polygons and moved them off board.After that in settings I selected the stackup I wanted.I think about it and 3 signal layers should be sufficient for routing all pins. For stackup I decided to go with Signal/GND/Signal/Power/GND/Signal After I changed the layer count to 6 and named layers I checked if all signals are on the right layer.As that was ok, I selected power polygons, switched them to power layer and moved them back on the board.After that I created a new ground poligon on two ground layers.Some more cleanup was still needed so I checked all layers again and moved all power lines to the power layer. Next was to add buttons that were missing on v001.I ordered a few types and selected ones that looked and felt good. And now that we had everything set I could route SDRAM, and for that I first need to move it just a bit to the right &#8211; so I will have more room for length matching. For checking all lines length I have used action plugins https://github.com/MitjaNemec/Kicad_action_plugins In kicad you first select Route-Tune Track Length, click on longest track and remember length.After that use right click for options select &#8211; Length Tuning Settings &#8211; you can also press CTRL+L to set settings screen. On the Single Track Length Tuning screen set some length &#8211; it needs to be more or equal to the longest wire you want to tune, and that is why you need to write or remember the longest line length.After setting parameters. Now you just click on any shorter line and just pull the cursor over it. You will get those fancy curved lines. You can use the keyboard: 1 2 3 4 for spacing and amplitude of line curves. For SDRAM that should be enough, but for DDR3 we will probably need to take more things into account.For example every chip package has some line from input pin to logic &#8211; those lengths when important are mostly in the datasheet. You also need to take into consideration every layer switching you are doing especially if you are going from top to bottom layer (or opposite) as that can add significant length. And this is how routing looks now Connecting all GPIOs was also not so problematic on 6 layer boards, it is still not too crowded by signals.I also needed to take HAT routing into consideration and that is bit tricky, as on ULX3S FPGA and ESP32 are sharing significant number of lines, and hat needs to access some lines that are not available on GPIO port, that goes for SDCARD and JTAG pins, as we want to use HAT for ULX4M programming, and we want to make sure that on HAT ESP32 is able to use SD CARD. On v002 I also connected all MIPI DSI pins &#8211; on full port I have decided to put SerDes pins for experiments with v002. I also added 2.54mm pin holes on board that might be used as dipole antennas &#8211; so we can experiment if we can send/receive some data… One big thing that is still a problem is ethernet &#8211; it is hard to decide what chip to put there as none of Gb chips are currently available :(But in this version I have added a QFN48 footprint so maybe in the next version I will not need to order additional stencil. In the time I was busy with HW &#8211; emard and lawrie forked smunaut had2019-playground and added some changes needed to get it work on ULX3S and on ULX4M. Also before ordering v002 I needed to check if SerDes part needed some change, the easiest way to check that was to use LiteX. I had some issues when I tried to build it https://github.com/enjoy-digital/liteiclink/issues/4 but I somehow managed to fix it directly inside of the generated files. And after loading the loopback sample in v001 board sample, the counter that counts received packets started to blink! After SerDes confirmation it was time to order the v002 board!Prices of 6 layer boards on a small scale are double then 4 layers &#8211; but that will not be a problem once we get a bigger order… JLCPCB 5pcs. 4 Layer price €63.30 &#8211; ENIG &#8211; BLACK &#8211; 0.2/0.4mm5pcs. 6 layer price €129.91 &#8211; ENIG &#8211; BLACK &#8211; 0.2/0.4mm Stencil is €10.54 + it adds up €20 on shipping Total JLCPCB costs are: 10 pcs. ULX4M-LS v002 €140.16Stencil with frame €10.295 pcs. ULX4M HAT €6.96 Total including Tax and import fees: €257.47 It was kind of a miracle that 90pcs. of LFE5UM-85F-8BG381C parts where available on Mouser so I ordered them instantly. Price of one UM-85F if 90 is ordered is $35.330 While waiting for parts I was cleaning schematics, and sorting everything that we need for production. https://github.com/intergalaktik/ulx4m/blob/master/doc/schematics.pdf Even for ULX3S we have noted that kitspace is really cool project sharing page and it helps a lot in part ordering and checking. It also has lots of other things integrated, like pcb ordering, gerber inspection, interactive BOM that is a really valuable tool for hand placement of components… https://kitspace.org/boards/github.com/intergalaktik/ulx4m/ Hopefully I will get some time to record one video with complete ULX4M assembly. Everything arrived! So hurry hurry, assembly time is here! I got on board at 14h, and ULX4M was assembled a few hours later! So first check if the connector will slip in the socket, and it does!That was the biggest issue on v001, and only one was made, as it was really hard to fit the board to the socket. At some point I also ordered a Waveshare board and it also fit nicely! I rewrote all the lpf files and checked a few samples to see if all that worked on v002 still works… I also assembled one HAT as if that works it will be much easier to load samples. On the first HAT I have placed ESP32 WROOM, but after a day of trying to get SD card sharing to work I decided to try with another HAT with ESP32 WROVER.And instantly the SD CARD was available to ESP32! So WROOM will probably need more work. FTDI worked from the first try, so it is now possible to power board only from HAT USB and program it with fujprog, just like ULX3S.On WROVER it is also possible to program board over WIFI, and WEBREPL and FTP are also working! Bootloader was not so hard to adjust for ULX4M as smunaut, lawrie and emard already solved hard parts.I have just adjusted the pinout, and needed to remove some LEDS and BUTTONS as they are not available on ULX4M.I also changed the product, and manufacturer text in bootloader fw… After all that I tried a fixed Litex SerDes sample, it needed some pin adjustments, but as Greg suggested I updated the fpga toolchain and no more direct fixes are needed. It is producing a working SerDes PCIe loopback sample. Currently tested LEDS &#8211; OKBTNS &#8211; OKHDMI0 &#8211; OKHDMI1 &#8211; OKSDRAM &#8211; OKFLASH &#8211; OKSD CARD &#8211; OKSD CARD from HAT ESP32 &#8211; OKProgramming over HAT FTDI &#8211; OKProgramming over HAT ESP32 &#8211; OK &#8211; only WROVERUSB DFU bootloader &#8211; OKPCIe serdes loopback &#8211; OKEthernet &#8211; Not routed &#8211; chip is not selected &#8211; SERDES still connected directly to coilUSB HUB &#8211; Connected but not tested &#8211; will need lawrie help as it is probably easiest to get it from SaxonSocSERDES RX TX antennas &#8211; EXPERIMENTAL! &#8211; not testedCAM0 &#8211; EXPERIMENTAL! &#8211; All pins connected &#8211; not tested &#8211; be careful needs voltage level checkDISP0 &#8211; EXPERIMENTAL! &#8211; All pins connected &#8211; not tested &#8211; be careful needs voltage level checkCAM1 &#8211; EXPERIMENTAL! &#8211; All pins connected &#8211; not tested &#8211; voltage levels &#8211; has SERDES pinsDISP1 &#8211; EXPERIMENTAL! &#8211; All pins connected &#8211; not tested &#8211; voltage levels &#8211; has SERDES pins I also checked with NLnet and they helped me with the license and license for ULX4M series will beCERN-OHL-S v2 or later https://github.com/intergalaktik/ulx4m/blob/master/LICENSE.md Paula is still busy, but she thinks she can have a complete December just for blender! And my next task will be to make a ULX4M-LD board &#8211; D stands for DDR in our case this will be DDR3.In that time I hope other issues could be found if any and clear for ULX4M-LS v003… And last news for now &#8211; at some point CrowdSupply accepted ULX4M Submission, and we have signed a Statement of Work! So expect the CrowdSupply ULX4M preview page soon!]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3237/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Continuation of work ULX4M funded by NLnet</title>
		<link>http://lemilica.com/archives/3204</link>
					<comments>http://lemilica.com/archives/3204#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Tue, 21 Sep 2021 10:24:03 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3204</guid>

					<description><![CDATA[Milestone 2 •Start to work on first daughter board that will have selected connectorsFor start I first needed to completly dissasemble ULX3S.I did that in a way of spliting into modules. https://www.linkedin.com/posts/goran-mahovlic_ulx3s-innovation-activity-6823611763443933184-4n5O Once I had everything separated I combined parts from same module.After combining parts I checked what parts could be smaller, and changed them to smaller replacement.Once I were satisfied with size I squeezed parts together, to have a little space, but still be nice and tight. All 3 power supply modules are then sorted the same way. And rounded with lines.Now PS units are looking like a puzzle… •We will aim to have first version done simple as possibleWhile first plan was to just connect power supply and LEDS, chip shortages are teaching us to do more things at once, as parts are really hard to get. Just for a insite how hard, current wait time for lattice 85F is about 50 weeks.CM4 IO offeres a lots of periferals, and we also wanted to implement some new changes to ULX3S pinout.First thing we wanted was to change big TSOP-54 to BGA version. BGA versions are bit more expensive, but we will get more space.Initial routing is done, but I will need to take more time in next version to make it more elegant.Also changing to BGA gives us more confidence to experiment with DDR3 chip later. It would also be good if in next version I do length match, as in this version I did not do that. I did check length and it looked fine for the SDRAM.Next thing we wanted was to connect at least one HDMI port to ECP5 true differential pins, as on ULX3S that is not the case. So we connected previously connected pins to HDMI1 port, and routed new true differential pins to HDMI0 port. True differential pins migh give us bit higher resolutions as we might be able to use DDR2 primitives.Next thing was to connect JTAG, and I decided to have it connected on board connector, and on pi GPIO pins so we can use it later from the HAT.After that USB lines are connected. If working whis would give us possibility to use USB bootloader, so users would not need to have external programmer or pi HAT.CM4 IO USB pair is connected to MUX that is switching between micro USB connector and USB HUB PHY. So we can try to use both with just setting USB_ID pin HIGH/LOW &#8211; or it will be set high when we apply external power to micro USB connector(if connected to PC).For v.0.0.1 I decided to stay on 4 layer board, as I could still fit most of the things, and it would be bit cheaper. Still I dit not expect perfection and we will still see if high speed signals would work.With 4 layers it was not so easy to connect all I wanted, but I managed to connect most of it. Still not connected are most of the CM4 free GPIO pins that will be needed for pi HAT, and we still have two DSI connectors that are not connected, but once we test two that are connected we can switch to 6 layer board and route those two… 6 layer board will be needed, as it is already visible that ground plane under some pins (specialy high speed pins) is not perfect.Connecting SDCARD was easy, but on next version we want those connections to be available on GPIO &#8211; so we can access them with ESP32 module that will be on the HAT, as on ULX3S ESP32 has proven to be quite usefull…On ULX3S v3.1.6. we already have some serdespins out, but on ULX4M I managed to get all pins out, and connected them to capacitors. After that I routed one SERDES pair to top connector where PCIe pins are located on CM4 board. After that I did length match on those lines. Rest of SERDES pins are directly connected to ethernet coil. CM4 board has on board PHY that is providing Gb ethernet, but in this version we leved place for experiments with SERDES gatewares(we still do not know if something like that is possible or not, but worths a try).For DSI interfaces I have just used one differential pair. I2C is also connected if we will need it to talk to camera or display… •Order boardBoard was ordered from JLCPCB and it arrived quicklyQuality was good as expected.Stensil is also good, so we are good to go.•Board assemblyI did board assembly in Intergalaktik. At some point I found 45SUM part available, so I ordered 5 pcs. to have on stock for SERDES experimenting versions.When it comes to assembly Interactive HTML BOM plugin for KiCad is really amazing helping tool.In HW assembly you are always missing at least one part even if you check multiple times.When I was ordering parts for ULX4M I was sure I have some 0402 resitors, but at the time of assembly I could not find them. Luckaly 0603 could be placed on those connections it will just not look perfect.I discovered one more thing that osilators I ordered are bigger one for ULX3S and not smaller one I want, but I can do some dead bug oscilator on this version.It turns out that I can flip dead bug oscilator on the right side, not perfect way to connect crutial part on the board, but we will see if it will work as expected…We first need to apply paste, and we are using stencil for that. Bottom layer is done first, as you do not want to rebake FPGA if it is not needed. Also just bottom layer will give us info if powersupplys are working corectly.Once paste is applyed I used Interactive HTML BOM to place parts and after placement I bake the board in my soldering owen. If someone is making this board at home I really recomend stencil, it would be realy easy to place other parts, but this connector is not easy to solder by hand. It is possible as I already did it on first prototype, but it is just much easyer with stencil.So bottom side is done, and I connected just bottom assembled board to CM4 IO board to check connector and powersupply.Power supplyes are showing good voltages on FPGA pins(3.3V, 2.5V, 1.1V). •Board should slip into connector and blink some LEDBoard does not slips into connector perfectly &#8211; it is missing probably 1mm. But I can make it fit into connector by slightly bending CM4 IO board. Once it sits there it stays at place. So in next version I need to move those connectors 1mm furder from each other.Top side was done quicker, it has less parts, most of them are just HDMI capacitors.Placing ECP5 and SDRAM was not a problem. •User opinions, considering/fulfilling whitelists, improvement of aesthetic andfunctional designWe already have list of wishes. Maybe most important one is to add HAT to the CM4 IO.Users that are using ULX3S really want possibility of using ESP32 as on ULX3S. So we will need to connect all pins to GPIO and connect SDCARD to those pins(and probably some more) to get it as on ULX3S.On ULX3S lots of samples are already using ESP32 for example to load games with ESP32 OSD menu that is overlaying on top of FPGA picture…•Have some pictures/animation of boards snapping togetherin progress &#8211; waiting Paula •Blog post Milestone 3 •Fixing issues with first daughter boardWe did first version with care, so lot of things are already working, but sill we will need more adjustments, but we will move those chages to milestone 4•Starting to work on main boardChip shortages, for now better to invest time in smaller boards.HW companies and makers and probably others are currently facing really tough problem, and that is global chip shortages. I will not go into depth on that fiels as it is already writen multiple time, but I will just say that if we order lattice 85F chips today, soonest they can aperar is 50 weeks. And that is almost a year of wait. And still no one will garantie that the price will not rise in that time. one more problem is that you cannot just order chips and wait you need to pay them, then pay more if price rise, and that is currently quite an issue. Guided by that we invested double effort in first revision of modular board and make it compatible with already existing CM4 IO board. CM4 IO boards are everywhere, and there is also nice set of opensource boards, so instead doing one more CM4 IO board we will just use as much as we can from already available boards on the market.•Add all ULX3S peripherals to the board, and leave placeholders for new peripheralWe have almost all and more periferals on CM4 IO board, plan is to reuse CM4 IO board, and add missing periferals to HAT board. •User opinions, considering/fulfilling wishlist&#8217;s, improvement of aesthetic andfunctional designHAT board will need to have two USB connectors for connecting PS2 and USB keyboards, joysticks, mouse.Would be great if we get simple VGA on the HAT, as VGA connector is always usefull to have.I already wrote about ESP32 on HATAs we do not have any buttons on ULX4M we need to place some of them to HAT board.Few more LEDS are always usefull to have.Maybe also simple ethernet PHY but we will first see if we can get onboard or PCIe version working.POE would be super usefullWe could probably have one HDMI inputWould be cool if we do it respecting CM4 board, so that users with CM4 can also use HAT (or at least some parts of it)DDR3 version of ULX4M is needed at some pointIf SERDES version of ethernet is not possible we need to consider to have Gb ethernet chip on ULX4M board, but we also need to be carefull about that as adding just one chip can prolonge production by quite a long time. •Blender animationin progress &#8211; waiting Paula•Main board assembly •Write Verilog examplesTested &#8211; and we already have working Verilog examples: LEDS &#8211; on board LEDS Blink led link: https://twitter.com/RadionaOrg/status/1438095898144301060 JTAG &#8211; on board connectorFLASH &#8211; on board flash2 x HDMI output (one true differential &#8211; so we can try better resolutions) USB bootloader &#8211; TinyBootloader &#8211; tnt will help us get DFU bootloader64Mb SDRAM (tested with memtest)SD CARD (tested with Next186) Connected but not tested: MIPI DSI displayMIPI DSI cameraPCIeUSB HUB chipEthernet (we have SERDES pins connected to connector) •Test onboard peripheralsPictures •Twitter and LinkedInI am constantly trying to show or progress on twiter and LinkedIn •CrowdSupplyI already contacted CrowdSupply and send all info needed to open ULX4M preview page. So we can check what is the interest on this board, and maybe get other valuable feedback. They will check, but they already love the board form factor. •Blog post Milestone 4. •Adding high speed peripherals to the main boardPCIe connector is a great high speed periferal for experiments•ULX4M repo cleanupwill do next &#8211; current repo is cloned from ULX3S, and all work in done on top of it, so it needs a good cleaning process so it bacame usefull to others… From discord user Philpax has answer why having small board and carrier board is good idea The board is a standard, which means there are multiple carrier boards https://pipci.jeffgeerling.com/boards_cm In the general case, same thing, just maybe not as many]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3204/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modular FPGA board</title>
		<link>http://lemilica.com/archives/3158</link>
					<comments>http://lemilica.com/archives/3158#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Fri, 14 May 2021 07:20:10 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3158</guid>

					<description><![CDATA[At start of the year NLnet decided to sponsor development of modular FPGA, for now we will call it ULX4M as first version should have everything that ULX3S already has. Later we want to add more peripherals, and we are specially interested in adding fast peripherals that are now missing on ULX3S. Along with that future plans are also to create modules with multiple FPGA vendors so we can do more vendor neutral coding. https://nlnet.nl/project/ULX3S/ We started this project with buying few versions of connectors. We selected cheaper ones &#8211; as we want to preserve affordability if ULX3S board. Little bit better connectors are priced around $7-$10 per pc. sometimes even more, and our plan was to have 4 connectors on each side (main board / module). Raspberry CM4 is using connector that is available from multiple sources, and should remain available on longer period… It should also be fast enough, as on raspberry it is used for two HDMI outputs. Even before this grant we noticed that include artists and designers early in process of making is almost crucial for project success. We have noticed that there are amazing 3D models done by PCB Art on twitter so we decided to experiment with KiCad and Bleder skills. In Radiona we had open call for members to join Blender team. Paula answered with wish to be included in this project. She already has some experience in Blender but not in the area of 3D PCB designs &#8211; read the blender story here: http://lemilica.com/archives/3141 If you are doing something similar please check PCB Art blog posts: https://www.pcb-arts.com/en/ At first we toughs that we will make connector test boards with some power supply and LEDS but after I had a talk with emard, and we concluded that connecting some LEDS and power supply will not tell us much about connectors.So we decided to go with GPDI in out &#8211; that way we could see if we can pass higher speed signals without issues. While Paula and me experimented with Blender, we saw that there is possibility of object tracking. To do tracking in blender we will need some tracking points. With that on our mind we decided to create some art graphics that will be printed on the PCB. Paula created images and I placed those on our sample board… After having some blender pictures we had idea of simple movie that will show boards snapping together. Here is experimental animation from Paula Boards arrived so it was time for assemblyDid not think I should order stencil, and I found on the hard way that it is really hard to get those connectors on the board without stencil. Bottom connectors are not so problematic. Top connectors are much more delicate and harder to work with With few tries I finally managed to get them, but passing signal did not work &#8211; so I checked board wiress and found that I made quite a mess with connections. Luckily differential lines are connected right. But all single ended wires are miss connected.So I cut all single ended wires on board you can see that on top picture.And patiently connected each single ended wire from one side of the board to the other side. Not a perfectly looking fix&#8230; After that &#8220;small&#8221; fix I connected cables and finally got picture. Good thing to know is that having 4 connectors did not make any problems &#8211; boards still connect nicely together. It would be even better if it was done with stencil &#8211; as connectors would be alligned better.As this connector is used in raspberry for passing HDMI signals we already new that this should work, but it is always a pleasure to reconfirm :) Next big thing will be decision of PCB stack-up, and connector pin-out.We are still trying to decide if we need to go with CM4 pin-out compatibility or with our rotation concept… Join us on discord: https://discord.gg/QtvyHQUMp8]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3158/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modular FPGA board &#8211; blender</title>
		<link>http://lemilica.com/archives/3141</link>
					<comments>http://lemilica.com/archives/3141#respond</comments>
		
		<dc:creator><![CDATA[Paula]]></dc:creator>
		<pubDate>Thu, 13 May 2021 10:05:04 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3141</guid>

					<description><![CDATA[Paula: Blender: We imported the board from KiCad in various formats into Blender in order to get the most customized and simple object for editing or manipulation. The first problems were related to the excess geometry that occurs when importing .stl and .obj format. This problem needs to be solved at the beginning due to complications which happened with colouring part of the object or with selecting many surfaces. I made a mistake colouring objects after adjusting the whole animation, so there was a lot of problems that were difficult to fix and I lost a lot of time. I’ve learned that the process should be followed this way: import file, separate components, clean geometry, colour components, parent objects, set the scene with the lights and the background, animate, render. Description of the process: Import .stl document &#8211; imported board becomes one object, without the possibility of selecting components, the board will be divided into components in edit mode: (A) select all &#8211; (P) separate by loose parts. In edit mode, you can see how much geometry the object contains and here it should be reduced to the number of surfaces and vertices to a level where the object will not deform. It is necessary to select all in edit mode and apply hotkeys M &#8211; Merge, B &#8211; by Distance, X &#8211; Delete, L &#8211; Limited Dissolve. It is possible now to select each component in object mode, they became separate objects. Connectors should be parented (P) in object mode with a board so that they do not fall apart during animation or to behave as a single particle. For some reason, that kind of parenting didn&#8217;t work for me in the animation, so I set one Empty for each board, which was the parent of all other parts and that solved the problem. In our case, we separated the base from the connector. After cleaning the geometry, each component is coloured in the Shading editor. We used silver colour for the connector pins and black matte colour for the connector body. The base itself is also black, however the roughness is reduced which gives a slight reflectivity to the surface. The graphic drawing was inserted as a .png file and positioned in the UV editor. In the shading editor, the image texture node is connected to the principled BSDF node and the .png file is assigned to it. With this principle, each surface of the object has the same pattern of the graphic drawing. I solved this problem by selecting the face area and creating a new material slot in the material properties panel with graphics inserted in base colour. Roughness is also adjusted as a black colour for the body, otherwise the rendered image would show the graphics as square label. The board also has a copper-gold material in the holes. A plane was created for the scene as a hard surface where the boards stand. Colour code is #363E41, roughness is set to maximum and metallic value is 0.174. The background was “the world” which defines the environment that the scene is in. Two soft boxes were made for lighting the objects in the scene and parented with camera, so whenever the camera is moved the light source is not in the frame but still enlightens the object in focus. Each soft box has strength value of 10 000 and base colour #FFFCE9. We made animation where the boards flip in the air like coins and merge at the end. It was necessary to adjust the camera, key frames and emphasize the connection of the boards with light. All changes were made in a graph editor where it is possible to change the position, rotation and scale of the selected object on the XYZ axis. I took the plane mesh and turned it into a light object with an Emission shader. This light is not needed to be visible all the time in the animation, so it was necessary to animate fading of the object at a particular point in timeline. I got this effect by connecting a transparent BSDF node and an emission node to the mix shader by moving the slider of Fac value which is activated in the material properties panel under the mix shader option. Fading or transparency and emission are animated. Pressing the diamond icon next to the slider will place the key frames on the timeline. For rendering, we chose Cycles which allow a more natural appearance of the visualization. In Cycles the light effect is weakened, so there is not enough luminescence. This situation was solved after rendering material in the Compositing workspace by connecting the Render layers node with the Glare node which has the Fog glow option in it’s menu. This option restored the light emission and gave the accent when boards were connected. First rendered material had some visual noise in the brighter parts and rendering time was very fast. To solve the noise we used de-noising option in render properties panel. Select NLM option (which is Non-local means denoiser) and activate it by checking the Render box.]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3141/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Adjusting microscope focus with adapter ring</title>
		<link>http://lemilica.com/archives/3129</link>
					<comments>http://lemilica.com/archives/3129#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Fri, 12 Feb 2021 14:44:28 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3129</guid>

					<description><![CDATA[At some point I have ordered microscope. I wanted one that would have Simul-Focal Stereo with HDMI out that would allow me to work on it looking on eye peaces while recording or streaming at the same time. But it was impossible to get good focus at eye-peace and on the HDMI at the same time. I could get it close to good if I loose camera holder, but then it was shaky and not stable, but I was to lazy to fix it with some 3D printer ring&#8230; One day my friend Darko arrived, and saw that this is not stable. As he is always targeting perfection he told me he can fix this in no time&#8230; He did fast sketch of new adapter ring Next day he was back with aluminum ring And from that day microscope is working perfectly!]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3129/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Running wordpress in docker container</title>
		<link>http://lemilica.com/archives/3125</link>
					<comments>http://lemilica.com/archives/3125#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Fri, 12 Feb 2021 14:05:19 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3125</guid>

					<description><![CDATA[For long time I wanted to have backup of lemilica, as I had lots of problems with site remaining up. So few days ago I decided to try docker containers. Create wordpress.yml with your favorite editor Copy code bellow to the file. If you do not need phpadmin you can remove those lines Change your_MYSQL_ROOT_PASSWORD and your_WORDPRESS_DB_PASSWORD to something else,change server_wordpress_path to some path on server wordpress can access and run with docker-compose -f wordpress.yml up -d That should give you wordpress running on port 8081 and phpadmin on port 8082]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3125/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cheap EOS3 BGA64 design</title>
		<link>http://lemilica.com/archives/3117</link>
					<comments>http://lemilica.com/archives/3117#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Fri, 12 Feb 2021 12:16:54 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<category><![CDATA[Mikrokontroleri]]></category>
		<guid isPermaLink="false">http://lemilica.com/?p=3117</guid>

					<description><![CDATA[I bought EOS3 BGA on CrowdSupply and as I started to work on my board. After some time I have discovered that it would be hard to make it at low price.If I would do it correctly I would need to use small vias, probably buried vias so for few boards that did not make sense to me…But as I still wanted board I had some idea to do it hacky way. If I do not use VIA under BGA then all will be good and cheap. I tough that one of two approaches should work.First idea was to use just the pins I need &#8211; and not to place pads for the pins I do not need. But then I looked at the datasheet and as I discovered some pins in datasheet would not mind if they are connected on startup I used other approach.Connected some pins together so if that would work I could use more pins at the end… I ordered board from OshPark &#8211;https://oshpark.com/shared_projects/bjR6vplZI assembled board And start to study tool chain. Finally understood how to &#8220;compile&#8221; everything, but I run on the issue. Problem is that I can load fw to board, but LED does not blink and if I connect to debug board I see https://github.com/QuickLogic-Corp/qorc-sdk/issues/86 Problem is that now I an stuck as I tried many things in software, and I am not sure that HW is done right. https://github.com/intergalaktik/QuickL &#8230; QuickBGA64]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/3117/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using NodeRed and Grafana to log Gateway coverage</title>
		<link>http://lemilica.com/archives/2899</link>
					<comments>http://lemilica.com/archives/2899#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Mon, 26 Mar 2018 08:40:26 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/using-nodered-and-grafana-to-log-gateway-coverage</guid>

					<description><![CDATA[Using ttnmapper to map nodes is often good start for mapping. But ttnmapper is still closed source and you can only use it for showing coverage of TTN gateways. If you have your own infrastructure you need some other way to visualize your GPS data. So first you need to have your data received in NODE-RED and I will not write here about that. You can get data from TTN or from your own loraserver. So now that you have your data arriving you need to setup few nodes. But first you need to install support on your server To install install worldmap node use npm cd ~ cd .node-red npm install node-red-contrib-web-worldmap After installing restart your node red and you should be able to see worldmap in your browser http://server:1880/worldmap If you do not have it already &#8211; you will need to install grafana and influxdb support To get data into right format we need two more things geohash cd ~ cd .node-red npm install node-red-node-geohash and Grafana plugin cd ~ grafana-cli plugins install grafana-worldmap-panel /etc/init.d/grafana-server restart Now you need to create database in infux from console on your server you can just: influx >CREATE DATABASE gps >exit Now we have all installed and ready for our data Go to node-red and create nodes like this here is code for function nodes ParseDataForOpenstreetMap should look like this node.status({fill:"green",shape:"ring",text:"Start"}); var hex = msg.payload.data.toString(); var raw = new Buffer(hex, 'base64'); if (raw[0]==0x01 &#038;& raw[1]==0x88){ var latitude = (raw[2]]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/2899/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reversing Mini Fabrikator V2 (Malyan M100) 3D Printer</title>
		<link>http://lemilica.com/archives/2855</link>
					<comments>http://lemilica.com/archives/2855#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Fri, 12 Jan 2018 08:09:19 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/reversing-mini-fabrikator-v2-malyan-m100-3d-printer</guid>

					<description><![CDATA[&#160; And all of this started when EMARD ordered one Mini Fabrikator V2 For a some time I have this small printer I have buy it from EMARD that already applied  his fixes on it. When you get printer it usually comes partially disassembled with missing or unscrewed bolts and screws. When you fix that you are usually trying to set repetier host working over serial port, and on this printer this is not a good Idea. Serial port is bad to. We have tested it on linux, windows and mac and it is not working. Maybe you will be able to get is to start printing, but after few minutes you will end up in some error :( We enven tried to print over TCP you can connect to printer on port 23 and use it that way, but we got same errors. But ok printer has nice web interface and you can somehow set it over serial. In windows you can use putty  and in linux you can try screen screen /dev/ttyACM0 115200 will give you blank screen so you need to type M550 to get defaultSSID now setup the wireless M550 YourSSID M551 YourPassword all without quotes Now wait a bit and enter M552 &#8211; you will get IP of the printer. Go to web page of the printer and you are now in nice GUI (if you have internet connection) So again problem. This printer is getting all images and js files from internet and that is not secure. But anyway, you can now send GCODE over web and all will work! Well you can if GCODE if smaller then 1Mb, and usualy it is not :( So another problem that needs to be fixed. So how to print? The only way I can print is to put auto00.g to SD card, then printer print flawlessly (considering the price and with good settings). And I could live with that, but members of my maker space decided to buy more of this printers, so we ended up with 12 printers. From 10 ordered printers only one was ready to print, rest was missing something. After working on them for a few days we manage to get almost all printers to good shape. &#160; We had only one printer that has 12V connected to GND, and sometimes it is working (probably some wire is cut). But we will fix that. After fixing all those problems, I had one more problem with my printer(first one). My bed sensor started to show 1000 degrees. My last successful print :( After this print I got this. So it is problem with sensor or with bad solder on stm32. So I decided to take it apart! And when I got the board out I was thinking &#8220;somethings must to be done&#8221;. So I decided to reverse it and to try improve it a bit more. First I needed schematics. So I measured a bit and put all on git &#8211; it is still unfinished. https://github.com/goran-mahovlic/stm32Board Then rest of crew told me that they can get table up to 100 degrees, and EMARD could get table maximum on 65 degrees. So I have searched for a new fw but did now find newer. There is update for part of the firmware and it is done by putting bin file on SD card, but how could I be in safe zone with that fw. Maybe I could put it in but will it brick my printer? So I needed better way. I already had all parts on my table so first I have tried to extract ESP8266 fw. I did send mail before to Malyan if they can give me source for ESP8266 to remove linking to outside sites, and to transfer code to ESP32, but did not get any response. Extracting fw from ESP was easy. I just used ESPTOOL and I got fw, but will it work? ESP image is here https://yadi.sk/d/NHcmoVuC3R9MLS And inside this fw are all passwords and SSID I have used :) So I have connected my ESP to original board and instantly got WEB gui :) So now I need STM32 fw. I did try swd, and serial, but it seams both are locked. Even BOOT1 and BOOT0 pins are used for other purposes. But why bother with on board chip I can try available bin file from web site and connect it to ESP. So I downloaded file, and try to flash but got some errors with st-flash. It was complaining that code is to big to fit. Then I have read that some bluepill have 128K. And that DFU loader is recognizing it like 128K. So I decided to put DFU bootloader. https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Flashing-Bootloader-for-BluePill-Boards And after that I used arduino to check how it is uploading code to board, and just changed binary to available one. And ended up with working 3D printer bluepill :) Now I can experiment a bit with my new printer clone. First thing I want to try is to create simple soft that extract bootloader to SD card so I can extract original from fw. Then maybe to experiment and create bootloader that extract fw from board (I did not find new version for M100 &#8211; the one with table able to get to 100 degrees). And main thing I want to try is to get Marlyn fw working on this printer and for wireless part to use ESP32. You can get original fw from here http://wiki.malyansys.com/doku.php?id=home#firmware_for_m100 http://malyansys.com/downloads/mm32/update.bin Now download bootloader https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pc13.bin connect stlink and write bootloader to bluepill st-flash write generic_boot20_pc13.bin 0x8000000 next remove stlink, connect bluepill to usb &#8211; LED should blink Now load update.bin maple_upload ttyUSB1 2 1EAF:0003 update.bin Now you have all you need to continue with non invasive reversing!!! Note that serial over USB will not work (you do not have right bootloader) I have tried V1 and V2 bootloader but for now did not get it to show as serial device :( Ok I have found a reason why it was not working. Maple bootloader is a bit smaller then V1 and V2 bootloader so you need to do it like this While having maple bootloader connect SD card and put update.bin and empty fcupdate.flg to empty SD card Now flash V2 bootloader st-flash write V2LOADER.bin 0x8000000 it will reboot and LED will not be on please wait until LED gets ON disconnect all try to connect bluepill with USB You should have serial port now ;) And then Radiona member Marvin compiled Marlyn for Malyan It is easy to switch between firmwares. We still need to get all pins to work and usb-serial is not working&#8230;. This week we even have organized workshop in our makerspace to apply EMARD fixes rest of the new printers :) http://radiona.org/nadogradite-svoj-3d-pisac-fabrikator-v2/]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/2855/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mini fabrikator v2 3d printer win7 x64 driver &#8211; fastest way</title>
		<link>http://lemilica.com/archives/2842</link>
					<comments>http://lemilica.com/archives/2842#respond</comments>
		
		<dc:creator><![CDATA[Goran Mahovlić]]></dc:creator>
		<pubDate>Sat, 30 Dec 2017 19:29:49 +0000</pubDate>
				<category><![CDATA[Elektronika]]></category>
		<guid isPermaLink="false">http://lemilica.com/mini-fabrikator-v2-3d-printer-win7-x64-driver-fastest-way</guid>

					<description><![CDATA[]]></description>
		
					<wfw:commentRss>http://lemilica.com/archives/2842/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
