Topic for #qi-hardware is now Copyleft hardware - http://qi-hardware.com | hardware hackers join here to discuss Ben NanoNote, atben / atusb 802.15.4 wireless, and other community driven hw projects | public logging at http://en.qi-hardware.com/irclogs
<kristianpaul>
game changer?
<wolfspra1l>
wpwrak :-)
<wolfspra1l>
he means fpgatools I would think
<wolfspra1l>
or maybe the pcb etching that I keep procrastinating on? :-)
<wolfspra1l>
fpgatools will be no game changer for sure
<wolfspra1l>
though the project is really great
<wolfspra1l>
(for me)
<wolfspra1l>
the more I work on that, the more I value the existing tools, open or closed
<wolfspra1l>
which is to be expected
<wolfspra1l>
can't wait to move forward to the xc7a100, yesterday I started peeking into xc7 documentation :-)
<wpwrak>
yeah, the fpga tools. and if they're not a game change, then something's very wrong in this world :)
<wolfspra1l>
I don't think this is such a binary problem
<wolfspra1l>
maybe later on the tool can find a niche, maybe
<kristianpaul>
ah yes pcb etching is fun too ;)
<wolfspra1l>
I have to say I start to like the chips more too, what's inside them, things like the mcb, gtp, upcoming adc
<wolfspra1l>
the zynq
<wolfspra1l>
and so on
<wolfspra1l>
xilinx is moving behind vivado 100%
<wolfspra1l>
so ise will be a thing of the past soon
<wpwrak>
the most important bit may not be the tools themselves but rather what they reveal
<wpwrak>
maybe someone will just read the code and then hack a synthesis system in haskell
<wolfspra1l>
even for new 7-series designs, ise seems officially 'unsupported'
<wolfspra1l>
(quoting their own xcell publication)
<wpwrak>
divide yourself and be conquered ;-)
<wolfspra1l>
ise had a 15 year life
<wolfspra1l>
and maybe that's enough
<wolfspra1l>
so we have to see. 'game changer' doesn't resonate with me
<wpwrak>
feels as agile as if it didn't have a day more than 150 years on its back ;-)
<wolfspra1l>
if a few more serious people find fpgatools and if it creates any value for them, I will be happy
<wolfspra1l>
how can you say that without knowing what it does, what requirements they had to meet to get to where they are, or the alternatives?
<wpwrak>
the fpgatools prove that synthesis can be done (without access to privileged information)
<wolfspra1l>
yes
<wpwrak>
this breaks down one of those "this is impossible" barrieres
<wolfspra1l>
but I don't think anyone from xilinx/altera or others would have suspected anything else
<wpwrak>
like supersonic flight
<wolfspra1l>
'this is impossible' only in the circles of relatively meaningless and immature babbling
<wpwrak>
once someone has proven it's possible, things suddenly get a LOT easier
<wolfspra1l>
we should not underestimate people, but also not overestimate them
<wolfspra1l>
the world may not be full of werners :-)
<wpwrak>
and your proof is a constructive one, i.e., it also shows how it's done
<wolfspra1l>
one by one
<wolfspra1l>
I'm at 0.1%
<wolfspra1l>
working on the luts again, actually
<wolfspra1l>
more cases
<wolfspra1l>
fixed 0, fixed 1
<wolfspra1l>
and there are luts in a lot of varieties (in the encoding), they are all different depending on whether they sit in the a-d position, or x/l/m slice, or lut6 or lut5
<wolfspra1l>
etc. etc.
<wolfspra1l>
I brought that stuff exactly to the level I needed for the AND gate, but now for the blinking led I have to take it a bit higher
<wpwrak>
cute ! your "inside an fpga" book will be a bestseller :)
<wolfspra1l>
and I can already see the next steps later, because the luts can also be used as rom, ram, shift registers, etc.
<kristianpaul>
wpwrak: book yes ;)!
<wolfspra1l>
kristianpaul: you have read the sources a bit, please let me know if you have any questions
<kristianpaul>
wolfspra1l: yes ram please :)
<wolfspra1l>
I will probably apply werner's if (model->rc) error handling idea soon
<wolfspra1l>
because it cuts down the number of lines of code, which I always like
<kristianpaul>
wolfspra1l: yes i will, i'm reading x6 datasheets again
<kristianpaul>
now hello world make more sense
<wolfspra1l>
and I have to do this soon before the codebase is at 50k lines :-)
<wolfspra1l>
thanks for that werner!
<wolfspra1l>
I just have to get used that the code running throuhg all sorts of functions in an 'error state' is not an ugly thing :-)
<wolfspra1l>
maybe run around the block twice, cold shower, then I'm ready for the change :-)
<wolfspra1l>
kristianpaul: ram support is a lot of work
<wolfspra1l>
expect it a little later
<wolfspra1l>
first the logic blocks
<wolfspra1l>
even those are just 5% supported now
<wolfspra1l>
something like that
<wolfspra1l>
then bram, macc
<kristianpaul>
sure sure
<wolfspra1l>
each bram device has about 190 pinwires :-)
<wolfspra1l>
and a macc slice about 350
<wolfspra1l>
that's a lot of stuff going in and out that has to be tamed/understood/processed in a meaningful way
<kristianpaul>
where you count the pins from the library datasheet?
<wolfspra1l>
werner is right about one thing though
<wolfspra1l>
I am looking at details, lots of them, thousands
<wolfspra1l>
and I may get lost in the details and not see the big picture, i.e. where to apply this today
<wolfspra1l>
so once in a while I should get out of the pile of details and see whether this makes sense to anyone outside
<wolfspra1l>
I will
<wpwrak>
great ! you may also find people who can help. once the problem appears less overwhelming, others may feel confident enough to give it a try
<wolfspra1l>
kristianpaul: you find the data in the documentation, dsp48a1 slice etc.
<wolfspra1l>
it just takes a bit of time to put the pieces of the puzzle together in running code as opposed to dozens of pdf files
<wpwrak>
and of course, there are thousands of people out there who spent the best years of their lives studying all the sort of nasty algorithms you'll need to give meaning to the low-level stuff you're digging up.
<wolfspra1l>
that's why I'm hesitating about the game changer
<wolfspra1l>
yes there is a lot of business in those chips, and applications
<wolfspra1l>
BUT, they are tied to existing workflows, tools, ip/reusable cores, etc. etc.
<wolfspra1l>
if you take it all out, the value drops a lot
<wolfspra1l>
but for myself I do believe this is the right thing since I don't want to start somewhere inside the existing toolchains
<wolfspra1l>
I just start with the chip naked like a little baby
<wolfspra1l>
then the milk bottle
<wolfspra1l>
then take it from there :-)
<wolfspra1l>
I think the zynq chip is something quite interesting
<wolfspra1l>
btw xilinx acquired a small linux solution provider recently
<wolfspra1l>
they built embedded linux systems around microblaze
<wolfspra1l>
and now they (that small team) will focus on linux solutions around zynq
<wolfspra1l>
'solutions' probably meaning some larger work that works out of the box and can be the starting point for an embedded project
<wpwrak>
not sure about the workflow, but iwouldn't worry about the IP. the existence of Free tools gives meaning to avoiding proprietary IP. before it was more a style choice, since you were tied to the vendor anyway, though the tools.
<wpwrak>
now the proprietary IP becomes the one last thing that binds you. in many cases, there will be no escape. but there are probably lots of cases where just a little effort would be needed to drop these chains as well.
<wpwrak>
and as things grow, abandoning proprietary IP will get easier and easier
heberth has quit [Quit: leaving]
<wolfspra1l>
it's not that binary
<wolfspra1l>
fpgas are very specialized chips that find its way into real world products through an entire stack of tools
<wolfspra1l>
I can write a small piece of those tools
<wolfspra1l>
so?
<wolfspra1l>
other tools exist as well in the 'free' world
<wolfspra1l>
but they are not supported, there is no business using those tools
<wolfspra1l>
and most importantly - there are not enough *serious* people who drive value into and out of these tools
<wolfspra1l>
let's call it the 'shit' counter
<wolfspra1l>
the people who talk about free tools will use the s-word in every other sentence
<wpwrak>
well, let's see how it goes. rome wasn't built in a day :)
<wolfspra1l>
I do not believe that fpgatools alone changes how many business opportunities around fpgas exist or emerge
<wpwrak>
and you'd be surprised by how ridiculous linux looked in its infancy ...
<wolfspra1l>
not surprised because I didn't hack on it like you did in 1992, but around the same time I did install it on every piece of 80x86 I could get my hands on
<wolfspra1l>
but trust me on the business thinking, that's why fpgatools alone won't change much imho
<wolfspra1l>
not fast
<wolfspra1l>
if at all then there must be a whole suite/stack of tools that somehow connects to real world use cases
<wolfspra1l>
including debugging, resuable cores, and and
<wpwrak>
oh, it'll be years before this matters in terms of business
<wolfspra1l>
one thing xilinx highlights in vivado is that vivado has all these 'ip management' features
<wolfspra1l>
because (I would assume) their customers are dealing with more complex projects that has to integrate ip from various sources into 1 functioning and fully tested and verified product, with a tight schedule
<wolfspra1l>
that have to
<wolfspra1l>
so the problems they are solving for their customers are x generations ahead/away from that little tech tool/toy I am working on right now
<wolfspra1l>
but let's see. maybe fpgatools can find a niche over some difference to other tools
<wolfspra1l>
that difference may emerge over time
<wolfspra1l>
it's not relevant to me as long as I can't even blink a led yet
<wpwrak>
of course. but as the little toy gets stronger, it'll get a viable choice for an increasing number of people. first, perhaps only researchers. then a few crazy folks from industry. then some projects with unusual requirements. and so on.
<wolfspra1l>
let alone have any hope that fpgatools could matter in a project where some customer has to ship a fully working/tested/stable product for motor control or real-time visual analysis in a few months
<wpwrak>
yeah, blinking the led is kinda essential :)
<wolfspra1l>
yes correct
<wolfspra1l>
now we're on the same page, and that doesn't sound like 'game changer in october' to me ;-)
<wolfspra1l>
blinking led in october, maybe
<roh>
heho
rejon has joined #qi-hardware
<wolfspra1l>
I'm working on the carry chains at the moment btw
<wolfspra1l>
needed for the counter that counts up (to make the led blink :-))
<wolfspra1l>
it's a holiday in china, which I can feel because suddenly so quiet outside
<wpwrak>
;-)
<wolfspra1l>
normally there is construction all around me, the are building new luxury-whatever in all n/s/e/w directions here... but not now
<wolfspra1l>
I can hear the birds tweeting :-)
<wolfspra1l>
so they DO EXIST :-)
<kristianpaul>
wow :)
<wolfspra1l>
yeah
<wolfspra1l>
carry chains with bird inspiration
<wolfspra1l>
the holiday lasts the entire week
<kristianpaul>
i all years listen birds
<kristianpaul>
except hollidays ;)
<wolfspra1l>
not when you have a sledgehammer not far from you :-)
<kristianpaul>
haha
urandom__ has quit [Quit: Konversation terminated!]
emeb has quit [Quit: Leaving.]
GNUtoo-desktop has quit [Quit: [INFO] fsogsmd : received signal -11, exiting.]
nikescar has joined #qi-hardware
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer06 has joined #qi-hardware
fire_ has quit [Ping timeout: 240 seconds]
fire_ has joined #qi-hardware
pabs3 has quit [Remote host closed the connection]
<antoniodariush>
and also other similar from other websites and irclogs
heberth has joined #qi-hardware
paul_boddie has joined #qi-hardware
<paul_boddie>
USB boot can be very frustrating.
<antoniodariush>
it is
urandom__ has joined #qi-hardware
<paul_boddie>
For the software one, at least, I found that U + reset was often required, rather than U + power.
<kyak>
i say, remove the battery and hold U+power while plugging in the USB cable :)
<wpwrak>
hmm, the role of the POWER button seems to have been misunderstood in these instructions. if the power button does anything, then some code is already running
<wpwrak>
kyak: exactly. that's how it's supposed to work :)
<paul_boddie>
Yes, that's why I added a note about U + reset to the Wiki page.
<paul_boddie>
Far too often, U + power didn't do anything.
cladamw has joined #qi-hardware
<wpwrak>
paul_boddie: U still needs code to be running. so your device can only be lightly bricked is this works
<wpwrak>
i mean U in any constellation
<paul_boddie>
wpwrak: Yes, that's why software boot won't be enough in this case.
<paul_boddie>
antoniodariush: Don't know whether bridging the contact and using hardware reset instead of power helps at all.
<antoniodariush>
both ways don't work
<wpwrak>
what always works (except in the presence of a major hardware issue) is: 1) remove battery and USB. 2) sit tight for 30 sec. 3) make the USB BOOT contact. 4) while maintaining the contact, connect USB. 5) release and enjoy usbboot.
<wpwrak>
hw reset is as good as power. BUT ... it's harder to get it right :)
<kyak>
wpwrak: does sw reset do the same as hw reset, but from the sw? :)
<paul_boddie>
So, it's better to connect the USB cable while bridging the contact instead of already having power and using the power button?
<kyak>
or you get to "different" usbboot from sw?
<antoniodariush>
wpwrak: those instructions don't work in my case, i've been here for hours now
<wpwrak>
for step 4), this is easier if you connect the cable first on the Ben side, then short USB BOOT, and then plug the cable on the PC side. this way, there's no mechanical action on the side of the ben when plugging in the cable.
<antoniodariush>
brb
<wpwrak>
paul_boddie: yes. the power button is just another yet without any special hardware function
<paul_boddie>
wpwrak: OK. Maybe the Wiki should be updated to say this. I found a few different descriptions of USB boot, and so I tried to consolidate these on the "USB BOOT mode" page.
<wpwrak>
kyak: it's probably the same (that is, if the sw reset does a proper reset). but of course, if you can command a sw reset, you're probably in good enough shape for the POWER+U approach :)
<kyak>
wpwrak: yes, of course, i was just wondering
<wpwrak>
paul_boddie: note the "Iff" before the "U" part :)
<wpwrak>
antoniodariush: if you really get stuck, you may also consider soldering a wire to the USB BOOT contacts. that way, you can be sure that you have a good connection. it's okay to keep USB BOOT connected indefinitely after reset (of course, it means that you'll always end up in usb boot mode)
<paul_boddie>
Sure. I was just saying that hardware reset + U works in situations where power + U does not. That led me to believe that the power button isn't enough in many cases.
<wpwrak>
oh, the power button does almost nothing
<paul_boddie>
I guess it's even better to remove all power and use the USB cable to apply power, but I wasn't aware that this would actually perform a reset, although I think I've seen it happen recently.
<wpwrak>
a hardware reset is the best, but it can be difficult to command while keeping USB BOOT shorted. power cycling is as effective, provided that you let the machine completely unpowered for ~30 seconds.
<wpwrak>
there's a trap with power cycling: if it's too short, then you enter some sort of limbo state from which only a reset (or proper power cycle) recovers.
<wpwrak>
hence the 30 seconds rule. (in fact, about 12 seconds should do. but better have a bit of a margin)
<paul_boddie>
Does the limbo state involve a ticking sound? I've had that a few times when reflashing didn't work.
<paul_boddie>
Should I also change the hardware boot description on the Wiki page? Currently, it talks about the power button.
<wpwrak>
(ticking sound) i don't remember hearing such a thing. but that doesn't necessarily mean that it doesn't occur, or maybe only on some devices :)
<wpwrak>
(wiki) i think it would be good to avoid mentioning the POWER button. people may be misled to think of it as a power switch, which isn't how it works
cladamw has quit [Quit: Ex-Chat]
<paul_boddie>
So it should say (1) disconnect everything and wait, (2) bridge the contacts, (3) connect USB?
erikkugel has joined #qi-hardware
<wpwrak>
(2) bridge the contacts (and keep them bridged)
<wpwrak>
(4) after a few seconds (5 is plenty), you can de-bridge the contacts
<wpwrak>
i.e., i think another common misunderstanding is that USB BOOT merely needs a "pulse" (kinda like reset). so i think some people short it briefly, but it's no longer shorted when powering up, and thus has no effect
<wpwrak>
it's a bit difficult to tell what specifically goes wrong when people run into trouble. they often try something, which doesn't work, then ask for help. then, after a bit of confusion, someone gives correct instructions. then they try some more, and at some point in time, it suddenly works. be we never quite know what changed to make it work.
<wpwrak>
sometimes, it may simply be luck, e.g., when using an unreliable method for shorting USB BOOT
<wpwrak>
that's why i think some redundancy on what may be unexpected parts of the process can't hurt :)
<paul_boddie>
The problem is that it's difficult to remember what does work, and perhaps the only remedy is to brick a device and then spend lots of time systematically trying to bring it back.
<paul_boddie>
I'm guessing LCM means "screen" in the instructions. I didn't change that before.
<antoniodariush>
re:
<antoniodariush>
i will try again
<antoniodariush>
but nothing seems to work
<antoniodariush>
and I bricked two nanonotes in the same procedure so cannot be hardware fault cause hardware USB boot fails in both of them
<wpwrak>
antoniodariush: are you sure it doesn't come up in USB boot mode ? i.e., are you checking with lsusb ?
<antoniodariush>
wpwrak: yes lsusb
<antoniodariush>
does not come up
<viric>
how do you bridge?
<antoniodariush>
it does with other nanonotes i have
<viric>
maybe the contacts are a bit dirty
<viric>
or rusty
<antoniodariush>
with that carbon thing
<antoniodariush>
cleaned
<wpwrak>
or worn out ;-)
<viric>
where is the usbboot code, btw? in a little memory in the processor?
<antoniodariush>
the last command I ran was usbboot -c "nerase 0 4096 0 0"
<antoniodariush>
does this mean anything?
<wpwrak>
viric: yes, there's some sort of ROM there
<paul_boddie>
I also want to dispute this page, too: http://en.qi-hardware.com/wiki/Updating_Ben_NanoNote_software . Booting from a microSD card is much easier than reflashing, and it's probably easier to reflash from within Linux on the NanoNote than to use usbboot. I also found that reflash_ben.sh didn't work where usbboot did.
<wpwrak>
antoniodariush: i think that nerase means that you wiped out u-boot. but that's okay. you should be able to recover regardless.
<paul_boddie>
Yes, that command apparently erases the entire NAND storage.
<wpwrak>
paul_boddie: (http://en.qi-hardware.com/wiki/USB_BOOT_mode) looks good to me. maybe add that it may take few tries because shorting USB BOOT with such ad hoc means is inherently unreliable.
<wpwrak>
antoniodariush: if you're confident with a soldering iron, i'd suggest to just add a "hard" bridge for USB BOOT, to get rid of that bit of uncertainty
<antoniodariush>
wpwrak: i might consider that
<antoniodariush>
brb
<wpwrak>
of course, the deluxe solution would be to make an idbg :) alas, i think there are only 2-4 bens in existence that have this kind of luxury
<wpwrak>
(idbg is a little pcb with a microcontroller inside the ben that connects to serial console, reset, and usb boot. so you can control all these things via another usb connection. rather convenient ;-)
<paul_boddie>
How do you reset the idbg? Is it dongles all the way down? ;-)
<wpwrak>
idbg is powered from USB, so if i want to reset it, i just unplug its micro-USB plug
<wpwrak>
but in general it is expected to behave ;-)
<wpwrak>
its firmware has two parts: the boot loader (which uses DFU) and the "application". flashing the boot loader needs in-circuit programming, which is a little tricky. but you can bootstrap it with a ben with UBB. the ben is very nice for such tasks.
heberth has joined #qi-hardware
<wpwrak>
(i just wish it had a better separation between the internal 3.3 V domain and what goes out to the 8:10 card. it's a bit irritating if powering up an external board causes the ben to reset due to excessive inrush current - just because there are a few caps on the external board.)
<paul_boddie>
I'm currently playing with an Arduino (yes, I know!) with USB Host interface in conjunction with the NanoNote.
<wpwrak>
that's an odd combination :)
<paul_boddie>
Well, I got the USB Host board a while back but never did anything with it, whereas the NanoNote has USB Peripheral mode, so it makes an obvious companion. :-)
<wpwrak>
if the goal is to use the AVR as an i/o extender or to control some peripherals, you could perhaps just bit-bang SPI on the 8:10 card slot and hook up the AVR that way
<wpwrak>
ah ;-)
heberth has quit [Ping timeout: 244 seconds]
<paul_boddie>
I guess I would otherwise use a "slimmer" AVR-based board for such experiments, but it's all about the prototyping.
heberth has joined #qi-hardware
<paul_boddie>
It also gives me a bit of experience using the Max3421 stuff on the Arduino.
<paul_boddie>
Which I imagine is somewhat portable to other AVR boards, too.
<paul_boddie>
Either way, I get to practise my C++ a bit.
<wpwrak>
the real challenge would be do adapt v-usb to be USB host :)
<wpwrak>
s/do/to
<qi-bot>
wpwrak meant: "the real challenge would be to adapt v-usb to be USB host :)"
paroneayea has quit [Read error: Connection reset by peer]
<paul_boddie>
I think I've seen this before! Is the point of it to drive the interface directly using the AVR and thus to avoid a separate controller like the Max3421?
<wpwrak>
or a microcontroller with usb hardware (which generally drives up the chip price considerably)
<wpwrak>
it's very unusual to have an external usb controller (like a max3421) these days
<whitequark>
wpwrak: it doesn't, if that's not AVR
<whitequark>
e.g. STM32's are cheaper than AVRs and yet way more powerful
<whitequark>
an entry-level STM32F100RB on a $10 devboard can do USB OTG.
<whitequark>
*F103
<paul_boddie>
Well, I guess it's like all controllers these days. They become so powerful that they are then potentially more powerful than the designated CPU in a system.
<viric>
OTG?
<paul_boddie>
It's like a board I have with an LCD controller which is some kind of ARM core and must have more on-core storage than the AVR I'm using it with.
<whitequark>
on-the-go
<whitequark>
i.e. it can act both as device and host
<viric>
ah ok
<whitequark>
paul_boddie: stm32 is not a controller, it's basically a simple SoC
<paul_boddie>
They could have called it USB one-must-go, just for the laughs.
<whitequark>
that is, it's not an USB controller or so.
<whitequark>
it's an ARM core with a bunch of really nice peripherals
<paul_boddie>
whitequark: Yes, I meant that you get to the point with controllers where you need enough performance and features that you end up using a conventional core, and then you might as well start consolidating functions into a single component.
<whitequark>
paul_boddie: I highly doubt that USB in that chip is implemented as a general-purpose CPU core
<wpwrak>
whitequark: you probably still have a significant price step between STM with and STM without USB (provided that they even make the latter variant)
<whitequark>
wpwrak: well, there aren't variants of the _same chip_ with and without USB
<whitequark>
there is basically a 24MHz chip without USB and a 72MHz chip with USB
paroneayea has joined #qi-hardware
<whitequark>
the former is 4.79@1, the latter is 7.14@1 at digikey
<wpwrak>
and according to the data sheet on digi-key, the STM32F100RB has no OTG
<paul_boddie>
I wouldn't really know. I imagine that you'd want some special purpose circuitry for various aspects of it, but then convenience dictates that you might as well do some of the solution with an existing core, and that also opens it up to other convenient features that you can offer developers.
<whitequark>
wpwrak: indeed, I corrected myself. the one with USB is F103
<whitequark>
paul_boddie: naw, you already have Verilog. it's way more convenient to design inherently parallel processes without inherently sequental G/P CPU cores
<whitequark>
what takes an interesting challenge to fit on a CPU is done with a trivial line in Verilog, not even talking about the resources used
<whitequark>
(talking about NRZI decoding here)
<wpwrak>
pricy :) still USD 3.50 at volume
<paul_boddie>
It becomes like the Telit components where the original intention probably started out with just providing GSM connectivity and ending up with something that you can load Python programs onto, thus abandoning any need for a separate CPU, RAM, and thus the traditional "device logic" part of the system.
<whitequark>
wpwrak: they're way more powerful than AVRs
<whitequark>
sometimes you don't need that, but more often than not you do
<wpwrak>
oh, that's not a challenge :) is there anything SLOWER than AVRs ? ;-)
<whitequark>
also, due to a more advanced process, STM32s are significantly more energy efficient, both in sleep and idle :)
<whitequark>
hehe
<whitequark>
PICs
<whitequark>
4 cycles/op
<whitequark>
and the same top freq
<paul_boddie>
whitequark: Why would you embed an ARM core into an LCD controller, then?
<whitequark>
paul_boddie: because parsing commands from an external controller _is_ a sequental process, and quite a complex one
<whitequark>
it just draws to framebuffer. the framebuffer is then displayed on the matrix with a Verilog-written core.
<wpwrak>
PIGs in the same price range tend to have faster clocks. not sure about clocks/cycle, though.
<whitequark>
*HDL-written, ok
<paul_boddie>
I'm going to have to get into this FPGA game at some point, I just know it!
<whitequark>
wpwrak: memory banks. who in their right mind would ever voluntarily design or use a chip with memory banks?!
<whitequark>
I'm convinced that it's a conspiracy to turn programmers insane
<whitequark>
and drive compiler developers to a rage
<wpwrak>
whitequark: 8051 holds the record for a messy memory architecture :)
<wpwrak>
M8C isn't too bad either, though. i like the symmetry of their instruction set, though. but they're dead anyway.
<whitequark>
wpwrak: 8051? I thought it was pretty ancient, but not really arcane
<whitequark>
could you elaborate?
<wpwrak>
they have "internal" and "external" memory
<wpwrak>
of course, anything remotely modern has the "external" memory also inside
<wpwrak>
but they're still treated differently. may even be different instructions, but i'm not sure about that.
<wpwrak>
luckily, we have compilers to worry about that :)
emeb has joined #qi-hardware
<whitequark>
oh
<whitequark>
well, pic8 is so bad that there isn't even a gcc port
<whitequark>
there was sdcc, but it died
<whitequark>
and it didn't produce code which is any good anyway
<whitequark>
oh, it actually is still alive
<wpwrak>
pic18xxx seems to be reasonably well supported by sdcc
<whitequark>
yep
<whitequark>
sdcc actually works
<whitequark>
this doesn't change the fact that underlying architecture absolutely sucks.
<whitequark>
just imagine doing bitbanging with memory banks
<wpwrak>
one galling problem is that there are no gpl-friendly register definitions. they pick the stuff from microchip's proprietary devel kit making the resulting headers non-Free
<wpwrak>
oh, the memory banks may be the least of your worries ;-)
<wpwrak>
for real fun, try programming the critter in assembler. the branch instructions are somehow triply-negated. (if this isn't that, then don't skip the next instruction, which will be the thing that actually does what you want to be done. or such.)
<wpwrak>
i basically gave up and tried one way and if it didn't work, the other way. that was quicker than processing all the negations in my head.
<whitequark>
wpwrak: I tried.
<whitequark>
it was my first MCU ever.
<whitequark>
pic18f628a
<whitequark>
well
<wpwrak>
PIC12something there :)
<whitequark>
if I will ever meet someone loosely related to developing PICs
<whitequark>
and there will happen to be something sharp enough nearly
<wpwrak>
12F629 to be precise. one is still doing important work in my lab :)
<whitequark>
like a perfectly round steel ball
<wpwrak>
so you'll go nuernberg, but without trial ? :)
<whitequark>
kind of :)
xiangfu has quit [Ping timeout: 246 seconds]
<antoniodariush>
wpwrak: I got one working finally :)
<antoniodariush>
by just using the cambonized rubber button
<antoniodariush>
it's quite hard to get it done
<wpwrak>
congratulations ! :)
xiangfu has joined #qi-hardware
xiangfu has quit [Client Quit]
<paul_boddie>
Was the described procedure accurate, or do we need to refine it further?
rejon has joined #qi-hardware
<antoniodariush>
paul_boddie: the procedure in the wiki is good, but perhaps you can have a paragraph to explain what to do if it doesn't work
<antoniodariush>
like clean the USB boot pin
<antoniodariush>
clean the carbonized rubber button
<antoniodariush>
(which is what I did as well)
<paul_boddie>
OK. What to do if it doesn't work is perhaps the hardest part to write. ;-)
<antoniodariush>
finally, and the second nanonote is fixed as well
<antoniodariush>
had to clean the pins and the rubber button thoroughly
<antoniodariush>
i read somewhere that it can be cleaned with some alcohol
<antoniodariush>
didn't try that but can be useful info for the wiki
<antoniodariush>
thanks a lot for your support guys :)
<paul_boddie>
I think I read the bit about the alcohol somewhere, too. Must try and find that.
* kristianpaul
need fo fix its nanonote LCM broken "cable connector" on the board
<paul_boddie>
I found it on the Wiki, too, on the Unbrick page.
<antoniodariush>
awh
<paul_boddie>
It's now mentioned on the USB BOOT page.
urandom_ has joined #qi-hardware
pabspabspabs has joined #qi-hardware
<antoniodariush>
paul_boddie: I tried the unbrick page of the wiki, at that point I've almost gave up heheh
<antoniodariush>
bacause is a bit confusing
woakas has quit [Ping timeout: 246 seconds]
urandom__ has quit [Ping timeout: 246 seconds]
pabs3 has quit [Ping timeout: 246 seconds]
<wpwrak>
ah, mild detergent. so i guess boiling concentrated sulphuric acid is out :)
woakas has joined #qi-hardware
<antoniodariush>
bacause there is the possibility that nothing happens when the Power button is pressed but u can load the USB BOOT, in my case I could not even load the USB boot
<wpwrak>
alcohol is pretty much THE universal solvent/cleaner for electronics. it's safe with virtually everything.
<antoniodariush>
so what is the definition of "bricked"? :)
<viric>
wpwrak: unless if it's very hot :)
<wpwrak>
viric: mulled wine ? ;-)
<viric>
no no :) hot electronics heeh
<viric>
as for electronic contacts, I found that a pencil eraser cleans very well too
<wpwrak>
ah :) well, up to some point, alcohol can act as a coolant, too. beyond that point, though, it has the opposite effect
<paul_boddie>
There's quite a range from mild detergents to concentrated sulphuric acid, though.
<viric>
wpwrak: exactly
<wpwrak>
regarding what to do when it doesn't work. i guess words of encouragement are in order. like "don't give up". or "trust our instructions. we know what you're doing."
<paul_boddie>
wpwrak: An opportunity for you to make a nice video tutorial?
<wpwrak>
perhaps not ;-)
<wpwrak>
my bens boot just fine. and the one that does get an unusual amount of abuse from time to time has idbg installed :)
<wpwrak>
considering all the unbricking sessions we've had here already (must be dozens by now), it's always persistence that finally wins the day
<wpwrak>
what basically happens is that the number of tries needed to succeed tends to greatly exceed what people expect before feeling certain that the device is dead
<wpwrak>
it's a bit like a medical doctor having a patient die on them, all the resuscitation attempts failing, then the doctor going back home, getting a good night's sleep, then coming back the next day, and, after some more hours of seemingly futile if not crazy work, finally bringing the corpse back to life.
<wpwrak>
(and making a full recovery, living happily ever after, etc.)
jluis has quit [Remote host closed the connection]